diff --git a/.clang-tidy b/.clang-tidy index 966826cf24ad6..1bd155d715deb 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -1,4 +1,4 @@ -Checks: 'clang-diagnostic-*,-clang-analyzer-deadcode.DeadStores,-clang-analyzer-security.FloatLoopCounter,-clang-analyzer-core.UndefinedBinaryOperatorResult,-clang-analyzer-core.uninitialized.Assign,-clang-analyzer-cplusplus.NewDelete,-clang-analyzer-cplusplus.NewDeleteLeaks,-clang-analyzer-core.CallAndMessage,-clang-analyzer-core.NonNullParamChecker,-clang-analyzer-core.DivideZero,-clang-diagnostic-defaulted-function-deleted,-clang-analyzer-optin.cplusplus.VirtualCall,-clang-analyzer-core.uninitialized.UndefReturn' +Checks: 'clang-diagnostic-*,-clang-analyzer-security.FloatLoopCounter,-clang-analyzer-core.UndefinedBinaryOperatorResult,-clang-analyzer-core.uninitialized.Assign,-clang-analyzer-cplusplus.NewDeleteLeaks,-clang-analyzer-core.CallAndMessage,-clang-analyzer-core.NonNullParamChecker,-clang-analyzer-optin.cplusplus.VirtualCall,-clang-analyzer-core.NullDereference' WarningsAsErrors: '*' HeaderFilterRegex: '.*' FormatStyle: none diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 2058cd8d6fe72..a879b0cf29293 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -3,29 +3,56 @@ name: Bug report about: Create a report to help us improve --- + + +# Describe the bug -**Describe the bug** A clear and concise description of what the bug is. -**To Reproduce** + +# Steps To Reproduce + Steps to reproduce the behavior: 1. Make a player with a gun, magazine, and some ammo. 2. Try to aim at a wall. 3. There's no way to increase aim level. -**Expected behavior** -A clear and concise description of what you expected to happen. + +# Expected behavior + +A clear and concise description of what you expected to happen. Ideally also describe *why* you expect it to happen. -**Screenshots** -If applicable, add screenshots to help explain your problem. -**Versions and configuration(please complete the following information):** +# Screenshots + +**If applicable**, add screenshots to help explain your problem. + + + +# Versions and configuration + + + - OS: [e.g. iOS 8 or Windows 10 or Ubuntu 18.04] - Game Version: [from the main menu, e.g. 0.C-29938-g90f5268437] - Graphics version: [Tiles or Terminal] - Mods loaded: [e.g.dda, boats, hacktheplanet, StatsThroughSkills] -**Additional context** -Add any other context about the problem here. -E.g. A link to a savegame that allows the issue to be reproduced. + +# Additional context + +Add any other context about the problem here. + + diff --git a/.gitignore b/.gitignore index 5606c82c39441..77090ef9790c0 100644 --- a/.gitignore +++ b/.gitignore @@ -47,6 +47,7 @@ logg.txt *.ilk *.opensdf *.pdb +*.lib *.sdf *.suo *.user diff --git a/.travis.yml b/.travis.yml index 0135e7912bad2..e415b817d9adc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,7 +36,7 @@ jobs: include: # Initial test stage, if this fails everything else is cancelled. - stage: test - # GCC 5 is the pre-installed compiler on Xenial + # GCC 5.4 is the pre-installed compiler on Xenial env: COMPILER=g++ MODS=--mods=RL_Classes TEST_STAGE=1 # Then build different configurations and targets in parallel. @@ -91,21 +91,12 @@ jobs: packages: ["clang-8", "libc6-dbg", "libc6-dbg:i386", "g++-6", "libsdl2-dev", "libsdl2-ttf-dev", "libsdl2-image-dev", "libsdl2-mixer-dev"] sources: [*apt_sources, llvm-toolchain-trusty-8] - - env: COMPILER=g++-4.8 + - env: COMPILER=g++ compiler: gcc - addons: &gcc48 + addons: &gcc53 apt: - packages: ["g++-4.8", "g++-4.8-multilib", "libc6-dbg", "libc6-dbg:i386"] - sources: *apt_sources - - # GCC 4.9 - - env: COMPILER=g++-4.9 - if: type != pull_request - compiler: gcc - addons: &gcc49 - apt: - packages: ["g++-4.9", "g++-4.9-multilib", "libc6-dbg", "libc6-dbg:i386"] - sources: *apt_sources + packages: ["g++-5=5.3.1-14ubuntu2", "libstdc++-5-dev=5.3.1-14ubuntu2", "gcc-5=5.3.1-14ubuntu2", "gcc-5-base=5.3.1-14ubuntu2", "cpp-5=5.3.1-14ubuntu2", "libgcc-5-dev=5.3.1-14ubuntu2", "libasan2=5.3.1-14ubuntu2", "libmpx0=5.3.1-14ubuntu2"] + sources: [*apt_sources] # GCC 6 - env: COMPILER=g++-6 diff --git a/CMakeLists.txt b/CMakeLists.txt index c8f4ff70874cf..78f3b791917d9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -212,7 +212,7 @@ IF(MSVC) add_definitions(-D_X86_) endif() ELSE() - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wextra -Wall -std=c++11") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wextra -Wall -std=c++14") SET(CMAKE_CXX_FLAGS_DEBUG "-Og -g -D_GLIBCXX_DEBUG") ENDIF() diff --git a/Makefile b/Makefile index f17802127b78c..80f9d10d2770e 100644 --- a/Makefile +++ b/Makefile @@ -307,9 +307,9 @@ ifndef RELEASE endif ifeq ($(shell sh -c 'uname -o 2>/dev/null || echo not'),Cygwin) - OTHERS += -std=gnu++11 + OTHERS += -std=gnu++14 else - OTHERS += -std=c++11 + OTHERS += -std=c++14 endif CXXFLAGS += $(WARNINGS) $(DEBUG) $(DEBUGSYMS) $(PROFILE) $(OTHERS) -MMD -MP diff --git a/SIGNOFF b/SIGNOFF index cad2ca87f7154..7af8aa3f6a4cc 100644 --- a/SIGNOFF +++ b/SIGNOFF @@ -61,3 +61,4 @@ Patrik Stridvall Ryan Schneider (RadHazard) Paul Bransford (draeath) Mark Langsdorf (mlangsdorf) / +Davis Bray (Kaltag1925) diff --git a/build-scripts/build.sh b/build-scripts/build.sh index e10f042fbcbe4..26f4309b0a507 100755 --- a/build-scripts/build.sh +++ b/build-scripts/build.sh @@ -96,10 +96,19 @@ then fi else make -j "$num_jobs" RELEASE=1 CCACHE=1 BACKTRACE=1 CROSS="$CROSS_COMPILATION" LINTJSON=0 + run_tests ./tests/cata_test - if [ -n "$MODS" ] + if [ "$TRAVIS_OS_NAME" == "osx" ] then - run_tests ./tests/cata_test $MODS + run_tests ./tests/cata_test + else + run_tests ./tests/cata_test & + if [ -n "$MODS" ] + then + run_tests ./tests/cata_test $MODS & + wait -n + fi + wait -n fi fi ccache --show-stats diff --git a/data/json/construction.json b/data/json/construction.json index f92d209deaf94..680a3d436e2de 100644 --- a/data/json/construction.json +++ b/data/json/construction.json @@ -1219,17 +1219,6 @@ "pre_special": "check_empty", "post_terrain": "f_crate_o" }, - { - "type": "construction", - "description": "Seal Coffin", - "category": "FURN", - "required_skills": [ [ "mechanics", 0 ] ], - "time": 10, - "components": [ [ [ "nail", 6 ] ] ], - "qualities": [ [ { "id": "HAMMER", "level": 1 } ] ], - "pre_terrain": "f_coffin_o", - "post_terrain": "f_coffin_c" - }, { "type": "construction", "description": "Build Coffin", @@ -1245,6 +1234,30 @@ "pre_special": "check_empty", "post_terrain": "f_coffin_o" }, + { + "type": "construction", + "description": "Seal Coffin", + "category": "FURN", + "required_skills": [ [ "mechanics", 0 ] ], + "time": 10, + "components": [ [ [ "nail", 6 ] ] ], + "qualities": [ [ { "id": "HAMMER", "level": 1 } ] ], + "pre_terrain": "f_coffin_o", + "post_terrain": "f_coffin_c" + }, + { + "type": "construction", + "description": "Dig Grave and Bury Sealed Coffin", + "category": "DIG", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 60, + "qualities": [ [ { "id": "HAMMER", "level": 1 } ], [ { "id": "DIG", "level": 2 } ] ], + "components": [ [ [ "rock", 20 ], [ "2x4", 2 ] ] ], + "pre_flags": "DIGGABLE", + "pre_terrain": "f_coffin_c", + "post_terrain": "t_grave_new", + "post_special": "done_grave" + }, { "type": "construction", "description": "Build Bulletin Board", diff --git a/data/json/corpses.json b/data/json/corpses.json index 188b8e4930e13..3aab1f770f003 100644 --- a/data/json/corpses.json +++ b/data/json/corpses.json @@ -13,7 +13,7 @@ { "item": "adderall", "prob": 40 }, { "item": "id_military", "prob": 5 }, { "item": "militarymap", "prob": 5 }, - { "item": "cash_card", "charges-min": 0, "charges-max": 50000 }, + { "item": "cash_card", "prob": 10, "charges-min": 0, "charges-max": 50000 }, { "group": "mil_food", "prob": 15 }, { "item": "bone_human", "count": [ 5, 8 ], "prob": 100 }, { "item": "human_flesh", "count": [ 5, 8 ], "prob": 100 }, @@ -62,7 +62,7 @@ { "item": "two_way_radio", "prob": 50 }, { "item": "grenade", "prob": 5 }, { "item": "id_military", "prob": 5 }, - { "item": "cash_card", "charges-min": 0, "charges-max": 50000 }, + { "item": "cash_card", "prob": 10, "charges-min": 0, "charges-max": 50000 }, { "group": "misc_smoking", "prob": 30 } ] }, diff --git a/data/json/furniture.json b/data/json/furniture.json index e35251de5385a..b3979f0272eaf 100644 --- a/data/json/furniture.json +++ b/data/json/furniture.json @@ -1510,7 +1510,7 @@ "MOUNTABLE", "SHORT" ], - "examine_action": "crate", + "examine_action": "locked_object", "deconstruct": { "items": [ { "item": "2x4", "count": 4 }, { "item": "nail", "charges": [ 6, 10 ] } ] }, "max_volume": 4000, "bash": { @@ -3207,6 +3207,50 @@ "items": [ { "item": "rock", "count": 8 }, { "item": "stick", "count": [ 8, 12 ] } ] } }, + { + "type": "furniture", + "id": "f_metal_smoking_rack", + "name": "metal smoking rack", + "description": "A special rack designed to smoke food for better preservation and taste.", + "symbol": "=", + "bgcolor": "light_gray", + "move_cost_mod": 2, + "required_str": -1, + "deployed_item": "metal_smoking_rack", + "flags": [ "TRANSPARENT", "SEALED", "ALLOW_FIELD_EFFECT", "CONTAINER", "NOITEM", "EASY_DECONSTRUCT", "MINEABLE" ], + "crafting_pseudo_item": "char_smoker", + "examine_action": "smoker_options", + "deconstruct": { "items": [ { "item": "metal_smoking_rack", "count": 1 } ] }, + "bash": { + "str_min": 18, + "str_max": 50, + "sound": "metal screeching!", + "sound_fail": "clang!", + "items": [ { "item": "scrap", "count": 4 }, { "item": "pipe", "count": [ 3, 5 ] } ] + } + }, + { + "type": "furniture", + "id": "f_metal_smoking_rack_active", + "name": "active metal smoking rack", + "description": "A special rack designed to smoke food for better preservation and taste.", + "symbol": "=", + "bgcolor": "light_gray", + "move_cost_mod": 2, + "required_str": -1, + "deployed_item": "metal_smoking_rack", + "flags": [ "TRANSPARENT", "SEALED", "ALLOW_FIELD_EFFECT", "CONTAINER", "NOITEM", "EASY_DECONSTRUCT", "MINEABLE" ], + "crafting_pseudo_item": "char_smoker", + "examine_action": "smoker_options", + "deconstruct": { "items": [ { "item": "metal_smoking_rack", "count": 1 } ] }, + "bash": { + "str_min": 18, + "str_max": 50, + "sound": "metal screeching!", + "sound_fail": "clang!", + "items": [ { "item": "scrap", "count": 4 }, { "item": "pipe", "count": [ 3, 5 ] } ] + } + }, { "type": "furniture", "id": "f_forge_rock", diff --git a/data/json/item_actions.json b/data/json/item_actions.json index 34afe2b65e8bd..8f11bc7ac2ef0 100644 --- a/data/json/item_actions.json +++ b/data/json/item_actions.json @@ -54,6 +54,11 @@ "id": "PICKAXE", "name": "Dig through rock" }, + { + "type": "item_action", + "id": "BURROW", + "name": "Burrow through rock" + }, { "type": "item_action", "id": "GEIGER", @@ -879,6 +884,11 @@ "id": "BLOOD_DRAW", "name": "Draw some blood" }, + { + "type": "item_action", + "id": "HAND_CRANK", + "name": "Recharge a battery" + }, { "type": "item_action", "id": "VIBE", diff --git a/data/json/item_groups.json b/data/json/item_groups.json index a8d0f9bbd4eba..a1b027fb674bb 100644 --- a/data/json/item_groups.json +++ b/data/json/item_groups.json @@ -389,7 +389,7 @@ [ "kippah", 1 ], [ "robe", 3 ], [ "thawb", 1 ], - [ "kimono", 1 ], + [ "yukata", 1 ], [ "eclipse_glasses", 1 ], [ "reading_light", 9 ] ] @@ -1139,7 +1139,11 @@ [ "robe", 10 ], [ "eboshi", 1 ], [ "kariginu", 1 ], - [ "kimono", 5 ], + [ "geta", 1 ], + [ "kimono", 2 ], + [ "yukata", 6 ], + [ "haori", 2 ], + [ "hakama", 4 ], [ "eclipse_glasses", 1 ], [ "thermos", 20 ] ] @@ -3044,7 +3048,11 @@ [ "robe", 5 ], [ "eboshi", 1 ], [ "kariginu", 1 ], - [ "kimono", 3 ] + [ "geta", 1 ], + [ "kimono", 2 ], + [ "yukata", 4 ], + [ "haori", 1 ], + [ "hakama", 2 ] ] }, { @@ -4419,7 +4427,11 @@ [ "cassock", 1 ], [ "eboshi", 1 ], [ "kariginu", 2 ], - [ "kimono", 3 ], + [ "kimono", 2 ], + [ "yukata", 4 ], + [ "haori", 1 ], + [ "hakama", 2 ], + [ "geta", 1 ], [ "l-stick", 1 ], [ "solarpack", 5 ], [ "tourist_table", 10 ], @@ -8208,6 +8220,8 @@ [ "cavalry_sabre", 2 ], [ "glaive", 2 ], [ "naginata", 2 ], + [ "naginata_fake", 2 ], + [ "naginata_inferior", 3 ], [ "estoc", 2 ], [ "estoc_fake", 6 ], [ "qiang", 3 ], @@ -8269,7 +8283,7 @@ [ "seed_zucchini", 60 ], [ "seed_cotton_boll", 10 ], [ "seed_tobacco", 10 ], - [ "raw_beans", 60 ], + [ "seed_beans", 60 ], [ "seed_chili_pepper", 60 ], [ "seed_tomato", 60 ] ] @@ -8669,6 +8683,7 @@ "items": [ [ "rope_30", 10 ], [ "hatchet", 50 ], + [ "iceaxe", 20 ], [ "mess_kit", 100 ], [ "teapot", 50 ], [ "binoculars", 30 ], diff --git a/data/json/itemgroups/SUS_specific_use_storage_items.json b/data/json/itemgroups/SUS_specific_use_storage_items.json new file mode 100644 index 0000000000000..5c932cac68f27 --- /dev/null +++ b/data/json/itemgroups/SUS_specific_use_storage_items.json @@ -0,0 +1,164 @@ +[ + { + "id": "SUS_silverware", + "type": "item_group", + "//": "SUS item groups are collections that contain a reasonable realistic distribution of items that might spawn in a given storage furniture.", + "//2": "This group is for a silverware drawer.", + "subtype": "collection", + "items": [ + { "item": "knife_butter", "count": [ 1, 6 ] }, + { "item": "knife_butter", "count": [ 1, 6 ], "prob": 75 }, + { "item": "knife_steak", "count": [ 2, 6 ], "prob": 85 }, + { "item": "fork", "count": [ 1, 6 ] }, + { "item": "fork", "count": [ 1, 6 ], "prob": 75 }, + { "item": "spoon", "count": [ 1, 6 ] }, + { "item": "spoon", "count": [ 1, 6 ], "prob": 75 }, + { "item": "chopsticks", "prob": 50, "count": [ 0, 6 ] }, + { "item": "plastic_spoon", "prob": 50, "count": [ 0, 6 ] }, + { "item": "plastic_knife", "prob": 50, "count": [ 1, 6 ] }, + { "item": "plastic_fork", "prob": 50, "count": [ 0, 6 ] }, + [ "corkscrew", 75 ], + [ "bottle_opener", 75 ], + { "item": "plastic_straw", "prob": 50, "count": [ 1, 6 ] } + ] + }, + { + "id": "SUS_utensils", + "type": "item_group", + "//": "SUS item groups are collections that contain a reasonable realistic distribution of items that might spawn in a given storage furniture.", + "//2": "This group is for a utensils drawer.", + "subtype": "collection", + "items": [ + { "item": "tongs", "prob": 95 }, + { "item": "tongs", "prob": 50 }, + { "item": "ladle", "prob": 95 }, + { "item": "ladle", "prob": 50 }, + { "item": "spatula", "prob": 95, "count": [ 1, 2 ] }, + { "item": "spatula", "prob": 40, "count": [ 1, 2 ] }, + { "item": "whisk", "prob": 95 }, + { "item": "whisk", "prob": 50 }, + { "item": "rolling_pin", "prob": 80 }, + { "item": "rolling_pin", "prob": 30 }, + { "item": "can_opener", "prob": 95 }, + { "item": "can_opener", "prob": 70 }, + { "item": "peeler", "prob": 95, "count": [ 1, 2 ] }, + { "item": "peeler", "prob": 75 }, + { "item": "garlic_press", "prob": 65 }, + { "item": "potato_masher", "prob": 85 }, + { "item": "carving_fork", "prob": 50 }, + { "item": "corkscrew", "prob": 90 }, + { "item": "bottle_opener", "prob": 95 } + ] + }, + { + "id": "SUS_knife_drawer", + "type": "item_group", + "//": "SUS item groups are collections that contain a reasonable realistic distribution of items that might spawn in a given storage furniture.", + "//2": "This group is for a drawer full of knives and related implements.", + "subtype": "collection", + "items": [ + { "distribution": [ { "item": "knife_chef", "prob": 10 }, { "item": "knife_vegetable_cleaver", "prob": 3 } ] }, + { "item": "knife_paring" }, + { "item": "knife_paring", "prob": 75 }, + { "item": "knife_bread", "prob": 95 }, + { "item": "knife_bread", "prob": 45 }, + { + "distribution": [ { "item": "knife_butcher", "prob": 10 }, { "item": "knife_meat_cleaver", "prob": 10 } ], + "prob": 65 + }, + { "item": "knife_steak", "count": [ 2, 4 ], "prob": 75 }, + { "collection": [ { "item": "knife_carving" }, { "item": "carving_fork", "prob": 90 } ], "prob": 85 }, + { "item": "scissors", "prob": 80 }, + { "item": "peeler", "prob": 75, "count": [ 1, 2 ] }, + { "item": "cutting_board", "count": [ 1, 2 ] }, + { "item": "cutting_board", "prob": 75 } + ] + }, + { + "id": "SUS_junk_drawer", + "type": "item_group", + "//": "SUS item groups are collections that contain a reasonable realistic distribution of items that might spawn in a given storage furniture.", + "//2": "This group is for a junk drawer.", + "subtype": "collection", + "items": [ + { "item": "xacto", "prob": 80 }, + { "item": "scissors", "prob": 80 }, + { "item": "screwdriver", "prob": 70 }, + { "item": "hammer", "prob": 60 }, + { "item": "pliers", "prob": 60 }, + { "item": "flashlight", "prob": 75 }, + { "item": "hammer", "prob": 75 }, + { "item": "permanent_marker", "prob": 75 }, + { "item": "permanent_marker", "prob": 40 }, + { "item": "paper", "prob": 55 }, + { "item": "battery", "count": [ 1, 2 ], "prob": 85 }, + { "item": "string_36", "count": [ 1, 4 ], "prob": 80 }, + { "item": "string_36", "count": [ 1, 4 ], "prob": 50 }, + { "item": "string_36", "count": [ 1, 4 ], "prob": 20 }, + { "item": "duct_tape", "prob": 50 }, + { "item": "duct_tape", "prob": 30 }, + { "item": "plastic_straw", "prob": 70, "count": [ 1, 6 ] }, + { "item": "plastic_straw", "prob": 40, "count": [ 1, 6 ] }, + { "item": "corkscrew", "prob": 60 }, + { "item": "bottle_opener", "prob": 75 }, + { "item": "candle", "prob": 75 }, + { "distribution": [ { "item": "matches" }, { "item": "lighter" } ], "prob": 90 } + ] + }, + { + "id": "SUS_dishes", + "type": "item_group", + "//": "SUS item groups are collections that contain a reasonable realistic distribution of items that might spawn in a given storage furniture.", + "//2": "This group is for a cupboard full of dining dishes.", + "subtype": "distribution", + "items": [ + { "item": "wine_glass", "prob": 50, "count": [ 1, 4 ] }, + { "item": "bowl_pewter", "prob": 50, "count": [ 1, 4 ] }, + { "item": "ceramic_cup", "prob": 75, "count": [ 1, 4 ] }, + { "item": "glass", "count": [ 1, 6 ] }, + { "item": "ceramic_mug", "count": [ 1, 6 ] }, + { "item": "ceramic_plate", "count": [ 1, 6 ] }, + { "item": "ceramic_bowl", "count": [ 1, 6 ] }, + { + "collection": [ { "item": "glass_plate", "count": [ 1, 4 ] }, { "item": "glass_bowl", "count": [ 1, 4 ] } ], + "prob": 60 + } + ] + }, + { + "id": "SUS_cookware", + "type": "item_group", + "//": "SUS item groups are collections that contain a reasonable realistic distribution of items that might spawn in a given storage furniture.", + "//2": "This group is for a cupboard full of pots and pans.", + "subtype": "distribution", + "items": [ + { "item": "pot", "count": [ 1, 2 ] }, + { "item": "pot", "prob": 50 }, + { "collection": [ { "item": "iron_pot" }, { "item": "iron_pot", "prob": 60 } ], "prob": 70 }, + { "item": "casserole", "prob": 90 }, + { "item": "pot_copper", "prob": 75 }, + { "item": "stock_pot", "prob": 50 }, + { "item": "pot_canning", "prob": 25 }, + { "item": "pan", "count": [ 1, 2 ] }, + { "item": "steel_pan", "prob": 80 }, + { "item": "copper_pan", "prob": 30 }, + { "item": "kettle", "prob": 80 } + ] + }, + { + "id": "SUS_kitchen_sink", + "type": "item_group", + "//": "SUS item groups are collections that contain a reasonable realistic distribution of items that might spawn in a given storage furniture.", + "//2": "This group is for the cleaning materials under a kitchen sink.", + "subtype": "collection", + "items": [ + { "item": "detergent", "count": [ 1, 2 ] }, + { "item": "rag", "count": [ 1, 6 ] }, + { "item": "towel", "count": [ 1, 3 ] }, + { "item": "brush" }, + { "item": "brush", "prob": 85 }, + { "item": "bleach", "prob": 75 }, + { "item": "ammonia", "prob": 65 } + ] + } +] diff --git a/data/json/itemgroups/clothing.json b/data/json/itemgroups/clothing.json index 714956347eda3..1cf4a5a40ae53 100644 --- a/data/json/itemgroups/clothing.json +++ b/data/json/itemgroups/clothing.json @@ -385,5 +385,17 @@ [ "sports_drink", 30 ], [ "1st_aid", 20 ] ] + }, + { + "id": "donated_clothes", + "type": "item_group", + "subtype": "collection", + "items": [ + { "group": "underwear" }, + { "group": "clothing_outdoor_torso" }, + { "group": "clothing_outdoor_pants" }, + { "item": "socks" }, + { "item": "boots" } + ] } ] diff --git a/data/json/itemgroups/collections_domestic.json b/data/json/itemgroups/collections_domestic.json index 35f180a05df79..bf098d19f0ee8 100644 --- a/data/json/itemgroups/collections_domestic.json +++ b/data/json/itemgroups/collections_domestic.json @@ -1,4 +1,123 @@ [ + { + "id": "shower", + "//": "Mundane household items that might be found in or around a shower or bath.", + "type": "item_group", + "subtype": "distribution", + "items": [ [ "rag", 40 ], [ "towel", 30 ], [ "soap", 10 ] ] + }, + { + "id": "kitchen_counters", + "//": "Items that might be found scattered around a kitchen counter.", + "type": "item_group", + "subtype": "distribution", + "items": [ + { "group": "dishes_dining", "prob": 100 }, + { "group": "dishes_utility", "prob": 50 }, + { "group": "kitchen_appliances", "prob": 25 } + ] + }, + { + "id": "dishes_dining", + "//": "Mundane household dishes that would be used for eating, not food prep.", + "//2": "May be some overlap for food prep dishes that could be used for serving, like mixing bowls and teapots.", + "//3": "If it would fit on a dining table, it would fit in this group.", + "type": "item_group", + "subtype": "distribution", + "items": [ + [ "knife_butter", 90 ], + [ "fork", 90 ], + [ "spoon", 90 ], + [ "chopsticks", 90 ], + [ "knife_steak", 50 ], + [ "glass", 50 ], + [ "ceramic_plate", 50 ], + [ "ceramic_bowl", 50 ], + [ "ceramic_cup", 20 ], + [ "ceramic_mug", 20 ], + [ "plastic_plate", 50 ], + [ "tumbler_plastic", 50 ], + [ "bowl_pewter", 25 ], + [ "glass_plate", 20 ], + [ "glass_bowl", 20 ], + [ "plastic_spoon", 20 ], + [ "plastic_knife", 20 ], + [ "plastic_fork", 20 ], + [ "teapot", 5 ], + { "collection": [ { "item": "plastic_bowl_kids" }, { "item": "plastic_spoon_kids" } ], "prob": 50 } + ] + }, + { + "id": "dishes_utility", + "//": "Mundane household dishes that would be used for cooking, not found on a dining table.", + "//2": "If it would be OK in a dishwasher but generally not as a table setting, it would fit in this group.", + "type": "item_group", + "subtype": "distribution", + "items": [ + [ "pot", 50 ], + [ "pan", 50 ], + [ "steel_pan", 45 ], + [ "copper_pan", 35 ], + [ "pot_canning", 10 ], + [ "pot_copper", 25 ], + [ "iron_pot", 25 ], + [ "casserole", 25 ], + [ "stock_pot", 15 ], + [ "pressure_cooker", 5 ], + [ "teapot", 40 ], + [ "kettle", 40 ], + [ "jar_glass", 50 ], + [ "jar_3l_glass", 40 ], + [ "bowl_pewter", 25 ], + [ "knife_butcher", 20 ], + [ "thermos", 15 ], + [ "tongs", 15 ], + [ "spatula", 15 ], + [ "whisk", 15 ], + [ "ladle", 15 ], + [ "rolling_pin", 15 ], + [ "garlic_press", 15 ], + [ "potato_masher", 15 ], + [ "carving_fork", 15 ], + [ "can_opener", 15 ], + [ "corkscrew", 10 ], + [ "peeler", 15 ], + [ "brush", 15 ], + [ "knife_paring", 25 ], + [ "knife_bread", 20 ], + [ "knife_chef", 20 ], + [ "knife_carving", 20 ], + [ "knife_butcher", 10 ], + [ "knife_meat_cleaver", 10 ], + [ "knife_vegetable_cleaver", 10 ], + [ "cutting_board", 20 ], + [ "bottle_opener", 15 ] + ] + }, + { + "id": "kitchen_appliances", + "//": "Mundane household appliances that you might find in a kitchen.", + "type": "item_group", + "subtype": "distribution", + "items": [ + [ "toaster", 30 ], + [ "microwave", 30 ], + [ "coffeemaker", 30 ], + [ "food_processor", 30 ], + [ "waffleiron", 25 ], + [ "flashlight", 20 ], + [ "extinguisher", 20 ], + [ "sm_extinguisher", 10 ], + [ "pastaextruder", 10 ], + [ "dehydrator", 10 ], + [ "hotplate", 10 ], + [ "clock", 10 ], + [ "multi_cooker", 5 ], + [ "char_smoker", 5 ], + [ "can_sealer", 2 ], + [ "atomic_coffeepot", 1 ] + ] + }, { "type": "item_group", "id": "home_hw", diff --git a/data/json/itemgroups/gear.json b/data/json/itemgroups/gear.json index 8840f559158f0..ff1dbad5647f8 100644 --- a/data/json/itemgroups/gear.json +++ b/data/json/itemgroups/gear.json @@ -136,5 +136,22 @@ [ "duct_tape", 10 ], [ "survivormap", 5 ] ] + }, + { + "id": "gear_homeless", + "type": "item_group", + "//": "Regular items for the homeless.", + "items": [ + { "group": "trash", "prob": 30 }, + { "group": "donated_clothes", "prob": 25 }, + { "group": "gear_survival", "prob": 5 }, + { "group": "contraband", "prob": 20 }, + { "group": "prison_textile", "prob": 7, "damage": [ 1, 2 ] }, + { "group": "novels", "prob": 10 }, + { "group": "misc_smoking", "prob": 10 }, + { "group": "stoner", "prob": 5 }, + { "group": "cannedfood", "prob": 10, "repeat": [ 1, 3 ] }, + { "item": "drink_hobo", "prob": 1 } + ] } ] diff --git a/data/json/itemgroups/guns.json b/data/json/itemgroups/guns.json index ba1e8fa9e4b8b..8ea89ad9ba805 100644 --- a/data/json/itemgroups/guns.json +++ b/data/json/itemgroups/guns.json @@ -4,21 +4,21 @@ "id": "guns_pistol_common", "//": "Pistols commonly owned by citizens and found in many locations.", "items": [ - [ "glock_17", 35 ], - [ "glock_19", 50 ], - [ "glock_22", 35 ], - [ "m1911", 50 ], - [ "m9", 30 ], - [ "ruger_lcr_38", 10 ], - [ "sig_mosquito", 15 ], - [ "sw_22", 15 ], - [ "sw_610", 20 ], - [ "sw_619", 25 ], - [ "p226_357sig", 20 ], - [ "kp32", 10 ], - [ "kp3at", 35 ], - [ "rugerlcp", 35 ], - [ "kpf9", 35 ] + { "item": "glock_17", "prob": 35, "charges-min": 0, "charges-max": 15 }, + { "item": "glock_19", "prob": 50, "charges-min": 0, "charges-max": 15 }, + { "item": "glock_22", "prob": 35, "charges-min": 0, "charges-max": 15 }, + { "item": "m1911", "prob": 50, "charges-min": 0, "charges-max": 7 }, + { "item": "m9", "prob": 30, "charges-min": 0, "charges-max": 15 }, + { "item": "ruger_lcr_38", "prob": 10, "charges-min": 0, "charges-max": 5 }, + { "item": "sig_mosquito", "prob": 15, "charges-min": 0, "charges-max": 10 }, + { "item": "sw_22", "prob": 15, "charges-min": 0, "charges-max": 10 }, + { "item": "sw_610", "prob": 20, "charges-min": 0, "charges-max": 6 }, + { "item": "sw_619", "prob": 25, "charges-min": 0, "charges-max": 7 }, + { "item": "p226_357sig", "prob": 20, "charges-min": 0, "charges-max": 15 }, + { "item": "kp32", "prob": 10, "charges-min": 0, "charges-max": 7 }, + { "item": "kp3at", "prob": 35, "charges-min": 0, "charges-max": 6 }, + { "item": "rugerlcp", "prob": 35, "charges-min": 0, "charges-max": 6 }, + { "item": "kpf9", "prob": 35, "charges-min": 0, "charges-max": 7 } ] }, { @@ -26,86 +26,109 @@ "id": "guns_pistol_rare", "//": "Less common pistols including those only used by police/paramilitary forces.", "items": [ - [ "deagle_44", 35 ], - [ "fn57", 80 ], - [ "l_enforcer_45", 25 ], - [ "l_lookout_9mm", 20 ], - [ "l_sp_45", 35 ], - [ "l_sp_9mm", 60 ], - [ "ruger_lcr_22", 35 ], - [ "ruger_redhawk", 25 ], - [ "sig_40", 35 ], - [ "sig_p230", 45 ], - [ "sw_500", 25 ], - [ "sw629", 40 ], - [ "taurus_38", 35 ], - [ "usp_45", 70 ], - [ "usp_9mm", 120 ] + { "item": "deagle_44", "prob": 35, "charges-min": 0, "charges-max": 8 }, + { "item": "fn57", "prob": 80, "charges-min": 0, "charges-max": 20 }, + { "item": "l_enforcer_45", "prob": 25, "charges-min": 0, "charges-max": 6 }, + { "item": "l_lookout_9mm", "prob": 20, "charges-min": 0, "charges-max": 7 }, + { "item": "l_sp_45", "prob": 35, "charges-min": 0, "charges-max": 12 }, + { "item": "l_sp_9mm", "prob": 60, "charges-min": 0, "charges-max": 21 }, + { "item": "ruger_lcr_22", "prob": 35, "charges-min": 0, "charges-max": 8 }, + { "item": "ruger_redhawk", "prob": 25, "charges-min": 0, "charges-max": 6 }, + { "item": "sig_40", "prob": 35, "charges-min": 0, "charges-max": 12 }, + { "item": "sig_p230", "prob": 45, "charges-min": 0, "charges-max": 8 }, + { "item": "sw_500", "prob": 25, "charges-min": 0, "charges-max": 5 }, + { "item": "sw629", "prob": 40, "charges-min": 0, "charges-max": 6 }, + { "item": "taurus_38", "prob": 35, "charges-min": 0, "charges-max": 10 }, + { "item": "usp_45", "prob": 70, "charges-min": 0, "charges-max": 12 }, + { "item": "usp_9mm", "prob": 120, "charges-min": 0, "charges-max": 15 } ] }, { "type": "item_group", "id": "guns_pistol_milspec", "//": "Military specification pistols only ever found at military sites.", - "items": [ [ "hk_ucp", 100 ], [ "l_mp_45", 70 ], [ "l_mp_9mm", 100 ], [ "needlepistol", 45 ], [ "rm103a_pistol", 35 ] ] + "items": [ + { "item": "l_mp_45", "prob": 70, "charges-min": 0, "charges-max": 12 }, + { "item": "l_mp_9mm", "prob": 100, "charges-min": 0, "charges-max": 21 }, + { "item": "needlepistol", "prob": 45, "charges-min": 0, "charges-max": 50 }, + { "item": "rm103a_pistol", "prob": 35, "charges-min": 0, "charges-max": 10 } + ] }, { "type": "item_group", "id": "guns_pistol_obscure", "//": "Imported or otherwise very obscure pistols.", "items": [ - [ "cop_38", 100 ], - [ "lemat_revolver", 150 ], - [ "makarov", 100 ], - [ "moss_brownie", 100 ], - [ "pistol_flintlock", 150 ], - [ "raging_bull", 100 ], - [ "l_bak_223", 80 ], - [ "rm99_pistol", 150 ], - [ "tokarev", 100 ], - [ "walther_ppk", 100 ] + { "item": "cop_38", "prob": 100, "charges-min": 0, "charges-max": 4 }, + { "item": "lemat_revolver", "prob": 150, "charges-min": 0, "charges-max": 9 }, + { "item": "makarov", "prob": 100, "charges-min": 0, "charges-max": 8 }, + { "item": "moss_brownie", "prob": 100, "charges-min": 0, "charges-max": 4 }, + { "item": "pistol_flintlock", "prob": 150 }, + { "item": "raging_bull", "prob": 100, "charges-min": 0, "charges-max": 5 }, + { "item": "l_bak_223", "prob": 80, "charges-min": 0, "charges-max": 5 }, + { "item": "rm99_pistol", "prob": 150, "charges-min": 0, "charges-max": 5 }, + { "item": "tokarev", "prob": 100, "charges-min": 0, "charges-max": 8 }, + { "item": "walther_ppk", "prob": 100, "charges-min": 0, "charges-max": 8 } ] }, { "type": "item_group", "id": "guns_pistol_improvised", "//": "Makeshift or otherwise poor quality pistols.", - "items": [ [ "ashot", 100 ], [ "surv_hand_cannon", 100 ], [ "surv_six_shooter", 100 ] ] + "items": [ + { "item": "ashot", "prob": 100 }, + { "item": "surv_hand_cannon", "prob": 100, "charges-min": 0, "charges-max": 5 }, + { "item": "surv_six_shooter", "prob": 100, "charges-min": 0, "charges-max": 6 } + ] }, { "type": "item_group", "id": "guns_smg_common", "//": "SMGs commonly owned by citizens and found in many locations.", - "items": [ [ "tommygun", 70 ], [ "briefcase_smg", 20 ], [ "sten", 100 ], [ "uzi", 100 ] ] + "items": [ + { "item": "tommygun", "prob": 70, "charges-min": 0, "charges-max": 20 }, + { "item": "briefcase_smg", "prob": 20, "charges-min": 0, "charges-max": 32 }, + { "item": "sten", "prob": 100, "charges-min": 0, "charges-max": 32 }, + { "item": "uzi", "prob": 100, "charges-min": 0, "charges-max": 32 } + ] }, { "type": "item_group", "id": "guns_smg_rare", "//": "Less common SMGs including those only used by police/paramilitary forces.", "items": [ - [ "calico", 30 ], - [ "fn_p90", 50 ], - [ "hk_mp5", 100 ], - [ "hk_ump45", 30 ], - [ "mac_10", 40 ], - [ "mac_11", 20 ], - [ "rm360_carbine", 30 ], - [ "TDI", 10 ], - [ "american_180", 50 ], - [ "tec9", 50 ] + { "item": "calico", "prob": 30, "charges-min": 0, "charges-max": 50 }, + { "item": "fn_p90", "prob": 50, "charges-min": 0, "charges-max": 50 }, + { "item": "hk_mp5", "prob": 100, "charges-min": 0, "charges-max": 30 }, + { "item": "hk_ump45", "prob": 30, "charges-min": 0, "charges-max": 25 }, + { "item": "mac_10", "prob": 40, "charges-min": 0, "charges-max": 30 }, + { "item": "mac_11", "prob": 20, "charges-min": 0, "charges-max": 32 }, + { "item": "rm360_carbine", "prob": 30, "charges-min": 0, "charges-max": 100 }, + { "item": "TDI", "prob": 10, "charges-min": 0, "charges-max": 30 }, + { "item": "american_180", "prob": 50, "charges-min": 0, "charges-max": 100 }, + { "item": "tec9", "prob": 50, "charges-min": 0, "charges-max": 32 } ] }, { "type": "item_group", "id": "guns_smg_milspec", "//": "Military specification SMGs only ever found at military sites.", - "items": [ [ "hk_mp7", 100 ], [ "needlegun", 30 ], [ "rm2000_smg", 50 ], [ "hk_mp5sd", 75 ] ] + "items": [ + { "item": "hk_mp7", "prob": 100, "charges-min": 0, "charges-max": 20 }, + { "item": "needlegun", "prob": 30, "charges-min": 0, "charges-max": 50 }, + { "item": "rm2000_smg", "prob": 50, "charges-min": 0, "charges-max": 10 }, + { "item": "hk_mp5sd", "prob": 75, "charges-min": 0, "charges-max": 30 } + ] }, { "type": "item_group", "id": "guns_smg_obscure", "//": "Imported or otherwise very obscure SMGs.", - "items": [ [ "ppsh", 150 ], [ "skorpion_61", 100 ], [ "skorpion_82", 100 ] ] + "items": [ + { "item": "ppsh", "prob": 150, "charges-min": 0, "charges-max": 35 }, + { "item": "skorpion_61", "prob": 100, "charges-min": 0, "charges-max": 20 }, + { "item": "skorpion_82", "prob": 100, "charges-min": 0, "charges-max": 20 } + ] }, { "type": "item_group", @@ -118,19 +141,19 @@ "id": "guns_rifle_common", "//": "Rifles commonly owned by citizens and found in many locations.", "items": [ - [ "browning_blr", 25 ], - [ "garand", 65 ], - [ "ar15", 30 ], - [ "cx4", 45 ], - [ "ksub2000", 30 ], - [ "m1a", 50 ], - [ "marlin_9a", 80 ], - [ "mosin44", 15 ], - [ "mosin91_30", 25 ], - [ "ruger_1022", 70 ], - [ "ruger_mini", 60 ], - [ "sks", 40 ], - [ "win70", 15 ] + { "item": "browning_blr", "prob": 25, "charges-min": 0, "charges-max": 4 }, + { "item": "garand", "prob": 65, "charges-min": 0, "charges-max": 8 }, + { "item": "ar15", "prob": 30, "charges-min": 0, "charges-max": 30 }, + { "item": "cx4", "prob": 45, "charges-min": 0, "charges-max": 15 }, + { "item": "ksub2000", "prob": 30, "charges-min": 0, "charges-max": 15 }, + { "item": "m1a", "prob": 50, "charges-min": 0, "charges-max": 5 }, + { "item": "marlin_9a", "prob": 80, "charges-min": 0, "charges-max": 19 }, + { "item": "mosin44", "prob": 15, "charges-min": 0, "charges-max": 5 }, + { "item": "mosin91_30", "prob": 25, "charges-min": 0, "charges-max": 5 }, + { "item": "ruger_1022", "prob": 70, "charges-min": 0, "charges-max": 10 }, + { "item": "ruger_mini", "prob": 60, "charges-min": 0, "charges-max": 5 }, + { "item": "sks", "prob": 40, "charges-min": 0, "charges-max": 10 }, + { "item": "win70", "prob": 15, "charges-min": 0, "charges-max": 3 } ] }, { @@ -138,25 +161,25 @@ "id": "guns_rifle_rare", "//": "Less common rifles including those only used by police/paramilitary forces.", "items": [ - [ "acr", 25 ], - [ "fn_fal", 40 ], - [ "hk_g3", 40 ], - [ "hk_g36", 30 ], - [ "henry_big_boy", 10 ], - [ "l_base_223", 40 ], - [ "l_car_223", 10 ], - [ "l_dsr_223", 5 ], - [ "l_long_45", 30 ], - [ "m14ebr", 15 ], - [ "M24", 15 ], - [ "m4a1", 45 ], - [ "m1903", 15 ], - [ "m1918", 30 ], - [ "mosin44_ebr", 10 ], - [ "mosin91_30_ebr", 20 ], - [ "remington_700", 20 ], - [ "savage_111f", 15 ], - [ "weatherby_5", 15 ] + { "item": "acr", "prob": 25, "charges-min": 0, "charges-max": 30 }, + { "item": "fn_fal", "prob": 40, "charges-min": 0, "charges-max": 20 }, + { "item": "hk_g3", "prob": 40, "charges-min": 0, "charges-max": 20 }, + { "item": "hk_g36", "prob": 30, "charges-min": 0, "charges-max": 30 }, + { "item": "henry_big_boy", "prob": 10, "charges-min": 0, "charges-max": 10 }, + { "item": "l_base_223", "prob": 40, "charges-min": 0, "charges-max": 32 }, + { "item": "l_car_223", "prob": 10, "charges-min": 0, "charges-max": 32 }, + { "item": "l_dsr_223", "prob": 5, "charges-min": 0, "charges-max": 32 }, + { "item": "l_long_45", "prob": 30, "charges-min": 0, "charges-max": 12 }, + { "item": "m14ebr", "prob": 15, "charges-min": 0, "charges-max": 20 }, + { "item": "M24", "prob": 15, "charges-min": 0, "charges-max": 20 }, + { "item": "m4a1", "prob": 45, "charges-min": 0, "charges-max": 30 }, + { "item": "m1903", "prob": 15, "charges-min": 0, "charges-max": 5 }, + { "item": "m1918", "prob": 30, "charges-min": 0, "charges-max": 20 }, + { "item": "mosin44_ebr", "prob": 10, "charges-min": 0, "charges-max": 5 }, + { "item": "mosin91_30_ebr", "prob": 20, "charges-min": 0, "charges-max": 5 }, + { "item": "remington_700", "prob": 20, "charges-min": 0, "charges-max": 4 }, + { "item": "savage_111f", "prob": 15, "charges-min": 0, "charges-max": 3 }, + { "item": "weatherby_5", "prob": 15, "charges-min": 0, "charges-max": 3 } ] }, { @@ -164,72 +187,96 @@ "id": "guns_rifle_milspec", "//": "Military specification rifles only ever found at military sites.", "items": [ - [ "h&k416a5", 50 ], - [ "l_lmg_223", 30 ], - [ "l_mbr_223", 100 ], - [ "m107a1", 30 ], - [ "m134", 10 ], - [ "m14ebr", 10 ], - [ "m2010", 20 ], - [ "m240", 15 ], - [ "m249", 25 ], - [ "m27iar", 50 ], - [ "m60", 15 ], - [ "rm11b_sniper_rifle", 15 ], - [ "rm298", 10 ], - [ "rm51_assault_rifle", 25 ], - [ "rm614_lmg", 10 ], - [ "rm88_battle_rifle", 25 ], - [ "sig552", 100 ], - [ "scar_l", 50 ], - [ "scar_h", 50 ] + { "item": "h&k416a5", "prob": 50, "charges-min": 0, "charges-max": 30 }, + { "item": "l_lmg_223", "prob": 30, "charges-min": 0, "charges-max": 32 }, + { "item": "l_mbr_223", "prob": 100, "charges-min": 0, "charges-max": 32 }, + { "item": "m107a1", "prob": 30, "charges-min": 0, "charges-max": 10 }, + { "item": "m134", "prob": 10, "charges-min": 0, "charges-max": 100 }, + { "item": "m14ebr", "prob": 10, "charges-min": 0, "charges-max": 20 }, + { "item": "m2010", "prob": 20, "charges-min": 0, "charges-max": 5 }, + { "item": "m240", "prob": 15, "charges-min": 0, "charges-max": 100 }, + { "item": "m249", "prob": 25, "charges-min": 0, "charges-max": 10 }, + { "item": "m27iar", "prob": 50, "charges-min": 0, "charges-max": 30 }, + { "item": "m60", "prob": 15, "charges-min": 0, "charges-max": 100 }, + { "item": "rm11b_sniper_rifle", "prob": 15, "charges-min": 0, "charges-max": 10 }, + { "item": "rm298", "prob": 10, "charges-min": 0, "charges-max": 100 }, + { "item": "rm51_assault_rifle", "prob": 25, "charges-min": 0, "charges-max": 50 }, + { "item": "rm614_lmg", "prob": 10, "charges-min": 0, "charges-max": 100 }, + { "item": "rm88_battle_rifle", "prob": 25, "charges-min": 0, "charges-max": 50 }, + { "item": "sig552", "prob": 100, "charges-min": 0, "charges-max": 30 }, + { "item": "scar_l", "prob": 50, "charges-min": 0, "charges-max": 30 }, + { "item": "scar_h", "prob": 50, "charges-min": 0, "charges-max": 20 } ] }, { "type": "item_group", "id": "guns_energy", "//": "Assorted factory crafted energy weapons.", - "items": [ [ "laser_rifle", 30 ], [ "emp_gun", 10 ], [ "v29", 70 ], [ "ftk93", 10 ] ] + "items": [ + { "item": "laser_rifle", "prob": 30 }, + { "item": "emp_gun", "prob": 10 }, + { "item": "v29", "prob": 70 }, + { "item": "ftk93", "prob": 10 } + ] }, { "type": "item_group", "id": "guns_rifle_obscure", "//": "Imported or otherwise very obscure rifles.", "items": [ - [ "ak47", 100 ], - [ "ak74", 60 ], - [ "an94", 40 ], - [ "bh_m89", 20 ], - [ "carbine_flintlock", 140 ], - [ "rifle_flintlock", 180 ], - [ "steyr_aug", 40 ], - [ "trex_gun", 60 ], - [ "arx160", 40 ] + { "item": "ak47", "prob": 100, "charges-min": 0, "charges-max": 30 }, + { "item": "ak74", "prob": 60, "charges-min": 0, "charges-max": 30 }, + { "item": "an94", "prob": 40, "charges-min": 0, "charges-max": 30 }, + { "item": "bh_m89", "prob": 20, "charges-min": 0, "charges-max": 7 }, + { "item": "carbine_flintlock", "prob": 140 }, + { "item": "rifle_flintlock", "prob": 180 }, + { "item": "steyr_aug", "prob": 40, "charges-min": 0, "charges-max": 30 }, + { "item": "trex_gun", "prob": 60 }, + { "item": "arx160", "prob": 40, "charges-min": 0, "charges-max": 30 } ] }, { "type": "item_group", "id": "guns_rifle_improvised", "//": "Makeshift or otherwise poor quality rifles.", - "items": [ [ "rifle_22", 60 ], [ "rifle_3006", 30 ], [ "rifle_9mm", 60 ], [ "surv_carbine_223", 120 ] ] + "items": [ + { "item": "rifle_22", "prob": 60 }, + { "item": "rifle_3006", "prob": 30 }, + { "item": "rifle_9mm", "prob": 60 }, + { "item": "surv_carbine_223", "prob": 120, "charges-min": 0, "charges-max": 5 } + ] }, { "type": "item_group", "id": "guns_shotgun_common", "//": "Shotguns commonly owned by citizens and found in many locations.", - "items": [ [ "mossberg_500", 50 ], [ "remington_870", 100 ], [ "shotgun_d", 30 ], [ "shotgun_s", 30 ] ] + "items": [ + { "item": "mossberg_500", "prob": 50, "charges-min": 0, "charges-max": 8 }, + { "item": "remington_870", "prob": 100, "charges-min": 0, "charges-max": 6 }, + { "item": "shotgun_d", "prob": 30, "charges-min": 0, "charges-max": 2 }, + { "item": "shotgun_s", "prob": 30 } + ] }, { "type": "item_group", "id": "guns_shotgun_rare", "//": "Less common shotguns including those only used by police/paramilitary forces.", - "items": [ [ "ksg", 50 ], [ "m1014", 80 ], [ "rm120c", 30 ], [ "rm228", 30 ], [ "saiga_12", 50 ] ] + "items": [ + { "item": "ksg", "prob": 50, "charges-min": 0, "charges-max": 7 }, + { "item": "m1014", "prob": 80, "charges-min": 0, "charges-max": 8 }, + { "item": "rm120c", "prob": 30, "charges-min": 0, "charges-max": 5 }, + { "item": "rm228", "prob": 30, "charges-min": 0, "charges-max": 10 }, + { "item": "saiga_12", "prob": 50, "charges-min": 0, "charges-max": 10 } + ] }, { "type": "item_group", "id": "guns_shotgun_milspec", "//": "Military specification shotguns only ever found at military sites.", - "items": [ [ "l_def_12", 100 ], [ "rm20", 20 ] ] + "items": [ + { "item": "l_def_12", "prob": 100, "charges-min": 0, "charges-max": 8 }, + { "item": "rm20", "prob": 20, "charges-min": 0, "charges-max": 20 } + ] }, { "type": "item_group", @@ -242,25 +289,34 @@ "id": "guns_shotgun_improvised", "//": "Makeshift or otherwise poor quality shotguns.", "items": [ - [ "blunderbuss", 70 ], - [ "bigun", 10 ], - [ "pipe_double_shotgun", 70 ], - [ "pipe_shotgun", 100 ], - [ "revolver_shotgun", 30 ], - [ "surv_levershotgun", 40 ] + { "item": "blunderbuss", "prob": 70 }, + { "item": "bigun", "prob": 10, "charges-min": 0, "charges-max": 6 }, + { "item": "pipe_double_shotgun", "prob": 70, "charges-min": 0, "charges-max": 2 }, + { "item": "pipe_shotgun", "prob": 100 }, + { "item": "revolver_shotgun", "prob": 30, "charges-min": 0, "charges-max": 6 }, + { "item": "surv_levershotgun", "prob": 40, "charges-min": 0, "charges-max": 8 } ] }, { "type": "item_group", "id": "guns_launcher_flame", "//": "Factory manufactured incendiary liquid projectors (excludes improvised weapons)", - "items": [ [ "flamethrower", 50 ], [ "rm451_flamethrower", 40 ] ] + "items": [ + { "item": "flamethrower", "prob": 50, "charges-min": 100, "charges-max": 1500 }, + { "item": "rm451_flamethrower", "prob": 40, "charges-min": 100, "charges-max": 1500 } + ] }, { "type": "item_group", "id": "guns_launcher_grenade", "//": "Factory manufactured grenade launchers (excludes improvised weapons)", - "items": [ [ "m320", 75 ], [ "m79", 100 ], [ "mark19", 10 ], [ "mgl", 25 ], [ "rm802", 15 ] ] + "items": [ + { "item": "m320", "prob": 75 }, + { "item": "m79", "prob": 100 }, + { "item": "mark19", "prob": 10, "charges-min": 0, "charges-max": 10 }, + { "item": "mgl", "prob": 25, "charges-min": 0, "charges-max": 6 }, + { "item": "rm802", "prob": 15, "charges-min": 0, "charges-max": 4 } + ] }, { "type": "item_group", @@ -290,7 +346,10 @@ "type": "item_group", "id": "guns_launcher_improvised", "//": "Makeshift or otherwise poor quality grenade and rocket launchers", - "items": [ [ "launcher_simple", 100 ], [ "triple_launcher_simple", 15 ] ] + "items": [ + { "item": "launcher_simple", "prob": 100 }, + { "item": "triple_launcher_simple", "prob": 15, "charges-min": 0, "charges-max": 3 } + ] }, { "type": "item_group", @@ -354,32 +413,37 @@ "id": "guns_cop", "//": "Police issue weapons of all types", "items": [ - [ "ar15", 15 ], - [ "cx4", 20 ], - [ "fn57", 20 ], - [ "fn_p90", 5 ], - [ "glock_19", 15 ], - [ "glock_22", 20 ], - [ "hk_mp5", 10 ], - [ "l_enforcer_45", 10 ], - [ "m9", 5 ], - [ "mossberg_500", 15 ], - [ "remington_700", 5 ], - [ "remington_870", 20 ], - [ "sig_40", 20 ], - [ "usp_45", 10 ], - [ "usp_9mm", 10 ], - [ "kp32", 1 ], - [ "kp3at", 2 ], - [ "rugerlcp", 2 ], - [ "kpf9", 3 ] + { "item": "ar15", "prob": 15, "charges-min": 0, "charges-max": 30 }, + { "item": "cx4", "prob": 20, "charges-min": 0, "charges-max": 15 }, + { "item": "fn57", "prob": 20, "charges-min": 0, "charges-max": 20 }, + { "item": "fn_p90", "prob": 5, "charges-min": 0, "charges-max": 50 }, + { "item": "glock_19", "prob": 15, "charges-min": 0, "charges-max": 15 }, + { "item": "glock_22", "prob": 20, "charges-min": 0, "charges-max": 15 }, + { "item": "hk_mp5", "prob": 10, "charges-min": 0, "charges-max": 30 }, + { "item": "l_enforcer_45", "prob": 10, "charges-min": 0, "charges-max": 6 }, + { "item": "m9", "prob": 5, "charges-min": 0, "charges-max": 15 }, + { "item": "mossberg_500", "prob": 15, "charges-min": 0, "charges-max": 8 }, + { "item": "remington_700", "prob": 5, "charges-min": 0, "charges-max": 4 }, + { "item": "remington_870", "prob": 20, "charges-min": 0, "charges-max": 6 }, + { "item": "sig_40", "prob": 20, "charges-min": 0, "charges-max": 12 }, + { "item": "usp_45", "prob": 10, "charges-min": 0, "charges-max": 12 }, + { "item": "usp_9mm", "prob": 10, "charges-min": 0, "charges-max": 15 }, + { "item": "kp32", "prob": 1, "charges-min": 0, "charges-max": 7 }, + { "item": "kp3at", "prob": 2, "charges-min": 0, "charges-max": 6 }, + { "item": "rugerlcp", "prob": 2, "charges-min": 0, "charges-max": 6 }, + { "item": "kpf9", "prob": 3, "charges-min": 0, "charges-max": 7 } ] }, { "type": "item_group", "id": "guns_swat", "//": "Guns issued to paramilitary forces in addition to standard police issue.", - "items": [ { "group": "guns_cop", "prob": 100 }, [ "hk_ump45", 15 ], [ "m1014", 10 ], [ "m4a1", 35 ] ] + "items": [ + { "group": "guns_cop", "prob": 100 }, + { "item": "hk_ump45", "prob": 15, "charges-min": 0, "charges-max": 25 }, + { "item": "m1014", "prob": 10, "charges-min": 0, "charges-max": 8 }, + { "item": "m4a1", "prob": 35, "charges-min": 0, "charges-max": 30 } + ] }, { "type": "item_group", @@ -387,14 +451,14 @@ "//": "Guns typically carried by survivors, either improvised or thematically appropriate.", "items": [ { "group": "guns_improvised", "prob": 200 }, - [ "ar15", 5 ], - [ "mossberg_500", 5 ], - [ "remington_870", 5 ], - [ "ruger_1022", 15 ], - [ "shotgun_s", 10 ], - [ "shotgun_d", 10 ], - [ "sten", 20 ], - [ "sks", 10 ] + { "item": "ar15", "prob": 5, "charges-min": 0, "charges-max": 30 }, + { "item": "mossberg_500", "prob": 5, "charges-min": 0, "charges-max": 8 }, + { "item": "remington_870", "prob": 5, "charges-min": 0, "charges-max": 6 }, + { "item": "ruger_1022", "prob": 15, "charges-min": 0, "charges-max": 10 }, + { "item": "shotgun_s", "prob": 10 }, + { "item": "shotgun_d", "prob": 10, "charges-min": 0, "charges-max": 2 }, + { "item": "sten", "prob": 20, "charges-min": 0, "charges-max": 32 }, + { "item": "sks", "prob": 10, "charges-min": 0, "charges-max": 10 } ] } ] diff --git a/data/json/itemgroups/mansion.json b/data/json/itemgroups/mansion.json index 669ff99ee5b9a..64b65121c6384 100644 --- a/data/json/itemgroups/mansion.json +++ b/data/json/itemgroups/mansion.json @@ -480,19 +480,29 @@ "id": "soa_fake_weapon_samurai", "type": "item_group", "subtype": "distribution", - "items": [ { "group": "samurai_sword_set_fake", "prob": 7 }, [ "bokken_fake", 6 ], [ "nodachi_fake", 5 ] ] + "items": [ + { "group": "samurai_sword_set_fake", "prob": 7 }, + [ "bokken_fake", 6 ], + [ "nodachi_fake", 5 ], + [ "naginata_fake", 5 ] + ] }, { "id": "soa_poor_weapon_samurai", "type": "item_group", "subtype": "distribution", - "items": [ { "group": "samurai_sword_set_inferior", "prob": 7 }, [ "bokken_inferior", 6 ], [ "nodachi_inferior", 5 ] ] + "items": [ + { "group": "samurai_sword_set_inferior", "prob": 7 }, + [ "bokken_inferior", 6 ], + [ "nodachi_inferior", 5 ], + [ "naginata_inferior", 5 ] + ] }, { "id": "soa_real_weapon_samurai", "type": "item_group", "subtype": "distribution", - "items": [ { "group": "samurai_sword_set", "prob": 7 }, [ "bokken", 6 ], [ "nodachi", 5 ] ] + "items": [ { "group": "samurai_sword_set", "prob": 7 }, [ "bokken", 6 ], [ "nodachi", 5 ], [ "naginata", 5 ] ] }, { "id": "toy_box", @@ -1329,6 +1339,7 @@ [ "eboshi", 1 ], [ "kariginu", 1 ], [ "kimono", 3 ], + [ "haori", 2 ], [ "hat_fur", 2 ], [ "coat_fur_sf", 2 ], [ "coat_faux_fur", 4 ], diff --git a/data/json/itemgroups/misc.json b/data/json/itemgroups/misc.json index 1fecd8caec7f5..2596356e9dd51 100644 --- a/data/json/itemgroups/misc.json +++ b/data/json/itemgroups/misc.json @@ -10,8 +10,10 @@ { "item": "cig", "prob": 70, "charges": [ 1, 10 ] }, { "collection": [ - { "item": "tobacco" }, - { "distribution": [ { "item": "rolling_paper", "prob": 70 }, { "item": "pipe_tobacco", "prob": 30 } ] } + { "item": "tobacco", "charges-min": 1, "charges-max": 20 }, + { + "distribution": [ { "item": "rolling_paper", "prob": 70, "charges-min": 1, "charges-max": 30 }, { "item": "pipe_tobacco", "prob": 30 } ] + } ], "prob": 20 }, @@ -19,7 +21,7 @@ { "item": "joint", "prob": 5 } ] }, - { "distribution": [ { "item": "lighter" }, { "item": "matches" } ] } + { "distribution": [ { "item": "lighter" }, { "item": "matches", "charges-min": 1, "charges-max": 20 } ] } ] }, { @@ -83,5 +85,16 @@ { "item": "mobile_memory_card_used", "count": [ 1, 4 ], "prob": 15 }, { "item": "mobile_memory_card_encrypted", "count": [ 1, 2 ], "prob": 15 } ] + }, + { + "id": "bus_common", + "type": "item_group", + "subtype": "collection", + "items": [ + { "group": "child_items", "prob": 15 }, + { "group": "jackets", "prob": 15 }, + { "group": "novels", "prob": 15 }, + { "group": "bags_trip", "prob": 20 } + ] } ] diff --git a/data/json/itemgroups/supplies.json b/data/json/itemgroups/supplies.json index 40b7a2823e685..726e1d74704de 100644 --- a/data/json/itemgroups/supplies.json +++ b/data/json/itemgroups/supplies.json @@ -27,7 +27,8 @@ [ "motor_micro", 40 ], [ "jumper_cable", 15 ], [ "jumper_cable_heavy", 5 ], - [ "recharge_station", 20 ] + [ "recharge_station", 20 ], + [ "hand_crank_charger", 30 ] ] }, { diff --git a/data/json/itemgroups/tools.json b/data/json/itemgroups/tools.json index 73b86f0a8dc7c..506967ebaaa4e 100644 --- a/data/json/itemgroups/tools.json +++ b/data/json/itemgroups/tools.json @@ -54,7 +54,8 @@ [ "crowbar", 10 ], [ "thermometer", 5 ], [ "multitool", 10 ], - [ "recharge_station", 10 ] + [ "recharge_station", 10 ], + [ "hand_crank_charger", 25 ] ] }, { @@ -135,7 +136,8 @@ [ "soldering_iron", 100 ], [ "magnifying_glass", 100 ], [ "voltmeter", 100 ], - [ "recharge_station", 10 ] + [ "recharge_station", 10 ], + [ "hand_crank_charger", 40 ] ] }, { @@ -251,7 +253,8 @@ [ "ref_lighter", 20 ], [ "signal_flare", 20 ], [ "sm_extinguisher", 20 ], - [ "whistle", 20 ] + [ "whistle", 20 ], + [ "hand_crank_charger", 15 ] ] }, { diff --git a/data/json/items/ammo.json b/data/json/items/ammo.json index 1133fd219fded..736c050fb61c0 100644 --- a/data/json/items/ammo.json +++ b/data/json/items/ammo.json @@ -36,6 +36,24 @@ "looks_like": "battery", "flags": [ "NO_SALVAGE", "NO_UNLOAD", "RECHARGE" ] }, + { + "id": "light_minus_atomic_battery_cell", + "type": "MAGAZINE", + "category": "spare_parts", + "name": "atomic ultra-light battery cell", + "description": "This is an atomic battery designed for small size over everything else. It retains its universal compatibility, though. It cannot be recharged.", + "weight": 80, + "volume": 0, + "price": 15000, + "material": [ "iron" ], + "symbol": "=", + "color": "green", + "ammo_type": "battery", + "count": 500, + "capacity": 500, + "looks_like": "battery", + "flags": [ "NO_SALVAGE", "NO_UNLOAD", "LEAK_DAM", "RADIOACTIVE" ] + }, { "id": "light_battery_cell", "type": "MAGAZINE", @@ -59,7 +77,7 @@ "category": "spare_parts", "name": "light battery cell (high-capacity)", "name_plural": "light battery cells (high-capacity)", - "description": "This is a high-capacity light battery cell, universally compatible with all kinds of personal electronic devices.", + "description": "This is a high-capacity light battery cell, universally compatible with all kinds of small devices.", "weight": 75, "volume": "115ml", "price": 5000, @@ -71,6 +89,24 @@ "looks_like": "battery", "flags": [ "NO_SALVAGE", "NO_UNLOAD", "RECHARGE" ] }, + { + "id": "light_atomic_battery_cell", + "type": "MAGAZINE", + "category": "spare_parts", + "name": "atomic light battery cell", + "description": "This is an atomic battery, universally compatible with all kinds of personal electronic devices. It cannot be recharged.", + "weight": 160, + "volume": "115ml", + "price": 50000, + "material": [ "iron" ], + "symbol": "=", + "color": "green", + "ammo_type": "battery", + "count": 1000, + "capacity": 1000, + "looks_like": "battery", + "flags": [ "NO_SALVAGE", "NO_UNLOAD", "LEAK_DAM", "RADIOACTIVE" ] + }, { "id": "medium_battery_cell", "type": "MAGAZINE", @@ -106,6 +142,24 @@ "looks_like": "battery", "flags": [ "NO_SALVAGE", "NO_UNLOAD", "RECHARGE" ] }, + { + "id": "medium_atomic_battery_cell", + "type": "MAGAZINE", + "category": "spare_parts", + "name": "atomic medium battery cell", + "description": "This is an atomic battery, universally compatible with all kinds of appliances and power tools. It cannot be recharged.", + "weight": 800, + "volume": "375ml", + "price": 100000, + "material": [ "iron" ], + "symbol": "=", + "color": "green", + "ammo_type": "battery", + "count": 5000, + "capacity": 5000, + "looks_like": "battery", + "flags": [ "NO_SALVAGE", "NO_UNLOAD", "LEAK_DAM", "RADIOACTIVE" ] + }, { "id": "heavy_battery_cell", "type": "MAGAZINE", @@ -141,6 +195,24 @@ "looks_like": "battery", "flags": [ "NO_SALVAGE", "NO_UNLOAD", "RECHARGE" ] }, + { + "id": "heavy_atomic_battery_cell", + "type": "MAGAZINE", + "category": "spare_parts", + "name": "atomic heavy battery cell", + "description": "This is an atomic battery, universally compatible with all kinds of industrial-grade equipment and large tools. It cannot be recharged.", + "weight": 1600, + "volume": "750ml", + "price": 100000, + "material": [ "iron" ], + "symbol": "=", + "color": "green", + "ammo_type": "battery", + "count": 10000, + "capacity": 10000, + "looks_like": "battery", + "flags": [ "NO_SALVAGE", "NO_UNLOAD", "LEAK_DAM", "RADIOACTIVE" ] + }, { "type": "AMMO", "id": "aluminum_foil", @@ -1093,42 +1165,6 @@ "weight": 300, "ammo_type": "unfinished_char" }, - { - "type": "AMMO", - "id": "gas_fungicidal", - "category": "chems", - "price": 3500, - "name": "sprayable fungicide", - "symbol": "=", - "color": "yellow", - "container": "bottle_plastic", - "description": "Fungicide enhanced with sulfur to create sprayable anti-fungal ammo for the chemical thrower. Best be used with some kind of mask or mouth protection.", - "volume": 1, - "weight": 1, - "phase": "liquid", - "ammo_type": "chemical_spray", - "range": 4, - "count": 100, - "effects": [ "GAS_FUNGICIDAL", "STREAM_GAS_FUNGICIDAL", "NEVER_MISFIRES", "JET" ] - }, - { - "type": "AMMO", - "id": "gas_chloramine", - "category": "chems", - "price": 3500, - "name": "sprayable toxic gas", - "symbol": "=", - "color": "green", - "container": "bottle_plastic", - "description": "A hazardous mixture made from household cleaners, improvised for use in a chemical thrower. Best be used with some kind of mask or mouth protection.", - "volume": 1, - "weight": 1, - "phase": "liquid", - "ammo_type": "chemical_spray", - "range": 4, - "count": 100, - "effects": [ "TOXICGAS", "NEVER_MISFIRES", "JET" ] - }, { "type": "AMMO", "id": "chain_link", @@ -1159,5 +1195,24 @@ "weight": 1, "phase": "gas", "ammo_type": "nitrox" + }, + { + "id": "tinder", + "type": "AMMO", + "category": "spare_parts", + "name": "tinder", + "name_plural": "tinder", + "description": "Flammable material, finely divided for easy combustion.", + "weight": 10, + "volume": 1, + "price": 0, + "bashing": 1, + "material": "wood", + "flags": [ "NO_SALVAGE" ], + "symbol": "=", + "color": "brown", + "count": 50, + "ammo_type": "tinder", + "effects": [ "NEVER_MISFIRES" ] } ] diff --git a/data/json/items/ammo/chemical_spray.json b/data/json/items/ammo/chemical_spray.json new file mode 100644 index 0000000000000..56e035c2bc2ea --- /dev/null +++ b/data/json/items/ammo/chemical_spray.json @@ -0,0 +1,38 @@ +[ + { + "id": "gas_chloramine", + "type": "AMMO", + "name": "sprayable toxic gas", + "description": "A hazardous mixture made from household cleaners, improvised for use in a chemical thrower. Best be used with some kind of mask or mouth protection.", + "weight": 3, + "volume": 1, + "price": 3500, + "material": "water", + "symbol": "=", + "color": "green", + "container": "bottle_plastic", + "phase": "liquid", + "ammo_type": "chemical_spray", + "range": 4, + "count": 100, + "effects": [ "TOXICGAS", "NEVER_MISFIRES", "JET" ] + }, + { + "id": "gas_fungicidal", + "type": "AMMO", + "name": "sprayable fungicide", + "description": "Fungicide enhanced with sulfur to create sprayable anti-fungal ammo for the chemical thrower. Best be used with some kind of mask or mouth protection.", + "weight": 3, + "volume": 1, + "price": 3500, + "material": "water", + "symbol": "=", + "color": "yellow", + "container": "bottle_plastic", + "phase": "liquid", + "ammo_type": "chemical_spray", + "range": 4, + "count": 100, + "effects": [ "GAS_FUNGICIDAL", "STREAM_GAS_FUNGICIDAL", "NEVER_MISFIRES", "JET" ] + } +] diff --git a/data/json/items/ammo_types.json b/data/json/items/ammo_types.json index 0962423648106..40bc129ecfcd8 100644 --- a/data/json/items/ammo_types.json +++ b/data/json/items/ammo_types.json @@ -496,5 +496,11 @@ "id": "nitrox", "name": "compressed air", "default": "nitrox" + }, + { + "id": "tinder", + "name": "tinder", + "default": "tinder", + "type": "ammunition_type" } ] diff --git a/data/json/items/archery.json b/data/json/items/archery.json index 184be2420d6a3..413a6e5ae5442 100644 --- a/data/json/items/archery.json +++ b/data/json/items/archery.json @@ -319,7 +319,7 @@ "bashing": 6, "armor_data": { "covers": [ "TORSO" ], "coverage": 5, "material_thickness": 1, "encumbrance": 20 }, "ranged_damage": 5, - "range": 5, + "range": 8, "dispersion": 250, "durability": 6, "clip_size": 1, @@ -345,7 +345,7 @@ "reload_noise_volume": 3, "loudness": 6, "ranged_damage": 4, - "range": 4, + "range": 10, "dispersion": 210, "durability": 6, "clip_size": 1, @@ -448,7 +448,7 @@ "reload_noise_volume": 3, "loudness": 6, "ranged_damage": 5, - "range": 5, + "range": 12, "dispersion": 150, "durability": 6, "clip_size": 1, @@ -502,7 +502,7 @@ "reload_noise_volume": 3, "loudness": 6, "ranged_damage": 6, - "range": 6, + "range": 12, "dispersion": 120, "durability": 6, "clip_size": 1, @@ -529,7 +529,7 @@ "reload_noise_volume": 3, "loudness": 8, "ranged_damage": 12, - "range": 10, + "range": 14, "dispersion": 140, "durability": 6, "clip_size": 1, @@ -556,7 +556,7 @@ "reload_noise_volume": 3, "loudness": 8, "ranged_damage": 10, - "range": 10, + "range": 18, "dispersion": 210, "durability": 6, "clip_size": 1, @@ -580,7 +580,7 @@ "reload": 100, "loudness": 16, "ranged_damage": 20, - "range": 12 + "range": 20 }, { "id": "compgreatbow", @@ -628,7 +628,7 @@ "reload_noise_volume": 3, "loudness": 8, "ranged_damage": 8, - "range": 8, + "range": 18, "dispersion": 120, "durability": 6, "clip_size": 1, diff --git a/data/json/items/armor.json b/data/json/items/armor.json index e9f9284f0cdd9..ee2b1a1d12ef3 100644 --- a/data/json/items/armor.json +++ b/data/json/items/armor.json @@ -3191,28 +3191,6 @@ "environmental_protection": 1, "flags": [ "VARSIZE", "STURDY", "ALLOWS_NATURAL_ATTACKS" ] }, - { - "id": "geta", - "type": "ARMOR", - "name": "pair of geta", - "name_plural": "pairs of geta", - "description": "Simple wooden geta.", - "weight": 460, - "volume": 4, - "price": 6500, - "to_hit": -2, - "bashing": 5, - "material": [ "wood", "cotton" ], - "symbol": "[", - "color": "yellow", - "covers": [ "FEET" ], - "coverage": 50, - "encumbrance": 10, - "warmth": 5, - "material_thickness": 2, - "environmental_protection": 1, - "flags": [ "VARSIZE", "WATERPROOF" ] - }, { "id": "glasses_bal", "type": "ARMOR", @@ -4109,10 +4087,28 @@ "color": "dark_gray", "covers": [ "LEGS" ], "coverage": 100, + "encumbrance": 6, + "warmth": 10, + "material_thickness": 2, + "flags": [ "VARSIZE", "STURDY" ] + }, + { + "id": "hakama", + "type": "ARMOR", + "name": "hakama", + "description": "A flowing, pleated garment which can be worn over a kimono.", + "weight": 500, + "volume": 6, + "price": 3000, + "material": [ "cotton" ], + "symbol": "[", + "color": "blue", + "covers": [ "LEGS" ], + "coverage": 100, "encumbrance": 10, "warmth": 15, - "material_thickness": 1, - "flags": [ "VARSIZE" ] + "material_thickness": 2, + "flags": [ "VARSIZE", "OUTER" ] }, { "id": "halter_top", @@ -5642,9 +5638,9 @@ "covers": [ "ARMS", "LEGS", "TORSO" ], "coverage": 95, "encumbrance": 10, - "warmth": 15, + "warmth": 10, "material_thickness": 3, - "flags": [ "VARSIZE" ] + "flags": [ "VARSIZE", "STURDY" ] }, { "id": "jumpsuit", @@ -5698,9 +5694,10 @@ "symbol": "[", "color": "white", "covers": [ "ARMS", "LEGS", "TORSO" ], - "coverage": 100, - "material_thickness": 1, - "flags": [ "VARSIZE" ] + "coverage": 80, + "warmth": 5, + "material_thickness": 2, + "flags": [ "VARSIZE", "STURDY" ] }, { "id": "kariginu", @@ -5748,16 +5745,16 @@ "name": "keikogi", "description": "Plain white keikogi for use in martial arts.", "weight": 250, - "volume": 2, + "volume": 3, "price": 2500, "material": [ "cotton" ], "symbol": "[", "color": "white", "covers": [ "ARMS", "TORSO" ], - "coverage": 100, - "warmth": 10, - "material_thickness": 1, - "flags": [ "VARSIZE" ] + "coverage": 80, + "warmth": 5, + "material_thickness": 2, + "flags": [ "VARSIZE", "STURDY" ] }, { "id": "kevlar", @@ -5836,6 +5833,45 @@ "material_thickness": 2, "flags": [ "VARSIZE", "FANCY" ] }, + { + "id": "yukata", + "type": "ARMOR", + "name": "yukata", + "description": "An easy to wear, breezy robe secured with a sash. Essentially Japanese pajamas. Great for summer nights.", + "weight": 900, + "volume": 12, + "price": 5000, + "to_hit": -5, + "material": [ "cotton" ], + "symbol": "[", + "color": "blue", + "covers": [ "LEGS", "TORSO", "ARMS" ], + "coverage": 80, + "encumbrance": 3, + "storage": 4, + "warmth": 5, + "material_thickness": 1, + "flags": [ "VARSIZE", "FANCY" ] + }, + { + "id": "haori", + "type": "ARMOR", + "name": "haori", + "description": "A loose coat with wide sleeves that is worn unfastened over a kimono. It is jet black with sparse, tasteful golden embroidery.", + "weight": 800, + "volume": 8, + "price": 30000, + "to_hit": -5, + "material": [ "cotton" ], + "symbol": "[", + "color": "black", + "covers": [ "TORSO", "ARMS" ], + "coverage": 60, + "encumbrance": 3, + "warmth": 10, + "material_thickness": 1, + "flags": [ "VARSIZE", "SUPER_FANCY", "OUTER" ] + }, { "id": "kippah", "type": "ARMOR", @@ -8243,7 +8279,7 @@ "color": "brown", "covers": [ "TORSO" ], "coverage": 90, - "encumbrance": 25, + "encumbrance": 19, "storage": 24, "warmth": 50, "material_thickness": 3, @@ -8276,7 +8312,7 @@ "color": "brown", "covers": [ "TORSO" ], "coverage": 90, - "encumbrance": 20, + "encumbrance": 17, "storage": 24, "warmth": 30, "material_thickness": 3, @@ -8989,7 +9025,6 @@ "color": "dark_gray", "covers": [ "FEET" ], "coverage": 100, - "encumbrance": 10, "warmth": 5, "material_thickness": 1, "flags": [ "VARSIZE", "SKINTIGHT" ] @@ -9008,7 +9043,6 @@ "color": "white", "covers": [ "FEET" ], "coverage": 100, - "encumbrance": 10, "warmth": 5, "material_thickness": 1, "flags": [ "VARSIZE", "SKINTIGHT" ] @@ -9259,7 +9293,7 @@ "encumbrance": 15, "storage": 1, "warmth": 25, - "material_thickness": 2, + "material_thickness": 3, "environmental_protection": 2, "flags": [ "VARSIZE", "WATERPROOF", "RAINPROOF" ] }, @@ -9298,7 +9332,7 @@ "color": "brown", "covers": [ "TORSO", "ARMS" ], "coverage": 90, - "encumbrance": 25, + "encumbrance": 19, "storage": 24, "warmth": 50, "material_thickness": 3, @@ -9330,7 +9364,7 @@ "color": "brown", "covers": [ "TORSO", "ARMS" ], "coverage": 90, - "encumbrance": 20, + "encumbrance": 17, "storage": 24, "warmth": 30, "material_thickness": 3, @@ -9991,17 +10025,17 @@ "type": "ARMOR", "name": "zubon", "description": "Plain white zubon for use in martial arts.", - "weight": 250, - "volume": 2, + "weight": 150, + "volume": 3, "price": 2500, "material": [ "cotton" ], "symbol": "[", "color": "white", "covers": [ "LEGS" ], - "coverage": 100, - "warmth": 10, - "material_thickness": 1, - "flags": [ "VARSIZE" ] + "coverage": 80, + "warmth": 5, + "material_thickness": 2, + "flags": [ "VARSIZE", "STURDY" ] }, { "id": "case_violin", diff --git a/data/json/items/armor/boots.json b/data/json/items/armor/boots.json index 042df4324ffe1..4d9a2d8385186 100644 --- a/data/json/items/armor/boots.json +++ b/data/json/items/armor/boots.json @@ -691,6 +691,28 @@ "material_thickness": 1, "flags": [ "SKINTIGHT", "OVERSIZE", "ALLOWS_NATURAL_ATTACKS" ] }, + { + "id": "geta", + "type": "ARMOR", + "name": "pair of geta", + "name_plural": "pairs of geta", + "description": "Simple wooden geta.", + "weight": 460, + "volume": 4, + "price": 6500, + "to_hit": -2, + "bashing": 5, + "material": [ "wood", "cotton" ], + "symbol": "[", + "color": "yellow", + "covers": [ "FEET" ], + "coverage": 50, + "encumbrance": 10, + "warmth": 5, + "material_thickness": 2, + "environmental_protection": 1, + "flags": [ "VARSIZE", "WATERPROOF" ] + }, { "id": "heels", "type": "ARMOR", diff --git a/data/json/items/book/cooking.json b/data/json/items/book/cooking.json index 85b09bdd42f6b..36283353b013c 100644 --- a/data/json/items/book/cooking.json +++ b/data/json/items/book/cooking.json @@ -226,7 +226,7 @@ "type": "BOOK", "name": "PE065 \"Chimera\": Best Practices", "name_plural": "PE065 \"Chimera\": Best Practices", - "description": "This sheaf of papers-dated the day before you evacuated-describes a new chemical formula in detail and supplies instructions for its use as some sort of ...crowd-control catalyst? That can't be right...", + "description": "This sheaf of papers describes a new chemical formula in detail and supplies instructions for its use as some sort of ... crowd-control catalyst? That can't be right...", "weight": 50, "volume": 2, "price": 125000, @@ -340,7 +340,7 @@ "type": "BOOK", "name": "PE070 \"Raptor\": Proposal", "name_plural": "PE070 \"Raptor\": Proposal", - "description": "This sheaf of papers (dated the day you left the shelter!) is a highly speculative proposal for focusing \"PE065\". Scribbled notes throughout seem to think that it might work, but that there's no time.", + "description": "This sheaf of papers is a highly speculative proposal for focusing \"PE065\". Scribbled notes throughout seem to think that it might work, but that there's no time.", "weight": 50, "volume": 2, "price": 125000, diff --git a/data/json/items/book/tailor.json b/data/json/items/book/tailor.json index 3344d2797543f..48f78acbb0e6a 100644 --- a/data/json/items/book/tailor.json +++ b/data/json/items/book/tailor.json @@ -78,6 +78,24 @@ "time": 55, "fun": -1 }, + { + "id": "tailor_japanese", + "type": "BOOK", + "name": "Traditional Japanese Kimono", + "description": "An illustrated textbook on the crafting of Japanese traditional garb.", + "weight": 2400, + "volume": 6, + "price": 8000, + "bashing": 8, + "material": [ "paper", "leather" ], + "symbol": "?", + "color": "red", + "skill": "tailor", + "required_level": 3, + "max_level": 6, + "intelligence": 8, + "time": 40 + }, { "id": "recipe_fauxfur", "type": "BOOK", diff --git a/data/json/items/comestibles/drink.json b/data/json/items/comestibles/drink.json index 07d452cf7e407..dea5b914d8b4a 100644 --- a/data/json/items/comestibles/drink.json +++ b/data/json/items/comestibles/drink.json @@ -190,6 +190,28 @@ "flags": [ "EATEN_HOT", "NUTRIENT_OVERRIDE" ], "fun": 6 }, + { + "type": "COMESTIBLE", + "id": "coffee_substitute", + "name": "coffee substitute", + "name_plural": "coffee substitute", + "weight": 250, + "color": "brown", + "stim": 4, + "container": "bottle_plastic", + "comestible_type": "DRINK", + "symbol": "~", + "quench": 40, + "calories": 2, + "addiction_type": "caffeine", + "description": "Homemade not-coffee created from the Kentucky coffeetree, just like the Meskwaki tribe! Doesn't actually have any caffeine, and is very bitter, but it'll pass in a pinch.", + "price": 100, + "material": "water", + "volume": 1, + "phase": "liquid", + "flags": [ "EATEN_HOT", "NUTRIENT_OVERRIDE" ], + "fun": -5 + }, { "type": "COMESTIBLE", "id": "cola", @@ -253,7 +275,7 @@ "symbol": "~", "quench": 12, "calories": 103, - "description": "Cow's milk that has been partly dehydrated to vastly increase its shelf life, and also sweetened.", + "description": "Cow's milk that has been partly dehydrated, and also sweetened. A key ingredient in many sweets.", "price": 70, "material": [ "milk", "junk" ], "primary_material": "milk", diff --git a/data/json/items/comestibles/med.json b/data/json/items/comestibles/med.json index 908c7712722b0..0aad4db1fc13b 100644 --- a/data/json/items/comestibles/med.json +++ b/data/json/items/comestibles/med.json @@ -11,7 +11,8 @@ "material": "plastic", "symbol": "!", "color": "red", - "use_action": "DISASSEMBLE" + "use_action": "DISASSEMBLE", + "flags": [ "NO_REPAIR" ] }, { "id": "adderall", @@ -359,7 +360,7 @@ "material": "powder", "symbol": "!", "color": "white", - "container": "bag_plastic", + "container": "bag_zipper", "stim": 20, "healthy": -2, "fun": 25, @@ -446,7 +447,7 @@ "material": "powder", "symbol": "!", "color": "white", - "container": "bag_plastic", + "container": "bag_zipper", "stim": 40, "healthy": -2, "fun": 50, @@ -636,7 +637,7 @@ "material": "powder", "symbol": "!", "color": "light_gray", - "container": "bag_plastic", + "container": "bag_zipper", "stim": -10, "healthy": -5, "fun": 50, @@ -744,7 +745,7 @@ "material": "powder", "symbol": "!", "color": "light_cyan", - "container": "bag_plastic", + "container": "bag_zipper", "quench": -2, "stim": 20, "healthy": -7, diff --git a/data/json/items/comestibles/other.json b/data/json/items/comestibles/other.json index 95d4c15dc3d0e..11ac7229a7d71 100644 --- a/data/json/items/comestibles/other.json +++ b/data/json/items/comestibles/other.json @@ -457,6 +457,17 @@ "charges": 20, "fun": -5 }, + { + "type": "COMESTIBLE", + "id": "coffee_raw_kentucky", + "copy-from": "coffee_raw", + "name": "Kentucky coffee grounds", + "name_plural": "Kentucky coffee grounds", + "container": "bag_plastic", + "description": "Coffee grounds created through washing, cleaning, and roasting the pods from a Kentucky coffeetree. They can be used to create coffee.", + "charges": 5, + "stack_size": 20 + }, { "id": "honey_glassed", "type": "COMESTIBLE", @@ -520,6 +531,93 @@ "volume": 1, "fun": -30 }, + { + "id": "cattlefodder", + "type": "COMESTIBLE", + "comestible_type": "FOOD", + "name": "cattle fodder", + "name_plural": "cattle fodder", + "description": "What cattle eat. Mainly made of grass, silage or legumes. It's perfect for ruminants.", + "weight": 300, + "volume": 1, + "price": 100, + "to_hit": -5, + "material": "veggy", + "symbol": ";", + "healthy": 2, + "quench": 1, + "calories": 170, + "vitamins": [ [ "vitA", 20 ], [ "vitC", 45 ], [ "calcium", 5 ], [ "iron", 5 ] ], + "fun": 5, + "color": "brown", + "flags": [ "INEDIBLE", "CATTLE" ], + "use_action": "CATTLEFODDER" + }, + { + "id": "birdfood", + "type": "COMESTIBLE", + "comestible_type": "FOOD", + "name": "bird food", + "name_plural": "bird food", + "description": "What birds eat. Mainly made of seeds, silage or legumes. It's perfect for small birds.", + "weight": 60, + "volume": 1, + "price": 20, + "to_hit": -5, + "material": "veggy", + "symbol": ";", + "healthy": 1, + "calories": 400, + "vitamins": [ [ "calcium", 1 ], [ "iron", 7 ] ], + "fun": 5, + "color": "brown", + "flags": [ "INEDIBLE", "BIRD" ], + "use_action": "BIRDFOOD" + }, + { + "id": "dogfood", + "type": "COMESTIBLE", + "comestible_type": "FOOD", + "name": "dog food", + "name_plural": "dog food", + "description": "This is food for dogs. It smells strange, but dogs seem to love it.", + "weight": 554, + "volume": 1, + "price": 300, + "to_hit": -5, + "material": "flesh", + "symbol": ";", + "healthy": 2, + "quench": 2, + "calories": 450, + "vitamins": [ [ "vitC", 4 ], [ "iron", 17 ], [ "vitB", 187 ], [ "calcium", 0 ] ], + "fun": -15, + "color": "brown", + "flags": [ "LUPINE" ], + "use_action": "DOGFOOD" + }, + { + "id": "catfood", + "type": "COMESTIBLE", + "comestible_type": "FOOD", + "name": "cat food", + "name_plural": "cat food", + "description": "This is food for cats. It smells strange, but cats seem to love it.", + "weight": 223, + "volume": 1, + "price": 300, + "to_hit": -5, + "material": "flesh", + "symbol": ";", + "healthy": 2, + "quench": 2, + "calories": 800, + "vitamins": [ [ "vitC", 4 ], [ "iron", 17 ], [ "vitB", 187 ], [ "calcium", 0 ] ], + "fun": -15, + "color": "brown", + "flags": [ "FELINE" ], + "use_action": "CATFOOD" + }, { "type": "COMESTIBLE", "id": "grass", diff --git a/data/json/items/comestibles/seed.json b/data/json/items/comestibles/seed.json index 3143c8552e3f0..ba78d2a48ab6a 100644 --- a/data/json/items/comestibles/seed.json +++ b/data/json/items/comestibles/seed.json @@ -661,8 +661,8 @@ { "type": "COMESTIBLE", "id": "coffee_pod", - "name": "coffee pod", - "name_plural": "coffee pods", + "name": "Kentucky coffee pod", + "name_plural": "Kentucky coffee pods", "category": "other", "weight": 26, "color": "light_green", @@ -672,13 +672,15 @@ "quench": -6, "healthy": -2, "calories": 9, - "description": "A hard casing filled with coffee seeds ready for roasting. The seeds create a dark black, bitter, caffinated liquid not too much unlike coffee.", + "description": "Coffee pods taken from a Kentucky coffeetree. If washed thoroughly and roasted, you could use them to make a dark and bitter brew much like coffee.", "price": 100, "material": [ "veggy" ], "primary_material": "dried_vegetable", "volume": 1, "charges": 4, - "fun": -10 + "fun": -10, + "flags": [ "HIDDEN_POISON" ], + "//": "USDA states that the pods of the Kentucky coffeetree contain a toxic alkaloid broken down in the roasting process, so they're poisonous" }, { "type": "COMESTIBLE", diff --git a/data/json/items/comestibles/spice.json b/data/json/items/comestibles/spice.json index feb7d3f5d37f2..022596ec5325a 100644 --- a/data/json/items/comestibles/spice.json +++ b/data/json/items/comestibles/spice.json @@ -78,7 +78,7 @@ "primary_material": "powder", "volume": 1, "calories": 19, - "flags": [ "EDIBLE_FROZEN" ], + "flags": [ "EDIBLE_FROZEN", "NUTRIENT_OVERRIDE" ], "//": "a tbps is 4.2g of sugar, meaning the volume needed to be adjusted.", "charges": 71 }, diff --git a/data/json/items/containers.json b/data/json/items/containers.json index 400662efb8f91..9dff7750d8a97 100644 --- a/data/json/items/containers.json +++ b/data/json/items/containers.json @@ -129,6 +129,24 @@ "contains": 24, "flags": [ "TRADER_AVOID" ] }, + { + "id": "bag_zipper", + "type": "CONTAINER", + "category": "other", + "name": "zipper bag", + "looks_like": "bag_plastic", + "description": "An inexpensive flexible rectangular storage bag on its typical small size. Transparent and made of plastic, it can be sealed and opened by a slider which works in a similar way to a zip fastener.", + "weight": 2, + "volume": 0, + "price": 0, + "rigid": false, + "material": "plastic", + "symbol": ")", + "color": "light_gray", + "contains": 1, + "seals": true, + "flags": [ "TRADER_AVOID" ] + }, { "id": "bag_body_bag", "type": "CONTAINER", @@ -235,41 +253,6 @@ "watertight": true, "qualities": [ [ "BOIL", 2 ], [ "CONTAIN", 1 ] ] }, - { - "id": "bowl_pewter", - "type": "CONTAINER", - "category": "other", - "name": "pewter bowl", - "description": "A pewter bowl without a lid. Can be used as a container or as a tool. Holds 250 ml of liquid.", - "weight": 50, - "volume": 1, - "price": 400, - "to_hit": -1, - "material": "steel", - "symbol": ")", - "color": "light_cyan", - "contains": 1, - "watertight": true, - "qualities": [ [ "BOIL", 2 ], [ "CONTAIN", 1 ] ] - }, - { - "id": "bowl_plastic", - "type": "CONTAINER", - "category": "other", - "name": "plastic bowl", - "description": "A plastic bowl. Can be used as a container or as a tool. Holds 250 ml of liquid.", - "weight": 80, - "volume": 1, - "price": 100, - "to_hit": 1, - "material": "plastic", - "symbol": ")", - "color": "light_cyan", - "contains": 1, - "seals": true, - "watertight": true, - "qualities": [ [ "CONTAIN", 1 ] ] - }, { "id": "box_cigarette", "type": "CONTAINER", @@ -452,40 +435,6 @@ "watertight": true, "insulation": 10 }, - { - "id": "ceramic_bowl", - "type": "CONTAINER", - "name": "ceramic bowl", - "description": "A shallow dessert bowl, not a lot of use for it really.", - "weight": 400, - "volume": 1, - "price": 1000, - "price_postapoc": 0, - "bashing": 1, - "material": "ceramic", - "symbol": ",", - "color": "yellow", - "contains": 1, - "watertight": true, - "qualities": [ [ "BOIL", 2 ], [ "CONTAIN", 1 ] ] - }, - { - "id": "ceramic_cup", - "type": "CONTAINER", - "name": "ceramic cup", - "description": "A ceramic teacup, pinky out!", - "weight": 300, - "volume": 1, - "price": 1000, - "price_postapoc": 0, - "bashing": 1, - "material": "ceramic", - "symbol": ",", - "color": "yellow", - "contains": 1, - "watertight": true, - "qualities": [ [ "BOIL", 2 ], [ "CONTAIN", 1 ] ] - }, { "id": "clay_canister", "type": "CONTAINER", @@ -682,41 +631,6 @@ "qualities": [ [ "BOIL", 1 ] ], "flags": [ "WAIST", "OVERSIZE", "WATER_FRIENDLY" ] }, - { - "id": "glass", - "type": "CONTAINER", - "name": "glass cup", - "name_plural": "glasses", - "description": "A tall glass, just begging for a frosty one!", - "weight": 375, - "volume": 2, - "price": 400, - "price_postapoc": 0, - "bashing": 1, - "material": "glass", - "symbol": ",", - "color": "cyan", - "contains": 2, - "watertight": true, - "qualities": [ [ "BOIL", 1 ], [ "CONTAIN", 1 ] ] - }, - { - "id": "glass_bowl", - "type": "CONTAINER", - "name": "glass bowl", - "description": "A glass dessert bowl, not a lot of use for it really.", - "weight": 500, - "volume": 1, - "price": 800, - "price_postapoc": 0, - "bashing": 1, - "material": "glass", - "symbol": ",", - "color": "cyan", - "contains": 1, - "watertight": true, - "qualities": [ [ "BOIL", 1 ], [ "CONTAIN", 1 ] ] - }, { "id": "jar_3l_glass", "type": "CONTAINER", @@ -1097,5 +1011,24 @@ "contains": 17, "seals": true, "watertight": true + }, + { + "id": "condom", + "type": "CONTAINER", + "category": "other", + "name": "condom", + "description": "A gentleman's balloon. A single use life preventer. A thumbless latex mitten. This could be used as a makeshift water container, but otherwise it's anyone's guess what it's for.", + "weight": 5, + "volume": 0, + "price": 0, + "to_hit": -5, + "rigid": false, + "material": "plastic", + "symbol": ")", + "color": "white", + "contains": 15, + "watertight": true, + "seals": true, + "properties": [ [ "burst_when_filled", "75" ] ] } ] diff --git a/data/json/items/fake.json b/data/json/items/fake.json index 46c5bd5ebc63f..c1a15475a0e84 100644 --- a/data/json/items/fake.json +++ b/data/json/items/fake.json @@ -7,6 +7,15 @@ "symbol": "@", "color": "red" }, + { + "id": "fake_burrowing", + "copy-from": "fake_item", + "type": "TOOL", + "name": "teeth and claws", + "flags": "TRADER_AVOID", + "use_action": [ "BURROW" ], + "qualities": [ [ "DIG", 3 ] ] + }, { "id": "toolset", "copy-from": "fake_item", diff --git a/data/json/items/generic.json b/data/json/items/generic.json index 96bcb0f101e8f..d0507ccd816c8 100644 --- a/data/json/items/generic.json +++ b/data/json/items/generic.json @@ -1397,21 +1397,6 @@ "volume": 2, "bashing": 4 }, - { - "type": "GENERIC", - "id": "ceramic_plate", - "symbol": ",", - "color": "yellow", - "name": "ceramic plate", - "description": "A ceramic dinner plate, you could probably play frisbee with it.", - "price": 1400, - "price_postapoc": 0, - "material": "ceramic", - "weight": 362, - "volume": 1, - "bashing": 1, - "qualities": [ [ "CONTAIN", 1 ] ] - }, { "type": "GENERIC", "id": "fish_bowl", @@ -1426,102 +1411,6 @@ "volume": 4, "to_hit": -6 }, - { - "type": "GENERIC", - "id": "glass_plate", - "symbol": ",", - "color": "cyan", - "name": "glass plate", - "description": "A glass dinner plate, you could probably play frisbee with it.", - "price": 1000, - "price_postapoc": 0, - "material": "glass", - "weight": 452, - "volume": 1, - "bashing": 1, - "qualities": [ [ "CONTAIN", 1 ] ] - }, - { - "type": "GENERIC", - "id": "tin_plate", - "symbol": ",", - "color": "light_gray", - "name": "tin plate", - "description": "A tin dinner plate, you could probably play frisbee with it.", - "price": 500, - "price_postapoc": 0, - "material": "steel", - "weight": 525, - "volume": 1, - "qualities": [ [ "CONTAIN", 1 ] ] - }, - { - "type": "GENERIC", - "id": "fork", - "symbol": ";", - "color": "light_gray", - "name": "fork", - "description": "A fork, if you stab something with it you eat it right away. Wait... nevermind.", - "price": 100, - "price_postapoc": 0, - "material": "steel", - "weight": 48, - "volume": 1, - "bashing": 2, - "cutting": 1, - "flags": [ "STAB", "SHEATH_KNIFE" ], - "to_hit": -2 - }, - { - "type": "GENERIC", - "id": "spoon", - "symbol": ";", - "color": "light_gray", - "name": "spoon", - "description": "Do not try to bend the spoon. That is impossible.", - "price": 100, - "price_postapoc": 0, - "material": "steel", - "weight": 48, - "volume": 1, - "bashing": 2, - "to_hit": -2, - "flags": [ "SHEATH_KNIFE" ] - }, - { - "type": "GENERIC", - "id": "spork", - "symbol": ";", - "color": "light_gray", - "name": "spork", - "description": "Foons are for scrubs, real men use sporks.", - "price": 100, - "price_postapoc": 0, - "material": "steel", - "weight": 49, - "volume": 1, - "bashing": 2, - "cutting": 1, - "flags": [ "STAB", "SHEATH_KNIFE" ], - "to_hit": -2 - }, - { - "type": "GENERIC", - "id": "foon", - "symbol": ";", - "color": "light_gray", - "name": "foon", - "description": "Clearly the superior instrument. Sporks are just imitators.", - "price": 100, - "price_postapoc": 0, - "material": "steel", - "weight": 49, - "volume": 1, - "bashing": 2, - "cutting": 1, - "flags": [ "STAB", "SHEATH_KNIFE" ], - "to_hit": -2 - }, { "type": "GENERIC", "id": "rag_bloody", @@ -3023,22 +2912,6 @@ "volume": 2, "bashing": 5 }, - { - "id": "condom", - "type": "GENERIC", - "category": "other", - "name": "condom", - "looks_like": "lens", - "description": "A gentleman's balloon. A single use life preventer. A thumbless latex mitten. This could be used as a makeshift water container, but otherwise it's anyone's guess what it's for.", - "weight": 5, - "volume": "5ml", - "price": 200, - "material": "plastic", - "symbol": "*", - "color": "white", - "bashing": 5, - "to_hit": -3 - }, { "type": "GENERIC", "id": "lock", diff --git a/data/json/items/generic/dining_kitchen.json b/data/json/items/generic/dining_kitchen.json new file mode 100644 index 0000000000000..314931791a3e5 --- /dev/null +++ b/data/json/items/generic/dining_kitchen.json @@ -0,0 +1,773 @@ +[ + { + "id": "base_silverware", + "name": "generic silverware", + "type": "GENERIC", + "description": "generic item template", + "symbol": ";", + "color": "light_gray", + "price": 100, + "price_postapoc": 0, + "weight": 48, + "volume": "25 ml", + "material": "steel", + "bashing": 2, + "cutting": 1, + "to_hit": -1 + }, + { + "id": "base_utensil", + "name": "generic utensil", + "type": "GENERIC", + "description": "generic item template", + "symbol": ";", + "color": "light_gray", + "price": 200, + "price_postapoc": 0, + "weight": 158, + "volume": "75 ml", + "material": "steel", + "bashing": 3, + "cutting": 2, + "to_hit": -1 + }, + { + "id": "base_plastic_silverware", + "name": "generic silverware", + "type": "GENERIC", + "description": "generic item template", + "symbol": ";", + "color": "light_gray", + "price": 10, + "price_postapoc": 0, + "weight": 28, + "volume": "25 ml", + "material": "plastic", + "bashing": 1, + "cutting": 1, + "to_hit": -2 + }, + { + "id": "base_ceramic_dish", + "name": "generic dish", + "description": "generic item template", + "type": "GENERIC", + "symbol": ")", + "color": "yellow", + "price": 1200, + "price_postapoc": 0, + "material": "ceramic", + "weight": 322, + "volume": "200 ml", + "bashing": 3, + "to_hit:": -1 + }, + { + "id": "base_glass_dish", + "name": "generic dish", + "description": "generic item template", + "type": "GENERIC", + "symbol": ")", + "color": "cyan", + "price": 1400, + "price_postapoc": 0, + "material": "glass", + "weight": 322, + "volume": "200 ml", + "bashing": 3, + "to_hit:": -1 + }, + { + "id": "base_tin_dish", + "name": "generic dish", + "description": "generic item template", + "type": "GENERIC", + "symbol": ")", + "color": "light_gray", + "price": 400, + "price_postapoc": 0, + "material": "aluminum", + "weight": 262, + "volume": "200 ml", + "bashing": 2, + "to_hit:": -1 + }, + { + "id": "base_plastic_dish", + "name": "generic dish", + "description": "generic item template", + "type": "GENERIC", + "symbol": ")", + "color": "light_cyan", + "price": 400, + "price_postapoc": 0, + "material": "plastic", + "weight": 130, + "volume": "200 ml", + "bashing": 1, + "to_hit:": -1 + }, + { + "id": "base_cookpot", + "name": "generic cook pot", + "description": "generic item template", + "type": "GENERIC", + "symbol": ")", + "watertight": true, + "to_hit": 1, + "price": 4500, + "price_postapoc": 10, + "use_action": "HEAT_FOOD", + "qualities": [ [ "COOK", 3 ], [ "BOIL", 2 ], [ "CONTAIN", 1 ], [ "CHEM", 1 ] ], + "flags": [ "ALLOWS_REMOTE_USE" ] + }, + { + "copy-from": "base_ceramic_dish", + "type": "GENERIC", + "category": "other", + "id": "ceramic_plate", + "name": "ceramic plate", + "symbol": ",", + "description": "A ceramic dinner plate, unremarkable in every way.", + "qualities": [ [ "CONTAIN", 1 ] ] + }, + { + "type": "GENERIC", + "category": "other", + "id": "ceramic_bowl", + "name": "ceramic bowl", + "symbol": ")", + "description": "A perfectly ordinary ceramic soup bowl.", + "copy-from": "base_ceramic_dish", + "contains": 2, + "watertight": true, + "qualities": [ [ "BOIL", 2 ], [ "CONTAIN", 1 ] ] + }, + { + "type": "GENERIC", + "category": "other", + "id": "ceramic_cup", + "name": "ceramic cup", + "symbol": "u", + "description": "A light ceramic teacup. Quite classy.", + "copy-from": "base_ceramic_dish", + "proportional": { "weight": 0.6 }, + "contains": 1, + "watertight": true, + "qualities": [ [ "BOIL", 2 ], [ "CONTAIN", 1 ] ] + }, + { + "type": "GENERIC", + "category": "other", + "id": "ceramic_mug", + "name": "coffee mug", + "symbol": "u", + "description": "A ceramic coffee cup with a logo on the side.", + "copy-from": "base_ceramic_dish", + "proportional": { "weight": 0.8 }, + "contains": 1, + "watertight": true, + "qualities": [ [ "BOIL", 2 ], [ "CONTAIN", 1 ] ], + "snippet_category": [ + { "id": "mug1", "text": "The side of the mug reads 'World's Greatest Dad'." }, + { "id": "mug2", "text": "The side of the mug reads 'World's Greatest Mom'." }, + { "id": "mug3", "text": "The side of the mug has a picture of a happy looking family printed on'." }, + { + "id": "mug4", + "text": "The side of the mug has a comical green face on it and says 'I'm a zombie without my coffee!'." + }, + { "id": "mug5", "text": "The side of the mug reads 'I'd rather be playing open source games'." }, + { "id": "mug6", "text": "The side of the mug reads 'If you think I'm bad, look in a mirror'." }, + { "id": "mug7", "text": "The side of the mug has a diagram of a caffeine molecule." }, + { "id": "mug8", "text": "The side of the mug has a cute picture of a sleeping cat." }, + { "id": "mug9", "text": "The mug is printed in leopard spots." }, + { "id": "mug10", "text": "The mug is blue and looks like a TARDIS." }, + { "id": "mug11", "text": "The side of the mug reads 'STAR WARS' over a picture of a lightsaber." }, + { "id": "mug12", "text": "The side of the mug reads 'House Stark' and depicts a fictional crest." }, + { "id": "mug13", "text": "The side of the mug reads 'My fandom could beat up your fandom'. " }, + { + "id": "mug14", + "text": "The side of the mug reads 'Do you even linux, bro?' and has a picture of a muscular penguin." + }, + { "id": "mug15", "text": "The side of the mug reads 'I wish this was wine!'" }, + { "id": "mug16", "text": "The side of the mug reads 'CasUaL aLcoHoLiSm'" } + ] + }, + { + "type": "GENERIC", + "category": "other", + "id": "tin_plate", + "name": "tin plate", + "symbol": ",", + "description": "A tin dinner plate, lightweight and clanky.", + "looks_like": "ceramic_plate", + "copy-from": "base_tin_dish", + "qualities": [ [ "CONTAIN", 1 ] ] + }, + { + "type": "GENERIC", + "category": "other", + "id": "tin_cup", + "name": "tin cup", + "symbol": "u", + "description": "An emaled tin cup. Great for camping or for prison use; makes a wonderful sound when clanged along bars.", + "looks_like": "ceramic_cup", + "proportional": { "weight": 0.8 }, + "copy-from": "base_tin_dish", + "contains": 1, + "watertight": true, + "qualities": [ [ "BOIL", 2 ], [ "CONTAIN", 1 ] ] + }, + { + "type": "GENERIC", + "category": "other", + "id": "bowl_pewter", + "name": "pewter bowl", + "description": "A small pewter serving bowl without a lid. Holds 250 ml of liquid.", + "copy-from": "base_tin_dish", + "symbol": "u", + "contains": 1, + "watertight": true, + "qualities": [ [ "BOIL", 2 ], [ "CONTAIN", 1 ] ] + }, + { + "type": "GENERIC", + "category": "other", + "id": "glass_plate", + "name": "glass plate", + "symbol": ",", + "description": "A glass dinner plate, for people who don't have clumsy children.", + "looks_like": "ceramic_plate", + "copy-from": "base_glass_dish", + "qualities": [ [ "CONTAIN", 1 ] ] + }, + { + "type": "GENERIC", + "category": "other", + "id": "glass", + "name": "drinking glass", + "name_plural": "drinking glasses", + "symbol": "U", + "description": "A tall drinking glass.", + "copy-from": "base_glass_dish", + "contains": 2, + "watertight": true, + "qualities": [ [ "BOIL", 1 ], [ "CONTAIN", 1 ] ] + }, + { + "type": "GENERIC", + "category": "other", + "id": "wine_glass", + "name": "wine glass", + "name_plural": "wine glasses", + "proportional": { "weight": 0.5 }, + "symbol": "Y", + "description": "A stemmed drinking glass that makes you feel very fancy when you drink from it.", + "copy-from": "base_glass_dish", + "contains": 1, + "watertight": true, + "qualities": [ [ "CONTAIN", 1 ] ] + }, + { + "type": "GENERIC", + "category": "other", + "id": "glass_bowl", + "name": "glass bowl", + "symbol": "u", + "description": "A glass bowl for soup or dessert.", + "copy-from": "base_glass_dish", + "contains": 2, + "watertight": true, + "qualities": [ [ "BOIL", 1 ], [ "CONTAIN", 1 ] ] + }, + { + "type": "GENERIC", + "category": "other", + "id": "plastic_plate", + "name": "plastic plate", + "symbol": ",", + "description": "A durable plastic plate, the sort you might use as patio dishware.", + "copy-from": "base_plastic_dish", + "qualities": [ [ "CONTAIN", 1 ] ] + }, + { + "type": "GENERIC", + "category": "other", + "id": "tumbler_plastic", + "name": "plastic tumbler", + "symbol": "U", + "description": "A durable plastic drinking vessel. This one is made of clear acrylic and looks almost like glass.", + "copy-from": "base_plastic_dish", + "contains": 2, + "watertight": true, + "qualities": [ [ "CONTAIN", 1 ] ] + }, + { + "id": "bowl_plastic", + "type": "CONTAINER", + "category": "other", + "name": "plastic bowl", + "symbol": "u", + "description": "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid.", + "copy-from": "base_plastic_dish", + "contains": 3, + "seals": true, + "watertight": true, + "qualities": [ [ "CONTAIN", 1 ] ] + }, + { + "id": "plastic_bowl_kids", + "type": "GENERIC", + "category": "other", + "name": "kiddie bowl", + "symbol": "u", + "proportional": { "weight": 0.6, "volume": 0.5 }, + "description": "A plastic bowl designed for use by children.", + "copy-from": "base_plastic_dish", + "contains": 1, + "watertight": true, + "qualities": [ [ "CONTAIN", 1 ] ], + "snippet_category": [ + { "id": "kbowl1", "text": "This bowl is decorated with cartoon bears." }, + { + "id": "kbowl2", + "text": "There is a drawing of Yoda at the bottom of this bowl, and the words 'Eaten it all, you have'." + }, + { "id": "kbowl3", "text": "This bowl is covered in cartoon dogs and a logo that reads 'Paw Patrol'." }, + { "id": "kbowl4", "text": "There are orange and blue fish chasing each other around the rim of this bowl." }, + { + "id": "kbowl5", + "text": "This bowl is shaped like the head of a silly frog with the opening forming the mouth." + }, + { "id": "kbowl6", "text": "There are cute farm animals decorating this bowl." } + ] + }, + { + "type": "GENERIC", + "category": "other", + "id": "fork", + "name": "fork", + "description": "A fork, if you stab something with it you eat it right away. Wait... nevermind.", + "copy-from": "base_silverware", + "flags": [ "STAB", "SHEATH_KNIFE" ] + }, + { + "type": "GENERIC", + "category": "other", + "id": "plastic_fork", + "name": "plastic fork", + "description": "A plastic disposable fork. Great for picnic lunches in the post apocalyptic wasteland.", + "looks_like": "fork", + "copy-from": "base_plastic_silverware", + "flags": [ "STAB", "SHEATH_KNIFE" ] + }, + { + "type": "GENERIC", + "category": "other", + "id": "spoon", + "name": "spoon", + "description": "Do not try to bend the spoon. That is impossible.", + "copy-from": "base_silverware", + "flags": [ "SHEATH_KNIFE" ] + }, + { + "type": "GENERIC", + "category": "other", + "id": "plastic_spoon", + "name": "plastic spoon", + "description": "A plastic disposable spoon. Easier to bend than the metal variety.", + "looks_like": "spoon", + "copy-from": "base_plastic_silverware", + "flags": [ "SHEATH_KNIFE" ] + }, + { + "type": "GENERIC", + "category": "other", + "id": "plastic_spoon_kids", + "name": "kiddie spoon", + "symbol": "u", + "proportional": { "weight": 0.7, "volume": 0.5 }, + "description": "A plastic spoon designed for use by children.", + "looks_like": "spoon", + "copy-from": "base_plastic_silverware", + "contains": 1, + "watertight": true, + "qualities": [ [ "CONTAIN", 1 ] ], + "snippet_category": [ + { "id": "kspoon1", "text": "This spoon is striped in bright primary colors." }, + { "id": "kspoon2", "text": "This spoon is styled to look like a bulldozer." }, + { "id": "kspoon3", "text": "This spoon is covered in cartoon dogs and a logo that reads 'Paw Patrol'." }, + { "id": "kspoon4", "text": "There is a cute cartoon bear on the handle of this spoon." }, + { "id": "kspoon5", "text": "There are cartoon cats all over this spoon." }, + { "id": "kspoon6", "text": "This spoon has a sillhouette of a giraffe going down the handle." } + ] + }, + { + "type": "GENERIC", + "category": "other", + "id": "knife_butter", + "name": "butter knife", + "name_plural": "butter knives", + "description": "A dull knife, absolutely worthless in combat. Excellent for spreading soft things on bread.", + "flags": [ "STAB", "SHEATH_KNIFE" ], + "copy-from": "base_silverware" + }, + { + "type": "GENERIC", + "category": "other", + "id": "plastic_knife", + "name": "plastic knife", + "name_plural": "plastic knives", + "description": "A plastic butter knife. It's actually a bit sharper than its metal counterpart, but that doesn't make it any more effective as a weapon.", + "looks_like": "knife_butter", + "flags": [ "STAB", "SHEATH_KNIFE" ], + "copy-from": "base_plastic_silverware" + }, + { + "type": "GENERIC", + "category": "other", + "id": "plastic_straw", + "name": "plastic straw", + "proportional": { "weight": 0.7, "volume": 0.5 }, + "description": "A plastic straw, for drinking things and making litter", + "copy-from": "base_plastic_silverware" + }, + { + "type": "GENERIC", + "category": "other", + "id": "corkscrew", + "name": "corkscrew", + "description": "Many a pleasant date has been ruined by forgetting this important tool.", + "flags": [ "STAB", "SHEATH_KNIFE" ], + "looks_like": "fork", + "copy-from": "base_silverware" + }, + { + "type": "GENERIC", + "category": "other", + "id": "peeler", + "name": "vegetable peeler", + "description": "This is a simple tool for peeling the outer skin off fruit and veggies without stabbing yourself.", + "flags": [ "SHEATH_KNIFE" ], + "looks_like": "knife_butter", + "copy-from": "base_silverware" + }, + { + "type": "GENERIC", + "category": "other", + "id": "bottle_opener", + "name": "bottle opener", + "description": "A simple lever for popping open bottles.", + "looks_like": "fork", + "copy-from": "base_silverware", + "snippet_category": [ + { "id": "bottleopener1", "text": "This bottle opener is shaped like a zombie head, the mouth pops open the bottle." }, + { "id": "bottleopener2", "text": "This bottle opener is shaped like a lightsaber." }, + { "id": "bottleopener3", "text": "This bottle opener is shaped like a revolver." }, + { + "id": "bottleopener4", + "text": "This bottle opener is engraved with the words 'I'll die before I give you my beer'." + }, + { + "id": "bottleopener5", + "text": "This bottle opener is emblazoned with a logo for an HVAC contracting company." + }, + { "id": "bottleopener6", "text": "This bottle opener reads 'Corporate Team Building Exercise 1999'." }, + { "id": "bottleopener7", "text": "This bottle opener reads 'I'd rather be drinking whiskey'." }, + { "id": "bottleopener8", "text": "This bottle opener is shaped like a phaser." } + ] + }, + { + "type": "GENERIC", + "category": "other", + "id": "spork", + "name": "spork", + "description": "The bastardized hybrid of a spoon and fork, with all the power and capabilities of both in a more annoying to use package.", + "flags": [ "STAB", "SHEATH_KNIFE" ], + "looks_like": "fork", + "copy-from": "base_silverware" + }, + { + "type": "GENERIC", + "category": "other", + "id": "foon", + "name": "foon", + "description": "Clearly the superior instrument. Sporks are just imitators.", + "flags": [ "STAB", "SHEATH_KNIFE" ], + "looks_like": "spork", + "copy-from": "base_silverware" + }, + { + "type": "GENERIC", + "category": "other", + "id": "chopsticks", + "name": "chopsticks", + "description": "One of the most popular eating utensils in the world. Does double duty as a way of dealing with especially fragile vampires.", + "flags": [ "STAB" ], + "symbol": "X", + "color": "light_gray", + "price": 100, + "price_postapoc": 0, + "weight": 28, + "volume": "15 ml", + "material": "wood", + "bashing": 1, + "cutting": 1, + "to_hit": -1 + }, + { + "type": "GENERIC", + "category": "other", + "id": "ladle", + "name": "ladle", + "description": "When you need to scoop some soup, this is the utensil for you.", + "looks_like": "spoon", + "copy-from": "base_utensil" + }, + { + "type": "GENERIC", + "category": "other", + "id": "whisk", + "name": "whisk", + "description": "Also known as a 'wire whip', this is a less effective weapon than it sounds.", + "looks_like": "spoon", + "copy-from": "base_utensil" + }, + { + "type": "GENERIC", + "category": "other", + "id": "potato_masher", + "name": "potato masher", + "description": "This tool can mash potatoes and soft root vegetables; it cannot do the twist.", + "looks_like": "fork", + "copy-from": "base_utensil" + }, + { + "type": "GENERIC", + "category": "other", + "id": "garlic_press", + "name": "garlic press", + "description": "This tool can squash a clove or two of garlic into a fine paste.", + "looks_like": "spoon", + "copy-from": "base_utensil" + }, + { + "type": "GENERIC", + "category": "other", + "id": "can_opener", + "name": "can opener", + "description": "It's not hard to open cans without this, but it's way messier.", + "looks_like": "crank", + "copy-from": "base_utensil" + }, + { + "type": "GENERIC", + "category": "other", + "id": "carving_fork", + "name": "carving fork", + "description": "It's like a tiny pitchfork, or a very large dinner fork. You use it to hold meat still while you slice it.", + "looks_like": "fork", + "copy-from": "base_utensil", + "proportional": { "cutting": 2 }, + "flags": [ "STAB", "SHEATH_KNIFE" ] + }, + { + "type": "GENERIC", + "category": "other", + "id": "spatula", + "name": "spatula", + "description": "A rubber scraper for making sure you get every last scrap of cookie dough.", + "looks_like": "spoon", + "proportional": { "weight": 3, "volume": 2 }, + "copy-from": "base_plastic_silverware" + }, + { + "type": "GENERIC", + "category": "other", + "id": "rolling_pin", + "name": "rolling pin", + "description": "A stout piece of hardwood, turned and sanded smooth, with rounded handles at the ends. This timeless kitchen tool also doubles as a very effective club.", + "weight": 725, + "to_hit": 1, + "color": "brown", + "symbol": "/", + "material": [ "wood" ], + "techniques": [ "WBLOCK_1", "RAPID" ], + "flags": [ "DURABLE_MELEE" ], + "volume": "600 ml", + "bashing": 7, + "price": 700 + }, + { + "type": "GENERIC", + "category": "tools", + "id": "pot", + "name": "pot", + "description": "Useful for boiling water when cooking spaghetti and more.", + "copy-from": "base_cookpot", + "material": "steel", + "color": "light_gray", + "weight": 550, + "volume": 8, + "bashing": 6, + "contains": 8 + }, + { + "type": "GENERIC", + "category": "tools", + "id": "iron_pot", + "name": "cast-iron pot", + "description": "This hefty black pot is made from cast iron and coated in a sturdy enamel.", + "copy-from": "base_cookpot", + "material": "iron", + "color": "dark_gray", + "weight": 3000, + "volume": 8, + "bashing": 10, + "contains": 8 + }, + { + "type": "GENERIC", + "category": "tools", + "id": "pot_copper", + "name": "copper pot", + "description": "Useful for boiling water when cooking spaghetti and more. Made from copper, with a lining of tin to prevent metal from leaching into acidic foods.", + "copy-from": "base_cookpot", + "material": "copper", + "color": "light_red", + "weight": 750, + "volume": 8, + "bashing": 6, + "contains": 8 + }, + { + "type": "GENERIC", + "category": "tools", + "id": "casserole", + "name": "casserole", + "description": "A ceramic pot made for both cooking and serving, particularly one-pot dinners.", + "copy-from": "base_cookpot", + "material": "ceramic", + "color": "white", + "weight": 650, + "volume": 8, + "bashing": 4, + "contains": 8 + }, + { + "type": "GENERIC", + "category": "tools", + "id": "stock_pot", + "name": "stock pot", + "description": "A large pot for making soup stocks. You could fit a whole turkey in there, with a bit of shoving.", + "copy-from": "base_cookpot", + "material": "steel", + "color": "light_gray", + "weight": 2490, + "volume": 36, + "//": "Volume assumes you can stick some stuff in the pot inside your bag", + "bashing": 8, + "contains": 48 + }, + { + "id": "pot_canning", + "type": "GENERIC", + "category": "tools", + "name": "canning pot", + "description": "A very large 25 liter pot, primarily meant for canning food in glass jars via the water bath method, though it can cook normal foods just as well. Canning foods with it will require a lot of water. If you're only canning a couple of jars at a time, you'd fill it up with rocks or something to displace the water above the lids.", + "weight": 5625, + "volume": 100, + "price": 20000, + "to_hit": -2, + "bashing": 10, + "material": "steel", + "symbol": ")", + "color": "dark_gray", + "container_data": { "contains": 100, "watertight": true }, + "qualities": [ [ "COOK", 3 ], [ "BOIL", 2 ], [ "CONTAIN", 1 ], [ "CHEM", 1 ] ], + "use_action": "HEAT_FOOD" + }, + { + "type": "GENERIC", + "category": "tools", + "id": "pan", + "name": "cast-iron frying pan", + "description": "A cast-iron pan. Makes a decent melee weapon, and is used for cooking.", + "copy-from": "base_cookpot", + "material": "iron", + "color": "dark_gray", + "proportional": { "to-hit": 2 }, + "weight": 2628, + "volume": 4, + "bashing": 12, + "contains": 4, + "delete": { "qualities": [ [ "COOK", 3 ] ] }, + "extend": { "qualities": [ [ "HAMMER", 1 ], [ "COOK", 2 ] ] } + }, + { + "type": "GENERIC", + "category": "tools", + "id": "steel_pan", + "name": "steel frying pan", + "description": "A steel frying pan. Makes a decent melee weapon, and is used for cooking.", + "copy-from": "base_cookpot", + "material": "steel", + "color": "light_gray", + "proportional": { "to-hit": 2 }, + "weight": 528, + "volume": 4, + "bashing": 8, + "contains": 4, + "delete": { "qualities": [ [ "COOK", 3 ] ] }, + "extend": { "qualities": [ [ "COOK", 2 ] ] } + }, + { + "type": "GENERIC", + "category": "tools", + "id": "copper_pan", + "name": "copper frying pan", + "description": "A copper frying pan, coated in a thin layer of tin. Makes a decent melee weapon, and is used for cooking.", + "copy-from": "base_cookpot", + "material": "copper", + "color": "light_red", + "proportional": { "to-hit": 2 }, + "weight": 628, + "volume": 4, + "bashing": 7, + "contains": 4, + "delete": { "qualities": [ [ "COOK", 3 ] ] }, + "extend": { "qualities": [ [ "COOK", 2 ] ] } + }, + { + "type": "GENERIC", + "category": "tools", + "id": "kettle", + "name": "kettle", + "description": "A stovetop kettle for boiling water.", + "copy-from": "base_cookpot", + "material": "steel", + "color": "light_gray", + "weight": 728, + "volume": 6, + "bashing": 5, + "contains": 6, + "delete": { "qualities": [ [ "COOK", 3 ] ] } + }, + { + "id": "cutting_board", + "type": "GENERIC", + "category": "other", + "name": "cutting board", + "description": "A large flat piece of wood for chopping vegetables on without ruining your knife or your countertop.", + "weight": 945, + "to_hit": -1, + "color": "brown", + "symbol": "/", + "material": [ "wood" ], + "techniques": [ "WBLOCK_2" ], + "flags": [ "DURABLE_MELEE" ], + "volume": "900 ml", + "bashing": 7, + "price": 200 + } +] diff --git a/data/json/items/gun/46.json b/data/json/items/gun/46.json index 6fa70547b5781..f98a5542a74bb 100644 --- a/data/json/items/gun/46.json +++ b/data/json/items/gun/46.json @@ -3,10 +3,10 @@ "id": "hk_mp7", "type": "GUN", "reload_noise_volume": 10, - "name": "H&K MP7", + "name": "H&K MP7A2", "description": "Designed as a personal defense weapon, the MP7 fires the high powered 4.6x30mm round while being lightweight, compact in size, and practically recoil free.", "weight": 1780, - "volume": 7, + "volume": "3587 ml", "price": 340000, "to_hit": -2, "bashing": 7, @@ -18,7 +18,7 @@ "dispersion": 260, "durability": 8, "burst": 16, - "built_in_mods": [ "folding_stock" ], + "built_in_mods": [ "wire_stock" ], "valid_mod_locations": [ [ "accessories", 3 ], [ "barrel", 1 ], @@ -34,39 +34,5 @@ ], "magazine_well": 1, "magazines": [ [ "46", [ "hk46mag", "hk46bigmag" ] ], [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ] ] - }, - { - "id": "hk_ucp", - "type": "GUN", - "reload_noise_volume": 10, - "name": "H&K UCP", - "description": "Designed to work with H&K's proprietary 4.6x30mm round, the UCP is a small pistol with a very high capacity, best used against armored opponents.", - "weight": 730, - "volume": 2, - "price": 125000, - "to_hit": -2, - "bashing": 6, - "material": [ "steel", "plastic" ], - "symbol": "(", - "color": "light_gray", - "ammo": "46", - "skill": "pistol", - "ranged_damage": -1, - "dispersion": 440, - "durability": 8, - "valid_mod_locations": [ - [ "accessories", 2 ], - [ "barrel", 1 ], - [ "brass catcher", 1 ], - [ "grip", 1 ], - [ "mechanism", 4 ], - [ "muzzle", 1 ], - [ "rail", 1 ], - [ "sights", 1 ], - [ "stock", 1 ], - [ "underbarrel", 1 ] - ], - "magazine_well": 1, - "magazines": [ [ "46", [ "hk46mag", "hk46bigmag" ] ], [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ] ] } ] diff --git a/data/json/items/gun/chemical_spray.json b/data/json/items/gun/chemical_spray.json new file mode 100644 index 0000000000000..bbfa3755122d4 --- /dev/null +++ b/data/json/items/gun/chemical_spray.json @@ -0,0 +1,31 @@ +[ + { + "id": "chemical_thrower", + "copy-from": "gun_base", + "type": "GUN", + "reload_noise": "slosh.", + "name": "makeshift chemical thrower", + "description": "A bulky, self-made chemical sprayer with an internal conversion mechanism that allows all sorts of chemicals to be dispersed to your surroundings.", + "weight": 4588, + "volume": 17, + "price": 10000, + "to_hit": -1, + "bashing": 9, + "material": [ "steel", "plastic" ], + "flags": [ "FIRE_50", "NEVER_JAMS" ], + "skill": "launcher", + "ammo": "chemical_spray", + "dispersion": 300, + "durability": 6, + "magazines": [ [ "chemical_spray", [ "pressurized_tank_chem" ] ] ], + "valid_mod_locations": [ + [ "accessories", 4 ], + [ "grip", 1 ], + [ "rail", 1 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "underbarrel", 1 ] + ] + } +] diff --git a/data/json/items/magazine/chemical_spray.json b/data/json/items/magazine/chemical_spray.json new file mode 100644 index 0000000000000..75629a3590d20 --- /dev/null +++ b/data/json/items/magazine/chemical_spray.json @@ -0,0 +1,18 @@ +[ + { + "id": "pressurized_tank_chem", + "type": "MAGAZINE", + "name": "pressurized chemical tank", + "description": "A makeshift pressurized 2L canister designed to feed a makeshift chemical thrower.", + "weight": 800, + "volume": 8, + "price": 5000, + "material": "steel", + "symbol": "#", + "color": "light_gray", + "ammo_type": "chemical_spray", + "capacity": 800, + "reliability": 9, + "reload_time": 3 + } +] diff --git a/data/json/items/melee.json b/data/json/items/melee.json index 0cfc708cc8b6a..d32d9d8bbca6e 100644 --- a/data/json/items/melee.json +++ b/data/json/items/melee.json @@ -135,6 +135,7 @@ "volume": 8, "bashing": 10, "cutting": 1, + "to_hit": 1, "category": "weapons" }, { @@ -153,6 +154,7 @@ "volume": 8, "bashing": 18, "cutting": 1, + "to_hit": 1, "category": "weapons" }, { @@ -245,23 +247,6 @@ "category": "weapons", "qualities": [ [ "AXE", 2 ], [ "CUT", 1 ], [ "HAMMER", 2 ], [ "HAMMER_FINE", 1 ], [ "BUTCHER", 16 ] ] }, - { - "type": "GENERIC", - "id": "knife_butter", - "symbol": ";", - "color": "light_gray", - "name": "butter knife", - "name_plural": "butter knives", - "description": "A dull knife, absolutely worthless in combat.", - "price": 150, - "material": "steel", - "weight": 66, - "volume": 1, - "bashing": 2, - "cutting": 1, - "flags": [ "STAB", "SHEATH_KNIFE" ], - "to_hit": -2 - }, { "type": "GENERIC", "id": "rock", @@ -872,6 +857,43 @@ "flags": [ "DURABLE_MELEE", "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR" ], "price": 80000 }, + { + "type": "GENERIC", + "id": "naginata_inferior", + "name": "naginata", + "name_plural": "naginata", + "description": "A sturdy polearm with a curved blade, made in the same manner as the katana and other Japanese blades. This one has a bit of wiggle to its blade and feels a bit shoddily made.", + "weight": 1700, + "color": "light_gray", + "symbol": "/", + "material": [ "budget_steel", "wood" ], + "techniques": [ "WIDE", "WBLOCK_1" ], + "volume": 10, + "bashing": 6, + "cutting": 21, + "to_hit": 2, + "qualities": [ [ "CUT", 1 ], [ "BUTCHER", -24 ] ], + "flags": [ "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR" ], + "price": 8000 + }, + { + "type": "GENERIC", + "id": "naginata_fake", + "name": "naginata", + "name_plural": "naginata", + "description": "This is a dull, slightly floppy replica of a Japanese polearm with a curved blade. With a little difficulty, you could use it administer a solid slap from a distance.", + "weight": 1400, + "color": "light_gray", + "symbol": "/", + "material": [ "aluminum", "wood" ], + "techniques": [ "WIDE", "WBLOCK_1" ], + "volume": 10, + "bashing": 13, + "cutting": 1, + "to_hit": -1, + "flags": [ "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR" ], + "price": 8000 + }, { "type": "GENERIC", "id": "spear_survivor", @@ -1564,8 +1586,8 @@ "flags": "SHEATH_SWORD", "weight": 753, "volume": 8, - "bashing": 6, - "cutting": 2, + "bashing": 10, + "cutting": 3, "to_hit": 1, "category": "weapons" }, @@ -1582,7 +1604,7 @@ "flags": [ "SHEATH_SWORD" ], "weight": 1133, "volume": 8, - "bashing": 3, + "bashing": 4, "cutting": 24, "to_hit": 1, "category": "weapons", @@ -1697,9 +1719,9 @@ "flags": "SHEATH_SWORD", "weight": 557, "volume": 6, - "bashing": 4, + "bashing": 7, "cutting": 2, - "to_hit": 1, + "to_hit": 2, "category": "weapons" }, { @@ -1718,7 +1740,7 @@ "volume": 6, "bashing": 3, "cutting": 20, - "to_hit": 1, + "to_hit": 2, "category": "weapons", "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 13 ] ] }, @@ -2283,7 +2305,7 @@ "price": 1800, "to_hit": 1, "bashing": 1, - "cutting": 5, + "cutting": 7, "material": "aluminum", "symbol": "/", "color": "dark_gray", @@ -2303,7 +2325,7 @@ "price": 18000, "to_hit": 2, "bashing": 1, - "cutting": 10, + "cutting": 12, "material": "budget_steel", "symbol": "/", "color": "dark_gray", diff --git a/data/json/items/melee/knives_kitchen.json b/data/json/items/melee/knives_kitchen.json new file mode 100644 index 0000000000000..f9dfa41f6e322 --- /dev/null +++ b/data/json/items/melee/knives_kitchen.json @@ -0,0 +1,145 @@ +[ + { + "id": "base_kitchen_knife", + "name": "generic kitchen knife", + "description": "generic item template", + "type": "TOOL", + "material": "steel", + "symbol": ";", + "color": "light_gray" + }, + { + "id": "knife_butcher", + "name": "butcher knife", + "name_plural": "butcher knives", + "type": "TOOL", + "category": "weapons", + "description": "This is a sharp, heavy knife. It makes a good melee weapon, and is an ideal item for butchering corpses.", + "copy-from": "base_kitchen_knife", + "weight": 380, + "volume": "300 ml", + "price": 3000, + "bashing": 2, + "cutting": 10, + "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 25 ] ], + "flags": [ "STAB", "SHEATH_KNIFE" ] + }, + { + "id": "knife_steak", + "name": "steak knife", + "name_plural": "steak knives", + "type": "TOOL", + "category": "weapons", + "description": "This is a sharp knife, designed for cutting meat. It makes a poor melee weapon, but is decent at butchering corpses.", + "copy-from": "base_kitchen_knife", + "weight": 112, + "volume": "100 ml", + "price": 250, + "to_hit": -1, + "bashing": 2, + "cutting": 7, + "qualities": [ [ "CUT", 1 ], [ "CUT_FINE", 1 ], [ "BUTCHER", 15 ] ], + "flags": [ "STAB", "SHEATH_KNIFE" ] + }, + { + "id": "knife_paring", + "name": "paring knife", + "name_plural": "paring knives", + "type": "TOOL", + "category": "weapons", + "description": "This is a short-bladed knife with a sharp blade, made for fine controlled cuts to vegetables without using a cutting board.", + "copy-from": "base_kitchen_knife", + "looks_like": "knife_steak", + "weight": 100, + "volume": 1, + "price": 250, + "to_hit": -1, + "bashing": 1, + "cutting": 6, + "qualities": [ [ "CUT", 1 ], [ "CUT_FINE", 1 ], [ "BUTCHER", 10 ] ], + "flags": [ "STAB", "SHEATH_KNIFE" ] + }, + { + "id": "knife_chef", + "name": "chef knife", + "name_plural": "chef knives", + "type": "TOOL", + "category": "weapons", + "description": "This is a long-bladed kitchen knife. The blade is wider than the handle, giving room for the wielder's knuckles, and it has a characteristic curve for a fast rocking action for chopping vegetables. It makes a good melee weapon, but the wide blade is unwieldy for butchering.", + "copy-from": "base_kitchen_knife", + "looks_like": "knife_butcher", + "weight": 280, + "volume": "200 ml", + "price": 1500, + "bashing": 1, + "cutting": 10, + "qualities": [ [ "CUT", 1 ], [ "CUT_FINE", 1 ], [ "BUTCHER", 10 ] ], + "flags": [ "STAB", "SHEATH_KNIFE" ] + }, + { + "id": "knife_carving", + "name": "carving knife", + "name_plural": "carving knives", + "type": "TOOL", + "category": "weapons", + "description": "This is a long-bladed kitchen knife with a thin, slightly curved blade for deftly slicing meat either in flat sheets or around the bone. It would be a decent melee weapon, and excellent for butchery.", + "copy-from": "base_kitchen_knife", + "looks_like": "knife_butcher", + "weight": 280, + "volume": "200 ml", + "price": 1500, + "bashing": 1, + "cutting": 8, + "qualities": [ [ "CUT", 1 ], [ "CUT_FINE", 1 ], [ "BUTCHER", 22 ] ], + "flags": [ "STAB", "SHEATH_KNIFE" ] + }, + { + "id": "knife_bread", + "name": "bread knife", + "name_plural": "bread knives", + "type": "TOOL", + "category": "weapons", + "description": "This knife has quite a long blade with a scalloped edge for cutting bread. It's not that sharp, but its length and heft mean it could do a bit of damage and cause some nasty tearing.", + "copy-from": "base_kitchen_knife", + "looks_like": "knife_butcher", + "weight": 280, + "volume": "200 ml", + "price": 500, + "bashing": 4, + "cutting": 6, + "qualities": [ [ "CUT", 1 ], [ "CUT_FINE", 1 ], [ "BUTCHER", 8 ] ], + "flags": [ "SHEATH_KNIFE" ] + }, + { + "id": "knife_vegetable_cleaver", + "name": "vegetable cleaver", + "type": "TOOL", + "category": "weapons", + "description": "This is a menacing looking knife with a broad, square shaped blade, curved for fast vegetable chopping. Its heft and sharpness would make it a decent weapon as well, although not as good as a meat cleaver.", + "copy-from": "base_kitchen_knife", + "looks_like": "knife_butcher", + "weight": 250, + "volume": "250 ml", + "price": 2500, + "bashing": 2, + "cutting": 10, + "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 15 ] ], + "flags": [ "SHEATH_KNIFE" ] + }, + { + "id": "knife_meat_cleaver", + "name": "meat cleaver", + "type": "TOOL", + "category": "weapons", + "description": "This is a menacing looking knife with a broad, square shaped blade. Its heft and sharpness would make it a very effective melee weapon, and an excellent butchering tool.", + "copy-from": "base_kitchen_knife", + "looks_like": "knife_butcher", + "weight": 350, + "volume": "300 ml", + "price": 3500, + "bashing": 2, + "cutting": 12, + "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 25 ] ], + "flags": [ "SHEATH_KNIFE" ] + } +] diff --git a/data/json/items/migration.json b/data/json/items/migration.json index 27978e5c2bb6b..19682de6686c0 100644 --- a/data/json/items/migration.json +++ b/data/json/items/migration.json @@ -535,5 +535,26 @@ "id": "lightstrip_dead", "type": "MIGRATION", "replace": "lightstrip_inactive" + }, + { + "id": "battery_atomic", + "type": "MIGRATION", + "replace": "light_atomic_battery_cell" + }, + { + "id": "battery_compartment", + "type": "MIGRATION", + "replace": "magazine_battery_heavy_mod" + }, + { + "id": "dry_mushroom_magic", + "type": "MIGRATION", + "replace": "dry_mushroom", + "flags": [ "HIDDEN_HALLU" ] + }, + { + "id": "hk_ucp", + "type": "MIGRATION", + "replace": "hk_mp7" } ] diff --git a/data/json/items/ranged.json b/data/json/items/ranged.json index 0ad97b921219b..b47849d09c020 100644 --- a/data/json/items/ranged.json +++ b/data/json/items/ranged.json @@ -576,30 +576,5 @@ "clip_size": 100, "reload": 0, "valid_mod_locations": [ [ "sling", 1 ] ] - }, - { - "id": "chemical_thrower", - "type": "GUN", - "reload_noise_volume": 10, - "reload_noise": "slosh.", - "symbol": "(", - "color": "dark_gray", - "name": "chemical thrower", - "description": "A bulky, self-made chemical sprayer with an internal conversion mechanism that allows all sorts of chemicals to be dispersed to your surroundings.", - "price": 15000, - "material": [ "steel", "plastic" ], - "flags": [ "FIRE_50", "NEVER_JAMS" ], - "skill": "launcher", - "ammo": "chemical_spray", - "weight": 1150, - "volume": 25, - "bashing": 9, - "to_hit": -1, - "ranged_damage": -5, - "dispersion": 300, - "durability": 6, - "clip_size": 1000, - "reload": 10, - "valid_mod_locations": [ [ "sling", 1 ] ] } ] diff --git a/data/json/items/tool/deployable.json b/data/json/items/tool/deployable.json index 38c26e0cdcbbe..68f4edbe92ca3 100644 --- a/data/json/items/tool/deployable.json +++ b/data/json/items/tool/deployable.json @@ -46,6 +46,21 @@ "color": "light_gray", "use_action": { "type": "deploy_furn", "furn_type": "f_metal_butcher_rack" } }, + { + "id": "metal_smoking_rack", + "type": "TOOL", + "name": "metal smoking rack", + "description": "A metal rack designed to smoke food for better preservation and taste. It is folded for easy transportation and can be deployed as a furniture.", + "weight": 5000, + "volume": 100, + "price": 5000, + "to_hit": -4, + "bashing": 7, + "material": [ "steel" ], + "symbol": "=", + "color": "light_gray", + "use_action": { "type": "deploy_furn", "furn_type": "f_metal_smoking_rack" } + }, { "id": "tourist_table", "type": "TOOL", diff --git a/data/json/items/tool/lighting.json b/data/json/items/tool/lighting.json index ab9bde2d2aed5..1abc00f699ff4 100644 --- a/data/json/items/tool/lighting.json +++ b/data/json/items/tool/lighting.json @@ -24,7 +24,7 @@ "need_charges_msg": "The lantern has no batteries." }, "flags": [ "RADIO_MODABLE", "ALLOWS_REMOTE_USE" ], - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "electric_lantern_on", @@ -59,7 +59,18 @@ "need_charges": 1, "need_charges_msg": "The flashlight's batteries are dead." }, - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "flashlight_on", @@ -130,7 +141,18 @@ "need_charges": 1, "need_charges_msg": "The heavy duty flashlight's batteries are dead." }, - "magazines": [ [ "battery", [ "light_plus_battery_cell", "light_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_plus_battery_cell", + "light_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "heavy_flashlight_on", diff --git a/data/json/items/tool/radio_tools.json b/data/json/items/tool/radio_tools.json index 986bdb87865da..de3b0cdbf57a0 100644 --- a/data/json/items/tool/radio_tools.json +++ b/data/json/items/tool/radio_tools.json @@ -26,7 +26,18 @@ "turns_per_charge": 5, "proportional": { "weight": 0.21, "volume": 0.25, "price": 0.2 }, "use_action": "RADIOCONTROL", - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "radio_car", @@ -40,7 +51,7 @@ "proportional": { "weight": 0.73, "volume": 0.75, "price": 0.8 }, "use_action": "RADIOCAR", "flags": [ "RADIO_CONTAINER" ], - "magazines": [ [ "battery", [ "light_minus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "light_minus_battery_cell", "light_minus_atomic_battery_cell" ] ] ] }, { "id": "radio_car_on", @@ -84,7 +95,18 @@ "color": "light_gray", "ammo": "battery", "use_action": "RADIO_OFF", - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "radio_on", @@ -120,7 +142,18 @@ "color": "green", "ammo": "battery", "flags": [ "TWO_WAY_RADIO" ], - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "remotevehcontrol", @@ -138,6 +171,17 @@ "charges_per_use": 1, "turns_per_charge": 10, "use_action": "REMOTEVEH", - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] } ] diff --git a/data/json/items/tool/science.json b/data/json/items/tool/science.json index 9af0b36a81af2..dcd2ac0ff1031 100644 --- a/data/json/items/tool/science.json +++ b/data/json/items/tool/science.json @@ -16,7 +16,7 @@ "charges_per_use": 1, "qualities": [ [ "DISTILL", 1 ], [ "CHEM", 3 ], [ "BOIL", 1 ] ], "use_action": "HOTPLATE", - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "chemistry_set_basic", @@ -48,7 +48,7 @@ "symbol": ";", "color": "light_gray", "qualities": [ [ "ANALYSIS", 1 ] ], - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "balance_small", @@ -78,7 +78,7 @@ "material": [ "plastic", "steel" ], "symbol": ";", "color": "light_gray", - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "cuvettes", @@ -109,7 +109,18 @@ "material": [ "plastic", "glass" ], "symbol": ";", "color": "light_gray", - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "voltmeter", @@ -125,7 +136,18 @@ "material": [ "plastic" ], "symbol": ";", "color": "light_gray", - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "melting_point", @@ -142,7 +164,18 @@ "material": [ "plastic", "glass" ], "symbol": ";", "color": "light_gray", - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "vortex", @@ -323,7 +356,18 @@ "color": "white", "ammo": "battery", "qualities": [ [ "CONCENTRATE", 1 ] ], - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "stopcock", diff --git a/data/json/items/tool_armor.json b/data/json/items/tool_armor.json index d062656850db2..3bc2c4854cdac 100644 --- a/data/json/items/tool_armor.json +++ b/data/json/items/tool_armor.json @@ -29,7 +29,18 @@ "encumbrance": 15, "coverage": 80, "material_thickness": 4, - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "miner_hat_on", @@ -76,7 +87,7 @@ "symbol": "[", "ammo": "battery", "use_action": "PORTABLE_GAME", - "magazines": [ [ "battery", [ "light_minus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "light_minus_battery_cell", "light_minus_atomic_battery_cell" ] ] ] }, { "id": "holo_cloak", @@ -152,7 +163,18 @@ "warmth": 10, "coverage": 100, "material_thickness": 1, - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "thermal_socks_on", @@ -204,7 +226,18 @@ "warmth": 10, "coverage": 100, "material_thickness": 1, - "magazines": [ [ "battery", [ "light_plus_battery_cell", "light_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_plus_battery_cell", + "light_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "thermal_suit_on", @@ -257,7 +290,18 @@ "warmth": 10, "coverage": 100, "material_thickness": 1, - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "thermal_gloves_on", @@ -309,7 +353,18 @@ "warmth": 10, "coverage": 100, "material_thickness": 1, - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "thermal_mask_on", @@ -383,7 +438,18 @@ "covers": [ "HEAD" ], "coverage": 15, "material_thickness": 1, - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "wearable_light_on", @@ -407,7 +473,18 @@ "covers": [ "HEAD" ], "coverage": 15, "material_thickness": 1, - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "survivor_light", @@ -436,7 +513,18 @@ "covers": [ "HEAD" ], "coverage": 20, "material_thickness": 1, - "magazines": [ [ "battery", [ "light_plus_battery_cell", "light_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_plus_battery_cell", + "light_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "survivor_light_on", @@ -999,7 +1087,18 @@ "encumbrance": 40, "coverage": 100, "material_thickness": 2, - "magazines": [ [ "battery", [ "light_plus_battery_cell", "light_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_plus_battery_cell", + "light_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "goggles_nv_on", @@ -1058,7 +1157,18 @@ "encumbrance": 40, "coverage": 100, "material_thickness": 2, - "magazines": [ [ "battery", [ "light_plus_battery_cell", "light_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_plus_battery_cell", + "light_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "goggles_ir_on", @@ -1085,7 +1195,18 @@ "encumbrance": 20, "coverage": 100, "material_thickness": 2, - "magazines": [ [ "battery", [ "light_plus_battery_cell", "light_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_plus_battery_cell", + "light_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "wearable_rx12", @@ -1335,7 +1456,7 @@ "coverage": 5, "material_thickness": 1, "flags": [ "BELTED", "FRAGILE", "ALLOWS_NATURAL_ATTACKS", "WATER_FRIENDLY", "OVERSIZE" ], - "magazines": [ [ "battery", [ "light_minus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "light_minus_battery_cell", "light_minus_atomic_battery_cell" ] ] ] }, { "type": "ARMOR", @@ -1890,7 +2011,7 @@ "warmth": 10, "coverage": 100, "material_thickness": 1, - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "thermal_outfit_on", @@ -1987,6 +2108,8 @@ "use_message": "You blow the whistle.", "//": "Use of %s not currently supported.", "noise_message": "FWEEEET!", + "noise_id": "misc", + "noise_variant": "whistle", "noise": 38, "moves": 100 } @@ -2201,7 +2324,18 @@ "encumbrance": 5, "coverage": 10, "material_thickness": 2, - "magazines": [ [ "battery", [ "light_plus_battery_cell", "light_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_plus_battery_cell", + "light_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "powered_earmuffs_on", @@ -2515,7 +2649,7 @@ "need_charges_msg": "The blanket's batteries are dead." }, "flags": [ "OVERSIZE", "OUTER", "ALLOWS_NATURAL_ATTACKS", "RECHARGE" ], - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "electric_blanket_on", diff --git a/data/json/items/toolmod.json b/data/json/items/toolmod.json index f9308c1e705a1..f96c9c49fac48 100644 --- a/data/json/items/toolmod.json +++ b/data/json/items/toolmod.json @@ -10,17 +10,6 @@ "color": "dark_gray", "acceptable_ammo": [ "battery" ] }, - { - "id": "battery_atomic", - "copy-from": "mod_battery", - "type": "TOOLMOD", - "category": "spare_parts", - "name": "atomic battery mod", - "description": "This plutonium cell has been adapted to fit conventional battery connections. You can attach it to any battery-operated equipment, converting it to use power off the plutonium cell instead.", - "ammo_modifier": "plutonium", - "capacity_multiplier": 100, - "flags": [ "NO_UNLOAD", "LEAK_DAM", "RADIOACTIVE" ] - }, { "id": "battery_ups", "copy-from": "mod_battery", diff --git a/data/json/items/tools.json b/data/json/items/tools.json index f6582e342c478..a8e39e70ef78c 100644 --- a/data/json/items/tools.json +++ b/data/json/items/tools.json @@ -90,7 +90,7 @@ "color": "light_gray", "ammo": "battery", "flags": [ "RECHARGE" ], - "magazines": [ [ "battery", [ "heavy_plus_battery_cell", "heavy_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "heavy_plus_battery_cell", "heavy_battery_cell", "heavy_atomic_battery_cell" ] ] ] }, { "id": "acidbomb", @@ -143,7 +143,18 @@ "charges_per_use": 1, "turns_per_charge": 1, "use_action": "ECIG", - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "airhorn", @@ -166,6 +177,8 @@ "moves": 100, "noise": 50, "noise_message": "HOOOOONK!", + "noise_id": "misc", + "noise_variant": "airhorn", "use_message": "You honk your airhorn.", "no_charges_message": "You depress the button but no sound comes out.", "//": "Use of %s not currently supported." @@ -1323,7 +1336,7 @@ "color": "dark_gray", "ammo": "battery", "flags": [ "ALLOWS_REMOTE_USE" ], - "magazines": [ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell" ] ] ] }, { "id": "broadfire_off", @@ -1527,7 +1540,18 @@ "revert_to": "camera_pro", "use_action": "CAMERA", "flags": [ "CAMERA_PRO", "ALWAYS_TWOHAND" ], - "magazines": [ [ "battery", [ "light_plus_battery_cell", "light_minus_battery_cell", "light_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "can_sealer", @@ -1640,7 +1664,18 @@ "ammo": "battery", "use_action": "CARVER_OFF", "flags": [ "SHEATH_SWORD", "NONCONDUCTIVE" ], - "magazines": [ [ "battery", [ "light_plus_battery_cell", "light_minus_battery_cell", "light_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "carver_on", @@ -1662,22 +1697,7 @@ "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 25 ] ], "use_action": "CARVER_ON", "flags": [ "MESSY", "TRADER_AVOID", "NONCONDUCTIVE" ], - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] - }, - { - "id": "catfood", - "type": "TOOL", - "name": "cat food", - "name_plural": "cat food", - "description": "This is food for cats. It smells strange, but cats seem to love it.", - "weight": 223, - "volume": 1, - "price": 300, - "to_hit": -5, - "material": "flesh", - "symbol": ";", - "color": "brown", - "use_action": "CATFOOD" + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "cavalry_sabre", @@ -1723,7 +1743,18 @@ "type": "transform" }, "flags": [ "WATCH", "ALARMCLOCK" ], - "magazines": [ [ "battery", [ "light_plus_battery_cell", "light_minus_battery_cell", "light_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "cell_phone_flashlight", @@ -1968,7 +1999,7 @@ "charges_per_use": 5, "use_action": { "target": "circsaw_on", "msg": "You turn on the circular saw.", "active": true, "type": "transform" }, "flags": [ "NONCONDUCTIVE" ], - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "circsaw_on", @@ -2089,7 +2120,7 @@ "charges_per_use": 10, "qualities": [ [ "BOIL", 1 ] ], "use_action": "HOTPLATE", - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "combatsaw_off", @@ -2154,7 +2185,7 @@ "ammo": "battery", "use_action": "E_COMBATSAW_OFF", "techniques": [ "WBLOCK_1", "SWEEP" ], - "magazines": [ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell" ] ] ] }, { "id": "e_combatsaw_on", @@ -2197,7 +2228,7 @@ "charges_per_use": 20, "qualities": [ [ "CONTAIN", 1 ] ], "use_action": "HOTPLATE", - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "control_laptop", @@ -2214,7 +2245,7 @@ "charges_per_use": 2, "use_action": "ROBOTCONTROL", "flags": [ "RECHARGE" ], - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "copper_ax", @@ -2266,7 +2297,7 @@ "color": "yellow", "ammo": "battery", "qualities": [ [ "DRILL", 3 ], [ "SCREW", 1 ] ], - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "cot", @@ -2336,7 +2367,18 @@ "charges_per_use": 1, "turns_per_charge": 20, "use_action": "DOLLCHAT", - "magazines": [ [ "battery", [ "light_minus_battery_cell", "light_battery_cell", "light_plus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_minus_battery_cell", + "light_battery_cell", + "light_plus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "crossbow_trap", @@ -2506,7 +2548,7 @@ "techniques": [ "WBLOCK_1", "SPIN", "SWEEP" ], "use_action": "ECS_LAJATANG_OFF", "flags": [ "NONCONDUCTIVE" ], - "magazines": [ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell" ] ] ] }, { "id": "ecs_lajatang_on", @@ -2579,7 +2621,7 @@ "color": "blue", "ammo": "battery", "flags": [ "ALLOWS_REMOTE_USE" ], - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "digging_stick", @@ -2660,21 +2702,6 @@ "color": "yellow", "use_action": "DOG_WHISTLE" }, - { - "id": "dogfood", - "type": "TOOL", - "name": "dog food", - "name_plural": "dog food", - "description": "This is food for dogs. It smells strange, but dogs seem to love it.", - "weight": 554, - "volume": 1, - "price": 300, - "to_hit": -5, - "material": "flesh", - "symbol": ";", - "color": "brown", - "use_action": "DOGFOOD" - }, { "id": "dynamite", "type": "TOOL", @@ -2805,7 +2832,18 @@ "revert_to": "eink_tablet_pc", "use_action": "EINKTABLETPC", "flags": [ "WATCH" ], - "magazines": [ [ "battery", [ "light_plus_battery_cell", "light_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_plus_battery_cell", + "light_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "elec_chainsaw_off", @@ -2825,7 +2863,7 @@ "techniques": "SWEEP", "use_action": "ELEC_CHAINSAW_OFF", "flags": [ "NONCONDUCTIVE" ], - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "elec_chainsaw_on", @@ -2866,7 +2904,7 @@ "ammo": "battery", "charges_per_use": 10, "use_action": "HAIRKIT", - "magazines": [ [ "battery", [ "light_minus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "light_minus_battery_cell", "light_minus_atomic_battery_cell" ] ] ] }, { "id": "elec_jackhammer", @@ -2886,7 +2924,7 @@ "charges_per_use": 25, "use_action": "JACKHAMMER", "flags": [ "STAB", "DIG_TOOL", "POWERED" ], - "magazines": [ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell" ] ] ] }, { "id": "electrohack", @@ -2903,7 +2941,18 @@ "symbol": ",", "color": "green", "ammo": "battery", - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "etched_skull", @@ -3520,7 +3569,7 @@ "color": "light_gray", "ammo": "battery", "flags": [ "ALLOWS_REMOTE_USE" ], - "magazines": [ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell" ] ] ] }, { "id": "funnel", @@ -3722,7 +3771,18 @@ "ammo": "battery", "charges_per_use": 1, "use_action": "GEIGER", - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "geiger_on", @@ -3983,6 +4043,8 @@ "moves": 100, "noise": 15, "noise_message": "honk.", + "noise_id": "misc", + "noise_variant": "horn_bicycle", "use_message": "You honk the bicycle horn.", "no_charges_message": "Seeing this is an error.", "//": "Use of %s not currently supported." @@ -4049,7 +4111,7 @@ "ammo": "battery", "charges_per_use": 5, "use_action": "HOTPLATE", - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "hygrometer", @@ -4269,25 +4331,6 @@ }, "flags": [ "LIGHT_8", "TRADER_AVOID", "ALLOWS_REMOTE_USE" ] }, - { - "id": "knife_butcher", - "type": "TOOL", - "category": "weapons", - "name": "butcher knife", - "name_plural": "butcher knives", - "description": "This is a sharp, heavy knife. It makes a good melee weapon, and is an ideal item for butchering corpses.", - "weight": 680, - "volume": 2, - "price": 3000, - "to_hit": -1, - "bashing": 2, - "cutting": 10, - "material": "steel", - "symbol": ";", - "color": "light_gray", - "qualities": [ [ "CUT", 1 ], [ "CUT_FINE", 1 ], [ "BUTCHER", 25 ] ], - "flags": [ "SHEATH_KNIFE" ] - }, { "id": "knife_combat", "type": "TOOL", @@ -4380,24 +4423,6 @@ "qualities": [ [ "CUT", 1 ], [ "CUT_FINE", 1 ], [ "BUTCHER", 19 ] ], "flags": [ "STAB", "DURABLE_MELEE", "SHEATH_KNIFE", "NO_CVD" ] }, - { - "id": "knife_steak", - "type": "TOOL", - "name": "steak knife", - "name_plural": "steak knives", - "description": "This is a sharp knife, designed for cutting meat. It makes a poor melee weapon, but is decent at butchering corpses.", - "weight": 453, - "volume": 1, - "price": 250, - "to_hit": -1, - "bashing": 2, - "cutting": 7, - "material": "steel", - "symbol": ";", - "color": "light_gray", - "qualities": [ [ "CUT", 1 ], [ "CUT_FINE", 1 ], [ "BUTCHER", 20 ] ], - "flags": [ "STAB", "SHEATH_KNIFE" ] - }, { "id": "knife_swissarmy", "type": "TOOL", @@ -4519,7 +4544,7 @@ "type": "transform" }, "flags": [ "DURABLE_MELEE", "SHEATH_SPEAR" ], - "magazines": [ [ "battery", [ "medium_plus_battery_cell", "medium_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_plus_battery_cell", "medium_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "l-stick_on", @@ -4594,7 +4619,7 @@ [ "CHISEL", 3 ] ], "use_action": "GUN_REPAIR", - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ], + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ], "flags": [ "ALLOWS_REMOTE_USE" ] }, { @@ -4690,7 +4715,18 @@ "color": "white", "ammo": "battery", "use_action": { "target": "lightstrip", "msg": "You irreversibly activate the lightstrip.", "active": true, "type": "transform" }, - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ], + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ], "magazine_well": 0 }, { @@ -4873,7 +4909,7 @@ "color": "white", "ammo": "battery", "flags": [ "ALLOWS_REMOTE_USE" ], - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "matchbomb", @@ -4965,7 +5001,7 @@ "charges_per_use": 5, "qualities": [ [ "COOK", 2 ], [ "BOIL", 2 ], [ "CONTAIN", 1 ] ], "use_action": [ "HOTPLATE", "HEAT_FOOD" ], - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "metal_funnel", @@ -5021,7 +5057,7 @@ "charges_per_use": 5, "qualities": [ [ "COOK", 2 ], [ "BOIL", 2 ], [ "CONTAIN", 1 ] ], "use_action": [ "HOTPLATE", "HEAT_FOOD" ], - "magazines": [ [ "battery", [ "medium_plus_battery_cell", "medium_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_plus_battery_cell", "medium_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "mininuke", @@ -5171,6 +5207,20 @@ "techniques": "WBLOCK_1", "use_action": "MOP" }, + { + "id": "brush", + "type": "TOOL", + "name": "scrub brush", + "description": "This is a simple scrub brush.", + "weight": 70, + "volume": 1, + "price": 200, + "to_hit": -1, + "bashing": 1, + "material": "plastic", + "symbol": "/", + "color": "light_gray" + }, { "id": "mortar_pestle", "type": "TOOL", @@ -5201,7 +5251,18 @@ "color": "dark_gray", "ammo": "battery", "use_action": "MP3", - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "mp3_on", @@ -5238,7 +5299,7 @@ "revert_to": "multi_cooker", "qualities": [ [ "CONTAIN", 1 ] ], "use_action": "MULTICOOKER", - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "multitool", @@ -5376,7 +5437,18 @@ "ammo": "battery", "use_action": "NOISE_EMITTER_OFF", "flags": [ "RADIO_MODABLE" ], - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "noise_emitter_on", @@ -5538,25 +5610,6 @@ "color": "brown", "flags": [ "BELT_CLIP" ] }, - { - "id": "pan", - "type": "GENERIC", - "category": "tools", - "name": "frying pan", - "description": "A cast-iron pan. Makes a decent melee weapon, and is used for cooking.", - "weight": 2628, - "volume": 4, - "price": 3000, - "to_hit": 2, - "bashing": 10, - "material": "iron", - "symbol": ")", - "color": "dark_gray", - "container_data": { "contains": 4, "watertight": true }, - "qualities": [ [ "HAMMER", 1 ], [ "COOK", 2 ], [ "BOIL", 2 ], [ "CONTAIN", 1 ] ], - "use_action": "HEAT_FOOD", - "flags": [ "ALLOWS_REMOTE_USE" ] - }, { "id": "pastaextruder", "type": "GENERIC", @@ -5873,7 +5926,18 @@ "color": "light_gray", "ammo": "battery", "flags": [ "TRADER_AVOID" ], - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "popcan_stove", @@ -5908,7 +5972,18 @@ "color": "light_gray", "ammo": "battery", "use_action": "PORTABLE_GAME", - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "portal", @@ -5928,62 +6003,6 @@ "charges_per_use": 5, "use_action": "PORTAL" }, - { - "id": "pot", - "type": "GENERIC", - "category": "tools", - "name": "pot", - "description": "Useful for boiling water when cooking spaghetti and more.", - "weight": 550, - "volume": 8, - "price": 4500, - "to_hit": 1, - "bashing": 6, - "material": "steel", - "symbol": ")", - "color": "light_gray", - "container_data": { "contains": 8, "watertight": true }, - "qualities": [ [ "COOK", 3 ], [ "BOIL", 2 ], [ "CONTAIN", 1 ], [ "CHEM", 1 ] ], - "use_action": "HEAT_FOOD", - "flags": [ "ALLOWS_REMOTE_USE" ] - }, - { - "id": "pot_copper", - "type": "GENERIC", - "category": "tools", - "name": "copper pot", - "description": "Useful for boiling water when cooking spaghetti and more. Made from copper, with a lining of tin to prevent metal from leaching into acidic foods.", - "weight": 1090, - "volume": 8, - "price": 4500, - "to_hit": 1, - "bashing": 6, - "material": "copper", - "symbol": ")", - "color": "light_red", - "container_data": { "contains": 8, "watertight": true }, - "qualities": [ [ "COOK", 3 ], [ "BOIL", 2 ], [ "CONTAIN", 1 ], [ "CHEM", 1 ] ], - "use_action": "HEAT_FOOD", - "flags": [ "ALLOWS_REMOTE_USE" ] - }, - { - "id": "pot_canning", - "type": "GENERIC", - "category": "tools", - "name": "canning pot", - "description": "A very large 25 liter pot, primarily meant for canning food in glass jars via the water bath method, though it can cook normal foods just as well. Canning foods with it will require a lot of water. If you're only canning a couple of jars at a time, you'd fill it up with rocks or something to displace the water above the lids.", - "weight": 5625, - "volume": 100, - "price": 20000, - "to_hit": -2, - "bashing": 10, - "material": "steel", - "symbol": ")", - "color": "dark_gray", - "container_data": { "contains": 100, "watertight": true }, - "qualities": [ [ "COOK", 3 ], [ "BOIL", 2 ], [ "CONTAIN", 1 ], [ "CHEM", 1 ] ], - "use_action": "HEAT_FOOD" - }, { "id": "press", "type": "TOOL", @@ -6163,7 +6182,18 @@ "need_charges_msg": "The reading light winks out.", "type": "transform" }, - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "reading_light_on", @@ -6657,7 +6687,7 @@ "techniques": [ "WBLOCK_2", "RAPID", "SWEEP" ], "use_action": "TAZER", "flags": [ "DURABLE_MELEE", "RECHARGE", "NONCONDUCTIVE", "SHEATH_SPEAR" ], - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "shocktonfa_off", @@ -6679,7 +6709,7 @@ "techniques": [ "WBLOCK_2", "RAPID" ], "use_action": "SHOCKTONFA_OFF", "flags": [ "DURABLE_MELEE", "RECHARGE", "NONCONDUCTIVE" ], - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "shocktonfa_on", @@ -6808,7 +6838,7 @@ [ "CHISEL", 3 ] ], "use_action": "GUN_REPAIR", - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ], + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ], "flags": [ "ALLOWS_REMOTE_USE" ] }, { @@ -6836,7 +6866,18 @@ "type": "transform" }, "flags": [ "RADIO_ACTIVATION", "RADIOSIGNAL_2" ], - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "smart_lamp_on", @@ -6903,7 +6944,18 @@ { "flame": false, "type": "cauterize" } ], "flags": [ "SPEAR", "BELT_CLIP", "ALLOWS_REMOTE_USE" ], - "magazines": [ [ "battery", [ "light_minus_battery_cell", "light_battery_cell", "light_plus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_minus_battery_cell", + "light_battery_cell", + "light_plus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "spear_knife", @@ -7214,7 +7266,18 @@ "charges_per_use": 1, "turns_per_charge": 20, "use_action": "DOLLCHAT", - "magazines": [ [ "battery", [ "light_minus_battery_cell", "light_battery_cell", "light_plus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_minus_battery_cell", + "light_battery_cell", + "light_plus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "tanning_hide", @@ -7301,7 +7364,7 @@ "charges_per_use": 100, "use_action": "TAZER", "flags": [ "RECHARGE" ], - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "teapot", @@ -7488,7 +7551,7 @@ "menu_text": "Turn on", "type": "transform" }, - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "small_space_heater_on", @@ -7535,7 +7598,7 @@ "menu_text": "Turn on", "type": "transform" }, - "magazines": [ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell" ] ] ] }, { "id": "large_space_heater_on", @@ -8196,7 +8259,7 @@ "color": "white", "ammo": "battery", "flags": [ "ALLOWS_REMOTE_USE" ], - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "vacutainer", @@ -8218,6 +8281,35 @@ "use_action": "BLOOD_DRAW", "flags": [ "SPEAR" ] }, + { + "id": "hand_crank_charger", + "type": "TOOL", + "category": "tools", + "name": "hand-crank charger", + "description": "This is a hand-powered battery charger. It has an adjustable receptacle designed to accept a wide variety of rechargeable battery cells.", + "weight": 2000, + "volume": 2, + "price": 1000, + "material": "plastic", + "symbol": ":", + "color": "light_gray", + "ammo": "battery", + "use_action": "HAND_CRANK", + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "medium_battery_cell", + "medium_plus_battery_cell", + "heavy_battery_cell", + "heavy_plus_battery_cell" + ] + ] + ] + }, { "id": "vibrator", "type": "TOOL", @@ -8232,7 +8324,18 @@ "color": "dark_gray", "ammo": "battery", "use_action": "VIBE", - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "violin", @@ -8381,7 +8484,18 @@ "charges_per_use": 1, "use_action": "WATER_PURIFIER", "flags": [ "ALLOWS_REMOTE_USE" ], - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "weather_reader", @@ -8401,7 +8515,18 @@ "charges_per_use": 5, "use_action": "WEATHER_TOOL", "flags": [ "THERMOMETER", "HYGROMETER", "BAROMETER" ], - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_atomic_battery_cell", + "light_minus_atomic_battery_cell" + ] + ] + ] }, { "id": "welder", @@ -8432,7 +8557,7 @@ { "flame": false, "type": "cauterize" } ], "flags": [ "FIRESTARTER", "ALLOWS_REMOTE_USE" ], - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "welder_crude", @@ -8463,7 +8588,7 @@ { "flame": false, "type": "cauterize" } ], "flags": [ "FIRESTARTER", "ALLOWS_REMOTE_USE" ], - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "wood_smoother", @@ -8647,37 +8772,7 @@ "color": "white", "ammo": "battery", "flags": [ "ALLOWS_REMOTE_USE" ], - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] - }, - { - "id": "cattlefodder", - "type": "TOOL", - "name": "cattle fodder", - "name_plural": "cattle fodder", - "description": "What cattle eat. Mainly made of grass, silage or legumes. It's perfect for ruminants.", - "weight": 300, - "volume": 1, - "price": 100, - "to_hit": -5, - "material": "veggy", - "symbol": ";", - "color": "brown", - "use_action": "CATTLEFODDER" - }, - { - "id": "birdfood", - "type": "TOOL", - "name": "bird food", - "name_plural": "bird food", - "description": "What birds eat. Mainly made of seeds, silage or legumes. It's perfect for small birds.", - "weight": 60, - "volume": 1, - "price": 20, - "to_hit": -5, - "material": "veggy", - "symbol": ";", - "color": "brown", - "use_action": "BIRDFOOD" + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "id": "link_sheet", @@ -8764,5 +8859,64 @@ "qualities": [ [ "COOK", 3 ], [ "BOIL", 2 ], [ "CONTAIN", 1 ], [ "CHEM", 1 ] ], "use_action": "HEAT_FOOD", "flags": [ "ALLOWS_REMOTE_USE" ] + }, + { + "id": "hobo_stove", + "type": "TOOL", + "name": "hobo stove", + "description": "This is a small improvised wood stove, made from a metal can or similar container of the right size. Useful for defrosting and reheating food, uses simple tinder.", + "weight": 1366, + "volume": 6, + "price": 0, + "to_hit": -1, + "bashing": 2, + "material": "steel", + "symbol": ",", + "color": "light_gray", + "ammo": "tinder", + "max_charges": 100, + "charges_per_use": 25, + "use_action": [ + { + "target": "hobo_stove_on", + "msg": "The hobo stove is lit.", + "need_fire": 1, + "need_fire_msg": "You need a source of fire!", + "active": false, + "menu_text": "Light", + "type": "transform" + } + ] + }, + { + "id": "hobo_stove_on", + "type": "TOOL", + "name": "hobo stove (lit)", + "name_plural": "hobo stoves (lit)", + "description": "This is a small improvised wood stove, made from a metal can or similar container of the right size. Useful for defrosting and reheating food, uses simple tinder.", + "weight": 1366, + "volume": 6, + "price": 0, + "to_hit": -1, + "bashing": 2, + "material": "steel", + "symbol": ",", + "color": "light_gray", + "ammo": "tinder", + "max_charges": 100, + "charges_per_use": 25, + "turns_per_charge": 300, + "revert_to": "hobo_stove", + "use_action": [ + { "type": "HOTPLATE", "moves": 60, "msg": "You heat up the food.", "menu_text": "Heat up food" }, + { + "target": "hobo_stove", + "msg": "The ember is extinguished.", + "active": false, + "menu_text": "Extinguish", + "type": "transform" + } + ], + "flags": [ "LIGHT_3", "ALLOWS_REMOTE_USE" ] } ] diff --git a/data/json/items/vehicle/engine.json b/data/json/items/vehicle/engine.json index 5a20da07f465b..3bf6f69c2fd4f 100644 --- a/data/json/items/vehicle/engine.json +++ b/data/json/items/vehicle/engine.json @@ -257,5 +257,38 @@ "weight": 8000, "volume": 2, "price": 3500 + }, + { + "id": "small_turbine_engine", + "copy-from": "engine_gasoline", + "type": "ENGINE", + "name": "1350 hp gas turbine engine", + "description": "A gas turbine engine, usually used for military vehicles. Known for its high rate of fuel consumption.", + "weight": 1130000, + "volume": 180, + "price": 96000, + "displacement": 2700 + }, + { + "id": "medium_turbine_engine", + "copy-from": "engine_gasoline", + "type": "ENGINE", + "name": "1900 hp gas turbine engine", + "description": "A large gas turbine engine, usually used for military helicopters. Known for its high rate of fuel consumption.", + "weight": 1582000, + "volume": 252, + "price": 192000, + "displacement": 3800 + }, + { + "id": "large_turbine_engine", + "copy-from": "engine_gasoline", + "type": "ENGINE", + "name": "6000 hp gas turbine engine", + "description": "A massive gas turbine engine, used to power the V-22 Osprey. Known for its high rate of fuel consumption.", + "weight": 3164000, + "volume": 380, + "price": 960000, + "displacement": 11995 } ] diff --git a/data/json/items/vehicle/wheel.json b/data/json/items/vehicle/wheel.json index fe1013fa2a9a4..ea3df1935781a 100644 --- a/data/json/items/vehicle/wheel.json +++ b/data/json/items/vehicle/wheel.json @@ -136,6 +136,23 @@ "diameter": 20, "width": 4 }, + { + "id": "wheel_rail", + "category": "veh_parts", + "type": "WHEEL", + "name": "rail wheel", + "description": "A strong rail wheel. A flange helps keep it on a rail, but makes it perform terribly when not on a rail.", + "weight": 18239, + "volume": 35, + "price": 1200, + "bashing": 8, + "to_hit": -4, + "material": [ "steel" ], + "symbol": "]", + "color": "light_gray", + "diameter": 20, + "width": 4 + }, { "id": "wheel_motorbike", "type": "WHEEL", diff --git a/data/json/lab_notes.json b/data/json/lab_notes.json deleted file mode 100644 index ffd20340a075a..0000000000000 --- a/data/json/lab_notes.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "type": "snippet", - "category": "lab_notes", - "text": [ - "General Carlsberg wanted us to figure out what's going on with the bot AI. Apparently the fat-cat defense contractors' toy tank has ranging issues or something: 31-34 meters and it's apparently impotent. The Director sent 'em back with a note that we're scientists, not firmware devs.", - "Our chemical department has made great strides in the production of a concentrated mutagen, derived from samples of PE012.", - "Our chemical department has perfected an untargeted stem cell treatment. Consumption of the treatment will reverse the effects of mutation, and may even cure congenital defects. This substance has been denoted PE018.", - "Both PE012 and PE018 show great stability. A subject was exposed to both substances, alternating between the mutagen and the purifier. Ultimately, the subject returned to baseline state with no apparent side effects.", - "Dr. Hofstadter has manufactured an improved version of PE018 by combining with PE012 outside the subject, then administering the mixture through a topical injection to a specific area of mutation. This has been denoted PE019. Other labs have so far been unable to reproduce the process.", - "Rumors of Dr. Hofstadter and her laboratory staff whispering to PE019 samples should be suppressed as malicious gossip. The jealousy of rival teams cannot be allowed to degrade morale.", - ":.||||ERROR||With XE037 having breached confinement, Dr. Maiar recommends that we prepare for the inevitable. PE050 can be quickly and cheaply reconfigured for |||||ERROR: FILE CORRUPT|||||", - "Dr. Maiar has been terminated for engaging in unethical research on human subjects. His notes are being destroyed and all personnel under him have been reassigned. Further discussion of or attempts to carry on his work will be grounds for immediate termination.", - "|||ERROR: UNREFERENCED MEMORY 0Ex670c9e1f5, REROUTING: CENSORSHIP IS A BREAKDOWN, WE ROUTE AROUND IT. THE WORD IS ALREADY OUT. NOBODY DROPS MAIAR INTO LAVA.||||||", - "Given the current population projections, PE065 deployment is no longer feasible. We simply haven't the stock. Remaining chemical and psychopharmacological department assets are being assigned to Dr. Sattler's PE070 project.", - "Dr. Maiar's success with intravenous mutagenic administration has been adopted facility-wide; insofar as any of our work can ever be 'published', he and his team hit the jackpot. IV administration is quicker and easier, and in some cases is reportedly more efficient, than the oral techniques we have been using.", - "Recent fieldwork and extraction efforts have resulted in a series of mutagens tailored to focus the mutation process into particular subtypes. These have been designated PE025 through 037. Though significantly more resource- and time-intensive to produce, they promise a bold new transhuman future. Several research teams are already investigating possible applications.", - "The chemical department has come through with a stable mutagen cocktail. PE050 shows promise as an all-around genetic enhancement, with the worst side effect being digestive upset. The lack of macro-scale physical changes makes it ideal for both military and civilian applications.", - "Dr. Dionne's team has come up with an ambitious mutagenic cocktail, dubbed PE065. Though its effects are wildly polymorphic and unstable, to say the least, he suggests that several such mutants could effectively check the spread of reanimated XE037 infectees. We are looking into implementation methodology.", - "We have made a fascinating discovery; by creating a miniature portal with low stability and high power, one can transpose into the 4th dimension and return immediately, but shifted by several meters. Our subjects oscillated so quickly that none were even aware that they had visited lower planes.", - "The research team headed by Dr. Isha has produced a concentrated form of mutagen that shows promising results for the treatment of many forms of disease. Testing reveals that it inhibits the body's pain responses while bolstering the immune system and natural regenerative capabilities, though a few troubling behavioral side effects have been reported.", - "Our research on teleportation has ground to a halt. For some reason, the creation of a long-range transportation device eludes us, and one can transfer no further than 30 meters.", - "I don't know how it happened, but a janitor managed to activate the portal while cleaning the lab, shifting in an assortment of prehistoric fauna. Security was called in immediately but was unable to save the janitor from being torn apart. By the time the confusion settled, all the fauna had been terminated.", - "Tests on the prehistoric fauna show extremely close genetic relationships with extant and extinct terranean animals. It might be that the portal had performed a transposition in time, unfortunately the portal device was destroyed when security put down the fauna.", - "An incident occurred in the teleportation lab, wherein a subject managed to teleport into another subject. The latter was completely destroyed from the inside out, while the former sustained little damage. I would like to explore the phenomenon further, but subjects are expensive.", - "Test subjects in the teleportation department are showing alarming symptoms. It seems prolonged rapid transposition along the 4th dimension weakens the forces holding one on this plane.", - "Catastrophe struck in our teleportation department yesterday. It seems that our test subjects are so detached from this plane that they create occasional tunnels along the 4th dimension, allowing life forms to transfer to this plane. All subjects with prolonged exposure have been terminated.", - "Our lifeform extraction program continues to produce samples of specimen XE037. It seems to be a kind of living, semi-sentient primordial ooze, and is the basis of much of the life we have found.", - "Specimen XE037, jokingly referred to as \"the blob\", has been observed entering a kind of dormant state, forming a depression in the floor. Hendelson stepped into one of these pits yesterday, and was immediately coated and attacked.", - "XE037 shows promise as a catalyst for both cloning and treatments that mimic stem cells. This is further evidence supporting Hendelson's theory of a near universal symbiotic relationship involving XE037.", - "Several of the more advanced specimens we have retrieved show stunning similarity to XE037. XE142 and XE157 in particular show the same amorphous, slime-like structure as XE037, suggesting a close genetic relationship.", - "Today we tested weaponry against XE142 and XE157, two amorphous subprime samples. Their form proved to be nearly invulnerable to projectile based weaponry, but they were susceptible to directed energy weapons and flagration.", - "Our cloning department has failed to produce results. In vats containing stem cell treatments, XE037, and control vats, the subjects simple disintegrated. This suggests that XE037, while compatible with subprime lifeforms, shows only destructive effects on prime plane lifeforms.", - "The vivisection program has shown mixed results, revealing an incredible degree of variation in subplane lifeforms. Certain specimens have an internal structure that is amazingly similar to that of mammals, while others seem to have no internal structure at all.", - "Our security department has identified several key flaws. Though our surface entrance is quite secure, there are several possible points of entry below the surface, particularly in the sewage systems.", - "Today we applied a very small sample of XE037, suspended in water, to subject TP92, prior to necessary termination. During the postmortem examination, the subject went through a revivification progress, but displayed next to no human intelligence.", - "Mendelson shows a dismaying lack of organization and security consciousness. Containment of all samples of XE037 is of critical importance, as shown by contamination experiments.", - "Mendelson has been terminated following an incident with XE037. A substantial mobile sample departed his lab and encountered our security forces. Before the sample was destroyed, it managed to kill two men. Alarmingly, their corpses displayed mobility and extreme aggression.", - "We have created a new department to investigate the effects of XE037 on the human body, specifically to examine the revivification effect observed on two prior occasions. Sadly, our human subject pool is dwindling due to the short lifespan of subjects in this program. More will be acquired soon.", - "Testing XE037 on non-human mammal subjects does not appear to display the same revivifying effect, oddly enough. Acquiring non-human subjects, sadly, is a long and costly process, and research into this area is lacking.", - "After our curious results with testing XE037 on non-human mammals, we decided to introduce the substance to some of the insects which have found their way into the lab. Horrifyingly, XE037 caused near-instant mutation and gigantism in the insects, and security intervention was required.", - "Earlier conjecture that revivification occurred only in humans and insects was premature. Exposure introduces a persistent, low level infection in all mammal subjects, but quickly enters a form of stasis and seems to go dormant.", - "The primary factor in determining revivification of mammalian subjects seems to be the amount of XE037 within the body at time of expiration. Smaller mammals such as lab rats do not obtain this critical mass of XE037 before going dormant. Larger canine subjects, however, do.", - "I swear they are talking to me. No one believes me. No one understands. They whisper to me, at night, in the dark. Please, please, make them stop.", - "Program S37ZBE, investigation of XE037 on inert human bodies, is making great strides. Recently we found that XE037 has no effect when introduced to a deceased body; revivification only occurs when the subject is exposed to XE037 prior to expiration.", - "Attempts to surpass the XE037 mammalian stasis limit have had some success. Direct subcutaneous injection of XE037 quickly spreads through the body, and while it immediately enters stasis after equalizing, it remains in the body.", - "There has been an incident in Lab 24, 2 casualties reported, one lethal. A rat involved in the stasis breaking project was hooked to a monitoring machine and left over night. Upon opening the cage, Simon Bellevue was electrocuted, and another researcher at the opposite end of the lab sustained severe current burns, despite never approaching the cage.", - "A post-mortem on the rat involved in the electrocution incident has revealed several changes to its internal anatomy centered around its connection with the monitoring device, and large buildups of XE037 were detected around the connection point.", - "There is a belief several other rat subjects experienced changes overnight as well. This hypothesis was informed when an inventory check after the incident found almost twenty rats had gone missing from their cages overnight.", - "Exposure of large quantities of XE037 to various types of radiation have shown promising results, stimulating activity and forming interesting structural changes in the subject being tested. Exposure to radiation on living subjects scheduled.", - "Exposure to radiation of test subject T3D indicates stimulation of internal XE037 deposits and a temporary lifting of the mammalian stasis condition.", - "As in the tests of isolated XE037 samples, prolonged radiation exposure of T3D has resulted in significant structural changes. These do not appear to be random. T3D appears to be in immense pain as a result of these changes, but the lack of an oral opening has rendered him unable to vocalize.", - "Subject T3D has succumbed to radiation poisoning, but not before undergoing several more physiological changes the lab boys are referring to as \"mutations\". They do not appear to be truly random, and may be an attempt by XE037 to adapt its host to an unknown stimulus.", - "Post-mortem revivification of subject T3D occurred as expected, followed by an immediate autopsy. The internal changes were significant, with large parts of the subjects internal anatomy replaced with \"organs\" of XE037 with unknown properties, primarily those known to succumb earlier to the effects of radiation poisoning.", - "Samples of XE037 from subject T3D remains extremely active. Further experimentation on induced mutation in infected individuals shows significant potential. Samples of the enhanced XE037, labeled PE012, have been sent to several researchers for further study.", - "S37ZBE, the special investigation into the effects of XE037 on inert human bodies, has made terrific discoveries. It seems that it occasionally displays a mutagenic property which manifests itself after termination of the subject, resulting in a striking variety in postmortem morphology.", - "Incidence of post-mortem mutation seems to depend on several factors - leading candidates include type and amount of damage sustained leading to expiration, embedded foreign bodies at time of revivification, proximity to other revived individuals, and the body mass of the subject.", - "Time also appears to play a large role in post-mortem revivification, as does sustained trauma insufficient to permanently disable the subject. Sufficient amounts of trauma in short periods of time lead to deactivation of XE037, but smaller amounts over several days cause it to expand.", - "S37ZBE may be put on indefinite hold shortly. Postmortem morphological changes have reached extreme levels; this morning one subject nearly doubled in size, acquiring enough strength to reduce a concrete wall to rubble. It required a 6 man team, heavily armed, to re-terminate the subject.", - "Jakobson insists that S37ZBE must continue, despite the extreme security and safety risks. Nearly half of our security forces have been redirected to the S37ZBE project, simply to deal with the occasional escape of a subject.", - "Jakobson was killed today by one of S37ZBE's subjects; ironic considering how hard he fought to keep the project active. Alarmingly, his corpse revivified immediately. This suggests that XE037 may have contaminated the lab at large.", - "Termination of a subject which was never a part of S37ZBE has confirmed my fears. XE037 has contaminated most, if not all of the laboratory, most likely via the water supply. Research has started immediately into a process to destroy XE037 within the human body.", - "Despite a wide variety of treatments, we have been completely unsuccessful in removing XE037 from human subjects. Every individual displayed revivification post termination. Interestingly, XE037 seems to be completely inert prior to termination.", - "We have finally found success in S37BEP, our emergency investigation into the destruction of XE037 in living subjects. 8 of 10 of the subjects showed no revivification, despite confirmed dosages of XE037.", - "PE062, our \"cure\" for XE037 contamination, has neared perfection. Sadly, the production of PE062 is a costly and time-consuming process. What is more, the substance shows no effect on postmortem subjects whatsoever; a substance which renders XE037 inert after it has activated would be immensely useful in the case of an outbreak.", - "An alarming discovery has been made. A colony of XE037 has formed nearly a half mile from the laboratory. It is unclear how it escaped; it is quite possible that it is in the ground water now.", - "An emergency meeting was held today to discuss the possible implications of widespread XE037 contamination. It was agreed that neutralization must be instated immediately to prevent a catastrophic event.", - "It has begun. The XE037 contamination has spread for miles, and those who have since deceased have revivified. It is my fear that extremely large populations will be decimated by this pandemic. We must find a way to remove XE037 from revivified bodies.", - "We have even more distressing news than the widespread XE037 contamination, there are reports of the XE037 mutating into various new variants. See data files on XE037a - XE037f. Research on the effects of these variants is ongoing. We do know that XE037d shows signs of PE062 immunity, and XE037b can revive various breeds of canines. However, revival is not as guaranteed as standard XE037 humanoid infection. Canine body size seems to influence the chances. See experiment tXE037b_c.", - "Today we found our solution, quite by accident. It was found that XE037 is completely removed from a revivified body following a series of extremely-high energy 4th dimensional transpositions. Unfortunately, this invariably allows subplane life forms to pass into the prime plan. The cure is worse than the disease.", - "XE037 revivification has reached critical levels, which are rapidly overwhelming the available military and regional police assets' ability to stop. Every team in the field has encountered hostile specimens, and several are no longer responding to communications. Dr. Savage has proposed a strategic redeployment to the underground complex known as the VAULT, and continuing production of PE062 there." - ] -} diff --git a/data/json/mapgen/bus_station.json b/data/json/mapgen/bus_station.json new file mode 100644 index 0000000000000..165ac1e057d89 --- /dev/null +++ b/data/json/mapgen/bus_station.json @@ -0,0 +1,150 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "bus_stat_0", "bus_stat_1" ] ], + "weight": 250, + "object": { + "fill_ter": "t_floor", + "rows": [ + "...........ss________ssssssssssssssssyyyyy___sss", + "....,,,....ss________s,;,,,;,,;,,,;,syyyyy___s,s", + "||||www||||ss________ssssssssssssssss________s;s", + "|p p|ss________________________________s,s", + "| BBB BBB |ss________________________________s,s", + "| wss________________________________s,s", + "| BBB BBB wss______________________yy________s;s", + "| wss______________________yy________s,s", + "| BBB BBB |ss______________________yy________s,s", + "| |Gs______________________yy________s;s", + "| BBB BBB |Gs______________________yy________s,s", + "| +ss________''''''''''''''''________s,s", + "|8 +ss________'I''bbb''bbb''I'________s;s", + "|9 r Y|ss________________________________s,s", + "||+|||ddd||ss________________________________s,s", + "|S:S|x h r|ss________________________________s;s", + "|:::|ddd cwss______________________yy________s,s", + "|+|+|||| cwss______________________yy________s,s", + "|:|:|FF| cwss______________________yy________s,s", + "|T|T|l:| |ss______________________yy________s;s", + "|||||i:+ +ss______________________yy________s,s", + "...4|||||||ssssssssss''''''''''''''''sssssssssss", + "..........fssssssssss'I''bbb''bbb''I'sssssssssss", + "..........ffffffffffffffffffffffffffffffffffffff" + ], + "terrain": { + " ": "t_floor", + "+": "t_door_c", + ".": [ [ "t_dirt", 5 ], [ "t_grass", 16 ], [ "t_grass_long", 5 ] ], + ",": [ + [ "t_grass_long", 35 ], + [ "t_grass", 20 ], + [ "t_shrub", 20 ], + [ "t_shrub_rose", 20 ], + [ "t_shrub_lilac", 20 ], + [ "t_tree_young", 20 ], + [ "t_grass_tall", 20 ], + [ "t_grass_long", 20 ], + [ "t_underbrush", 20 ], + [ "t_shrub_hydrangea", 20 ], + [ "t_shrub_raspberry", 20 ] + ], + ";": [ [ "t_tree", 5 ], [ "t_tree_willow", 3 ], [ "t_tree_birch", 3 ], [ "t_tree_maple", 3 ], [ "t_tree_pine", 5 ] ], + "w": "t_window", + "_": "t_pavement", + "y": "t_pavement_y", + "s": "t_concrete", + "G": "t_concrete", + "'": "t_thconc_floor", + "b": "t_thconc_floor", + "4": "t_gutter_downspout", + "|": "t_wall", + "S": "t_linoleum_white", + ":": "t_linoleum_white", + "T": "t_linoleum_white", + "F": "t_linoleum_white", + "l": "t_linoleum_white", + "x": "t_console_broken", + "i": "t_ladder_up", + "I": "t_column", + "f": "t_chainfence" + }, + "furniture": { + "c": "f_counter", + "S": "f_sink", + "B": "f_bench", + "b": "f_bench", + "l": "f_locker", + "d": "f_desk", + "r": "f_trashcan", + "p": [ "f_indoor_plant", "f_indoor_plant_y" ], + "h": "f_chair", + "Y": "f_rack_coat", + "F": "f_filing_cabinet", + "G": "f_bulletin" + }, + "items": { + "d": { "item": "office", "chance": 45, "repeat": [ 1, 2 ] }, + "Y": { "item": "jackets", "chance": 55, "repeat": [ 1, 6 ] }, + "l": { "item": "cleaning", "chance": 75, "repeat": [ 1, 3 ] }, + "r": { "item": "trash", "chance": 60, "repeat": [ 1, 2 ] }, + "B": [ { "item": "novels", "chance": 10 }, { "item": "jackets", "chance": 5 } ], + "F": { "item": "file_room", "chance": 70, "repeat": [ 1, 3 ] } + }, + "place_monsters": [ { "monster": "GROUP_ZOMBIE", "x": [ 3, 17 ], "y": [ 13, 15 ] } ], + "place_vehicles": [ + { "vehicle": "buses", "x": 35, "y": [ 6, 7 ], "chance": 35, "status": 0, "rotation": 360 }, + { "vehicle": "buses", "x": 35, "y": [ 16, 17 ], "chance": 35, "status": 0, "rotation": 360 } + ], + "vendingmachines": { "8": { "item_group": "vending_drink" }, "9": { "item_group": "vending_food" } }, + "toilets": { "T": { } } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "bus_stat_0_roof", "bus_stat_1_roof" ] ], + "weight": 100, + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + "................................................", + "................................................", + "-----------.....................................", + "| 3.....................................", + "| 3.....................................", + "| ooooo 3.....................................", + "| ooooo 3.....................................", + "| 3.....................................", + "| A & 3.....................................", + "| 3.....................................", + "| 3.....................................", + "| ooooo 3..........''''''''''''''''...........", + "| ooooo 3..........''''''''''''''''...........", + "| 3.....................................", + "| 3.....................................", + "| 3.....................................", + "| A X : 3.....................................", + "| 3.....................................", + "| 3.....................................", + "| 3.....................................", + "22222! 3.....................................", + "....5222222..........''''''''''''''''...........", + ".....................''''''''''''''''...........", + "................................................" + ], + "terrain": { + " ": "t_flat_roof", + ".": "t_open_air", + "-": "t_gutter_west", + "|": "t_gutter_west", + "3": "t_gutter_east", + "2": "t_gutter_south", + "5": "t_gutter_drop", + "!": "t_ladder_down", + "o": "t_glass_roof" + }, + "furniture": { ":": "f_cellphone_booster", "X": "f_small_satelitte_dish", "&": "f_roof_turbine_vent", "A": "f_air_conditioner" } + } + } +] diff --git a/data/json/mapgen/campground.json b/data/json/mapgen/campground.json index d94e86f3021e9..56884eb82450c 100644 --- a/data/json/mapgen/campground.json +++ b/data/json/mapgen/campground.json @@ -2,385 +2,164 @@ { "method": "json", "object": { - "furniture": { - "#": "f_canvas_wall", - "&": "f_sink", - "+": [ "f_canvas_door", "f_canvas_door_o" ], - ".": "f_null", - ";": "f_groundsheet", - "B": "f_brazier", - "S": "f_shower", - "T": "f_null", - "_": "f_null", - "b": "f_bench", - "d": "f_null", - "s": "f_null", - "t": "f_table", - "|": "f_null" - }, - "place_items": [ - { "chance": 50, "item": "camping", "x": 3, "y": 8 }, - { "chance": 50, "item": "camping", "x": 9, "y": 3 }, - { "chance": 30, "repeat": [ 1, 3 ], "item": "cannedfood", "x": 3, "y": 9 }, - { "chance": 30, "repeat": [ 1, 3 ], "item": "cannedfood", "x": 10, "y": 3 }, - { "chance": 30, "item": "misc_smoking", "x": 9, "y": 3 }, - { "chance": 30, "item": "barbecue", "x": 4, "y": 13 }, - { "chance": 30, "item": "barbecue", "x": 23, "y": 3 }, - { "chance": 50, "repeat": [ 2, 4 ], "item": "clothing_male", "x": 5, "y": 8 }, - { "chance": 50, "repeat": [ 2, 4 ], "item": "clothing_male", "x": 9, "y": 5 }, - { "chance": 50, "repeat": [ 2, 4 ], "item": "clothing_female", "x": 5, "y": 9 }, - { "chance": 50, "repeat": [ 2, 4 ], "item": "clothing_female", "x": 10, "y": 5 } - ], - "place_monsters": [ - { "chance": 35, "density": 1, "monster": "CAMPERS", "x": [ 8, 18 ], "y": [ 7, 22 ] }, - { "monster": "GROUP_PARK_ANIMAL", "x": [ 2, 17 ], "y": [ 2, 15 ], "repeat": [ 0, 2 ] } - ], - "place_vehicles": [ - { "chance": 35, "fuel": 15, "rotation": 270, "status": -1, "vehicle": "campground_vehicles", "x": 16, "y": 2 }, - { "chance": 0, "fuel": -1, "rotation": 180, "status": -1, "vehicle": "campground_vehicles", "x": 3, "y": 19 } - ], - "rows": [ - "_____________________sss", - "_______ssssssss....sssbb", - "_______s####ss.....ssstt", - "_______s#;;#s.......sstt", - "_______s#;;+ss......ssbb", - "_______s#;;#ss......ssss", - "_sssssss####sss......sBs", - "_s#####ssssss_s......sss", - "_s#;;;#s______s.........", - "_s#;;;#s_____ss.........", - "_s##+##s_____...........", - "_sssssss___s............", - "_sbttbsss__.............", - "_sbttbsBsss...........s.", - "_sbttbssss........ss_ss.", - "_sbttbsss........s____s.", - "_ssssssss.......s_____s.", - "_s.............s___ssss.", - "_s.............____s|||T", - "_s............s____s|SdT", - "_s............s____s|||T", - "_s............s____s|SdT", - "_sssssss......_____s|||T", - "________s....._____s|&TT" - ], - "terrain": { - "#": "t_grass", - "&": "t_thconc_floor", - "+": "t_grass", - ".": [ "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_grass" ], - ";": "t_grass", - "B": "t_grass", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "_": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_tree_pine", - "t_tree_pine", - "t_tree", - "t_tree_young", - "t_underbrush", - "t_underbrush" + "items": { + ";": [ + { "item": "dresser", "chance": 5, "repeat": [ 1, 2 ] }, + { "item": "creepy", "chance": 2 }, + { "item": "camping", "chance": 5 }, + { "item": "archery", "chance": 2 } ], - "b": "t_grass", - "d": [ "t_door_c", "t_door_o" ], - "s": "t_grass", - "t": "t_grass", - "|": "t_wall" - } - }, - "om_terrain": "campground_1a", - "type": "mapgen", - "weight": 100 - }, - { - "method": "json", - "object": { - "furniture": { - "#": "f_bench", - "&": "f_sink", - "+": "f_null", - "-": "f_null", - ".": "f_null", - "D": "f_desk", - "S": "f_shower", - "T": "f_null", - "_": "f_null", - "b": "f_brazier", - "c": "f_chair", - "d": "f_null", - "f": "f_null", - "s": "f_null", - "t": "f_table", - "w": "f_null", - "|": "f_null" - }, - "place_items": [ { "chance": 20, "item": "barbecue", "x": 17, "y": 14 }, { "chance": 5, "item": "creepy", "x": 2, "y": 21 } ], - "place_vehicles": [ { "chance": 25, "fuel": 20, "rotation": 0, "status": 0, "vehicle": "lux_rv", "x": 20, "y": 19 } ], - "rows": [ - "sss_ss_......sssssssss__", - "##s__ss......-ww-ssss___", - "tts__ss......dffdsss____", - "tts__ss......wDcwsss____", - "##s__ss......-ww-sss____", - "sss__ss......sssssss____", - "____sss......ssssss_____", - "____ss.......sssss______", - ".............___________", - ".............s__________", - ".............___________", - ".............sssssss____", - ".............ss#tt#s____", - ".sss_s.......ss#tt#sss__", - ".s____s......ss#tt#sbs__", - ".s____s......ss#tt#sss__", - ".s_____.......ssssssss__", - ".ssss__...............__", - "T|||s__...............__", - "T+S|s__...............__", - "T|||s__...............__", - "T+S|s__...............__", - "T|||s__...............__", - "TT&|s__......ss_________" - ], - "terrain": { - "#": "t_grass", - "&": "t_thconc_floor", - "+": [ "t_door_c", "t_door_o" ], - "-": "t_brick_wall", - ".": [ "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_grass" ], - "D": "t_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "_": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_tree_pine", - "t_tree_pine", - "t_tree", - "t_tree_young", - "t_underbrush", - "t_underbrush" + ",": [ + { "item": "dresser", "chance": 5, "repeat": [ 1, 2 ] }, + { "item": "creepy", "chance": 2 }, + { "item": "camping", "chance": 5 }, + { "item": "archery", "chance": 2 } ], - "b": "t_grass", - "c": "t_floor", - "d": "t_door_c", - "f": "t_floor", - "s": "t_grass", - "t": "t_grass", - "w": "t_window", - "|": "t_wall" - } - }, - "om_terrain": "campground_1b", - "type": "mapgen", - "weight": 100 - }, - { - "method": "json", - "object": { - "furniture": { - "#": "f_canvas_wall", - "&": "f_toilet", - "+": "f_null", - ".": "f_null", - ";": "f_groundsheet", - "B": "f_brazier", - "S": "f_sink", - "T": "f_null", - "_": "f_null", - "b": "f_bench", - "c": [ "f_canvas_door", "f_canvas_door_o" ], - "s": "f_null", - "t": "f_table", - "|": "f_null" + "t": [ + { "item": "barbecue", "chance": 5, "repeat": [ 1, 2 ] }, + { "item": "misc_smoking", "chance": 2 }, + { "item": "cannedfood", "chance": 2, "repeat": [ 1, 2 ] } + ] }, - "place_items": [ - { "chance": 50, "item": "camping", "x": 23, "y": 19 }, - { "chance": 50, "item": "camping", "x": 2, "y": 16 }, - { "chance": 30, "repeat": [ 1, 3 ], "item": "cannedfood", "x": 2, "y": 16 }, - { "chance": 30, "repeat": [ 1, 3 ], "item": "cannedfood", "x": 23, "y": 19 }, - { "chance": 30, "item": "misc_smoking", "x": 11, "y": 19 }, - { "chance": 30, "item": "barbecue", "x": 11, "y": 17 }, - { "chance": 30, "item": "barbecue", "x": 4, "y": 4 }, - { "chance": 50, "repeat": [ 2, 4 ], "item": "clothing_male", "x": 22, "y": 21 }, - { "chance": 50, "repeat": [ 2, 4 ], "item": "clothing_male", "x": 4, "y": 16 }, - { "chance": 5, "item": "creepy", "x": 2, "y": 17 }, - { "chance": 50, "repeat": [ 2, 4 ], "item": "clothing_female", "x": 23, "y": 21 }, - { "chance": 50, "repeat": [ 2, 4 ], "item": "clothing_female", "x": 4, "y": 17 }, - { "chance": 20, "item": "archery", "x": 22, "y": 19 } - ], - "place_toilets": [ { "x": 21, "y": 2 }, { "x": 21, "y": 4 } ], "place_monsters": [ - { "chance": 35, "density": 1, "monster": "CAMPERS", "x": [ 3, 17 ], "y": [ 8, 22 ] }, - { "monster": "GROUP_PARK_ANIMAL", "x": [ 2, 17 ], "y": [ 7, 22 ], "repeat": [ 0, 2 ] } + { "chance": 50, "density": 1, "monster": "CAMPERS", "x": [ 8, 18 ], "y": [ 7, 22 ] }, + { "monster": "GROUP_PARK_ANIMAL", "x": [ 2, 17 ], "y": [ 2, 15 ], "repeat": [ 0, 2 ] }, + { "chance": 50, "density": 1, "monster": "CAMPERS", "x": [ 3, 17 ], "y": [ 32, 46 ] }, + { "monster": "GROUP_PARK_ANIMAL", "x": [ 2, 17 ], "y": [ 31, 46 ], "repeat": [ 0, 2 ] }, + { "monster": "GROUP_PARK_ANIMAL", "x": [ 30, 46 ], "y": [ 31, 46 ], "repeat": [ 0, 2 ] } ], "place_vehicles": [ - { "chance": 0, "fuel": -1, "rotation": 0, "status": -1, "vehicle": "campground_vehicles", "x": 7, "y": 10 }, + { "chance": 25, "fuel": 15, "rotation": 270, "status": -1, "vehicle": "campground_vehicles", "x": 16, "y": 2 }, + { "chance": 25, "fuel": -1, "rotation": 180, "status": -1, "vehicle": "campground_vehicles", "x": 5, "y": 19 }, + { "chance": 50, "fuel": 20, "rotation": 0, "status": 0, "vehicle": "lux_rv", "x": 43, "y": 18 }, + { + "chance": 25, + "fuel": 15, + "rotation": 180, + "status": -1, + "vehicle": "campground_vehicles", + "x": 26, + "y": 14 + }, + { + "chance": 25, + "fuel": 15, + "rotation": 360, + "status": -1, + "vehicle": "campground_vehicles", + "x": 18, + "y": 32 + }, + { "chance": 25, "fuel": -1, "rotation": 0, "status": -1, "vehicle": "campground_vehicles", "x": 7, "y": 34 }, { - "chance": 50, + "chance": 25, "fuel": -1, "rotation": 270, "status": -1, "vehicle": "campground_vehicles", "x": 17, - "y": 16 - } + "y": 40 + }, + { "chance": 10, "fuel": -1, "rotation": 0, "status": -1, "vehicle": "rv", "x": 42, "y": 27 }, + { "chance": 25, "fuel": 15, "rotation": 90, "status": -1, "vehicle": "campground_vehicles", "x": 35, "y": 43 } ], "rows": [ - "........._____.....s|STT", - "..ssssss._____.....s|||T", - "..sbbbbss_____.....s|&+T", - "..sttttss_____.....s|||T", - "..sttttss_____.....s|&+T", - "..sbbbbss______....s|||T", - ".ssssssss______s...ssss_", - ".sBsssss________......s_", - ".sssss__________s.....s_", - "..ss_____________s....s_", - "..s________________s..s_", - "..s__________________ss_", - "..s_______ss____________", - "..ss____s...s___________", - "ssssssss..ssss__________", - "s##c##s.sssBsss_________", - "s#;;;#s.sssssss_________", - "s#;;;#s.sbttbss_____ssss", - "s#####s.sbttbss_____s###", - "sssssss.sbttbss_____s#;;", - "........sbttbss_____sc;;", - "........sssssss_____s#;;", - "....................s###", - "....................ssss" + "_____________________ssssss_ss_......sssssssss__", + "_______sssssssssssssssbbbbs__ss......|ww||||||||", + "________#####ss....ssstttts__ss......+ff|&+TT+&|", + "________#;;;#s......sstttts__ss......wDh|||TT|||", + "________#;,;cs......ssbbbbs__ss......|ww|&+TT+&|", + "________#;;;#s......sssssss__ss......TTT|||TT|||", + "_s#####s#####ss......sBs____sss......TTT+TTTTTT|", + "_s#;;;#ssssss_s......sss____ss.......TTT|SSTTSS|", + "_s#;,;#s______s......................ssO|||TT|||", + "_s#;;;#s_____ss......................s__|&+TT+&|", + "_s##c##s____s........................s__|||TT|||", + "_sssssss___s.........................s__|&+TT+&|", + "_sbttbsss_s..........................s__||||||||", + "_sbttbsBsss...._ss...................ss_________", + "_sbttbssss....____s...................s_________", + "_sbttbsss....s_#####.......sss.........sHssHss__", + "_ssssssss....__#;;;#.......s__s.............nH__", + "_s...........__#;,;c.......ss__...............__", + "_s...........__#;;;#..bbbb..s__...............__", + "_s...........__#####..tttt..s__...............__", + "_s...........s_sssss..tttt..___...............__", + "_s............__sss...bbbb..._s...............__", + "_sssssss......__sss.......H.s__...............__", + "________s.....___s.H........s__......ss_________", + "________s.....s__s.n...o..nHs__......s__________", + "__sssssss.....s__H.........ss__s.....sssssssss__", + "__sbbbbss......__.....H...ssss__..............__", + "__sttttss......___.......H#####_s.............__", + "__sttttss......s__......ss#;;;#__.............__", + "__sbbbbss......s__......ssc;,;#__.............__", + "_ssssssss.......___.....ss#;;;#__.............__", + "_sBsssss.........__s....ss#####__....ssssssss___", + "_sssss..........._......._______s....sbttbsBs___", + "__ss.......................____.....ssbttbsss___", + "__s.................................ssbttbs_____", + "__s................................._sbttbs_____", + "__s.......ss.......................s_ssssss_____", + "__ss....s____s.....................s____________", + "ssssssss__ssss......................s___________", + "s##c##s_sssBsss......................s__________", + "s#;;;#s_sssssss.......................sssssss___", + "s#;,;#s_sbttbss.....sssssssssss........s#####___", + "s#;;;#s_sbttbss.....s#####sbbbbs.......s#;;;#___", + "s#####s_sbttbss.....s#;;;#sttttss.....ssc;,;#___", + "________sbttbss.....sc;,;#sttttsss...sss#;;;#___", + "________sssssss.....s#;;;#sbbbbssBssssss#####___", + "______________sssssss#####sssssssss____ssssss___", + "____________________ssssss______________________" ], - "terrain": { - "#": "t_grass", - "&": "t_thconc_floor", - "+": [ "t_door_c", "t_door_o" ], - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_tree_pine", - "t_tree_pine", - "t_tree", - "t_tree_young", - "t_underbrush", - "t_underbrush" - ], - ";": "t_grass", - "B": "t_grass", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "_": [ "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_grass" ], - "b": "t_grass", - "c": "t_grass", - "s": "t_grass", - "t": "t_grass", - "|": "t_wall" - } + "palettes": [ "campground_palette" ] }, - "om_terrain": "campground_2a", + "om_terrain": [ [ "campground_1a", "campground_1b" ], [ "campground_2a", "campground_2b" ] ], "type": "mapgen", "weight": 100 }, { "method": "json", + "om_terrain": [ "campground_roof" ], + "type": "mapgen", + "weight": 100, "object": { - "furniture": { - "#": "f_canvas_wall", - "&": "f_toilet", - "+": "f_null", - ".": "f_null", - ";": "f_groundsheet", - "B": "f_brazier", - "S": "f_sink", - "T": "f_null", - "_": "f_null", - "b": "f_bench", - "c": [ "f_canvas_door", "f_canvas_door_o" ], - "s": "f_null", - "t": "f_table", - "|": "f_null" - }, - "place_items": [ - { "chance": 50, "item": "camping", "x": 18, "y": 20 }, - { "chance": 40, "repeat": [ 1, 4 ], "item": "cannedfood", "x": 17, "y": 20 }, - { "chance": 20, "item": "barbecue", "x": 4, "y": 20 }, - { "chance": 20, "item": "barbecue", "x": 16, "y": 8 }, - { "chance": 50, "repeat": [ 2, 4 ], "item": "clothing_male", "x": 18, "y": 18 }, - { "chance": 5, "item": "creepy", "x": 2, "y": 17 }, - { "chance": 50, "repeat": [ 2, 4 ], "item": "clothing_female", "x": 18, "y": 18 } - ], - "place_toilets": [ { "x": 2, "y": 2 }, { "x": 2, "y": 4 } ], - "place_monsters": [ { "monster": "GROUP_PARK_ANIMAL", "x": [ 6, 22 ], "y": [ 7, 22 ], "repeat": [ 0, 2 ] } ], - "place_vehicles": [ - { "chance": 60, "fuel": -1, "rotation": 0, "status": -1, "vehicle": "rv", "x": 20, "y": 3 }, - { "chance": 55, "fuel": 15, "rotation": 90, "status": -1, "vehicle": "campground_vehicles", "x": 11, "y": 19 } - ], "rows": [ - "TTS|s__......s__________", - "T|||s__......ss_________", - "T+&|s__...............__", - "T|||s__...............__", - "T+&|s__...............__", - "T|||s__...............__", - ".ssss__...............__", - ".s_____......ssssssss___", - ".s____s......sbttbsBs___", - ".s____......ssbttbsss___", - ".s___s......ssbttbs_____", - ".sss........_sbttbs_____", - "...........s_ssssss_____", - "...........s____________", - "............s___________", - ".............s__________", - "..............sssssss___", - "sssssss........s####s___", - "#ssbbbbs.......s#;;#s___", - "#ssttttss.....ssc;;#s___", - "#ssttttsss...sss#;;#s___", - "#ssbbbbssBssssss####s___", - "#ssssssssss____ssssss___", - "ss______________________" + " ", + " ___________", + " |.........I", + " |.........I", + " |.........I", + " |.........I", + " |.........I", + " ---o......I", + " |......I", + " |......I", + " |......I", + " |......I", + " --------", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " ], "terrain": { - "#": "t_grass", - "&": "t_thconc_floor", - "+": [ "t_door_c", "t_door_o" ], - ".": [ "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_grass" ], - ";": "t_grass", - "B": "t_grass", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "_": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_tree_pine", - "t_tree_pine", - "t_tree", - "t_tree_young", - "t_underbrush", - "t_underbrush" - ], - "b": "t_grass", - "c": "t_grass", - "s": "t_grass", - "t": "t_grass", - "|": "t_wall" + ".": "t_flat_roof", + " ": "t_open_air", + "_": "t_gutter_north", + "-": "t_gutter_south", + "|": "t_gutter_west", + "I": "t_gutter_east", + "o": "t_gutter_drop" } - }, - "om_terrain": "campground_2b", - "type": "mapgen", - "weight": 100 + } } ] diff --git a/data/json/mapgen/campground_npc.json b/data/json/mapgen/campground_npc.json new file mode 100644 index 0000000000000..53ddf01f49b39 --- /dev/null +++ b/data/json/mapgen/campground_npc.json @@ -0,0 +1,129 @@ +[ + { + "method": "json", + "object": { + "items": { + ";": [ + { "item": "dresser", "chance": 5, "repeat": [ 1, 2 ] }, + { "item": "camping", "chance": 5 }, + { "item": "archery", "chance": 2 } + ], + ",": [ + { "item": "dresser", "chance": 5, "repeat": [ 1, 2 ] }, + { "item": "camping", "chance": 5 }, + { "item": "archery", "chance": 2 } + ], + "t": [ { "item": "misc_smoking", "chance": 2 }, { "item": "cannedfood", "chance": 2, "repeat": [ 1, 2 ] } ] + }, + "place_vehicles": [ + { "chance": 5, "fuel": 15, "rotation": 270, "status": -1, "vehicle": "campground_vehicles", "x": 16, "y": 2 }, + { "chance": 5, "fuel": -1, "rotation": 180, "status": -1, "vehicle": "campground_vehicles", "x": 5, "y": 19 }, + { "chance": 20, "fuel": 20, "rotation": 0, "status": 0, "vehicle": "lux_rv", "x": 43, "y": 18 }, + { "chance": 5, "fuel": 15, "rotation": 180, "status": -1, "vehicle": "campground_vehicles", "x": 26, "y": 14 }, + { "chance": 5, "fuel": 15, "rotation": 360, "status": -1, "vehicle": "campground_vehicles", "x": 18, "y": 32 }, + { "chance": 5, "fuel": -1, "rotation": 0, "status": -1, "vehicle": "campground_vehicles", "x": 7, "y": 34 }, + { "chance": 5, "fuel": -1, "rotation": 270, "status": -1, "vehicle": "campground_vehicles", "x": 17, "y": 40 }, + { "chance": 5, "fuel": -1, "rotation": 0, "status": -1, "vehicle": "rv", "x": 42, "y": 27 }, + { "chance": 5, "fuel": 15, "rotation": 90, "status": -1, "vehicle": "campground_vehicles", "x": 35, "y": 43 } + ], + "rows": [ + "_____________________ssssss_ss_......sssssssss__", + "_______sssssssssssssssbbbbs__ss......|ww||||||||", + "________#####ss....ssstttts__ss......+ff|&+TT+&|", + "________#;;;#s......sstttts__ss......wDh|||TT|||", + "________#;,;cs......ssbbbbs__ss......|ww|&+TT+&|", + "________#;;;#s......sssssss__ss......TTT|||TT|||", + "_s#####s#####ss......sBs____sss......TTT+TTTTTT|", + "_s#;;;#ssssss_s......sss____ss.......TTT|SSTTSS|", + "_s#;,;#s______s......................ssO|||TT|||", + "_s#;;;#s_____ss......................s__|&+TT+&|", + "_s##c##s____s........................s__|||TT|||", + "_sssssss___s.........................s__|&+TT+&|", + "_sbttbsss_s..........................s__||||||||", + "_sbttbsBsss...._ss...................ss_________", + "_sbttbssss....____s...................s_________", + "_sbttbsss....s_#####.......sss.........sHssHss__", + "_ssssssss....__#;;;#.......s__s.............nH__", + "_s...........__#;,;c.......ss__...............__", + "_s...........__#;;;#..bbbb..s__...............__", + "_s...........__#####..tttt..s__...............__", + "_s...........s_sssss..tttt..___...............__", + "_s............__sss...bbbb..._s...............__", + "_sssssss......__sss.......H.s__...............__", + "________s.....___s.H........s__......ss_________", + "________s.....s__s.n...o..nHs__......s__________", + "__sssssss.....s__H.........ss__s.....sssssssss__", + "__sbbbbss......__.....H...ssss__..............__", + "__sttttss......___.......H#####_s.............__", + "__sttttss......s__......ss#;;;#__.............__", + "__sbbbbss......s__......ssc;,;#__.............__", + "_ssssssss.......___.....ss#;;;#__.............__", + "_sBsssss.........__s....ss#####__....ssssssss___", + "_sssss..........._......._______s....sbttbsBs___", + "__ss.......................____.....ssbttbsss___", + "__s.................................ssbttbs_____", + "__s................................._sbttbs_____", + "__s.......ss.......................s_ssssss_____", + "__ss....s____s.....................s____________", + "ssssssss__ssss......................s___________", + "s##c##s_sssBsss......................s__________", + "s#;;;#s_sssssss.......................sssssss___", + "s#;,;#s_sbttbss.....sssssssssss........s#####___", + "s#;;;#s_sbttbss.....s#####sbbbbs.......s#;;;#___", + "s#####s_sbttbss.....s#;;;#sttttss.....ssc;,;#___", + "________sbttbss.....sc;,;#sttttsss...sss#;;;#___", + "________sssssss.....s#;;;#sbbbbssBssssss#####___", + "______________sssssss#####sssssssss____ssssss___", + "____________________ssssss______________________" + ], + "palettes": [ "campground_palette" ], + "place_npcs": [ ] + }, + "om_terrain": [ [ "campground_1a_npc", "campground_1b_npc" ], [ "campground_2a_npc", "campground_2b_npc" ] ], + "type": "mapgen", + "weight": 100 + }, + { + "method": "json", + "om_terrain": [ "campground_roof_npc" ], + "type": "mapgen", + "weight": 100, + "object": { + "rows": [ + " ", + " ___________", + " |.........I", + " |.........I", + " |.........I", + " |.........I", + " |.........I", + " ---o......I", + " |......I", + " |......I", + " |......I", + " |......I", + " --------", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "terrain": { + ".": "t_flat_roof", + " ": "t_open_air", + "_": "t_gutter_north", + "-": "t_gutter_south", + "|": "t_gutter_west", + "I": "t_gutter_east", + "o": "t_gutter_drop" + } + } + } +] diff --git a/data/json/mapgen/cs_sex_shop.json b/data/json/mapgen/cs_sex_shop.json index 6dec4b9860832..9fbb5134ffa75 100644 --- a/data/json/mapgen/cs_sex_shop.json +++ b/data/json/mapgen/cs_sex_shop.json @@ -26,7 +26,8 @@ [ "leather_collar", 20 ], [ "bondage_mask", 20 ], [ "bullwhip", 20 ], - [ "candle", 20 ] + [ "candle", 20 ], + [ "condom", 20 ] ] }, { diff --git a/data/json/mapgen/dojo.json b/data/json/mapgen/dojo.json index b24af5498fc45..fe23f2f623571 100644 --- a/data/json/mapgen/dojo.json +++ b/data/json/mapgen/dojo.json @@ -23,7 +23,10 @@ [ "zubon_gi", 25 ], [ "hakama_gi", 10 ], [ "mouthpiece", 5 ], - [ "obi_gi", 10 ] + [ "obi_gi", 10 ], + [ "geta", 1 ], + [ "haori", 1 ], + [ "yukata", 1 ] ] }, { diff --git a/data/json/mapgen/evac_center.json b/data/json/mapgen/evac_center.json deleted file mode 100644 index 1e622cb32a5db..0000000000000 --- a/data/json/mapgen/evac_center.json +++ /dev/null @@ -1,1039 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_1" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "..........._____________", - "..........______________", - "........._______________", - "........________________", - "......._________________", - "......__________________", - "......__________________", - "......__________,,,_,,,_", - "......_________,,,,_,,,_", - "......________,,,_______", - "......_______,,,________", - "......_______,,_________", - "......__________________", - "......_______,,_________", - "......_______,,_________", - "......_______,,_________", - "......__________________", - "......_______,,________s", - "......_______,,_______ss" - ], - "palettes": [ "evac_center" ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_2" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - ",,,_,,,_,,,_,,,_,,,_,,,_", - ",,,_,,,_,,,_,,,_,,,_,,,_", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss" - ], - "palettes": [ "evac_center" ], - "place_vehicles": [ { "vehicle": "schoolbus", "x": 18, "y": 18, "chance": 75, "rotation": 0 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_3" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - ",,,_,,,_,,,_,,,_,,,_,,,_", - ",,,_,,,_,,,_,,,_,,,_,,,_", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "ss,,,,,,,,,,,,,,,,,,,,ss", - "sss,_,_,_,_,_,_,_,_,_sss", - "ssss,,,,,,,,,,,,,,,,ssss" - ], - "palettes": [ "evac_center" ], - "place_vehicles": [ { "vehicle": "car", "x": 10, "y": 23, "chance": 75, "rotation": 270 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_4" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - ",,,_,,,_,,,_,,,_,,,_,,,_", - ",,,_,,,_,,,_,,,_,,,_,,,_", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss" - ], - "palettes": [ "evac_center" ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_5" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "_____________...........", - "______________..........", - "_______________.........", - "________________........", - "_________________.......", - "__________________......", - "__________________......", - ",,,_,,,,__________......", - ",,,_,,,,,_________......", - "_______,,,________......", - "________,,,_______......", - "_________,,_______......", - "__________________......", - "_________,,_______......", - "_________,,_______......", - "_________,,_______......", - "__________________......", - "s________,,_______......", - "ss_______,,_______......" - ], - "palettes": [ "evac_center" ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_6" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "......_______,,_______ss", - "......________________ss", - "......_______,,_______ss", - "......_______,,_______ss", - "......_______,,_______ss", - "......________________ss", - "......_______,,_______ss", - "......_______,,_______ss", - "......_______,,_______ss", - "......________________ss", - "......_______,,_______ss", - "......_______,,_______ss", - "......_______,,_______ss", - "......________________ss", - "......_______,,_______ss", - "......_______,,_______ss", - "......_______,,_______ss", - "......________________ss", - "......_______,,_______ss", - "......_______,,_______ss", - "......_______,,_______ss", - "......________________ss", - "......_______,,_______ss", - "......_______,,_______ss" - ], - "palettes": [ "evac_center" ], - "place_vehicles": [ { "vehicle": "schoolbus", "x": 21, "y": 13, "chance": 75, "rotation": 270 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_7" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "ss......................", - "s.......................", - "s....######!!####!!#####", - "s...#######11####11#####", - "s...### #", - "s...## ", - "s...## L L L L L ", - "s...## @ @ @ @ @ ", - "s...## @ @2 @ @ @ ", - "s...!1 ", - "s...!1 ", - "s...## L L L L L ", - "s...## @ @ @ @ @ ", - "s...## @ @ @ @ @ 2 ", - "s...## ", - "s...!1 ", - "s...!1 L L2 L L #", - "s...## @ @ @ @ #", - "s...## @ @ @ @ V", - "s...## V", - "s...## V", - "s...### DD #", - "s...#############++##++#", - "s....#########t+ S# #" - ], - "palettes": [ "evac_center" ], - "place_items": [ - { "item": "bed", "x": [ 8, 8 ], "y": [ 7, 8 ], "chance": 80 }, - { "item": "bed", "x": [ 8, 8 ], "y": [ 12, 13 ], "chance": 80 }, - { "item": "bed", "x": [ 8, 8 ], "y": [ 17, 18 ], "chance": 80 }, - { "item": "bed", "x": [ 11, 11 ], "y": [ 7, 8 ], "chance": 80 }, - { "item": "bed", "x": [ 11, 11 ], "y": [ 12, 13 ], "chance": 80 }, - { "item": "bed", "x": [ 11, 11 ], "y": [ 17, 18 ], "chance": 80 }, - { "item": "bed", "x": [ 14, 14 ], "y": [ 7, 8 ], "chance": 80 }, - { "item": "bed", "x": [ 14, 14 ], "y": [ 12, 13 ], "chance": 80 }, - { "item": "bed", "x": [ 14, 14 ], "y": [ 17, 18 ], "chance": 80 }, - { "item": "bed", "x": [ 17, 17 ], "y": [ 7, 8 ], "chance": 80 }, - { "item": "bed", "x": [ 17, 17 ], "y": [ 12, 13 ], "chance": 80 }, - { "item": "bed", "x": [ 17, 17 ], "y": [ 17, 18 ], "chance": 80 }, - { "item": "bed", "x": [ 20, 20 ], "y": [ 7, 8 ], "chance": 80 }, - { "item": "bed", "x": [ 20, 20 ], "y": [ 12, 13 ], "chance": 80 }, - { "item": "allclothes", "x": [ 8, 20 ], "y": [ 6, 6 ], "chance": 60 }, - { "item": "allclothes", "x": [ 8, 20 ], "y": [ 11, 11 ], "chance": 60 }, - { "item": "allclothes", "x": [ 8, 17 ], "y": [ 16, 16 ], "chance": 60 }, - { "item": "trash", "x": [ 13, 14 ], "y": 21, "chance": 60, "repeat": [ 1, 2 ] } - ], - "place_npcs": [ - { "class": "refugee_JennyForcette", "x": 8, "y": 8 }, - { "class": "refugee_VanessaToby", "x": 8, "y": 17 }, - { "class": "refugee_DracoDune", "x": 9, "y": 21 }, - { "class": "refugee_AleeshaSeward", "x": 11, "y": 7 }, - { "class": "refugee_PabloNunez", "x": 11, "y": 12 }, - { "class": "refugee_DanaNunez", "x": 11, "y": 13 }, - { "class": "refugee_AlonsoLautrec", "x": 16, "y": 23 }, - { "class": "refugee_MangalpreetSingh", "x": 16, "y": 5 }, - { "class": "refugee_MandeepSingh", "x": 17, "y": 5 }, - { "class": "refugee_GuneetSingh", "x": 19, "y": 4 }, - { "class": "refugee_BorisBorichenko", "x": 20, "y": 12 }, - { "class": "refugee_StanBorichenko", "x": 21, "y": 12 }, - { "class": "refugee_GarryVilleneuve", "x": 21, "y": 13 }, - { "class": "refugee_JohnClemens", "x": 22, "y": 3 }, - { "class": "guard", "x": 19, "y": 21 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_8" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".sss________________sss.", - "...ss______________ss...", - "#..ss______________ss..#", - "##..ss____________ss..##", - "##..ss____________ss..##", - "###..ss__________ss..###", - " ######__________###### ", - " ######========###### ", - " # L## 6##L # ", - " + L## ##L + ", - " # L## ##L # ", - " ##### ##### ", - " ##2 2## ", - " + bL0 ", - " + hL0 ", - " ##l b## ", - "##+####l zz #######", - " ##P zz #######", - " ### ########", - " k6k ###### ###########", - " h #####EEE6##########", - " #####EEEE##########", - "##########EEEE##########", - "##########EEEE##########" - ], - "palettes": [ "evac_center" ], - "place_items": [ - { "item": "office", "x": [ 1, 3 ], "y": [ 19, 19 ], "chance": 80 }, - { "item": "shelter", "x": [ 13, 14 ], "y": [ 16, 17 ], "chance": 90 }, - { "item": "jackets", "x": [ 19, 19 ], "y": [ 8, 10 ], "chance": 80 }, - { "item": "cleaning", "x": [ 4, 4 ], "y": [ 8, 10 ], "chance": 80 } - ], - "place_npcs": [ { "class": "evac_broker", "x": 2, "y": 20 }, { "class": "guard", "x": 15, "y": 15 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_9" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "......................ss", - ".......................s", - "#####!!####!!######....s", - "#####11####11#######...s", - "# ###...s", - " ##...s", - " L L L L L ##...s", - " @ @ @ @ @ ##...s", - " @ @ @ 2@ @ ##...s", - " 1!...s", - " 1!...s", - " L L L L L ##...s", - " @ @ @ @ @ ##...s", - "2 @ @ @ @ @ ##...s", - " ##...s", - " 1!...s", - " L L 2L L 1!...s", - " @ @ @ @ ##...s", - " @ @ @ @ ##...s", - " ##...s", - " ##...s", - " ###...s", - " ##++##############...s", - "==#S +t##########....s" - ], - "palettes": [ "evac_center" ], - "place_items": [ - { "item": "bed", "x": [ 8, 8 ], "y": [ 7, 8 ], "chance": 80 }, - { "item": "bed", "x": [ 3, 3 ], "y": [ 12, 13 ], "chance": 80 }, - { "item": "bed", "x": [ 15, 15 ], "y": [ 17, 18 ], "chance": 80 }, - { "item": "bed", "x": [ 3, 3 ], "y": [ 7, 8 ], "chance": 80 }, - { "item": "bed", "x": [ 6, 6 ], "y": [ 12, 13 ], "chance": 80 }, - { "item": "bed", "x": [ 6, 6 ], "y": [ 17, 18 ], "chance": 80 }, - { "item": "bed", "x": [ 6, 6 ], "y": [ 7, 8 ], "chance": 80 }, - { "item": "bed", "x": [ 9, 9 ], "y": [ 12, 13 ], "chance": 80 }, - { "item": "bed", "x": [ 9, 9 ], "y": [ 17, 18 ], "chance": 80 }, - { "item": "bed", "x": [ 9, 9 ], "y": [ 7, 8 ], "chance": 80 }, - { "item": "bed", "x": [ 12, 12 ], "y": [ 12, 13 ], "chance": 80 }, - { "item": "bed", "x": [ 12, 12 ], "y": [ 17, 18 ], "chance": 80 }, - { "item": "bed", "x": [ 12, 12 ], "y": [ 7, 8 ], "chance": 80 }, - { "item": "bed", "x": [ 15, 15 ], "y": [ 12, 13 ], "chance": 80 }, - { "item": "bed", "x": [ 15, 15 ], "y": [ 7, 8 ], "chance": 80 }, - { "item": "allclothes", "x": [ 3, 15 ], "y": [ 6, 6 ], "chance": 60 }, - { "item": "allclothes", "x": [ 3, 15 ], "y": [ 11, 11 ], "chance": 60 }, - { "item": "allclothes", "x": [ 6, 15 ], "y": [ 16, 16 ], "chance": 60 } - ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 2, 15 ], "y": [ 4, 20 ], "density": 0.6 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_10" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "ss_______,,_______......", - "ss________________......", - "ss_______,,_______......", - "ss_______,,_______......", - "ss_______,,_______......", - "ss________________......", - "ss_______,,_______......", - "ss_______,,_______......", - "ss_______,,_______......", - "ss________________......", - "ss_______,,_______......", - "ss_______,,_______......", - "ss_______,,_______......", - "ss________________......", - "ss_______,,_______......", - "ss_______,,_______......", - "ss_______,,_______......", - "ss________________......", - "ss_______,,_______......", - "ss_______,,_______......", - "ss_______,,_______......", - "ss________________......", - "ss_______,,_______......", - "ss_______,,_______......" - ], - "palettes": [ "evac_center" ], - "place_vehicles": [ { "vehicle": "flatbed_truck", "x": 2, "y": 18, "chance": 75, "rotation": 90 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_11" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "......_______,,________s", - "......__________________", - "......_______,,_________", - "......_______,,_________", - "......_______,,_________", - "......_________________,", - "......_______,,________,", - "......_______,,________,", - "......_______,,________,", - "......_________________,", - "......_______,,________,", - "......_______,,________,", - "......_______,,________,", - "......_________________,", - "......_______,,________,", - "......_______,,________,", - "......_______,,________,", - "......_________________,", - "......_______,,________,", - "......_______,,_________", - "......_______,,_________", - "......__________________", - "......_______,,_________", - "......_______,,________s" - ], - "palettes": [ "evac_center" ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_12" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "ss.........##### c# #", - "sss.........##t+ 2 S# #", - "_ssssssss...#### c# #", - "__ssssssss..##t+ D S# #", - "_______sss..######+## =", - "________ss..##~#~# # =", - "________ss..## # #", - "________ss..##~#~# # #", - "________ss..###### 2# #", - "________ss..##~#~# # #", - "________ss..## # #", - "________ss..##~#~# # #", - "________ss..######### #", - "________ss..#####r r# #", - "________ss..######+##++#", - "________ss..## P ", - "________ss..!1 ", - "________ss..!1 2 ", - "________ss..## ", - "_______sss..#####+## ", - "__ssssssss..##t+ c# #", - "_ssssssss...#### S# ##", - "sss.........##t+ 2c# # ", - "ss.........##### S# # " - ], - "palettes": [ "evac_center" ], - "place_items": [ - { "item": "cleaning", "x": [ 17, 17 ], "y": [ 13, 13 ], "chance": 80 }, - { "item": "cleaning", "x": [ 19, 19 ], "y": [ 13, 13 ], "chance": 80 } - ], - "place_npcs": [ { "class": "evac_guard2", "x": 18, "y": 18 } ], - "place_vehicles": [ { "vehicle": "schoolbus", "x": 4, "y": 8, "chance": 75, "rotation": 270 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_13" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "########################", - "r rrrrrrrrrrrrrrrrrrr r#", - "r r#", - " 2 #", - " rrrrrrrrrrrrrrrrr =", - " rrrrrrrrrrrrrrrrr =", - " 2 #", - "r r#", - "r rrrrrrrrrrrrrrrrrrr r#", - "########################", - "##########EEEE##########", - "##########EEEE##########", - " > #######EEEE###### > #", - " #######EEE6###### #", - "#=######### ########=##", - " ", - " ", - " 2 2 ", - " ", - " ###### ###### ", - " ##########++########## ", - "=### ###=", - " ## bbbb bbbb ## ", - " 6V 2 2 V6 " - ], - "palettes": [ "evac_center" ], - "place_items": [ - { "item": "pasta", "x": [ 0, 0 ], "y": [ 1, 2 ], "chance": 90 }, - { "item": "pasta", "x": [ 0, 0 ], "y": [ 7, 8 ], "chance": 90 }, - { "item": "pasta", "x": [ 22, 22 ], "y": [ 1, 2 ], "chance": 90 }, - { "item": "pasta", "x": [ 22, 22 ], "y": [ 7, 8 ], "chance": 90 }, - { "item": "cannedfood", "x": [ 2, 20 ], "y": [ 1, 1 ], "chance": 90 }, - { "item": "cannedfood", "x": [ 3, 19 ], "y": [ 4, 5 ], "chance": 90 }, - { "item": "cannedfood", "x": [ 2, 20 ], "y": [ 8, 8 ], "chance": 90 }, - { "item": "bed", "x": [ 15, 18 ], "y": 22, "chance": 100 } - ], - "place_npcs": [ - { "class": "evac_guard1", "x": 9, "y": 21 }, - { "class": "guard", "x": 14, "y": 21 }, - { "class": "refugee_beggar5", "x": 16, "y": 22 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_14" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "LL#c #####..........ss", - "bh#S 2 +t##..........sss", - "h #c ####...sssssssss_", - " #S D +t##..sssssssss__", - " ##+######..sss________", - " # #~#~##..ss_________", - " # ##..ss_________", - " # #~#~##..ss_________", - " #2 ######..ss_________", - " # #~#~##..ss_________", - " # ##..ss_________", - " # #~#~##..ss_________", - " #########..ss_________", - " #r r#####..ss_________", - "++##+######..ss_________", - " ##..ss_________", - " 1!..ss_________", - " 2 1!..ss_________", - " ##..ss_________", - " ##+####..sss________", - "# #c +t##..ssssssss___", - "## #S ####...ssssssss__", - " # #c2+t##.........sss_", - " # #S #####.........sss" - ], - "palettes": [ "evac_center" ], - "place_items": [ - { "item": "snacks", "x": [ 3, 3 ], "y": [ 13, 13 ], "chance": 60 }, - { "item": "snacks", "x": [ 5, 5 ], "y": [ 13, 13 ], "chance": 60 } - ], - "place_vehicles": [ - { "vehicle": "car", "x": 17, "y": 16, "chance": 75, "rotation": 90 }, - { "vehicle": "pickup", "x": 18, "y": 8, "chance": 75, "rotation": 90 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_15" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "s________,,_______......", - "__________________......", - "_________,,_______......", - "_________,,_______......", - "_________,,_______......", - ",_________________......", - ",________,,_______......", - ",________,,_______......", - ",________,,_______......", - ",_________________......", - ",________,,_______......", - ",________,,_______......", - ",________,,_______......", - ",_________________......", - ",________,,_______......", - ",________,,_______......", - ",________,,_______......", - ",_________________......", - ",________,,_______......", - "_________,,_______......", - "_________,,_______......", - "__________________......", - "_________,,_______......", - "_________,,_______......" - ], - "palettes": [ "evac_center" ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_16" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "......_______,,_______ss", - "......________________ss", - "......_______,,_______ss", - "......_______,,_______ss", - "......_______,,_______ss", - "......________________ss", - "......_______,,_______ss", - "......_______,,_______ss", - "......_______,,_______ss", - "......________________ss", - "......_______,,_______ss", - "......_______,,_______ss", - "......_______,,_______ss", - "......________________ss", - "......_______,,_______ss", - "......_______,,_______ss", - "......_______,,_______ss", - "......________________ss", - "......_______,,_______ss", - "......_______,,_______ss", - "......_______,,_______ss", - "......________________ss", - "......_______,,_______ss", - "......_______,,_______ss" - ], - "palettes": [ "evac_center" ], - "place_vehicles": [ - { "vehicle": "hippie_van", "x": 21, "y": 17, "chance": 75, "rotation": 90 }, - { "vehicle": "policecar", "x": 22, "y": 7, "chance": 75, "rotation": 90 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_17" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "s....#########t+ c# #2", - "s...################++# ", - "s...### ##", - "s...## #", - "s...## b b b ", - "s...## b b cc b b ", - "s...## b b2 b b ", - "s...!1 b b cc b b ", - "s...!1 b b b b ", - "s...## b b cc b b ", - "s...## ", - "s...## 2 ", - "s...## b b cc b b ", - "s...!1 b b b b ", - "s...!1 b b cc b b ", - "s...## b b2 b b ", - "s...## b b cc b b ", - "s...## b b b b ", - "s...## ", - "s...### ooo ", - "s...#######11#####11####", - "s....######{{#####{{####", - "s.......................", - "ss......................" - ], - "palettes": [ "evac_center" ], - "place_items": [ - { "item": "homebooks", "x": [ 14, 16 ], "y": 19, "chance": 80, "repeat": [ 1, 2 ] }, - { "item": "textbooks", "x": [ 14, 16 ], "y": 19, "chance": 20 } - ], - "place_npcs": [ - { "class": "scavenger_merc", "x": 8, "y": 5 }, - { "class": "old_guard_rep", "x": 19, "y": 7 }, - { "class": "arsonist", "x": 11, "y": 7 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_18" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "hcV bbbb bbbb Vch", - " cV ppp Vc ", - " ## bbbb bbbb ## ", - "###l ###", - " ### ### ", - " ####1111#+##+#1111#### ", - " ###!!!!sssUnsss!!!!### ", - " ##......ssssss......## ", - " ##.......ssss.......## ", - " ##.......ssss.......## ", - " 1!...%...ssss...%...!1 ", - " 1!..%%%..ssss..%%%..!1 ", - " ##...%...ssss...%...## ", - " ##.......ssss.......## ", - " ##.......ssss.......## ", - " ##.......ssss.......## ", - " ##...%...ssss...%...## ", - " ##..%%%..ssss..%%%..## ", - " ##...%...ssss...%...## ", - "###.......ssss.......###", - "###.......ssss.......###", - "##!!!!!!!!ssss!!!!!!!!##", - "..........ssss..........", - ".........ssssss........." - ], - "palettes": [ "evac_center" ], - "place_items": [ - { "item": "bed", "x": [ 5, 8 ], "y": 0, "chance": 70 }, - { "item": "bed", "x": [ 15, 18 ], "y": 0, "chance": 50 }, - { "item": "bed", "x": [ 5, 8 ], "y": 2, "chance": 80 }, - { "item": "bed", "x": [ 15, 18 ], "y": 2, "chance": 100 } - ], - "place_npcs": [ - { "class": "evac_merchant", "x": 23, "y": 0 }, - { "class": "science_rep", "x": 0, "y": 0 }, - { "class": "refugee_beggar1", "x": 5, "y": 0 }, - { "class": "refugee_beggar2", "x": 7, "y": 2 }, - { "class": "refugee_beggar3", "x": 16, "y": 0 }, - { "class": "refugee_beggar4", "x": 17, "y": 2 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_19" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "2# #c +t#########....ss", - " #++################...s", - "## DD ###...s", - "# ##...s", - " rrrrrrrr ##...s", - " rr rrrrrrrr ##...s", - " rr 2 ##...s", - " rr 1!...s", - " rrrrrrrr 1!...s", - " rrrrrrrr ##...s", - " rr ##...s", - " rr2 ##...s", - " rr rrrrrrrr ##...s", - " rrrrrrrr 1!...s", - " 1!...s", - " rr 2 ##...s", - " rr rrrrrrrr ##...s", - " rr rrrrrrrr ##...s", - " ##...s", - " ###...s", - "####11#####11#######...s", - "####..#####..######....s", - ".......................s", - "......................ss" - ], - "palettes": [ "evac_center" ], - "place_items": [ - { "item": "cannedfood", "x": [ 8, 15 ], "y": [ 4, 5 ], "chance": 20 }, - { "item": "cannedfood", "x": [ 8, 15 ], "y": [ 8, 9 ], "chance": 20 }, - { "item": "cannedfood", "x": [ 8, 15 ], "y": [ 12, 13 ], "chance": 20 }, - { "item": "cannedfood", "x": [ 8, 15 ], "y": [ 16, 17 ], "chance": 20 }, - { "item": "cannedfood", "x": [ 1, 2 ], "y": [ 5, 7 ], "chance": 20 }, - { "item": "cannedfood", "x": [ 1, 2 ], "y": [ 10, 12 ], "chance": 20 }, - { "item": "cannedfood", "x": [ 1, 2 ], "y": [ 15, 17 ], "chance": 20 } - ], - "place_npcs": [ { "class": "guard", "x": 7, "y": 8 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_20" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "s________,,_______......", - "ss________________......", - "ss_______,,_______......", - "ss_______,,_______......", - "ss_______,,_______......", - "ss________________......", - "ss_______,,_______......", - "ss_______,,_______......", - "ss_______,,_______......", - "ss________________......", - "ss_______,,_______......", - "ss_______,,_______......", - "ss_______,,_______......", - "ss________________......", - "ss_______,,_______......", - "ss_______,,_______......", - "ss_______,,_______......", - "ss________________......", - "ss_______,,_______......", - "ss_______,,_______......", - "ss_______,,_______......", - "ss________________......", - "ss_______,,_______......", - "ss_______,,_______......" - ], - "palettes": [ "evac_center" ], - "place_vehicles": [ { "vehicle": "car_mini", "x": 3, "y": 15, "chance": 75, "rotation": 90 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_21" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "......_______,,_______ss", - "......_________________s", - "......_______,,_________", - "......_______,,_________", - "......_______,,_________", - "......__________________", - "......_______,,_________", - "......_______,,,________", - "......________,,,_______", - "......_________,,,______", - "......__________,,,,,_,,", - "......___________,,,,_,,", - "......__________________", - "......__________________", - "......__________________", - "......._________________", - "........________________", - "........._______________", - "..........______________", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "palettes": [ "evac_center" ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_22" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - ",_,,,_,,,_,,,_,,,_,,,_,,", - ",_,,,_,,,_,,,_,,,_,,,_,,", - "________________________", - "_______________________,", - "_______________________,", - "_______________________,", - "_______________________,", - "_______________________,", - "________________________", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "palettes": [ "evac_center" ], - "place_vehicles": [ { "vehicle": "schoolbus", "x": 8, "y": 6, "chance": 75, "rotation": 180 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_23" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "________________________", - "_______________________,", - "_______________________,", - "_______________________,", - "_______________________,", - "_______________________,", - "________________________", - ",______________________,", - ",______________________,", - "________________________", - ",_______________________", - ",_______________________", - ",_______________________", - ",_______________________", - ",_______________________", - "________________________", - ".______________________.", - "...__________________...", - "...._______,,_,,,,,_....", - "...._______,,_,,,,,_....", - "...._______,,_______...." - ], - "palettes": [ "evac_center" ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_24" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "________________________", - ",_______________________", - ",_______________________", - ",_______________________", - ",_______________________", - ",_______________________", - "________________________", - ",,_,,,_,,,_,,,_,,,_,,,_,", - ",,_,,,_,,,_,,,_,,,_,,,_,", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "palettes": [ "evac_center" ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "evac_center_25" ], - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "ss_______,,_______......", - "s_________________......", - "_________,,_______......", - "_________,,_______......", - "_________,,_______......", - "__________________......", - "_________,,_______......", - "________,,,_______......", - "_______,,,________......", - "______,,__________......", - ",,_,,,,,__________......", - ",,_,,,____________......", - "__________________......", - "__________________......", - "__________________......", - "_________________.......", - "________________........", - "_______________.........", - "______________..........", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "palettes": [ "evac_center" ] - } - } -] diff --git a/data/json/mapgen/farm.json b/data/json/mapgen/farm.json index 3a619f2bdbe65..734e4997fff11 100644 --- a/data/json/mapgen/farm.json +++ b/data/json/mapgen/farm.json @@ -81,61 +81,12 @@ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF " ], "terrain": { - " ": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], "Q": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "#": [ "t_wall_wood" ], - "$": [ "t_shrub" ], - "&": [ "t_water_pump" ], - "+": [ "t_door_c" ], - ",": [ "t_dirt" ], - "-": [ "t_wall" ], - ".": [ "t_floor" ], - "1": [ "t_column" ], - "2": [ "t_fence_h" ], - "3": [ "t_fence_v" ], - "5": [ "t_palisade_pulley" ], - "B": [ "t_floor" ], - "D": [ "t_dirtmound" ], - "E": [ "t_dirtmoundfloor" ], - "F": [ "t_fence_barbed" ], - "H": [ "t_floor" ], - "M": [ "t_door_metal_locked" ], - "O": [ "t_barndoor" ], - "P": [ "t_grass" ], - "S": [ "t_floor" ], - "T": [ "t_floor" ], - "W": [ "t_window_boarded" ], - "Y": [ "t_floor" ], - "_": [ "t_dirtfloor" ], - "b": [ "t_floor" ], - "d": [ "t_floor" ], - "e": [ "t_floor" ], - "g": [ "t_fencegate_c" ], - "h": [ "t_floor" ], - "k": [ "t_floor" ], - "l": [ "t_floor" ], - "o": [ "t_floor" ], - "u": [ "t_floor" ], - "w": [ "t_window_domestic" ], - "y": [ "t_dirtfloor" ], - "|": [ "t_wall" ] - }, - "furniture": { - "B": [ "f_bed" ], - "H": [ "f_armchair" ], - "P": [ "f_mailbox" ], - "S": [ "f_sink" ], - "T": [ "f_toilet" ], - "Y": [ "f_rack_coat" ], - "b": [ "f_bathtub" ], - "d": [ "f_dresser" ], - "e": [ "f_fridge" ], - "h": [ "f_chair" ], - "k": [ "f_desk" ], - "l": [ "f_locker" ], - "o": [ "f_oven" ], - "u": [ "f_cupboard" ], - "y": [ "f_hay" ] + "#": "t_wall_wood", + "+": "t_door_c", + "5": "t_palisade_pulley", + "H": "t_floor", + "g": "t_fencegate_c" }, "toilets": { "T": { } }, "items": { @@ -174,7 +125,8 @@ "place_monsters": [ { "monster": "GROUP_ZOMBIE", "x": [ 4, 4 ], "y": [ 14, 14 ], "repeat": [ 1, 6 ], "density": 0.2 }, { "monster": "GROUP_DOMESTIC", "x": [ 10, 12 ], "y": [ 15, 17 ], "repeat": [ 1, 2 ], "density": 0.2 } - ] + ], + "palettes": [ "farm" ] } }, { @@ -211,62 +163,7 @@ "FFFFFFFFFFFFFFFFFFFFFFFF", ",,,,,,,,,,,,,,,,,,,,,,,," ], - "terrain": { - " ": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "#": [ "t_wall_wood" ], - "$": [ "t_shrub" ], - "&": [ "t_water_pump" ], - "+": [ "t_door_c" ], - ",": [ "t_dirt" ], - "-": [ "t_wall" ], - ".": [ "t_floor" ], - "1": [ "t_column" ], - "2": [ "t_fence_h" ], - "3": [ "t_fence_v" ], - "5": [ "t_palisade_pulley" ], - "B": [ "t_floor" ], - "D": [ "t_dirtmound" ], - "E": [ "t_dirtmoundfloor" ], - "F": [ "t_fence_barbed" ], - "H": [ "t_floor" ], - "M": [ "t_door_metal_locked" ], - "O": [ "t_barndoor" ], - "P": [ "t_grass" ], - "S": [ "t_floor" ], - "T": [ "t_floor" ], - "W": [ "t_window_boarded" ], - "_": [ "t_dirtfloor" ], - "Q": [ "t_dirtfloor" ], - "b": [ "t_floor" ], - "d": [ "t_floor" ], - "e": [ "t_floor" ], - "g": [ "t_fencegate_c" ], - "h": [ "t_floor" ], - "k": [ "t_floor" ], - "l": [ "t_floor" ], - "m": [ "t_floor" ], - "o": [ "t_floor" ], - "u": [ "t_floor" ], - "w": [ "t_window_domestic" ], - "|": [ "t_wall" ] - }, - "furniture": { - "B": [ "f_bed" ], - "H": [ "f_armchair" ], - "P": [ "f_mailbox" ], - "S": [ "f_sink" ], - "T": [ "f_toilet" ], - "b": [ "f_bathtub" ], - "d": [ "f_dresser" ], - "e": [ "f_fridge" ], - "h": [ "f_chair" ], - "k": [ "f_desk" ], - "l": [ "f_locker" ], - "m": [ "f_makeshift_bed" ], - "o": [ "f_oven" ], - "u": [ "f_cupboard" ], - "y": [ "f_hay" ] - }, + "terrain": { "#": "t_wall_wood", "+": "t_door_c", "5": "t_palisade_pulley", "H": "t_floor", "g": "t_fencegate_c" }, "toilets": { "T": { } }, "items": { ".": { "item": "trash", "chance": 20 }, @@ -300,7 +197,8 @@ ], "u": [ { "item": "kitchen", "chance": 70 }, { "item": "cannedfood", "chance": 40 }, { "item": "softdrugs", "chance": 40 } ], "Q": { "item": "farming_tools", "chance": 15 } - } + }, + "palettes": [ "farm" ] } }, { @@ -337,23 +235,7 @@ " F DDDDDDDDDDDDDDDD F ", "FF F " ], - "terrain": { - " ": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "-": "t_wall", - "=": "t_door_metal_locked", - "_": "t_dirtfloor", - "|": "t_wall", - "#": "t_wall_wood", - "5": "t_barndoor", - "A": "t_bars", - "D": "t_dirtmound", - "F": "t_fence_barbed", - "H": "t_fence_h", - "r": "t_dirtfloor", - "s": "t_dirtfloor", - "W": "t_window_boarded" - }, - "furniture": { "r": "f_rack", "s": "f_rack" }, + "terrain": { "#": "t_wall_wood" }, "items": { "D": { "item": "hydro", "chance": 5 }, "r": { "item": "farming_tools", "chance": 25 } }, "place_item": [ { "item": "wheat", "x": [ 4, 5 ], "y": 2, "chance": 40 }, @@ -361,7 +243,8 @@ { "item": "wheat", "x": [ 1, 8 ], "y": 4, "chance": 20, "repeat": [ 1, 2 ] }, { "item": "wheat", "x": [ 2, 7 ], "y": 5, "chance": 30, "repeat": [ 1, 2 ] }, { "item": "wheat", "x": [ 4, 5 ], "y": 6, "chance": 40 } - ] + ], + "palettes": [ "farm" ] } }, { @@ -398,19 +281,7 @@ " F DDDDDDDDDDDDDDDD F ", "FF F " ], - "terrain": { - " ": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "_": "t_dirtfloor", - "#": "t_wall_wood", - ";": "t_fence_wire", - "+": "t_door_c", - "7": "t_dirtfloor", - "8": "t_dirtfloor", - "c": "t_door_makeshift_c", - "D": "t_dirtmound", - "F": "t_fence_barbed", - "g": "t_chaingate_c" - }, + "terrain": { "#": "t_wall_wood", "+": "t_door_c" }, "items": { "D": { "item": "hydro", "chance": 5 } }, "monster": { "7": { "monster": "mon_chicken" }, "8": { "monster": "mon_chicken_chick" } }, "place_item": [ @@ -426,7 +297,8 @@ { "item": "straw_pile", "x": 20, "y": 7, "chance": 75 }, { "item": "birdfood", "x": [ 3, 7 ], "y": [ 5, 11 ], "chance": 75, "repeat": [ 4, 7 ] }, { "item": "straw_pile", "x": 20, "y": 7, "chance": 75 } - ] + ], + "palettes": [ "farm" ] } }, { @@ -463,17 +335,8 @@ " F DDDDDDDDDDDDDDDD F ", "FF F " ], - "terrain": { - " ": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "_": "t_dirtfloor", - "#": "t_wall_glass", - "+": "t_door_glass_c", - "D": "t_dirtmound", - "r": "t_dirtfloor", - "F": "t_fence_barbed" - }, - "furniture": { "r": "f_rack" }, - "items": { "D": { "item": "hydro", "chance": 5 }, "r": { "item": "tools_earthworking", "chance": 20 } } + "items": { "D": { "item": "hydro", "chance": 5 }, "r": { "item": "tools_earthworking", "chance": 20 } }, + "palettes": [ "farm" ] } } ] diff --git a/data/json/mapgen/homeless_shelter.json b/data/json/mapgen/homeless_shelter.json new file mode 100644 index 0000000000000..74e3c1dfeea64 --- /dev/null +++ b/data/json/mapgen/homeless_shelter.json @@ -0,0 +1,431 @@ +[ + { + "type": "palette", + "id": "homeless_palette", + "terrain": { + "*": "t_open_air", + "~": "t_open_air_rooved", + ".": [ [ "t_grass_long", 200 ], [ "t_grass", 600 ], [ "t_dirt", 200 ], [ "t_shrub", 1 ] ], + ",": [ + [ "t_grass_long", 75 ], + [ "t_grass", 50 ], + [ "t_shrub", 20 ], + [ "t_shrub_rose", 20 ], + [ "t_shrub_lilac", 20 ], + [ "t_tree_young", 20 ], + [ "t_grass_tall", 20 ], + [ "t_grass_long", 20 ], + [ "t_underbrush", 20 ], + [ "t_shrub_hydrangea", 20 ], + [ "t_shrub_raspberry", 20 ], + [ "t_tree", 10 ], + [ "t_tree_willow", 2 ], + [ "t_tree_birch", 2 ], + [ "t_tree_maple", 2 ], + [ "t_tree_pine", 2 ] + ], + "-": "t_door_locked_interior", + "<": "t_stairs_down", + "+": "t_door_c", + ">": "t_stairs_up", + "'": "t_thconc_floor", + " ": [ [ "t_linoleum_white", 500 ], [ "t_linoleum_gray", 1 ] ], + ";": "t_grate", + "i": "t_ladder_up", + "!": "t_ladder_down", + "z": "t_flat_roof", + "_": "t_carpet_red", + "3": "t_concrete", + "L": "t_thconc_floor", + "R": "t_thconc_floor", + "s": "t_concrete", + "x": "t_console_broken", + "|": "t_brick_wall", + "#": "t_ponywall", + "=": "t_reinforced_glass", + "1": "t_gutter_west", + "2": "t_gutter_east", + "4": "t_gutter_north", + "5": "t_gutter_south", + "6": "t_gutter_drop", + "v": "t_window_bars", + "f": "t_chainfence", + "g": "t_chaingate_l", + "n": "t_dirtmound" + }, + "furniture": { + "3": "f_bench", + "B": "f_bench", + "S": "f_sink", + "T": "f_toilet", + "c": "f_counter", + "d": "f_desk", + "e": "f_fridge", + "h": "f_chair", + "?": "f_sofa", + "Y": "f_rack_coat", + "@": "f_makeshift_bed", + "F": "f_filing_cabinet", + "G": "f_bulletin", + "l": "f_locker", + "m": "f_locker", + "(": "f_locker", + ")": "f_locker", + "L": "f_utility_shelf", + "R": "f_rack", + "O": "f_oven", + "u": "f_cupboard", + "o": "f_bookcase", + "t": "f_table", + "b": "f_table", + "p": [ "f_indoor_plant", "f_indoor_plant_y" ], + "r": "f_trashcan", + "D": "f_dumpster", + "$": "f_shower", + "A": "f_armchair", + "X": "f_crate_o", + "w": "f_washer", + "W": "f_dryer", + "q": "f_dishwasher", + "V": "f_glass_cabinet", + "H": "f_rotary_clothesline", + "P": "f_pool_table" + }, + "toilets": { "T": { } }, + "items": { + "d": { "item": "office", "chance": 45, "repeat": [ 1, 2 ] }, + "X": { "item": "gear_homeless", "chance": 55, "repeat": [ 1, 3 ] }, + "Y": { "item": "jackets", "chance": 55, "repeat": [ 1, 6 ] }, + "l": { "item": "cleaning", "chance": 75, "repeat": [ 1, 3 ] }, + "L": [ { "item": "farming_seeds", "chance": 40, "repeat": [ 1, 2 ] }, { "item": "farming_tools", "chance": 35 } ], + "r": { "item": "trash", "chance": 60, "repeat": [ 1, 2 ] }, + "D": { "item": "trash", "chance": 60, "repeat": [ 1, 2 ] }, + "o": [ { "item": "novels", "chance": 45, "repeat": [ 1, 2 ] }, { "item": "homebooks", "chance": 15 } ], + "e": [ { "item": "fridgesnacks", "chance": 15, "repeat": [ 2, 3 ] }, { "item": "fridge", "chance": 65, "repeat": [ 4, 8 ] } ], + "t": { "item": "dining", "chance": 25, "repeat": [ 1, 2 ] }, + "O": { "item": "oven", "chance": 65 }, + "P": { "item": "pool_table", "chance": 40, "repeat": [ 1, 3 ] }, + "u": [ + { "item": "snacks", "chance": 10, "repeat": [ 1, 2 ] }, + { "item": "cannedfood", "chance": 40, "repeat": [ 1, 3 ] }, + { "item": "dining", "chance": 30, "repeat": [ 1, 4 ] } + ], + "R": { "item": "cannedfood", "chance": 70, "repeat": [ 1, 3 ] }, + "@": { "item": "bed", "chance": 65 }, + "(": { "item": "donated_clothes", "chance": 60 }, + "w": [ { "item": "donated_clothes", "chance": 25 }, { "item": "bed", "chance": 20, "repeat": [ 1, 3 ] } ], + "W": [ { "item": "donated_clothes", "chance": 25 }, { "item": "bed", "chance": 20, "repeat": [ 1, 3 ] } ], + ")": { "item": "bed", "chance": 75, "repeat": [ 1, 5 ] }, + "F": { "item": "file_room", "chance": 70, "repeat": [ 1, 3 ] }, + "m": { "item": "drugs_heal_simple", "chance": 70, "repeat": [ 1, 4 ] } + }, + "vendingmachines": { "8": { "item_group": "vending_drink" }, "9": { "item_group": "vending_food" } } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "homeless_0_0_0" ], [ "homeless_1_0_0" ] ], + "weight": 100, + "object": { + "fill_ter": "t_linoleum_white", + "rows": [ + "ffssffffffff............", + "f.ss.,,,,,,f.,,,,.......", + "f.ss.,,,,,,||vvvv||.....", + "f.ss.,,|||||pBBBBp|||||.", + "f.ss.,,| h h h |.", + "f.ss.,,v tth tth tthv,", + "f.ss.,,vhtt htt htt v,", + "f.ss.,,| h h h |.", + "f.ss.,,| h h h |.", + "||-||v|| tth htt tthv,", + "|p =dcc|htt tth htt v,", + "| =dh | h h h |.", + "| =x F| h h h |.", + "| =r F| tth htt htt |.", + "| ||+||htt tth tth|.", + "| | h h h |.", + "v + v,", + "v + v,", + "| BB | h h h |.", + "| ||||| tth tt htth|.", + "|G > |htt htth tt |.", + "|G | h h h |.", + "| | h h h |.", + "v ||||| tth tth tthv,", + "v |SSS|htt htt htt v,", + "| + + h h h |.", + "| ||| | h h h |.", + "vB |T+ |htth tt tthv,", + "vB ||| | tt htth htt v,", + "|r |T+ | h h h |.", + "| ||| | |.", + "|p |T+ |r |.", + "||-||||||+|cccccccccc||.", + "fsss333| u|.", + "fssssss| OOOSScccq u|.", + "f......| u|.", + "fnnnn..|eeeeuuuu uuu u|.", + "fnnnn..|||||||||-|||-||.", + "f......,,,,|R RR R|sssg.", + "fnnnn...,,,|R RR R|DDDf.", + "fnnnn..nnnn|R RR R|DDDf.", + "f......nnnn|R R|ffff.", + "fnnnn......|||vv|||.....", + "fnnnn.nn...nnnn...g.....", + "f.....nn...nnnn...f.....", + "f,,,..nn.......,,,f.....", + "f,,,,.nn......,,,,f.....", + "fffffffffffffffffff....." + ], + "palettes": [ "homeless_palette" ], + "place_monsters": [ + { "monster": "GROUP_ZOMBIE", "x": [ 0, 23 ], "y": [ 4, 23 ], "density": 0.1 }, + { "monster": "GROUP_ZOMBIE", "x": [ 0, 23 ], "y": [ 24, 47 ], "density": 0.1 } + ], + "place_loot": [ + { "item": "fork", "repeat": [ 5, 10 ], "x": [ 20, 20 ], "y": 32 }, + { "item": "spoon", "repeat": [ 5, 10 ], "x": [ 19, 19 ], "y": 32 }, + { "item": "knife_butter", "repeat": [ 5, 10 ], "x": [ 18, 18 ], "y": 32 }, + { "item": "tin_plate", "repeat": [ 7, 15 ], "x": [ 15, 17 ], "y": 32 }, + { "item": "glass_bowl", "repeat": [ 7, 15 ], "x": [ 12, 14 ], "y": 32 }, + { "item": "cup_plastic_unsealed", "repeat": [ 5, 10 ], "x": [ 11, 11 ], "y": 32 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "homeless_0_0_1" ], [ "homeless_1_0_1" ] ], + "weight": 100, + "object": { + "fill_ter": "t_linoleum_white", + "rows": [ + "************************", + "************************", + "***********||vvvv||*****", + "*******|||||rBBBB |||||*", + "*******|h A p|*", + "*******vc o o A v*", + "*******vh o o v*", + "*******|p o o A G|*", + "*******| o o |*", + "|||vv|||h o o A v*", + "|pbbbbp|c o o A v*", + "| |h hhh p|*", + "| |||||||++|||||||*", + "|A A|p 89 r |*", + "| A PP |*", + "|A PP |*", + "v bb PP v*", + "v? ?|hhhh PP v*", + "|??????|xxxx |*", + "|||||||||||| |||||*", + "|F | < p|*", + "|F | BbbB BbbB |*", + "|F | > BbbB BbbB |*", + "vF ||||| v*", + "vc r xd|V v*", + "|dh hd|V BbbB BbbB |*", + "|dx c|V BbbB BbbB |*", + "|p F p|V v*", + "||+||+|| v*", + "|p d Y| BbbB BbbB |*", + "v Adh + BbbB BbbB |*", + "|F dh | p|*", + "|||vv||||-||||+|||||+||*", + "*******|'''|T+ +T|S l|*", + "*******|L'L||| |||c l|*", + "*******|L'L|T+ +T|c l|*", + "*******|L'L||| |||c l|*", + "*******||v||S +T||v||*", + "***********|S |||;;***", + "***********vS +T|!;***", + "***********|S |||;;***", + "***********|S +T|i;***", + "***********|||vv|||;;***", + "************************", + "************************", + "************************", + "************************", + "************************" + ], + "palettes": [ "homeless_palette" ], + "place_monsters": [ + { "monster": "GROUP_ZOMBIE", "x": [ 0, 23 ], "y": [ 4, 23 ], "density": 0.1 }, + { "monster": "GROUP_ZOMBIE", "x": [ 0, 23 ], "y": [ 24, 41 ], "density": 0.1 } + ], + "place_loot": [ { "item": "television", "x": [ 3, 4 ], "y": 10 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "homeless_0_0_2" ], [ "homeless_1_0_2" ] ], + "weight": 100, + "object": { + "fill_ter": "t_linoleum_white", + "rows": [ + "************************", + "************************", + "***********||vvvv||*****", + "*******||||| BBBB |||||*", + "*******| h |*", + "*******v@X #@X X@# X@v*", + "*******v # h # v*", + "*******|@X #@X X@# X@|*", + "*******| # h # |*", + "|||vv|||@X #@X X@# X@v*", + "|((((((| # # h v*", + "| |@X #@X X@# X@|*", + "|@ ))))| # # |*", + "||+|||||@X #@X X@# X@|*", + "|p + |*", + "| h|@X #@X X@# X@|*", + "v h | # h # v*", + "v bb |@X #@X X@# X@v*", + "| BBBB| # # |*", + "| |||||@X #@X X@# X@|*", + "| > | h# # |*", + "| |@X #@X X@# X@|*", + "| < | # # |*", + "v |||||@X #@X X@# X@v*", + "v BBBB| h h v*", + "|G h|++|||||||||||||*", + "|G h|''|)))|WWWWccc|*", + "v +''+ Hv*", + "v r|''|B BY Hv*", + "|h cc |''|B B|wwwwccc|*", + "|h |''|B B|||||||||*", + "|pBBBBp|''|B B|$$$|$$$|*", + "|||vv|||''+ + |*", + "*******|''|(((|$ $|$ $|*", + "*******|''|||||$ $|$ $|*", + "*******|''''''|$ $|$ $|*", + "*******|''''''|$ $|$ $|*", + "*******||v|||+||||||v||*", + "***********| rdx|;;***", + "***********v@@ dhvi;***", + "***********| |;;***", + "***********|FFp mm|!;***", + "***********|||vv|||;;***", + "************************", + "************************", + "************************", + "************************", + "************************" + ], + "palettes": [ "homeless_palette" ], + "place_monsters": [ + { "monster": "GROUP_ZOMBIE", "x": [ 0, 23 ], "y": [ 4, 23 ], "density": 0.1 }, + { "monster": "GROUP_ZOMBIE", "x": [ 0, 23 ], "y": [ 24, 41 ], "density": 0.1 } + ], + "place_loot": [ + { "item": "bleach", "repeat": [ 1, 3 ], "x": [ 19, 21 ], "y": 29 }, + { "item": "basket_laundry", "repeat": [ 1, 2 ], "x": [ 19, 21 ], "y": 26 }, + { "item": "towel", "repeat": [ 1, 7 ], "x": [ 15, 21 ], "y": [ 31, 36 ] }, + { "group": "donated_clothes", "repeat": [ 1, 2 ], "x": [ 11, 13 ], "y": [ 28, 31 ] } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "homeless_0_0_roof" ], [ "homeless_1_0_roof" ] ], + "weight": 100, + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + "************************", + "************************", + "***********14444442*****", + "*******14441zzzzzz24446*", + "*******1zzzzzzzzzzzzzz2*", + "*******1zzzzzzzzzzzzzz2*", + "*******1zzzzzzzzzzzzzz2*", + "*******1zzzzzzzzzzzzzz2*", + "*******1zzzzzzzzzzzzzz2*", + "64444441zzzzzzzzzzzzzz2*", + "1zzzzzzzzzzzzzzzzzzzzz2*", + "1zzzzzzzzzzzzzzzzzzzzz2*", + "1zzzzzzzzzzzzzzzzzzzzz2*", + "1zzzzzzzzzzzzzzzzzzzzz2*", + "1zzzzzzzzzzzzzzzzzzzzz2*", + "1zzzzzzzzzzzzzzzzzzzzz2*", + "1zzzzzzzzzzzzzzzzzzzzz2*", + "1zzzzzzzzzzzzzzzzzzzzz2*", + "1zzzzzzzzzzzzzzzzzzzzz2*", + "1zzz|||zzzzzzzzzzzzzzz2*", + "1zzz|<+zzzzzzzzzzzzzzz2*", + "1zzz|||zzzzzzzzzzzzzzz2*", + "1zzzzzzzzzzzzzzzzzzzzz2*", + "1zzzzzzzzzzzzzzzzzzzzz2*", + "1zzzzzzzzzzzzzzzzzzzzz2*", + "1zzzzzzzzzzzzzzzzzzzzz2*", + "1zzzzzzzzzzzzzzzzzzzzz2*", + "1zzzzzzzzzzzzzzzzzzzzz2*", + "1zzzzzzzzzzzzzzzzzzzzz2*", + "1zzzzzzzzzzzzzzzzzzzzz2*", + "1zzzzzzzzzzzzzzzzzzzzz2*", + "1zzzzzzzzzzzzzzzzzzzzz2*", + "65555551zzzzzzzzzzzzzz2*", + "*******1zzzzzzzzzzzzzz2*", + "*******1zzzzzzzzzzzzzz2*", + "*******1zzzzzzzzzzzzzz2*", + "*******1zzzzzzzzzzzzzz2*", + "*******15551zzzzzzzzz52*", + "***********1zzzzzzz;;***", + "***********1zzzzzzz!;***", + "***********1zzzzzzz;;***", + "***********1zzzzzzz;;***", + "***********65555555;;***", + "************************", + "************************", + "************************", + "************************", + "************************" + ], + "palettes": [ "homeless_palette" ], + "place_nested": [ + { + "chunks": [ + [ "null", 20 ], + [ "roof_2x2_utilities_b", 10 ], + [ "roof_4x4_utility_1", 20 ], + [ "roof_4x4_utility", 20 ], + [ "roof_2x2_utilities_d", 10 ], + [ "roof_2x2_utilities", 10 ], + [ "roof_5x5_coop", 35 ] + ], + "x": [ 8, 14 ], + "y": [ 4, 8 ] + }, + { + "chunks": [ + [ "null", 20 ], + [ "roof_2x2_utilities_b", 10 ], + [ "roof_4x4_utility_1", 20 ], + [ "roof_4x4_utility", 20 ], + [ "roof_2x2_utilities_d", 10 ], + [ "roof_6x6_utility", 20 ] + ], + "x": [ 12, 13 ], + "y": [ 32, 36 ] + }, + { + "chunks": [ + [ "null", 50 ], + [ "roof_6x6_survivor", 20 ], + [ "roof_4x4_survivor", 20 ], + [ "roof_4x4_party", 10 ], + [ "roof_2x2_golf", 5 ], + [ "roof_4x4_holdout", 1 ] + ], + "x": [ 1, 16 ], + "y": [ 24, 27 ] + }, + { "chunks": [ [ "null", 50 ], [ "roof_16x16_help", 10 ] ], "x": [ 1, 6 ], "y": [ 10, 14 ] } + ] + } + } +] diff --git a/data/json/mapgen/house/house04.json b/data/json/mapgen/house/house04.json index 2665e19cf12b4..e1b19cf519f7d 100644 --- a/data/json/mapgen/house/house04.json +++ b/data/json/mapgen/house/house04.json @@ -25,10 +25,10 @@ ".|@@ n|r| c| DlY|.", ".|n + | S| h ;.", ".| |-| c| hnn |.", - ".| + c| nnh C|.", + ".| + c| nnh 4|.", ".|k |-| | h f|.", - ".|kh + | t| C|.", - ".|kkk |r|BBB| cScOc|.", + ".|kh + | t| 2|.", + ".|kkk |r|BBB| 153O2|.", ".--vv---------;---vv---.", "........................" ], @@ -45,26 +45,8 @@ "+": "t_door_c", "-": "t_wall", ".": "t_grass", - "0": "t_floor", ";": "t_door_locked", - "?": "t_floor", - "@": "t_floor", - "B": "t_floor", - "C": "t_floor", - "D": "t_floor", - "O": "t_floor", "P": "t_grass", - "Y": "t_floor", - "l": "t_floor", - "S": "t_floor", - "c": "t_floor", - "d": "t_floor", - "f": "t_floor", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", "s": "t_sidewalk", "v": "t_window_domestic", "|": "t_wall" @@ -77,6 +59,11 @@ "Y": "f_rack_coat", "B": "f_bathtub", "C": "f_cupboard", + "1": "f_cupboard", + "2": "f_cupboard", + "3": "f_cupboard", + "4": "f_cupboard", + "5": "f_sink", "D": "f_trashcan", "O": "f_oven", "P": "f_mailbox", @@ -93,7 +80,12 @@ "toilets": { "t": { } }, "items": { "Y": { "item": "coat_rack", "chance": 30, "repeat": [ 1, 4 ] }, - "P": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] } + "P": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] }, + "1": [ { "item": "SUS_dishes" }, { "item": "SUS_silverware" } ], + "2": { "item": "SUS_cookware" }, + "3": [ { "item": "SUS_utensils" }, { "item": "SUS_knife_drawer" } ], + "4": { "item": "SUS_junk_drawer" }, + "5": { "item": "SUS_kitchen_sink" } }, "place_loot": [ { "group": "bed", "x": [ 4, 5 ], "y": [ 6, 7 ], "chance": 90, "repeat": [ 1, 3 ] }, @@ -103,12 +95,12 @@ { "group": "cleaning", "x": [ 13, 13 ], "y": [ 6, 6 ], "chance": 90, "repeat": [ 1, 2 ] }, { "group": "dresser", "x": [ 2, 2 ], "y": [ 10, 11 ], "chance": 80, "repeat": [ 1, 3 ] }, { "group": "dresser", "x": [ 2, 2 ], "y": [ 3, 4 ], "chance": 80, "repeat": [ 1, 3 ] }, - { "group": "fridge", "x": [ 21, 21 ], "y": [ 19, 19 ], "chance": 90, "repeat": [ 1, 5 ] }, + { "group": "fridge", "x": [ 21, 21 ], "y": [ 19, 19 ], "chance": 90, "repeat": [ 5, 10 ] }, { "group": "guns_pistol_common", "x": [ 2, 2 ], "y": [ 13, 13 ], "chance": 5, "ammo": 90, "magazine": 100 }, { "group": "kitchen", "x": [ 19, 19 ], "y": [ 21, 21 ], "chance": 30, "repeat": [ 1, 2 ] }, - { "group": "kitchen", "x": [ 17, 17 ], "y": [ 21, 21 ], "chance": 80, "repeat": [ 1, 2 ] }, - { "group": "kitchen", "x": [ 21, 21 ], "y": [ 20, 21 ], "chance": 60, "repeat": [ 1, 2 ] }, - { "group": "kitchen", "x": [ 21, 21 ], "y": [ 18, 18 ], "chance": 80, "repeat": [ 1, 2 ] }, + { "group": "kitchen", "x": [ 17, 17 ], "y": [ 21, 21 ], "chance": 30, "repeat": [ 1, 2 ] }, + { "group": "kitchen", "x": [ 21, 21 ], "y": [ 20, 21 ], "chance": 30, "repeat": [ 1, 2 ] }, + { "group": "kitchen", "x": [ 21, 21 ], "y": [ 18, 18 ], "chance": 30, "repeat": [ 1, 2 ] }, { "group": "livingroom", "x": [ 10, 18 ], "y": [ 10, 11 ], "chance": 90, "repeat": [ 1, 5 ] }, { "group": "magazines", "x": [ 17, 17 ], "y": [ 7, 7 ], "chance": 80, "repeat": [ 1, 3 ] }, { "group": "mischw", "x": [ 13, 13 ], "y": [ 2, 2 ], "chance": 60, "repeat": [ 1, 3 ] }, diff --git a/data/json/mapgen/house/house05.json b/data/json/mapgen/house/house05.json index 72325b825486f..d81820c4df44a 100644 --- a/data/json/mapgen/house/house05.json +++ b/data/json/mapgen/house/house05.json @@ -9,14 +9,14 @@ "rows": [ ".DDD....P...............", ".|---------vv----;;----.", - ".| K |S | Y|.", - ".| o|t B| o |.", - ".| K o| B| lo |.", - ".v o| | o |.", - ".v |-+--| |.", - ".| | | |.", - ".| | + nn c|.", - ".| L + o| nn Sv.", + ".| K |S | rrY|.", + ".| o|t B|o |.", + ".| K o| B|o |.", + ".v o| |o ll |.", + ".v |-+--| cc34|.", + ".| | | 2|.", + ".| | + nn 1|.", + ".| L + o| nn 5v.", ".| kk | o| LL Ov.", ".|-------- o|l f|.", ".|c????? o|---+---|.", @@ -43,23 +43,8 @@ "-": "t_wall", ".": "t_grass", ";": "t_door_locked", - "?": "t_floor", - "@": "t_floor", - "B": "t_floor", "D": "t_dirt", - "K": "t_floor", - "O": "t_floor", "P": "t_grass", - "L": "t_floor", - "l": "t_floor", - "Y": "t_floor", - "S": "t_floor", - "c": "t_floor", - "d": "t_floor", - "f": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", "v": "t_window_domestic", "|": "t_wall" }, @@ -76,6 +61,11 @@ "P": "f_mailbox", "S": "f_sink", "c": "f_counter", + "1": "f_cupboard", + "2": "f_cupboard", + "3": "f_cupboard", + "4": "f_cupboard", + "5": "f_sink", "d": "f_dresser", "f": "f_fridge", "k": "f_desk", @@ -85,7 +75,12 @@ "toilets": { "t": { } }, "items": { "Y": { "item": "coat_rack", "chance": 30, "repeat": [ 1, 4 ] }, - "P": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] } + "P": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] }, + "1": [ { "item": "SUS_dishes" }, { "item": "SUS_silverware" } ], + "2": { "item": "SUS_cookware" }, + "3": [ { "item": "SUS_utensils" }, { "item": "SUS_knife_drawer" } ], + "4": { "item": "SUS_junk_drawer" }, + "5": { "item": "SUS_kitchen_sink" } }, "place_loot": [ { "group": "bed", "x": [ 2, 3 ], "y": [ 18, 19 ], "chance": 90, "repeat": [ 1, 3 ] }, diff --git a/data/json/mapgen/house/house06.json b/data/json/mapgen/house/house06.json index c1ddb44d22f05..810689e47be89 100644 --- a/data/json/mapgen/house/house06.json +++ b/data/json/mapgen/house/house06.json @@ -15,17 +15,17 @@ ".| | | r r |.", ".|oooo | | |.", ".|------+| |---+---|.", - ".| c|.", - ".|??????? hn lcc Sv.", - ".v? hnn cc Ov.", - ".v? cc h nn lcc f|.", + ".| 1|.", + ".|??????? hn lC3 5v.", + ".v? hnn C2 Ov.", + ".v? cc h nn lC4 f|.", ".|? cc h |.", ".| v.", ".|------ v.", ".| + nK D|.", ".| |-----------+--|.", ".|d |t S| |.", - ".v@@ + | |.", + ".v@@ + c| |.", ".v@@ |BB S| |.", ".|d |BBB + @@ |.", ".|n |BBB | d@@d |.", @@ -45,26 +45,7 @@ "-": "t_wall", ".": "t_grass", ";": "t_door_locked", - "?": "t_floor", - "@": "t_floor", - "B": "t_floor", - "C": "t_floor", - "D": "t_floor", - "G": "t_floor", - "Y": "t_floor", - "l": "t_floor", - "K": "t_floor", - "O": "t_floor", "P": "t_grass", - "S": "t_floor", - "c": "t_floor", - "d": "t_floor", - "f": "t_floor", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", "s": "t_sidewalk", "v": "t_window_domestic", "|": "t_wall" @@ -74,6 +55,11 @@ "@": "f_bed", "B": "f_bathtub", "C": "f_cupboard", + "1": "f_cupboard", + "2": "f_cupboard", + "3": "f_cupboard", + "4": "f_cupboard", + "5": "f_sink", "D": "f_trashcan", "K": "f_armchair", "O": "f_oven", @@ -93,7 +79,12 @@ "toilets": { "t": { } }, "items": { "Y": { "item": "coat_rack", "chance": 30, "repeat": [ 1, 4 ] }, - "P": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] } + "P": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] }, + "1": [ { "item": "SUS_dishes" }, { "item": "SUS_silverware" } ], + "2": { "item": "SUS_cookware" }, + "3": [ { "item": "SUS_utensils" }, { "item": "SUS_knife_drawer" } ], + "4": { "item": "SUS_junk_drawer" }, + "5": { "item": "SUS_kitchen_sink" } }, "place_loot": [ { "group": "bed", "x": [ 2, 3 ], "y": [ 18, 19 ], "chance": 90, "repeat": [ 1, 3 ] }, @@ -102,15 +93,15 @@ { "group": "bedroom", "x": [ 1, 6 ], "y": [ 15, 21 ], "chance": 80, "repeat": [ 1, 4 ] }, { "group": "consumer_electronics", "x": [ 1, 6 ], "y": [ 15, 21 ], "chance": 50, "repeat": [ 1, 3 ] }, { "group": "guns_pistol_common", "x": [ 2, 2 ], "y": [ 21, 21 ], "chance": 5, "ammo": 90, "magazine": 100 }, - { "group": "dresser", "x": [ 2, 2 ], "y": [ 20, 20 ], "chance": 80, "repeat": [ 1, 2 ] }, - { "group": "dresser", "x": [ 2, 2 ], "y": [ 17, 17 ], "chance": 80, "repeat": [ 1, 4 ] }, + { "group": "dresser", "x": [ 2, 2 ], "y": [ 20, 20 ], "chance": 80, "repeat": [ 3, 6 ] }, + { "group": "dresser", "x": [ 2, 2 ], "y": [ 17, 17 ], "chance": 80, "repeat": [ 2, 4 ] }, { "group": "bedroom", "x": [ 15, 21 ], "y": [ 17, 21 ], "chance": 80, "repeat": [ 1, 4 ] }, - { "group": "dresser", "x": [ 20, 20 ], "y": [ 21, 21 ], "chance": 80, "repeat": [ 1, 2 ] }, - { "group": "dresser", "x": [ 17, 17 ], "y": [ 21, 21 ], "chance": 80, "repeat": [ 1, 2 ] }, + { "group": "dresser", "x": [ 20, 20 ], "y": [ 21, 21 ], "chance": 80, "repeat": [ 3, 6 ] }, + { "group": "dresser", "x": [ 17, 17 ], "y": [ 21, 21 ], "chance": 80, "repeat": [ 3, 6 ] }, { "group": "cleaning", "x": [ 7, 14 ], "y": [ 17, 21 ], "chance": 90, "repeat": [ 1, 2 ] }, { "group": "softdrugs", "x": [ 7, 14 ], "y": [ 17, 21 ], "chance": 75, "repeat": [ 1, 3 ] }, { "group": "kitchen", "x": [ 15, 21 ], "y": [ 2, 11 ], "chance": 70, "repeat": [ 1, 3 ] }, - { "group": "fridge", "x": [ 21, 21 ], "y": [ 11, 11 ], "chance": 90, "repeat": [ 1, 5 ] }, + { "group": "fridge", "x": [ 21, 21 ], "y": [ 11, 11 ], "chance": 90, "repeat": [ 5, 10 ] }, { "group": "oven", "x": [ 21, 21 ], "y": [ 10, 10 ], "chance": 75, "repeat": [ 1, 3 ] }, { "group": "kitchen", "x": [ 21, 21 ], "y": [ 9, 9 ], "chance": 80, "repeat": [ 1, 2 ] }, { "group": "trash_forest", "x": [ 21, 21 ], "y": [ 15, 15 ], "chance": 80, "repeat": [ 1, 3 ] }, diff --git a/data/json/mapgen/house/house07.json b/data/json/mapgen/house/house07.json index 8b49490d15d66..5f7854b000736 100644 --- a/data/json/mapgen/house/house07.json +++ b/data/json/mapgen/house/house07.json @@ -15,11 +15,11 @@ ".|o hnn | r c |.", ".|o h | |.", ".|o |+------|.", - ".| | c|.", - ".| ? o| lcc Sv.", - ".vn ? o| cc Ov.", - ".vn ? o| lcc f|.", - ".| ? + |.", + ".| | 1|.", + ".| ? o| lc2 5v.", + ".vn ? o| c3 Ov.", + ".vn ? o| lc4 f|.", + ".| ? + c|.", ".| K c | h v.", ".|------ |h v.", ".|t + |nnn D|.", @@ -44,27 +44,9 @@ "+": "t_door_c", "-": "t_wall", ".": "t_grass", - "0": "t_floor", ";": "t_door_locked", - "?": "t_floor", - "@": "t_floor", - "B": "t_floor", - "D": "t_floor", - "G": "t_floor", - "l": "t_floor", - "Y": "t_floor", - "K": "t_floor", - "O": "t_floor", "P": "t_grass", - "S": "t_floor", "T": "t_tree", - "c": "t_floor", - "d": "t_floor", - "f": "t_floor", - "h": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", "s": "t_sidewalk", "v": "t_window_domestic", "|": "t_wall" @@ -83,6 +65,11 @@ "Y": "f_rack_coat", "S": "f_sink", "c": "f_counter", + "1": "f_cupboard", + "2": "f_cupboard", + "3": "f_cupboard", + "4": "f_cupboard", + "5": "f_sink", "d": "f_dresser", "f": "f_fridge", "h": "f_chair", @@ -93,7 +80,12 @@ "toilets": { "t": { } }, "items": { "Y": { "item": "coat_rack", "chance": 30, "repeat": [ 1, 4 ] }, - "P": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] } + "P": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] }, + "1": [ { "item": "SUS_dishes" }, { "item": "SUS_silverware" } ], + "2": { "item": "SUS_cookware" }, + "3": [ { "item": "SUS_utensils" }, { "item": "SUS_knife_drawer" } ], + "4": { "item": "SUS_junk_drawer" }, + "5": { "item": "SUS_kitchen_sink" } }, "place_loot": [ { "group": "bed", "x": [ 18, 19 ], "y": [ 20, 21 ], "chance": 90, "repeat": [ 1, 3 ] }, @@ -101,15 +93,15 @@ { "group": "fridge", "x": [ 8, 9 ], "y": [ 4, 5 ], "chance": 40, "repeat": [ 1, 2 ] }, { "group": "consumer_electronics", "x": [ 1, 6 ], "y": [ 7, 21 ], "chance": 50, "repeat": [ 1, 3 ] }, { "group": "bedroom", "x": [ 15, 21 ], "y": [ 7, 21 ], "chance": 80, "repeat": [ 1, 5 ] }, - { "group": "dresser", "x": [ 20, 20 ], "y": [ 21, 21 ], "chance": 70, "repeat": [ 1, 2 ] }, - { "group": "dresser", "x": [ 17, 17 ], "y": [ 21, 21 ], "chance": 70, "repeat": [ 1, 2 ] }, + { "group": "dresser", "x": [ 20, 20 ], "y": [ 21, 21 ], "chance": 70, "repeat": [ 3, 6 ] }, + { "group": "dresser", "x": [ 17, 17 ], "y": [ 21, 21 ], "chance": 70, "repeat": [ 3, 6 ] }, { "group": "guns_pistol_common", "x": [ 8, 8 ], "y": [ 21, 21 ], "chance": 5, "ammo": 90, "magazine": 100 }, - { "group": "dresser", "x": [ 12, 12 ], "y": [ 21, 21 ], "chance": 90, "repeat": [ 1, 2 ] }, - { "group": "dresser", "x": [ 13, 13 ], "y": [ 17, 17 ], "chance": 50, "repeat": [ 1, 2 ] }, + { "group": "dresser", "x": [ 12, 12 ], "y": [ 21, 21 ], "chance": 90, "repeat": [ 3, 6 ] }, + { "group": "dresser", "x": [ 13, 13 ], "y": [ 17, 17 ], "chance": 50, "repeat": [ 3, 6 ] }, { "group": "softdrugs", "x": [ 2, 3 ], "y": [ 21, 21 ], "chance": 75, "repeat": [ 1, 3 ] }, { "group": "harddrugs", "x": [ 2, 3 ], "y": [ 21, 21 ], "chance": 15, "repeat": [ 1, 2 ] }, { "group": "kitchen", "x": [ 15, 21 ], "y": [ 2, 16 ], "chance": 70, "repeat": [ 1, 3 ] }, - { "group": "fridge", "x": [ 21, 21 ], "y": [ 11, 11 ], "chance": 90, "repeat": [ 1, 4 ] }, + { "group": "fridge", "x": [ 21, 21 ], "y": [ 11, 11 ], "chance": 90, "repeat": [ 5, 10 ] }, { "group": "oven", "x": [ 21, 21 ], "y": [ 10, 10 ], "chance": 75, "repeat": [ 1, 3 ] }, { "group": "kitchen", "x": [ 21, 21 ], "y": [ 9, 9 ], "chance": 80, "repeat": [ 1, 2 ] }, { "group": "trash_forest", "x": [ 21, 21 ], "y": [ 15, 15 ], "chance": 80, "repeat": [ 1, 3 ] }, diff --git a/data/json/mapgen/house/house08.json b/data/json/mapgen/house/house08.json index ebb8514b9701f..e50d4282f8aa2 100644 --- a/data/json/mapgen/house/house08.json +++ b/data/json/mapgen/house/house08.json @@ -16,9 +16,9 @@ ".v | h v.", ".|d @@ | h h |.", ".v @@c | | ---nn-|.", - ".|-----+- | |.", + ".|-----+- | 4|.", ".|d | Ov.", - ".|d |l CfSC|.", + ".|d |l 31f52|.", ".|--+-|-[---[---v-----|.", ".vB S|...............q.", ".|B t|...............q.", @@ -46,25 +46,11 @@ "+": "t_door_c", "-": "t_wall", ".": "t_grass", - "0": "t_floor", ";": "t_door_locked", - "@": "t_floor", - "B": "t_floor", - "C": "t_floor", - "D": "t_floor", - "O": "t_floor", "P": "t_grass", "Q": "t_fence_h", "S": "t_floor", "[": "t_door_glass_c", - "c": "t_floor", - "d": "t_floor", - "f": "t_floor", - "h": "t_floor", - "k": "t_floor", - "l": "t_floor", - "n": "t_floor", - "o": "t_floor", "q": "t_fence_v", "v": "t_window_domestic", "|": "t_wall" @@ -73,6 +59,11 @@ "@": "f_bed", "B": "f_bathtub", "C": "f_cupboard", + "1": "f_cupboard", + "2": "f_cupboard", + "3": "f_cupboard", + "4": "f_cupboard", + "5": "f_sink", "D": "f_trashcan", "O": "f_oven", "P": "f_mailbox", @@ -87,15 +78,22 @@ "o": "f_bookcase" }, "toilets": { "t": { } }, - "items": { "P": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] } }, + "items": { + "P": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] }, + "1": [ { "item": "SUS_dishes" }, { "item": "SUS_silverware" } ], + "2": { "item": "SUS_cookware" }, + "3": [ { "item": "SUS_utensils" }, { "item": "SUS_knife_drawer" } ], + "4": { "item": "SUS_junk_drawer" }, + "5": { "item": "SUS_kitchen_sink" } + }, "place_loot": [ { "group": "bed", "x": [ 4, 5 ], "y": [ 7, 8 ], "chance": 90, "repeat": [ 1, 3 ] }, { "group": "bedroom", "x": [ 2, 8 ], "y": [ 6, 8 ], "chance": 80, "repeat": [ 1, 5 ] }, { "group": "livingroom", "x": [ 9, 21 ], "y": [ 2, 7 ], "chance": 90, "repeat": [ 1, 4 ] }, { "group": "guns_pistol_common", "x": [ 2, 2 ], "y": [ 10, 11 ], "chance": 10, "ammo": 90, "magazine": 100 }, - { "group": "dresser", "x": [ 2, 2 ], "y": [ 10, 11 ], "chance": 80, "repeat": [ 1, 5 ] }, - { "group": "dresser", "x": [ 2, 2 ], "y": [ 7, 7 ], "chance": 90, "repeat": [ 1, 3 ] }, - { "group": "fridge", "x": [ 19, 19 ], "y": [ 11, 11 ], "chance": 90, "repeat": [ 1, 5 ] }, + { "group": "dresser", "x": [ 2, 2 ], "y": [ 10, 11 ], "chance": 80, "repeat": [ 3, 5 ] }, + { "group": "dresser", "x": [ 2, 2 ], "y": [ 7, 7 ], "chance": 90, "repeat": [ 2, 4 ] }, + { "group": "fridge", "x": [ 19, 19 ], "y": [ 11, 11 ], "chance": 90, "repeat": [ 5, 10 ] }, { "group": "kitchen", "x": [ 21, 21 ], "y": [ 11, 11 ], "chance": 85, "repeat": [ 1, 2 ] }, { "group": "kitchen", "x": [ 18, 18 ], "y": [ 11, 11 ], "chance": 80, "repeat": [ 1, 2 ] }, { "group": "kitchen", "x": [ 18, 20 ], "y": [ 7, 10 ], "chance": 70, "repeat": [ 1, 3 ] }, diff --git a/data/json/mapgen/house/house09.json b/data/json/mapgen/house/house09.json index e20f220ab8f6e..7818e773dda45 100644 --- a/data/json/mapgen/house/house09.json +++ b/data/json/mapgen/house/house09.json @@ -20,9 +20,9 @@ ".|o | h v.", ".| nnnn | CC|.", ".|---------|+---------|.", - ".vSCfO l| | t B|.", + ".v52fO l| | t B|.", ".v + + BBv.", - ".v ccc rrr| | S BB|.", + ".v 341 rrr| | S BB|.", ".|----------+-----+---|.", ".|d nv.", ".|@@ nv.", @@ -43,25 +43,6 @@ ".": "t_grass", "p": "t_grass", ";": "t_door_locked", - "?": "t_floor", - "@": "t_floor", - "B": "t_floor", - "C": "t_floor", - "D": "t_floor", - "K": "t_floor", - "l": "t_floor", - "O": "t_floor", - "S": "t_floor", - "W": "t_floor", - "Y": "t_floor", - "c": "t_floor", - "d": "t_floor", - "f": "t_floor", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", "s": "t_sidewalk", "v": "t_window_domestic", "|": "t_wall" @@ -71,6 +52,11 @@ "@": "f_bed", "B": "f_bathtub", "C": "f_cupboard", + "1": "f_cupboard", + "2": "f_cupboard", + "3": "f_cupboard", + "4": "f_cupboard", + "5": "f_sink", "D": "f_trashcan", "K": "f_armchair", "O": "f_oven", @@ -92,7 +78,12 @@ "items": { "p": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] }, "W": { "item": "laundry", "chance": 50, "repeat": [ 1, 10 ] }, - "Y": { "item": "laundry", "chance": 50, "repeat": [ 1, 10 ] } + "Y": { "item": "laundry", "chance": 50, "repeat": [ 1, 10 ] }, + "1": [ { "item": "SUS_dishes" }, { "item": "SUS_silverware" } ], + "2": { "item": "SUS_cookware" }, + "3": [ { "item": "SUS_utensils" }, { "item": "SUS_knife_drawer" } ], + "4": { "item": "SUS_junk_drawer" }, + "5": { "item": "SUS_kitchen_sink" } }, "place_loot": [ { "group": "bed", "x": [ 2, 3 ], "y": [ 18, 19 ], "chance": 90, "repeat": [ 1, 3 ] }, @@ -109,7 +100,7 @@ { "group": "novels", "x": [ 2, 2 ], "y": [ 8, 10 ], "chance": 85, "repeat": [ 1, 3 ] }, { "group": "softdrugs", "x": [ 15, 15 ], "y": [ 15, 15 ], "chance": 75, "repeat": [ 1, 3 ] }, { "group": "kitchen", "x": [ 2, 10 ], "y": [ 13, 15 ], "chance": 80, "repeat": [ 1, 3 ] }, - { "group": "fridge", "x": [ 4, 4 ], "y": [ 13, 13 ], "chance": 90, "repeat": [ 1, 5 ] }, + { "group": "fridge", "x": [ 4, 4 ], "y": [ 13, 13 ], "chance": 90, "repeat": [ 5, 10 ] }, { "group": "oven", "x": [ 5, 5 ], "y": [ 13, 13 ], "chance": 75, "repeat": [ 1, 3 ] }, { "group": "cannedfood", "x": [ 9, 10 ], "y": [ 15, 15 ], "chance": 70, "repeat": [ 1, 3 ] }, { "group": "pasta", "x": [ 3, 5 ], "y": [ 15, 15 ], "chance": 60, "repeat": [ 1, 2 ] }, diff --git a/data/json/mapgen/house/house10.json b/data/json/mapgen/house/house10.json index 91d02aa10da4a..4173236e33de9 100644 --- a/data/json/mapgen/house/house10.json +++ b/data/json/mapgen/house/house10.json @@ -23,9 +23,9 @@ "..|r + nn ?|r|c t|..", "..|--|o ?|-|S B|..", ".....vl |r|c B|..", - ".....vc f|+|+|-+-|..", - "#....vc c| |..", - ".....|c ccOcc| v..", + ".....v5 f|+|+|-+-|..", + "#....v1 C| |..", + ".....|C 42O3C| v..", ".....|-;-vvv-| @@ v..", ".....ssssssssw @@d |..", ".....ssssssss|-v---v-|..", @@ -44,21 +44,6 @@ ".": "t_grass", "p": "t_grass", ";": "t_door_locked", - "?": "t_floor", - "@": "t_floor", - "B": "t_floor", - "O": "t_floor", - "P": "t_floor", - "S": "t_floor", - "c": "t_floor", - "l": "t_floor", - "d": "t_floor", - "f": "t_floor", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", "s": "t_sidewalk", "v": "t_window_domestic", "w": "t_window", @@ -74,6 +59,12 @@ "P": "f_indoor_plant", "S": "f_sink", "c": "f_counter", + "C": "f_cupboard", + "1": "f_cupboard", + "2": "f_cupboard", + "3": "f_cupboard", + "4": "f_cupboard", + "5": "f_sink", "d": "f_dresser", "f": "f_fridge", "h": "f_chair", @@ -83,7 +74,14 @@ "r": "f_rack" }, "toilets": { "t": { } }, - "items": { "p": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] } }, + "items": { + "p": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] }, + "1": [ { "item": "SUS_dishes" }, { "item": "SUS_silverware" } ], + "2": { "item": "SUS_cookware" }, + "3": [ { "item": "SUS_utensils" }, { "item": "SUS_knife_drawer" } ], + "4": { "item": "SUS_junk_drawer" }, + "5": { "item": "SUS_kitchen_sink" } + }, "place_loot": [ { "group": "dresser", "x": [ 18, 18 ], "y": [ 20, 20 ], "chance": 80, "repeat": [ 1, 4 ] }, { "group": "dresser", "x": [ 20, 20 ], "y": [ 8, 8 ], "chance": 80, "repeat": [ 1, 4 ] }, @@ -95,7 +93,7 @@ { "group": "guns_pistol_common", "x": [ 20, 20 ], "y": [ 8, 8 ], "chance": 4, "ammo": 90, "magazine": 100 }, { "group": "guns_pistol_common", "x": [ 18, 18 ], "y": [ 20, 20 ], "chance": 3, "ammo": 90, "magazine": 100 }, { "group": "kitchen", "x": [ 6, 12 ], "y": [ 16, 18 ], "chance": 80, "repeat": [ 1, 3 ] }, - { "group": "fridge", "x": [ 12, 12 ], "y": [ 18, 18 ], "chance": 90, "repeat": [ 1, 5 ] }, + { "group": "fridge", "x": [ 12, 12 ], "y": [ 18, 18 ], "chance": 90, "repeat": [ 5, 10 ] }, { "group": "oven", "x": [ 10, 10 ], "y": [ 18, 18 ], "chance": 75, "repeat": [ 1, 3 ] }, { "group": "softdrugs", "x": [ 18, 20 ], "y": [ 13, 15 ], "chance": 75, "repeat": [ 1, 2 ] }, { "group": "cleaning", "x": [ 18, 19 ], "y": [ 13, 15 ], "chance": 90, "repeat": [ 1, 2 ] }, diff --git a/data/json/mapgen/house/house11.json b/data/json/mapgen/house/house11.json index cdd3c92227059..dacbc29b7d84d 100644 --- a/data/json/mapgen/house/house11.json +++ b/data/json/mapgen/house/house11.json @@ -24,10 +24,10 @@ "q.|t | hh + |.q", "q.|BB| cc nn | |.q", "q.|--| -| nn |rrrrrr|.q", - "q.|c | hh |------|.q", - "q.vS l| ;ssssss..q", - "q.vc |-VVV-|ssssss..q", - "q.|ccOcf|......sHNHss..q", + "q.|1 | hh |------|.q", + "q.v5 l| ;ssssss..q", + "q.v3 |-VVV-|ssssss..q", + "q.|C4O2f|......sHNHss..q", "q.|--vv-|......ssssss..q", "q......................q", "QQQQQQQQQQQQQQQQQQQQQQQQ" @@ -39,27 +39,13 @@ "p": "t_grass", ";": "t_door_locked", "=": "t_door_metal_locked", - "?": "t_floor", - "l": "t_floor", - "@": "t_floor", - "B": "t_floor", "H": "t_sidewalk", "N": "t_sidewalk", - "O": "t_floor", - "P": "t_floor", "Q": "t_fence_h", - "S": "t_floor", "V": "t_wall_glass", "_": "t_pavement", - "c": "t_floor", - "d": "t_floor", "e": "t_gates_mech_control", - "f": "t_floor", - "h": "t_floor", - "n": "t_floor", - "o": "t_floor", "q": "t_fence_v", - "r": "t_floor", "s": "t_sidewalk", "v": "t_window_domestic", "|": "t_wall" @@ -76,6 +62,12 @@ "P": "f_indoor_plant", "S": "f_sink", "c": "f_counter", + "C": "f_cupboard", + "1": "f_cupboard", + "2": "f_cupboard", + "3": "f_cupboard", + "4": "f_cupboard", + "5": "f_sink", "d": "f_dresser", "f": "f_fridge", "h": "f_chair", @@ -84,7 +76,14 @@ "r": "f_rack" }, "toilets": { "t": { } }, - "items": { "p": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] } }, + "items": { + "p": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] }, + "1": [ { "item": "SUS_dishes" }, { "item": "SUS_silverware" } ], + "2": { "item": "SUS_cookware" }, + "3": [ { "item": "SUS_utensils" }, { "item": "SUS_knife_drawer" } ], + "4": { "item": "SUS_junk_drawer" }, + "5": { "item": "SUS_kitchen_sink" } + }, "place_loot": [ { "group": "homebooks", "x": [ 13, 13 ], "y": [ 11, 12 ], "chance": 70, "repeat": [ 1, 3 ] }, { "group": "home_hw", "x": [ 14, 19 ], "y": [ 7, 15 ], "chance": 60, "repeat": [ 1, 3 ] }, @@ -99,7 +98,7 @@ { "group": "softdrugs", "x": [ 3, 4 ], "y": [ 12, 15 ], "chance": 75, "repeat": [ 1, 3 ] }, { "group": "cleaning", "x": [ 3, 4 ], "y": [ 12, 15 ], "chance": 90, "repeat": [ 1, 2 ] }, { "group": "harddrugs", "x": [ 3, 4 ], "y": [ 12, 15 ], "chance": 15, "repeat": [ 1, 2 ] }, - { "group": "fridge", "x": [ 7, 7 ], "y": [ 20, 20 ], "chance": 90, "repeat": [ 1, 5 ] }, + { "group": "fridge", "x": [ 7, 7 ], "y": [ 20, 20 ], "chance": 90, "repeat": [ 3, 10 ] }, { "group": "kitchen", "x": [ 3, 7 ], "y": [ 17, 20 ], "chance": 80, "repeat": [ 1, 4 ] }, { "group": "oven", "x": [ 5, 5 ], "y": [ 20, 20 ], "chance": 75, "repeat": [ 1, 3 ] }, { "group": "livingroom", "x": [ 6, 12 ], "y": [ 10, 15 ], "chance": 90, "repeat": [ 1, 4 ] }, diff --git a/data/json/mapgen/house/house12.json b/data/json/mapgen/house/house12.json index 2d6c8422fe329..086462beb8c53 100644 --- a/data/json/mapgen/house/house12.json +++ b/data/json/mapgen/house/house12.json @@ -21,11 +21,11 @@ "..q###ss##|C| + K|...", "..|--v;;v--+| | kk|...", "..|oo + |--+--|...", - "..| -| W|d d|....", + "..| 134| W|d d|....", "..vKK f| Y|-+-|....", - "..v ? hh C| || B|....", + "..v ? hh 2| || B|....", "..vnn ? nn O| + B%....", - "..| ? nn S|+|cSt |....", + "..| ? nn 5|+|cSt |....", "..|???? hh D|d|-%--|....", "..|-vv--vv----|.........", "........................", @@ -53,24 +53,7 @@ "p": "t_grass", ".": "t_grass", ";": "t_door_locked_peep", - "?": "t_floor", - "@": "t_floor", - "B": "t_floor", - "C": "t_floor", - "D": "t_floor", - "K": "t_floor", - "O": "t_floor", "Q": "t_fence_h", - "S": "t_floor", - "W": "t_floor", - "Y": "t_floor", - "c": "t_floor", - "d": "t_floor", - "f": "t_floor", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", "q": "t_fence_v", "s": "t_sidewalk", "v": "t_window_domestic", @@ -81,6 +64,11 @@ "@": "f_bed", "B": "f_bathtub", "C": "f_cupboard", + "1": "f_cupboard", + "2": "f_cupboard", + "3": "f_cupboard", + "4": "f_cupboard", + "5": "f_sink", "D": "f_trashcan", "K": "f_armchair", "O": "f_oven", @@ -100,7 +88,12 @@ "items": { "p": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] }, "Y": { "item": "laundry", "chance": 50, "repeat": [ 1, 10 ] }, - "W": { "item": "laundry", "chance": 50, "repeat": [ 1, 10 ] } + "W": { "item": "laundry", "chance": 50, "repeat": [ 1, 10 ] }, + "1": [ { "item": "SUS_dishes" }, { "item": "SUS_silverware" } ], + "2": { "item": "SUS_cookware" }, + "3": [ { "item": "SUS_utensils" }, { "item": "SUS_knife_drawer" } ], + "4": { "item": "SUS_junk_drawer" }, + "5": { "item": "SUS_kitchen_sink" } }, "place_loot": [ { "group": "dresser", "x": [ 19, 19 ], "y": [ 6, 6 ], "chance": 75, "repeat": [ 1, 4 ] }, @@ -111,7 +104,7 @@ { "group": "dresser", "x": [ 18, 18 ], "y": [ 14, 14 ], "chance": 85, "repeat": [ 1, 3 ] }, { "group": "dresser", "x": [ 16, 16 ], "y": [ 14, 14 ], "chance": 85, "repeat": [ 1, 2 ] }, { "group": "softdrugs", "x": [ 16, 18 ], "y": [ 16, 17 ], "chance": 75, "repeat": [ 1, 3 ] }, - { "group": "fridge", "x": [ 11, 11 ], "y": [ 15, 15 ], "chance": 90, "repeat": [ 1, 5 ] }, + { "group": "fridge", "x": [ 11, 11 ], "y": [ 15, 15 ], "chance": 90, "repeat": [ 5, 10 ] }, { "group": "oven", "x": [ 11, 11 ], "y": [ 17, 17 ], "chance": 75, "repeat": [ 1, 3 ] }, { "group": "kitchen", "x": [ 11, 11 ], "y": [ 11, 11 ], "chance": 85, "repeat": [ 1, 2 ] }, { "group": "trash", "x": [ 11, 11 ], "y": [ 19, 19 ], "chance": 90, "repeat": [ 1, 3 ] }, diff --git a/data/json/mapgen/house/house13.json b/data/json/mapgen/house/house13.json index eb723a4880e8a..cd2679ab6ad30 100644 --- a/data/json/mapgen/house/house13.json +++ b/data/json/mapgen/house/house13.json @@ -18,10 +18,10 @@ "..#|vvvv|##|vvv|#.ss....", ".|-|????|--|???|-|ssQQq.", ".| ;''''q.", - ".| h nn ? hnnh -|'''bq.", + ".| h nn ? hnnh 34|'''bq.", ".|0 nn ? hnnh f|'''bq.", - ".| h nn ? Sv''''q.", - ".| D COC|'HH'q.", + ".| h nn ? 5v''''q.", + ".| D 1O2|'HH'q.", ".|-+-------+-+---|QQQQq.", ".|k D + | | Dk|......", ".v | t|t + v......", @@ -55,23 +55,10 @@ "-": "t_wall", "p": "t_grass", ".": "t_grass", - "0": "t_floor", ";": "t_door_locked", - "?": "t_floor", - "@": "t_floor", - "B": "t_floor", - "C": "t_floor", - "D": "t_floor", "H": "t_concrete", - "O": "t_floor", "Q": "t_fence_h", - "S": "t_floor", "b": "t_concrete", - "d": "t_floor", - "f": "t_floor", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", "q": "t_fence_v", "s": "t_sidewalk", "v": "t_window_domestic", @@ -83,6 +70,11 @@ "@": "f_bed", "B": "f_bathtub", "C": "f_cupboard", + "1": "f_cupboard", + "2": "f_cupboard", + "3": "f_cupboard", + "4": "f_cupboard", + "5": "f_sink", "D": "f_trashcan", "H": "f_chair", "O": "f_oven", @@ -96,7 +88,14 @@ "n": "f_table" }, "toilets": { "t": { } }, - "items": { "p": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] } }, + "items": { + "p": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] }, + "1": [ { "item": "SUS_dishes" }, { "item": "SUS_silverware" } ], + "2": { "item": "SUS_cookware" }, + "3": [ { "item": "SUS_utensils" }, { "item": "SUS_knife_drawer" } ], + "4": { "item": "SUS_junk_drawer" }, + "5": { "item": "SUS_kitchen_sink" } + }, "place_loot": [ { "group": "bedroom", "x": [ 2, 5 ], "y": [ 16, 19 ], "chance": 80, "repeat": [ 1, 4 ] }, { "group": "trash", "x": [ 4, 4 ], "y": [ 16, 16 ], "chance": 70, "repeat": [ 1, 2 ] }, @@ -111,7 +110,7 @@ { "group": "cleaning", "x": [ 8, 8 ], "y": [ 16, 16 ], "chance": 85, "repeat": [ 1, 2 ] }, { "group": "dresser", "x": [ 2, 2 ], "y": [ 19, 19 ], "chance": 80, "repeat": [ 1, 2 ] }, { "group": "dresser", "x": [ 5, 5 ], "y": [ 19, 19 ], "chance": 80, "repeat": [ 1, 2 ] }, - { "group": "kitchen", "x": [ 15, 15 ], "y": [ 10, 13 ], "chance": 70, "repeat": [ 1, 3 ] }, + { "group": "kitchen", "x": [ 15, 15 ], "y": [ 10, 13 ], "chance": 70, "repeat": [ 5, 10 ] }, { "group": "softdrugs", "x": [ 7, 8 ], "y": [ 16, 19 ], "chance": 75, "repeat": [ 1, 2 ] }, { "group": "softdrugs", "x": [ 10, 11 ], "y": [ 16, 19 ], "chance": 75, "repeat": [ 1, 2 ] }, { "group": "bed", "x": [ 3, 4 ], "y": [ 18, 19 ], "chance": 90, "repeat": [ 1, 3 ] }, diff --git a/data/json/mapgen/house/house14.json b/data/json/mapgen/house/house14.json index bbd462123e7b0..dffbc0b7557f3 100644 --- a/data/json/mapgen/house/house14.json +++ b/data/json/mapgen/house/house14.json @@ -16,10 +16,10 @@ ".| L|....sss....q..", ".| L|####sss####q..", ".| |--vv--;--vv-|..", - ".| |????? c c|..", - ".| |? c c|..", - ".| |? nnn S O|..", - ".| |? nnn C|..", + ".| |????? 3 4|..", + ".| |? 1 D|..", + ".| |? nnn 5 O|..", + ".| |? nnn 2|..", ".|r rrrr| o f|..", ".|-:----| |---| |----|..", ".| + |d|C+ | StB|..", @@ -53,28 +53,11 @@ ":": "t_door_locked_interior", ";": "t_door_locked", "=": "t_door_metal_locked", - "?": "t_floor", - "@": "t_floor", - "B": "t_floor", - "l": "t_floor", - "C": "t_floor", - "F": "t_floor", - "L": "t_floor", - "O": "t_floor", "Q": "t_fence_h", - "S": "t_floor", - "W": "t_floor", "X": "t_shrub_blueberry", - "Y": "t_floor", "_": "t_pavement", - "c": "t_floor", - "d": "t_floor", "e": "t_gates_mech_control", - "f": "t_floor", - "n": "t_floor", - "o": "t_floor", "q": "t_fence_v", - "r": "t_floor", "s": "t_sidewalk", "v": "t_window_domestic", "w": "t_window", @@ -86,6 +69,12 @@ "@": "f_bed", "B": "f_bathtub", "C": "f_cupboard", + "1": "f_cupboard", + "2": "f_cupboard", + "3": "f_cupboard", + "4": "f_cupboard", + "5": "f_sink", + "D": "f_dishwasher", "F": "f_glass_fridge", "L": "f_locker", "O": "f_oven", @@ -105,13 +94,19 @@ "items": { "p": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] }, "W": { "item": "laundry", "chance": 50, "repeat": [ 1, 10 ] }, - "Y": { "item": "laundry", "chance": 50, "repeat": [ 1, 10 ] } + "Y": { "item": "laundry", "chance": 50, "repeat": [ 1, 10 ] }, + "D": [ { "item": "dining", "chance": 50, "repeat": 2 }, { "item": "oven", "chance": 50, "repeat": 2 } ], + "1": [ { "item": "SUS_dishes" }, { "item": "SUS_silverware" } ], + "2": { "item": "SUS_cookware" }, + "3": [ { "item": "SUS_utensils" }, { "item": "SUS_knife_drawer" } ], + "4": { "item": "SUS_junk_drawer" }, + "5": { "item": "SUS_kitchen_sink" } }, "place_loot": [ { "group": "kitchen", "x": [ 18, 19 ], "y": [ 11, 11 ], "chance": 60, "repeat": [ 1, 2 ] }, { "group": "dresser", "x": [ 18, 18 ], "y": [ 20, 20 ], "chance": 80, "repeat": [ 1, 3 ] }, { "group": "oven", "x": [ 20, 20 ], "y": [ 11, 11 ], "chance": 75, "repeat": [ 1, 3 ] }, - { "group": "fridge", "x": [ 20, 20 ], "y": [ 13, 13 ], "chance": 90, "repeat": [ 1, 4 ] }, + { "group": "fridge", "x": [ 20, 20 ], "y": [ 13, 13 ], "chance": 90, "repeat": [ 5, 10 ] }, { "group": "homebooks", "x": [ 17, 17 ], "y": [ 13, 13 ], "chance": 70, "repeat": [ 1, 3 ] }, { "group": "dresser", "x": [ 15, 15 ], "y": [ 20, 20 ], "chance": 90, "repeat": [ 1, 3 ] }, { "group": "kitchen", "x": [ 13, 13 ], "y": [ 15, 15 ], "chance": 90, "repeat": [ 1, 3 ] }, @@ -119,7 +114,7 @@ { "group": "dresser", "x": [ 11, 11 ], "y": [ 15, 15 ], "chance": 90, "repeat": [ 1, 2 ] }, { "group": "bed", "x": [ 19, 20 ], "y": [ 19, 20 ], "chance": 90, "repeat": [ 1, 3 ] }, { "group": "tools_common", "x": [ 4, 7 ], "y": [ 13, 13 ], "chance": 80, "repeat": [ 1, 3 ] }, - { "group": "fridge", "x": [ 2, 3 ], "y": [ 17, 17 ], "chance": 65, "repeat": [ 1, 4 ] }, + { "group": "fridge", "x": [ 2, 3 ], "y": [ 17, 17 ], "chance": 65, "repeat": [ 5, 12 ] }, { "group": "tools_common", "x": [ 2, 2 ], "y": [ 13, 13 ], "chance": 65, "repeat": [ 1, 2 ] }, { "group": "bed", "x": [ 10, 11 ], "y": [ 19, 20 ], "chance": 90, "repeat": [ 1, 3 ] }, { "group": "livingroom", "x": [ 9, 15 ], "y": [ 9, 13 ], "chance": 90, "repeat": [ 1, 5 ] }, diff --git a/data/json/mapgen/house/house15.json b/data/json/mapgen/house/house15.json index f5507781e2444..e8e8f7260ee83 100644 --- a/data/json/mapgen/house/house15.json +++ b/data/json/mapgen/house/house15.json @@ -16,9 +16,9 @@ ".#''''#X|vvvvvv|X#''''#.", ".#'''#X||??????||X#'''#.", ".#'''x||K K||x'''#.", - ".|v;v-|Kn nnnn nK|-v;v|.", - ".|k P| nnnn c|.", - ".|h @@|o S|.", + ".|v;v-|Kn nnnn nK|-;vv|.", + ".|k P| nnnn 34 12|.", + ".|h @@|o 5|.", ".| @@|o P00P hnnh O|.", ".| d| ------ hnnh f|.", ".| P + D|.", @@ -57,28 +57,9 @@ "+": "t_door_c", "-": "t_wall", ".": "t_grass", - "0": "t_floor", ";": "t_door_locked", - "?": "t_floor", - "@": "t_floor", - "B": "t_floor", - "D": "t_floor", - "K": "t_floor", - "O": "t_floor", - "P": "t_floor", - "S": "t_floor", - "W": "t_floor", "X": "t_shrub_blueberry", - "Y": "t_floor", - "c": "t_floor", - "d": "t_floor", - "f": "t_floor", "g": "t_dirt", - "h": "t_floor", - "j": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", "p": "t_grass", "s": "t_sidewalk", "v": "t_window_domestic", @@ -91,6 +72,12 @@ "?": "f_sofa", "@": "f_bed", "B": "f_bathtub", + "C": "f_cupboard", + "1": "f_cupboard", + "2": "f_cupboard", + "3": "f_cupboard", + "4": "f_cupboard", + "5": "f_sink", "D": "f_trashcan", "K": "f_armchair", "O": "f_oven", @@ -110,14 +97,21 @@ "p": "f_mailbox" }, "toilets": { "t": { } }, - "items": { "p": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] } }, + "items": { + "p": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] }, + "1": [ { "item": "SUS_dishes" }, { "item": "SUS_silverware" } ], + "2": { "item": "SUS_cookware" }, + "3": [ { "item": "SUS_utensils" }, { "item": "SUS_knife_drawer" } ], + "4": { "item": "SUS_junk_drawer" }, + "5": { "item": "SUS_kitchen_sink" } + }, "place_loot": [ { "group": "dresser", "x": [ 2, 2 ], "y": [ 17, 17 ], "chance": 90, "repeat": [ 1, 2 ] }, { "group": "cleaning", "x": [ 18, 19 ], "y": [ 16, 16 ], "chance": 90, "repeat": [ 1, 2 ] }, { "group": "dresser", "x": [ 18, 19 ], "y": [ 17, 17 ], "chance": 70, "repeat": [ 1, 4 ] }, { "group": "home_hw", "x": [ 21, 21 ], "y": [ 16, 17 ], "chance": 65, "repeat": [ 1, 3 ] }, { "group": "trash", "x": [ 21, 21 ], "y": [ 14, 14 ], "chance": 80, "repeat": [ 1, 3 ] }, - { "group": "fridge", "x": [ 21, 21 ], "y": [ 13, 13 ], "chance": 90, "repeat": [ 1, 4 ] }, + { "group": "fridge", "x": [ 21, 21 ], "y": [ 13, 13 ], "chance": 90, "repeat": [ 5, 10 ] }, { "group": "oven", "x": [ 21, 21 ], "y": [ 12, 12 ], "chance": 75, "repeat": [ 1, 3 ] }, { "group": "kitchen", "x": [ 19, 21 ], "y": [ 10, 14 ], "chance": 85, "repeat": [ 1, 3 ] }, { "group": "dining", "x": [ 17, 18 ], "y": [ 12, 13 ], "chance": 75, "repeat": [ 1, 4 ] }, diff --git a/data/json/mapgen/house/house16.json b/data/json/mapgen/house/house16.json index 1288332048c4f..a9d8e427cace8 100644 --- a/data/json/mapgen/house/house16.json +++ b/data/json/mapgen/house/house16.json @@ -46,23 +46,6 @@ ".": "t_grass", "p": "t_grass", ";": "t_door_locked", - "?": "t_floor", - "@": "t_floor", - "C": "t_floor", - "D": "t_floor", - "K": "t_floor", - "O": "t_floor", - "P": "t_floor", - "S": "t_floor", - "W": "t_floor", - "Y": "t_floor", - "c": "t_floor", - "d": "t_floor", - "f": "t_floor", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", "s": "t_sidewalk", "v": "t_window_domestic", "|": "t_wall" @@ -73,6 +56,11 @@ "@": "f_bed", "p": "f_mailbox", "C": "f_cupboard", + "1": "f_cupboard", + "2": "f_cupboard", + "3": "f_cupboard", + "4": "f_cupboard", + "5": "f_sink", "D": "f_trashcan", "K": "f_armchair", "O": "f_oven", @@ -92,12 +80,17 @@ "items": { "p": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] }, "W": { "item": "laundry", "chance": 50, "repeat": [ 1, 10 ] }, - "Y": { "item": "laundry", "chance": 50, "repeat": [ 1, 10 ] } + "Y": { "item": "laundry", "chance": 50, "repeat": [ 1, 10 ] }, + "1": [ { "item": "SUS_dishes" }, { "item": "SUS_silverware" } ], + "2": { "item": "SUS_cookware" }, + "3": [ { "item": "SUS_utensils" }, { "item": "SUS_knife_drawer" } ], + "4": { "item": "SUS_junk_drawer" }, + "5": { "item": "SUS_kitchen_sink" } }, "place_loot": [ { "group": "dining", "x": [ 18, 19 ], "y": [ 15, 16 ], "chance": 75, "repeat": [ 1, 4 ] }, { "group": "oven", "x": [ 14, 14 ], "y": [ 13, 13 ], "chance": 75, "repeat": [ 1, 3 ] }, - { "group": "fridge", "x": [ 14, 14 ], "y": [ 9, 9 ], "chance": 90, "repeat": [ 1, 4 ] }, + { "group": "fridge", "x": [ 14, 14 ], "y": [ 9, 9 ], "chance": 90, "repeat": [ 5, 10 ] }, { "group": "kitchen", "x": [ 14, 16 ], "y": [ 10, 12 ], "chance": 85, "repeat": [ 1, 3 ] }, { "group": "trash", "x": [ 14, 14 ], "y": [ 14, 14 ], "chance": 80, "repeat": [ 1, 3 ] }, { "group": "softdrugs", "x": [ 10, 11 ], "y": [ 13, 14 ], "chance": 75, "repeat": [ 1, 2 ] }, diff --git a/data/json/mapgen/house/house17.json b/data/json/mapgen/house/house17.json index 93e01c9eb7165..9e2626d0b17d9 100644 --- a/data/json/mapgen/house/house17.json +++ b/data/json/mapgen/house/house17.json @@ -23,10 +23,10 @@ ".|d|K P|P P|P K|d|...", ".|-|-+-|o o|-+-|-|...", "...|D |.....", - "...|c ????? v.....", + "...|1 ????? v.....", "...vO Ccl ? ? |.....", - "...vc Scl ? n ? |-v-|.", - "...|cfcccl + |.", + "...v2 5cl ? n ? |-v-|.", + "...|3f4Ccl + |.", "...|--vv---+++--v-|S Bv.", "..........|LYW|...|t B|.", "..........|---|...|-v-|.", @@ -52,24 +52,6 @@ "-": "t_wall", ".": "t_grass", ";": "t_door_locked", - "?": "t_floor", - "@": "t_floor", - "B": "t_floor", - "C": "t_floor", - "D": "t_floor", - "K": "t_floor", - "L": "t_floor", - "O": "t_floor", - "P": "t_floor", - "S": "t_floor", - "W": "t_floor", - "Y": "t_floor", - "c": "t_floor", - "d": "t_floor", - "f": "t_floor", - "l": "t_floor", - "n": "t_floor", - "o": "t_floor", "p": "t_grass", "s": "t_sidewalk", "v": "t_window_domestic", @@ -80,6 +62,11 @@ "@": "f_bed", "B": "f_bathtub", "C": "f_cupboard", + "1": "f_cupboard", + "2": "f_cupboard", + "3": "f_cupboard", + "4": "f_cupboard", + "5": "f_sink", "D": "f_trashcan", "K": "f_armchair", "L": "f_locker", @@ -100,12 +87,17 @@ "items": { "Y": { "item": "laundry", "chance": 50, "repeat": [ 1, 10 ] }, "W": { "item": "laundry", "chance": 50, "repeat": [ 1, 10 ] }, - "P": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] } + "P": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] }, + "1": [ { "item": "SUS_dishes" }, { "item": "SUS_silverware" } ], + "2": { "item": "SUS_cookware" }, + "3": [ { "item": "SUS_utensils" }, { "item": "SUS_knife_drawer" } ], + "4": { "item": "SUS_junk_drawer" }, + "5": { "item": "SUS_kitchen_sink" } }, "place_loot": [ { "group": "livingroom", "x": [ 10, 17 ], "y": [ 15, 19 ], "chance": 90, "repeat": [ 1, 6 ] }, { "group": "kitchen", "x": [ 4, 7 ], "y": [ 16, 19 ], "chance": 85, "repeat": [ 1, 3 ] }, - { "group": "fridge", "x": [ 5, 5 ], "y": [ 19, 19 ], "chance": 90, "repeat": [ 1, 4 ] }, + { "group": "fridge", "x": [ 5, 5 ], "y": [ 19, 19 ], "chance": 90, "repeat": [ 5, 10 ] }, { "group": "oven", "x": [ 4, 4 ], "y": [ 17, 17 ], "chance": 75, "repeat": [ 1, 3 ] }, { "group": "trash", "x": [ 4, 4 ], "y": [ 15, 15 ], "chance": 80, "repeat": [ 1, 3 ] }, { "group": "dining", "x": [ 7, 8 ], "y": [ 17, 19 ], "chance": 75, "repeat": [ 1, 4 ] }, diff --git a/data/json/mapgen/house/house18.json b/data/json/mapgen/house/house18.json index 248c1f99065f7..bf8068228110d 100644 --- a/data/json/mapgen/house/house18.json +++ b/data/json/mapgen/house/house18.json @@ -17,11 +17,11 @@ ".|???? | hhh |..", ".| | |..", ".|--- | ---|..", - ".|cc | | | fcc|..", - ".vc |d|d| cv..", + ".|CC | | | f3C|..", + ".vC |d|d| 4v..", ".|O |-|-| O|..", - ".vC |L|L| Cv..", - ".|CCuf |+|+| cuC|..", + ".v5 |L|L| 5v..", + ".|312f4 |+|+| C12|..", ".|-----| | |-----|..", ".| oco | | |oo |..", ".|h + | + d|..", @@ -42,27 +42,11 @@ ".": "t_grass", "p": "t_grass", ";": "t_door_locked", - "?": "t_floor", - "@": "t_floor", "B": "t_linoleum_gray", - "C": "t_floor", - "L": "t_floor", - "O": "t_floor", - "Y": "t_floor", - "P": "t_floor", "S": "t_linoleum_gray", - "c": "t_floor", - "d": "t_floor", - "f": "t_floor", - "h": "t_floor", "i": "t_linoleum_gray", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", "s": "t_sidewalk", "t": "t_linoleum_gray", - "u": "t_floor", "v": "t_window_domestic", "|": "t_wall" }, @@ -71,6 +55,11 @@ "@": "f_bed", "B": "f_bathtub", "C": "f_cupboard", + "1": "f_cupboard", + "2": "f_cupboard", + "3": "f_cupboard", + "4": "f_cupboard", + "5": "f_sink", "L": "f_locker", "O": "f_oven", "p": "f_mailbox", @@ -90,7 +79,12 @@ "toilets": { "t": { } }, "items": { "Y": { "item": "coat_rack", "chance": 30, "repeat": [ 1, 4 ] }, - "p": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] } + "p": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] }, + "1": [ { "item": "SUS_dishes" }, { "item": "SUS_silverware" } ], + "2": { "item": "SUS_cookware" }, + "3": [ { "item": "SUS_utensils" }, { "item": "SUS_knife_drawer" } ], + "4": { "item": "SUS_junk_drawer" }, + "5": { "item": "SUS_kitchen_sink" } }, "place_loot": [ { "group": "homebooks", "x": [ 3, 3 ], "y": [ 16, 16 ], "chance": 70, "repeat": [ 1, 2 ] }, @@ -104,8 +98,8 @@ { "group": "dining", "x": [ 17, 19 ], "y": [ 5, 6 ], "chance": 85, "repeat": [ 1, 3 ] }, { "group": "dining", "x": [ 4, 4 ], "y": [ 14, 14 ], "chance": 70, "repeat": [ 1, 5 ] }, { "group": "dining", "x": [ 19, 19 ], "y": [ 14, 14 ], "chance": 70, "repeat": [ 1, 4 ] }, - { "group": "fridge", "x": [ 5, 5 ], "y": [ 14, 14 ], "chance": 90, "repeat": [ 1, 4 ] }, - { "group": "fridge", "x": [ 18, 18 ], "y": [ 10, 10 ], "chance": 90, "repeat": [ 1, 3 ] }, + { "group": "fridge", "x": [ 5, 5 ], "y": [ 14, 14 ], "chance": 90, "repeat": [ 5, 10 ] }, + { "group": "fridge", "x": [ 18, 18 ], "y": [ 10, 10 ], "chance": 90, "repeat": [ 5, 8 ] }, { "group": "oven", "x": [ 2, 2 ], "y": [ 12, 12 ], "chance": 75, "repeat": [ 1, 3 ] }, { "group": "oven", "x": [ 20, 20 ], "y": [ 12, 12 ], "chance": 75, "repeat": [ 1, 3 ] }, { "group": "kitchen", "x": [ 2, 3 ], "y": [ 10, 14 ], "chance": 85, "repeat": [ 1, 3 ] }, diff --git a/data/json/mapgen/house/house19.json b/data/json/mapgen/house/house19.json index 1eb9ada9c6259..e4701407b95fc 100644 --- a/data/json/mapgen/house/house19.json +++ b/data/json/mapgen/house/house19.json @@ -21,12 +21,12 @@ ".q.| |BiS|o +iiB| |.q.", ".q.|r|Bit|o |StB|r|.q.", ".q.|-|---| |---|-|.q.", - ".q.| hnnh c|.q.", + ".q.| hnnh C|.q.", ".q.|c ? hnnh f|.q.", - ".q.|c nn ? cv.q.", - ".q.|c nn ? uv.q.", - ".q.|c ? u|.q.", - ".q.| cOCC|.q.", + ".q.|c nn ? 1|.q.", + ".q.|c nn ? 5v.q.", + ".q.|c ? uv.q.", + ".q.| 4O23|.q.", ".q.|--vvv--vv-;-----|.q.", ".q...........sss......q.", ".qQQQQQQQQQQQsssQQQQQQq.", @@ -43,29 +43,14 @@ ".": "t_grass", "p": "t_grass", ";": "t_door_locked", - "?": "t_floor", - "@": "t_floor", "B": "t_linoleum_gray", - "C": "t_floor", - "O": "t_floor", - "Y": "t_floor", - "P": "t_floor", "Q": "t_fence_h", "S": "t_linoleum_gray", "T": "t_tree", - "c": "t_floor", - "d": "t_floor", - "f": "t_floor", - "h": "t_floor", "i": "t_linoleum_gray", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", "q": "t_fence_v", - "r": "t_floor", "s": "t_sidewalk", "t": "t_linoleum_gray", - "u": "t_floor", "v": "t_window_domestic", "|": "t_wall" }, @@ -76,6 +61,11 @@ "Y": "f_rack_coat", "B": "f_bathtub", "C": "f_cupboard", + "1": "f_cupboard", + "2": "f_cupboard", + "3": "f_cupboard", + "4": "f_cupboard", + "5": "f_sink", "O": "f_oven", "P": "f_indoor_plant", "S": "f_sink", @@ -92,7 +82,12 @@ "toilets": { "t": { } }, "items": { "Y": { "item": "coat_rack", "chance": 30, "repeat": [ 1, 4 ] }, - "p": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] } + "p": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] }, + "1": [ { "item": "SUS_dishes" }, { "item": "SUS_silverware" } ], + "2": { "item": "SUS_cookware" }, + "3": [ { "item": "SUS_utensils" }, { "item": "SUS_knife_drawer" } ], + "4": { "item": "SUS_junk_drawer" }, + "5": { "item": "SUS_kitchen_sink" } }, "place_loot": [ { "group": "magazines", "x": [ 6, 7 ], "y": [ 16, 17 ], "chance": 80, "repeat": [ 1, 4 ] }, @@ -103,7 +98,7 @@ { "group": "livingroom", "x": [ 4, 9 ], "y": [ 14, 19 ], "chance": 90, "repeat": [ 1, 5 ] }, { "group": "dining", "x": [ 15, 16 ], "y": [ 14, 15 ], "chance": 85, "repeat": [ 1, 3 ] }, { "group": "dining", "x": [ 19, 19 ], "y": [ 17, 18 ], "chance": 70, "repeat": [ 1, 5 ] }, - { "group": "fridge", "x": [ 19, 19 ], "y": [ 15, 15 ], "chance": 90, "repeat": [ 1, 5 ] }, + { "group": "fridge", "x": [ 19, 19 ], "y": [ 15, 15 ], "chance": 90, "repeat": [ 5, 10 ] }, { "group": "oven", "x": [ 17, 17 ], "y": [ 19, 19 ], "chance": 75, "repeat": [ 1, 3 ] }, { "group": "kitchen", "x": [ 16, 19 ], "y": [ 14, 19 ], "chance": 85, "repeat": [ 1, 4 ] }, { "group": "dresser", "x": [ 4, 4 ], "y": [ 4, 4 ], "chance": 90, "repeat": [ 1, 4 ] }, diff --git a/data/json/mapgen/necropolis/necropolis.json b/data/json/mapgen/necropolis/necropolis.json index 79b9db9145876..f451ba4144b50 100644 --- a/data/json/mapgen/necropolis/necropolis.json +++ b/data/json/mapgen/necropolis/necropolis.json @@ -43,3089 +43,331 @@ ] }, { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_1" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - ".....................C..", - "........................", - ".......#................", - "........................", - "........................", - "........................", - "................#.......", - "..........x.............", - "...#....................", - "................C.......", - "........................", - "........................", - "........................", - ".........#..............", - "....................#...", - "........................", - "........................", - "........................", - "....#.....x.............", - ".............#..........", - "........................", - "........................", - "...............X........" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_loot": [ { "group": "field", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 70 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", "method": "json", - "om_terrain": [ "necropolis_a_2" ], - "weight": 250, "object": { "fill_ter": "t_floor", "rows": [ - "........................", - "........................", - ".......ssssssss|-v---v-|", - ".......ssssssssw @@d |", - ".......|-;-vvv-| @@ v", - ".......|c ccOcc| v", - "#......vc c| |", - ".......vc f|+|+|-+-|", - ".......v |r|c B|", - "....|--|o ?|-|S B|", - "....|r + nn ?|r|c t|", - "....|--|c nn ?|+|-+-|", - "....|tS|c ?| |", - "....v + + @@v", - "....|--| ----| | @@v", - "....| P| d|", - "....| hnnh |;;-|-vvv-|", - "....v hnnh |sssssss...", - "....v hnnh vsssssss...", - "....| |ss........", - "....|-vv--vv-|ss......#.", - "..............ss........", - "..............ss........", - "..............ss........" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, + "........................................................................", + ".....................C..................................................", + "...............................ssssssss|-v---v-|.....#..................", + ".......#.......................ssssssssw @@d |................#.......", + "...............................|-;-vvv-| @@ v........................", + "...............................|c ccOcc| v........................", + "........................#......vc c| |........................", + "................#..............vc f|+|+|-+-|..........x.............", + "..........x....................v |r|c B|.....#..................", + "...#........................|--|o ?|-|S B|........................", + "................C...........|r + nn ?|r|c t|........................", + "............................|--|c nn ?|+|-+-|...........#............", + "............................|tS|c ?| |........................", + "............................v + + @@v........................", + ".........#..................|--| ----| | @@v........................", + "....................#.......| P| d|........................", + "............................| hnnh |;;-|-vvv-|........................", + "............................v hnnh |sssssss...........................", + "............................v hnnh vsssssss...........................", + "....#.....x.................| |ss.....................#..........", + ".............#..............|-vv--vv-|ss......#......X..................", + "......................................ss................................", + "......................................ss................................", + "...............X......................ss................................", + ".qQQQQQQQQQQQQQQQQQQQQQQQq......sssssssssssssssss8777777777777777777778.", + ".q.......................q.....ssssssssssssssssss8ssrrrrrrrrrrsssssssr8.", + ".q..|-vv-|----|-|-----|..q....ss_________________9sssssssssssssssssssr8.", + ".q..|ccSc|BtcS|r|d @@ |..q...ss__________________9sssssssssssssssZZssr8.", + ".q..|c |B | + @@ v..q..ss___________________9sssssssssssssssZZssr8.", + ".q..vO |--+-|-| |..q.ss____________________9sssssssssssssssssssr8.", + ".q..vc + v..qss_____________________9sssssssssssssssssssr8.", + ".q..|f |c ?| ddd |..qss_____________________9sssssssssssssssZZssr8.", + ".q..|-| -|c ?|-----|..qss_________________s...8sssZZssssZZssssZZssr8.", + ".q....| ?v........qss________________ss...8sssZZssssZZssssssssr8.", + ".q....V hnnh |........qss________________ss...8sssssssssssssssssssr8.", + ".q....V hnnh ;sssssssssss_______,,_______ss...8sssssssssssssssZZssr8.", + ".q....V ;sssssssssss_______,,_______ss...8srrrrrrrrrsssssZZssr8.", + ".q....| ooP|....s...qss_______,,_______ss..|------------|rssssssr8.", + ".q....|;|--+----|--|es...qss________________ss..|rrrrrrrrrrrr|rssssssr8.", + ".q..ssss|r =_______________,,_______ss..wc r|rssZZssr8.", + ".q..shss|r =_______________,,_______ss..wc rr rr r|rssZZssr8.", + ".q..snss|r =_______________,,_______ss..wc rr rr r|rssssssr8.", + ".q..shss|r =________________________ss..|r [sssssssr8.", + ".q..ssss|r =_______________,,_______ss..wc rr [sssssssr8.", + ".q......|----------|.....qss_______,,_______ss..wc rr cc r|rssssssr8.", + ".q.......................qss_______,,_______ss..wc 6 r|rssZZssr8.", + ".qQQQQQQQQQQQQQQQQQQQQQQQqss________________ss..|rcccr c r|rssZZssr8.", + "..........................ss_______,,_______ss..|-www-[[-www-|777777778." + ], + "palettes": [ "necropolis_a" ], + "terrain": { "&": "t_gas_pump", "D": "t_floor", "l": "t_floor", "u": "t_floor", "z": "t_floor" }, "toilets": { "t": { } }, - "place_loot": [ - { "group": "allclothes", "x": [ 20, 20 ], "y": [ 3, 3 ], "chance": 75 }, - { "group": "allclothes", "x": [ 22, 22 ], "y": [ 15, 15 ], "chance": 75 }, - { "group": "allclothes", "x": [ 18, 18 ], "y": [ 8, 8 ], "chance": 75 }, - { "group": "allclothes", "x": [ 18, 18 ], "y": [ 10, 10 ], "chance": 75 }, - { "group": "dining", "x": [ 8, 9 ], "y": [ 16, 18 ], "chance": 60 }, - { "group": "jackets", "x": [ 5, 5 ], "y": [ 10, 10 ], "chance": 70 }, - { "group": "novels", "x": [ 8, 8 ], "y": [ 9, 9 ], "chance": 70 }, - { "group": "kitchen", "x": [ 8, 14 ], "y": [ 5, 7 ], "chance": 60 }, - { "group": "fridge", "x": [ 8, 14 ], "y": [ 5, 7 ], "chance": 70 }, - { "group": "softdrugs", "x": [ 18, 22 ], "y": [ 8, 10 ], "chance": 70 }, - { "group": "bed", "x": [ 18, 19 ], "y": [ 3, 4 ], "chance": 80 }, - { "group": "bed", "x": [ 21, 22 ], "y": [ 13, 14 ], "chance": 80 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_3" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - ".....#..................", - "................#.......", - "........................", - "........................", - "........................", - "..........x.............", - ".....#..................", - "........................", - "........................", - "...........#............", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - ".............#..........", - ".....X..................", - "........................", - "........................", - "........................" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_loot": [ { "group": "field", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 70 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_4" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "C..........#............", - "........................", - "........................", - ".......................#", - "...............#........", - "...............X........", - "....#...................", - "........................", - "........................", - ".........x..............", - "......................#.", - "........................", - "..#.....................", - "........................", - "........................", - "........................", - ".............#..........", - "........................", - "........................", - "C...................#...", - "........................", - "........................" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_loot": [ { "group": "field", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 70 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_5" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - ".....................#..", - "............#...........", - "........................", - "......C.................", - "........................", - "...........|-----------|", - "...........|rrrrrrrrrrr|", - ".......|---| |", - ".......|rr | rccr rr y", - ".......| rr y", - ".......y | cc |", - ".......| r| c |", - ".......| r| hc ;", - ".......| r| 6 ;", - ".......|;--|ccc |", - ".....{.{.{{|{{ { rr {|", - "......{...{s{rr {{ rr{{|", - "...........s{)){{{){{{){", - "...........|{s{{{s{{s{ss", - "....M....M.|ss{Mssssssss", - "...........ssssssssssssM", - "M.......M..sssssssMsssss" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_loot": [ - { "group": "building_rubble", "x": [ 21, 23 ], "y": [ 17, 20 ], "chance": 90 }, - { "group": "building_rubble", "x": [ 11, 20 ], "y": [ 19, 21 ], "chance": 90 }, - { "group": "building_rubble", "x": [ 16, 17 ], "y": [ 17, 18 ], "chance": 90 }, - { "group": "building_rubble", "x": [ 5, 10 ], "y": [ 17, 18 ], "chance": 90 }, - { "group": "home_hw", "x": [ 12, 22 ], "y": [ 8, 8 ], "chance": 40 }, - { "group": "softdrugs", "x": [ 10, 10 ], "y": [ 13, 15 ], "chance": 50 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_6" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..ss_______,,_______ss..", - "..ss_______,,_______ss.|", - "..ss________________ss.|", - "..ss_______,,_______ss.w", - "..ss_______,,_______ss.|", - "..ss_______,,_______ss.w", - "..ss______uuu_______ss.|", - "..ss_uuu___,,__uuu__ss.|", - "..ss_______,,_______ssss", - "..ss_______,,________sss", - "..ss____________________", - "..ss_______,,___________", - "..ss_______,,___________", - ".sss_______,,___________", - "ssss____________________", - "ssss_______,,___________", - ".{ss_______,,___________", - "..ss_______,,___________", - "{{ss____________________", - "{.ss_______,,___________", - "..{s_______,,___________", - "..ss_______,,________sss", - "..ss________________ssss", - "..ss_______,,_______sss." + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "U": "t_dirt", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_pavement", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "u": "f_barricade_road", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ], "place_vehicles": [ - { "vehicle": "policecar", "x": 12, "y": 9, "chance": 25, "rotation": 0 }, - { "vehicle": "policecar", "x": 5, "y": 13, "chance": 25, "rotation": -30 }, - { "vehicle": "policecar", "x": 19, "y": 13, "chance": 25, "rotation": 30 }, - { "vehicle": "policecar", "x": 12, "y": 16, "chance": 25, "rotation": 90 } + { "vehicle": "electric_car", "x": 15, "y": 41, "chance": 75, "rotation": 0 }, + { "vehicle": "flatbed_truck", "x": 55, "y": 30, "chance": 50, "rotation": 180 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_7" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "-w--w--w-|-w--w--w-|-w--", - "LLcccccLL|r 333 r| 11", - " |r r| 11", - "r |---- ----| ", - "r ", - "r rr|--------------", - "-;--w--w-|ssssssssssszzz", - "ssssssssssss|-------|szs", - "ssssssssssss|h P|sss", - "_________ssswh ch |ssz", - "__________ss|h 6cc |ssz", - "__________ss|-+-----|sss", - "__________ssssssssssssss", - "__________ss|----|------", - "___}______ss| h | ", - "__________ssw + ", - "__________ss|6kk |-*-|-*", - "__________sswkh |r r|r ", - "__________ss| oo|r r|r ", - "_________sss|----|---|--", - "ssssssssssss............", - "sssssssssss.|--------|..", - "..|---------|rrrrrrrr|--" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_sidewalk", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_loot": [ - { "group": "office", "x": [ 16, 18 ], "y": [ 10, 11 ], "chance": 90 }, - { "group": "office", "x": [ 13, 15 ], "y": [ 17, 18 ], "chance": 90 }, - { "group": "home_hw", "x": [ 0, 18 ], "y": [ 2, 6 ], "chance": 90 }, - { "group": "sewage_plant", "x": [ 18, 22 ], "y": [ 17, 20 ], "chance": 40 }, - { "group": "manuals", "x": [ 15, 16 ], "y": [ 19, 19 ], "chance": 50 }, - { "group": "cop_evidence", "x": [ 13, 20 ], "y": [ 23, 23 ], "chance": 50 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_8" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "w--w--w--w--|...........", - "211222222rrr|...........", - " 11 2 r|...........", - " 44 w...........", - " 44 |...........", - "-| 2 |...........", - "s| 44 w...........", - "s| 44 |...........", - "s| 2 |...........", - "z|r 44 w...........", - "z|r 44 |...........", - "s|r 2 L|...........", - "s|r 44 L|...........", - "-| 44 |...........", - " w...........", - " r|......x....", - "-|-*-|797777|...........", - "r|r r|r } r|........#..", - "r|r r|r r|...........", - "-|---|--w---|...........", - "........................", - ".|-----|------------|---", - "-| h V kh kh |@ t" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_sidewalk", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "toilets": { "t": { } }, - "place_item": [ - { "item": "55gal_drum", "x": 11, "y": 2, "chance": 90 }, - { "item": "55gal_drum", "x": 10, "y": 2, "chance": 75 }, - { "item": "55gal_drum", "x": 11, "y": 3, "chance": 75 }, - { "item": "55gal_drum", "x": 2, "y": 12, "chance": 75 } - ], - "place_loot": [ - { "group": "home_hw", "x": [ 11, 11 ], "y": [ 12, 13 ], "chance": 90 }, - { "group": "sewage_plant", "x": [ 0, 11 ], "y": [ 18, 19 ], "chance": 40 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_9" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "......................C.", - "..............#.........", - "........................", - ".#......................", - "........................", - "........................", - "...C..................#.", - "............X...........", - "........................", - "........................", - "#.......................", - "........................", - "......#.................", - "........................", - "...................#....", - "........................", - "........................", - "........................", - "........................", - "........................", - "------------|...........", - "!@ t!@ t!@ t|........x.." - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "toilets": { "t": { } }, - "place_loot": [ { "group": "field", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 70 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_10" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".qQQQQQQQQQQQQQQQQQQQQQQ", - ".q......................", - ".q..|-vv-|----|-|-----|.", - ".q..|ccSc|BtcS|r|d @@ |.", - ".q..|c |B | + @@ v.", - ".q..vO |--+-|-| |.", - ".q..vc + v.", - ".q..|f |c ?| ddd |.", - ".q..|-| -|c ?|-----|.", - ".q....| ?v.......", - ".q....V hnnh |.......", - ".q....V hnnh ;sssssss", - ".q....V ;sssssss", - ".q....| ooP|....s..", - ".q....|;|--+----|--|es..", - ".q..ssss|r =____", - ".q..shss|r =____", - ".q..snss|r =____", - ".q..shss|r =____", - ".q..ssss|r =____", - ".q......|----------|....", - ".q......................", - ".qQQQQQQQQQQQQQQQQQQQQQQ", - "........................" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "toilets": { "t": { } }, - "place_loot": [ - { "group": "novels", "x": [ 13, 14 ], "y": [ 13, 13 ], "chance": 70 }, - { "group": "home_hw", "x": [ 9, 9 ], "y": [ 15, 19 ], "chance": 40 }, - { "group": "dining", "x": [ 9, 10 ], "y": [ 10, 11 ], "chance": 40 }, - { "group": "allclothes", "x": [ 18, 20 ], "y": [ 7, 7 ], "chance": 90 }, - { "group": "allclothes", "x": [ 15, 17 ], "y": [ 3, 3 ], "chance": 90 }, - { "group": "softdrugs", "x": [ 10, 13 ], "y": [ 3, 4 ], "chance": 90 }, - { "group": "fridge", "x": [ 5, 5 ], "y": [ 7, 7 ], "chance": 90 }, - { "group": "kitchen", "x": [ 5, 8 ], "y": [ 3, 6 ], "chance": 60 }, - { "group": "bed", "x": [ 19, 20 ], "y": [ 3, 4 ], "chance": 80 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ], - "place_vehicles": [ { "vehicle": "electric_car", "x": 15, "y": 17, "chance": 75, "rotation": 0 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_11" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "Qq......ssssssssssssssss", - ".q.....sssssssssssssssss", - ".q....ss________________", - ".q...ss_________________", - ".q..ss__________________", - ".q.ss___________________", - ".qss____________________", - ".qss____________________", - ".qss_________________s..", - ".qss________________ss..", - ".qss________________ss..", - "ssss_______,,_______ss..", - "ssss_______,,_______ss..", - ".qss_______,,_______ss..", - ".qss________________ss..", - "___________,,_______ss..", - "___________,,_______ss..", - "___________,,_______ss..", - "____________________ss..", - "___________,,_______ss..", - ".qss_______,,_______ss..", - ".qss_______,,_______ss..", - "Qqss________________ss..", - "..ss_______,,_______ss.." - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_12" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "s8777777777777777777778.", - "s8ssrrrrrrrrrrsssssssr8.", - "_9sssssssssssssssssssr8.", - "_9sssssssssssssssZZssr8.", - "_9sssssssssssssssZZssr8.", - "_9sssssssssssssssssssr8.", - "_9sssssssssssssssssssr8.", - "_9sssssssssssssssZZssr8.", - ".8sssZZssssZZssssZZssr8.", - ".8sssZZssssZZssssssssr8.", - ".8sssssssssssssssssssr8.", - ".8sssssssssssssssZZssr8.", - ".8srrrrrrrrrsssssZZssr8.", - "|------------|rssssssr8.", - "|rrrrrrrrrrrr|rssssssr8.", - "wc r|rssZZssr8.", - "wc rr rr r|rssZZssr8.", - "wc rr rr r|rssssssr8.", - "|r [sssssssr8.", - "wc rr [sssssssr8.", - "wc rr cc r|rssssssr8.", - "wc 6 r|rssZZssr8.", - "|rcccr c r|rssZZssr8.", - "|-www-[[-www-|777777778." - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_sidewalk", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_loot": [ - { "group": "farming_tools", "x": [ 14, 14 ], "y": [ 13, 17 ], "chance": 40 }, - { "group": "farming_tools", "x": [ 14, 14 ], "y": [ 20, 22 ], "chance": 40 }, - { "group": "farming_seeds", "x": [ 4, 5 ], "y": [ 19, 20 ], "chance": 60 }, - { "group": "farming_seeds", "x": [ 4, 5 ], "y": [ 16, 17 ], "chance": 60 }, - { "group": "farming_seeds", "x": [ 1, 1 ], "y": [ 15, 21 ], "chance": 60 }, - { "group": "farming_seeds", "x": [ 1, 5 ], "y": [ 22, 22 ], "chance": 60 }, - { "group": "farming_tools", "x": [ 21, 21 ], "y": [ 1, 22 ], "chance": 40 }, - { "group": "farming_seeds", "x": [ 1, 12 ], "y": [ 14, 14 ], "chance": 60 }, - { "group": "farming_tools", "x": [ 4, 13 ], "y": [ 1, 1 ], "chance": 40 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ], - "place_vehicles": [ { "vehicle": "flatbed_truck", "x": 7, "y": 6, "chance": 50, "rotation": 180 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_13" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".......#................", - ".......................s", - "......................ss", - ".|---------|--|--|...sss", - ".|rrrrrrrrr|t |{t|.{.ss_", - ".| |S{|{S|{..sM_", - ".|-----+---|-{|{-|.{.ss_", - ".|r {{ {{{{{){|{{.ssM", - ".|S { {{{{s{ssss.{.Ms_", - ".|c h {){nsssss...ssM", - ".|c {{{{{ssssss...ss_", - ".|r {{{{)ssssssM..Mss_", - ".|S {{{{sssssssM.M.ssM", - ".|c h {{sssssssss..MsMM", - ".|c {{){{{ssMsssM.M.MMM", - ".|r{{ {{{{ssssssssM.MMMM", - ".|S {{ssssssssMsss.MMMMM", - ".|c h{)ssssssssssMMMMMM", - ".|c {{{{sssssssss.MMsMM", - ".|r {{{{sssssssMss.MMMMM", - ".|S {{{{sssMssssssMMMMM", - ".|c h {){{sssssssMMMMMM", - ".|c {{{{ssssssMss.MMsMM", - ".|-{{{-sss-ssssssM.MMMsM" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "toilets": { "t": { } }, - "place_loot": [ - { "group": "building_rubble", "x": [ 7, 20 ], "y": [ 4, 10 ], "chance": 95 }, - { "group": "building_rubble", "x": [ 5, 10 ], "y": [ 11, 23 ], "chance": 95 }, - { "group": "beauty", "x": [ 2, 10 ], "y": [ 4, 4 ], "chance": 60 }, - { "group": "beauty", "x": [ 2, 2 ], "y": [ 7, 22 ], "chance": 40 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_14" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".....M...M....M.......M.", - "sMsssssMsssMsssssMssssss", - "sssMMssMsMMsssMssMssssss", - "M____,__MMMMMMM__M_,___M", - "____M,_MM))MMMMMM__,__M_", - "_M___,MM)))MMMMMM_M,_M__", - "__M__MM))MMMMMMMMMM,____", - "_M__MM))MMMMMMMMMMM,M_M_", - "___MMMMMmmmmmmmMMMMMMM__", - "__MMMMMmmmmmmmmmMMMMM___", - "_MMMMMmm]]]]]]]mmMMMMM_M", - "MMMMMmm]]]]]]]]]mmMMMMM_", - "MMMMmm]]]]]]]]]]]mmMMMMM", - "MMMmm]]]]]]]]]]]]]mmMMMM", - "MMmm]]]]]]]]]]]]]]]mmMMM", - "Mmm]]]]]]]]]]]]]]]]]mmMM", - "mm]]]]]]]]]]]]]]]]]]]mmM", - "mm]]]]]]]]]]]]]]]]]]]mmM", - "mm]]]]]]]]]]]]]]]]]]]mmM", - "mm]]]]]]]]]]]]]]]]]]]mmM", - "mm]]]]]]]]]]]]]]]]]]]mmM", - "mm]]]]]]]]]]]]]]]]]]]mmM", - "mm]]]]]]]]]]]]]]]]]]]mmM", - "Mmm]]]]]]]]]]]]]]]]]mmMM" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_loot": [ { "group": "building_rubble", "x": [ 0, 22 ], "y": [ 7, 23 ], "chance": 95 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ], - "place_vehicles": [ { "vehicle": "car", "x": 6, "y": 7, "chance": 100, "rotation": 135 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_15" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".sss_______,,_______ss..", - "Msss_______,,_______ss..", - "ssMs________________ss..", - "__ssM______,,_______ss..", - "__ss_______,,_______sss.", - "MMss_______,,_______sss.", - "_Mss___M____________sss.", - "__sM____M__,,_______sss.", - "MMss_______,,_______sss.", - "__s__MM____,,_______sss.", - "MM___M__M___________sss.", - "___M__M____,,_______sss.", - "_M______M_M,,_______sss.", - "M___M______,,_______sss|", - "MM_M___M____________sss|", - "MMM___M____M,____M__sss[", - "MMMM_______M,_______sss[", - "MMMM_M_M___,,_______sss|", - "MMMM__M_M_M_________sss|", - "MMMM___M___,,_______sss.", - "MMMMM______,,_______sss.", - "MMMM___M___,,_______sss.", - "MMMM____M___________sss.", - "MMMs_M_M___,,_______sss." - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_16" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..| hhhhh | = ", - "..w hnnnnnh |rrrrrrrr| ", - "..w hnnnnnh |-|-|-|--| ", - "..| hhhhh |t|t|t| t| ", - "..| |+|+|+|+-| ", - "..|---|+-|--| P| ", - "..| + + t| | ", - "..|hnh| | S|cScScS + ", - "..|---| |--|------ | ", - "..w + + t|LLLLLL | ", - "..whnh| | S| | ", - "..|---| |--| | ", - "..wh h |L |LLLLLLLL| ", - "HH| |-+||-------| ", - " | c |l ", - " [ c |l ", - " [ ch |c |-----+", - " | c |c | ", - "HH| |-| | | ", - "..w ; | hhhhh", - "..|-c------|---| | ", - "..|kkk r r r r| | hhhhh", - "..w h r r r r| + ", - "..|P : | hhhhh" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_vendingmachines": [ { "item_group": "vending_food", "x": 14, "y": 14 }, { "item_group": "vending_drink", "x": 14, "y": 15 } ], + }, + "om_terrain": [ + [ "necropolis_a_1", "necropolis_a_2", "necropolis_a_3" ], + [ "necropolis_a_10", "necropolis_a_11", "necropolis_a_12" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..................................................ss_______,,_______ss..", + "..................................................ss_______,,_______ss.|", + "C..........#.................................#....ss________________ss.|", + "....................................#.............ss_______,,_______ss.w", + "..................................................ss_______,,_______ss.|", + ".......................#......C...................ss_______,,_______ss.w", + "...............#..................................ss______uuu_______ss.|", + "...............X...................|-----------|..ss_uuu___,,__uuu__ss.|", + "....#..............................|rrrrrrrrrrr|..ss_______,,_______ssss", + "...............................|---| |..ss_______,,________sss", + "...............................|rr | rccr rr y..ss____________________", + ".........x.....................| rr y..ss_______,,___________", + "......................#........y | cc |..ss_______,,___________", + "...............................| r| c |.sss_______,,___________", + "..#............................| r| hc ;ssss____________________", + "...............................| r| 6 ;ssss_______,,___________", + "...............................|;--|ccc |.{ss_______,,___________", + ".............................{.{.{{|{{ { rr {|..ss_______,,___________", + ".............#................{...{s{rr {{ rr{{|{{ss____________________", + "...................................s{)){{{){{{){{.ss_______,,___________", + "...................................|{s{{{s{{s{ss..{s_______,,___________", + "C...................#.......M....M.|ss{Mssssssss..ss_______,,________sss", + "...................................ssssssssssssM..ss________________ssss", + "........................M.......M..sssssssMsssss..ss_______,,_______sss.", + ".......#.....................M...M....M.......M..sss_______,,_______ss..", + ".......................ssMsssssMsssMsssssMssssssMsss_______,,_______ss..", + "......................sssssMMssMsMMsssMssMssssssssMs________________ss..", + ".|---------|--|--|...sssM____,__MMMMMMM__M_,___M__ssM______,,_______ss..", + ".|rrrrrrrrr|t |{t|.{.ss_____M,_MM))MMMMMM__,__M___ss_______,,_______sss.", + ".| |S{|{S|{..sM__M___,MM)))MMMMMM_M,_M__MMss_______,,_______sss.", + ".|-----+---|-{|{-|.{.ss___M__MM))MMMMMMMMMM,_____Mss___M____________sss.", + ".|r {{ {{{{{){|{{.ssM_M__MM))MMMMMMMMMMM,M_M___sM____M__,,_______sss.", + ".|S { {{{{s{ssss.{.Ms____MMMMMmmmmmmmMMMMMMM__MMss_______,,_______sss.", + ".|c h {){nsssss...ssM__MMMMMmmmmmmmmmMMMMM_____s__MM____,,_______sss.", + ".|c {{{{{ssssss...ss__MMMMMmm]]]]]]]mmMMMMM_MMM___M__M___________sss.", + ".|r {{{{)ssssssM..Mss_MMMMMmm]]]]]]]]]mmMMMMM____M__M____,,_______sss.", + ".|S {{{{sssssssM.M.ssMMMMMmm]]]]]]]]]]]mmMMMMM_M______M_M,,_______sss.", + ".|c h {{sssssssss..MsMMMMMmm]]]]]]]]]]]]]mmMMMMM___M______,,_______sss|", + ".|c {{){{{ssMsssM.M.MMMMMmm]]]]]]]]]]]]]]]mmMMMMM_M___M____________sss|", + ".|r{{ {{{{ssssssssM.MMMMMmm]]]]]]]]]]]]]]]]]mmMMMMM___M____M,____M__sss[", + ".|S {{ssssssssMsss.MMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM_______M,_______sss[", + ".|c h{)ssssssssssMMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM_M_M___,,_______sss|", + ".|c {{{{sssssssss.MMsMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM__M_M_M_________sss|", + ".|r {{{{sssssssMss.MMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM___M___,,_______sss.", + ".|S {{{{sssMssssssMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMMM______,,_______sss.", + ".|c h {){{sssssssMMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM___M___,,_______sss.", + ".|c {{{{ssssssMss.MMsMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM____M___________sss.", + ".|-{{{-sss-ssssssM.MMMsMMmm]]]]]]]]]]]]]]]]]mmMMMMMs_M_M___,,_______sss." + ], + "palettes": [ "necropolis_a" ], + "terrain": { "&": "t_gas_pump", "D": "t_floor", "Z": "t_floor", "l": "t_floor", "u": "t_floor", "z": "t_floor" }, "toilets": { "t": { } }, - "place_loot": [ - { "group": "cop_gear", "x": [ 13, 18 ], "y": [ 9, 9 ], "chance": 70 }, - { "group": "cop_gear", "x": [ 13, 20 ], "y": [ 12, 12 ], "chance": 70 }, - { "group": "cop_evidence", "x": [ 13, 20 ], "y": [ 1, 1 ], "chance": 70 }, - { "group": "cleaning", "x": [ 10, 10 ], "y": [ 12, 12 ], "chance": 70 }, - { "group": "office", "x": [ 3, 5 ], "y": [ 21, 21 ], "chance": 70 }, - { "group": "office", "x": [ 5, 9 ], "y": [ 1, 2 ], "chance": 70 } + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_17" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " | kkk V kkk kkk |@ ", - " : V h d | ", - " |HHHHH| |!*!", - " V : ", - " V : ", - " h|!*!", - " k k k| ", - " V hk hk hk|@ ", - " V kkh kkh kk|@ t", - " |-:-|-------;;-----|---", - " |r r|ssssssssssssssssss", - " |r r|s_____________,___", - " |r r|s_____________,___", - " |---|s_____________,___", - " |sssss_____________,___", - " ;ss________________,___", - "-|ss________________,___", - " |ss_______}________,,,,", - " |ss________________,___", - " |ss________________,___", - " |ss________________,___", - " |ss________________,___", - " |ss________________,___", - " |ss________________,___" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "toilets": { "t": { } }, - "place_items": [ - { "item": "office", "x": [ 5, 5 ], "y": [ 6, 8 ], "chance": 70 }, - { "item": "office", "x": [ 10, 10 ], "y": [ 6, 8 ], "chance": 70 }, - { "item": "office", "x": [ 19, 19 ], "y": [ 6, 8 ], "chance": 70 }, - { "item": "cop_armory", "x": [ 2, 2 ], "y": [ 10, 12 ], "chance": 70 }, - { "item": "cop_armory", "x": [ 4, 4 ], "y": [ 10, 12 ], "chance": 70 }, - { "item": "office", "x": [ 16, 18 ], "y": [ 0, 0 ], "chance": 70 }, - { "item": "office", "x": [ 11, 13 ], "y": [ 0, 0 ], "chance": 70 }, - { "item": "office", "x": [ 3, 5 ], "y": [ 0, 0 ], "chance": 70 }, - { "item": "bed", "x": [ 21, 21 ], "y": [ 0, 0 ], "chance": 80 }, - { "item": "bed", "x": [ 21, 21 ], "y": [ 7, 8 ], "chance": 80 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ], "place_vehicles": [ - { "vehicle": "policecar", "x": 23, "y": 14, "chance": 50, "rotation": 180 }, - { "vehicle": "policecar", "x": 23, "y": 21, "chance": 50, "rotation": 180 } + { "vehicle": "policecar", "x": 60, "y": 9, "chance": 25, "rotation": 0 }, + { "vehicle": "policecar", "x": 53, "y": 13, "chance": 25, "rotation": -30 }, + { "vehicle": "policecar", "x": 67, "y": 13, "chance": 25, "rotation": 30 }, + { "vehicle": "policecar", "x": 60, "y": 16, "chance": 25, "rotation": 90 }, + { "vehicle": "car", "x": 30, "y": 31, "chance": 100, "rotation": 135 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_18" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "!@ !@ !@ |...........", - "! ! ! |...........", - "!!*!!!*!!!*!|.........#.", - " |....C......", - " |...........", - "!!*!!!*!!!*!|...........", - "! ! ! |...........", - "!@ !@ !@ |...........", - "!@ t!@ t!@ t|...........", - "------------|78.........", - "ssssssssssssss8.........", - "_____,________8.........", - "_____,________8....#....", - "_____,________8.........", - "_____,________8#........", - "_____,________8.........", - "_____,________8.........", - ",,,,,,,,,,,,,,8........#", - "_____,________8.x.......", - "_____,________8.........", - "_____,________8.........", - "_____,________8.........", - "_____,________8.........", - "_____,________8........." - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, + }, + "om_terrain": [ + [ "necropolis_a_4", "necropolis_a_5", "necropolis_a_6" ], + [ "necropolis_a_13", "necropolis_a_14", "necropolis_a_15" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "........................................................................", + "-w--w--w-|-w--w--w-|-w--w--w--w--w--|...................................", + "LLcccccLL|r 333 r| 11211222222rrr|.................................C.", + " |r r| 11 11 2 r|.........................#.........", + "r |---- ----| 44 w...................................", + "r 44 |............#......................", + "r rr|---------------| 2 |...................................", + "-;--w--w-|ssssssssssszzzs| 44 w...................................", + "ssssssssssss|-------|szss| 44 |..............C..................#.", + "ssssssssssss|h P|ssss| 2 |.......................X...........", + "_________ssswh ch |sszz|r 44 w...................................", + "__________ss|h 6cc |sszz|r 44 |...................................", + "__________ss|-+-----|ssss|r 2 L|...........#.......................", + "__________sssssssssssssss|r 44 L|...................................", + "__________ss|----|-------| 44 |.................#.................", + "___}______ss| h | w...................................", + "__________ssw + r|......x.......................#....", + "__________ss|6kk |-*-|-*-|-*-|797777|...................................", + "__________sswkh |r r|r r|r r|r } r|........#..........................", + "__________ss| oo|r r|r r|r r|r r|...................................", + "_________sss|----|---|---|---|--w---|...................................", + "ssssssssssss............................................................", + "sssssssssss.|--------|...|-----|------------|---------------|...........", + "..|---------|rrrrrrrr|---| h V kh kh |@ t!@ t!@ t!@ t|........x..", + "..| hhhhh | = | kkk V kkk kkk |@ !@ !@ !@ |...........", + "..w hnnnnnh |rrrrrrrr| : V h d | ! ! ! |...........", + "..w hnnnnnh |-|-|-|--| |HHHHH| |!*!!!*!!!*!!!*!|.........#.", + "..| hhhhh |t|t|t| t| V : |....C......", + "..| |+|+|+|+-| V : |...........", + "..|---|+-|--| P| h|!*!!!*!!!*!!!*!|...........", + "..| + + t| | k k k| ! ! ! |...........", + "..|hnh| | S|cScScS + V hk hk hk|@ !@ !@ !@ |...........", + "..|---| |--|------ | V kkh kkh kk|@ t!@ t!@ t!@ t|...........", + "..w + + t|LLLLLL | |-:-|-------;;-----|---------------|78.........", + "..whnh| | S| | |r r|ssssssssssssssssssssssssssssssss8.........", + "..|---| |--| | |r r|s_____________,________,________8.........", + "..wh h |L |LLLLLLLL| |r r|s_____________,________,________8....#....", + "HH| |-+||-------| |---|s_____________,________,________8.........", + " | c |l |sssss_____________,________,________8#........", + " [ c |l ;ss________________,________,________8.........", + " [ ch |c |-----+-|ss________________,________,________8.........", + " | c |c | |ss_______}________,,,,,,,,,,,,,,,,,,8........#", + "HH| |-| | | |ss________________,________,________8.x.......", + "..w ; | hhhhh |ss________________,________,________8.........", + "..|-c------|---| | |ss________________,________,________8.........", + "..|kkk r r r r| | hhhhh |ss________________,________,________8.........", + "..w h r r r r| + |ss________________,________,________8.........", + "..|P : | hhhhh |ss________________,________,________8........." + ], + "palettes": [ "necropolis_a" ], + "terrain": { "&": "t_gas_pump", "D": "t_floor", "Z": "t_floor", "l": "t_floor", "u": "t_floor", "z": "t_floor" }, "toilets": { "t": { } }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } + ], + "place_item": [ + { "item": "55gal_drum", "x": 35, "y": 2, "chance": 90 }, + { "item": "55gal_drum", "x": 34, "y": 2, "chance": 75 }, + { "item": "55gal_drum", "x": 35, "y": 3, "chance": 75 }, + { "item": "55gal_drum", "x": 26, "y": 12, "chance": 75 } + ], + "place_vendingmachines": [ { "item_group": "vending_food", "x": 14, "y": 38 }, { "item_group": "vending_drink", "x": 14, "y": 39 } ], "place_items": [ - { "item": "field", "x": [ 15, 23 ], "y": [ 0, 23 ], "chance": 70 }, - { "item": "bed", "x": [ 1, 1 ], "y": [ 0, 0 ], "chance": 80 }, - { "item": "bed", "x": [ 5, 5 ], "y": [ 0, 0 ], "chance": 80 }, - { "item": "bed", "x": [ 9, 9 ], "y": [ 0, 0 ], "chance": 80 }, - { "item": "bed", "x": [ 1, 1 ], "y": [ 7, 8 ], "chance": 80 }, - { "item": "bed", "x": [ 5, 5 ], "y": [ 7, 8 ], "chance": 80 }, - { "item": "bed", "x": [ 9, 9 ], "y": [ 7, 8 ], "chance": 80 } + { "item": "office", "x": [ 29, 29 ], "y": [ 30, 32 ], "chance": 70 }, + { "item": "office", "x": [ 34, 34 ], "y": [ 30, 32 ], "chance": 70 }, + { "item": "office", "x": [ 43, 43 ], "y": [ 30, 32 ], "chance": 70 }, + { "item": "cop_armory", "x": [ 26, 26 ], "y": [ 34, 36 ], "chance": 70 }, + { "item": "cop_armory", "x": [ 28, 28 ], "y": [ 34, 36 ], "chance": 70 }, + { "item": "office", "x": [ 40, 42 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "office", "x": [ 35, 37 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "office", "x": [ 27, 29 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "bed", "x": [ 45, 45 ], "y": [ 24, 24 ], "chance": 80 }, + { "item": "bed", "x": [ 45, 45 ], "y": [ 31, 32 ], "chance": 80 }, + { "item": "field", "x": [ 63, 71 ], "y": [ 24, 47 ], "chance": 70 }, + { "item": "bed", "x": [ 49, 49 ], "y": [ 24, 24 ], "chance": 80 }, + { "item": "bed", "x": [ 53, 53 ], "y": [ 24, 24 ], "chance": 80 }, + { "item": "bed", "x": [ 57, 57 ], "y": [ 24, 24 ], "chance": 80 }, + { "item": "bed", "x": [ 49, 49 ], "y": [ 31, 32 ], "chance": 80 }, + { "item": "bed", "x": [ 53, 53 ], "y": [ 31, 32 ], "chance": 80 }, + { "item": "bed", "x": [ 57, 57 ], "y": [ 31, 32 ], "chance": 80 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ], "place_vehicles": [ - { "vehicle": "policecar", "x": 9, "y": 14, "chance": 50, "rotation": 180 }, - { "vehicle": "policecar", "x": 9, "y": 21, "chance": 50, "rotation": 180 } + { "vehicle": "policecar", "x": 47, "y": 38, "chance": 50, "rotation": 180 }, + { "vehicle": "policecar", "x": 47, "y": 45, "chance": 50, "rotation": 180 }, + { "vehicle": "policecar", "x": 57, "y": 38, "chance": 50, "rotation": 180 }, + { "vehicle": "policecar", "x": 57, "y": 45, "chance": 50, "rotation": 180 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_19" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".....sssssssssssssssssss", - "....ssssssssssssssssssss", - "....sss_____,______,____", - "....ss______,______,____", - "....ss______,______,____", - "....ss______,______,____", - "....ss______,______,____", - "....ss______,______,____", - "..#.ss__________________", - "....ss__________________", - "....ss__________________", - "....ss__________}_______", - "....ss__________________", - "....ss__________________", - "....ss__________________", - "....ss______,______,____", - "....ss______,______,____", - "....ss______,______,____", - "....ss______,______,____", - "....ss______,______,____", - "....sss_____,______,____", - "....ssssssssssssssssssss", - ".....sssssssssssssssssss", - "......IsssssI..........." + }, + "om_terrain": [ + [ "necropolis_a_7", "necropolis_a_8", "necropolis_a_9" ], + [ "necropolis_a_16", "necropolis_a_17", "necropolis_a_18" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + ".....sssssssssssssssssssssss_______,,_______ss..........................", + "....ssssssssssssssssssssssss_______,,_______sss.........................", + "....sss_____,______,_____sss________________ssssssssssssssssssssssssssss", + "....ss______,______,______ss_______,,________sssssssssssssssssssssssssss", + "....ss______,______,______ss_______,,___________________________________", + "....ss______,______,______ss_______,,___________________________________", + "....ss______,______,______ss____________________________________________", + "....ss______,______,______s________,,___________________________________", + "..#.ss_____________________________,,___________________________________", + "....ss_____________________________,,___________________________________", + "....ss_____________________________,,,__________________________________", + "....ss__________}___________________,,,,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,", + "....ss_______________________________,,,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,", + "....ss__________________________________________________________________", + "....ss__________________________________________________________________", + "....ss______,______,______s_____________________________________________", + "....ss______,______,______ss____________________________________________", + "....ss______,______,______ss____________________________________________", + "....ss______,______,______ss____________________________________________", + "....ss______,______,______sss___________________________________________", + "....sss_____,______,_____sssssssssssssssssssssssssssssssssssssssssssssss", + "....ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss", + ".....ssssssssssssssssssssssssssssssssssssssssssss..........ssss.........", + "......IsssssI..................ssssssss......sss............ss.........T", + ".....|-=====-|--|---HHH-HHH-HHH-[[--[[-HHH-|.sss............ss..........", + ".....|e | r[ ccccccccccc cccc|.sss....T.......ss...T......", + "..#..| EEEEE | r[ c|.sss............bss.........", + ".....| EEEEE | r[ cc cc ZZ c|.sss............bss.........", + ".....|zzEEEE | r[ rrrrrrrrr c c ZZ c|.sss............bss.........", + ".....|zzEEEE | r[ rrrrrrrrr 6c 6c cV.sss........T.....ss........", + "....X| EEEEE | r[ cV.sss..............ss......T.", + ".....|zzEEEzz| r[ cV.sss.............ssss.......", + ".....|zzEEEzz| r[ rrrrrrrrr ZZ ZZ c c|.sss...T........ssssss......", + ".....| EEEEE + r[ rrrrrrrrr ZZ ZZ c c|.sss........aAassssssss.....", + ".....|zzEEEE |--| c {c{.sss........aUasssssssssssss", + ".....|zz + Z{ ZZ c {{.sss........aUasssssssssssss", + ".....|6 + rrrrrrrrr Z{{ ZZ {{{{sss........aAassssssss.....", + ".....|-------| | rrrrrrrrr { { {{){|.sss...T........ssssss......", + "...........ss: | {{ {{){{{{|.sss.............ssss......T", + "...........ss|--| {{ { rr{{{{{{{{{ss.sss..NNNNNNNNNN..ss........", + "...#.....x.ss|r rrrrrr{rr {{{{{){{sssss.sss.MNNNNNNNNNNN..ss.......", + "...........ss|r rrrrr{rr){{{{){{{{{MssMssMMMsMNN55555NNNNNN.ss..T....", + "...........ss|r {{ {){{{{){{{MssssMssMMssM.MNMNNNMNNNNNN.ss.......", + "...........ss|r { {{{{{{))sMssMMssMs.sMMMNNMMNMNNNNMNN.bss......", + "......#....ss|r rrrr){){){{sssssssMssMMMMMMMsMMNNMNNNJJJNNN.bss......", + "...........ss|r {r{){))){{sssMsssMMssMMMMMMMMM.MNMMNMNJMJNNN.bss......", + "...........ss|r{{{{ {{{ssssssMsMssMsMMMMMMMMMMMNMNMNNNJJJNNN...ss....T", + "...........ss|r {{ {{{{sMsssssMsMMsMMMMMMMMMMMMMMMNNNMNNMNNNNNNMss....." + ], + "palettes": [ "necropolis_a" ], + "terrain": { "&": "t_gas_pump", "D": "t_floor", "Z": "t_floor", "l": "t_floor", "u": "t_floor", "z": "t_floor" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ], "place_vehicles": [ { "vehicle": "car", "x": 9, "y": 5, "chance": 25, "rotation": 90 }, { "vehicle": "pickup", "x": 16, "y": 5, "chance": 25, "rotation": 90 }, @@ -3133,5840 +375,627 @@ { "vehicle": "hippie_van", "x": 8, "y": 16, "chance": 25, "rotation": 270 }, { "vehicle": "car", "x": 15, "y": 17, "chance": 25, "rotation": 270 }, { "vehicle": "car_mini", "x": 22, "y": 18, "chance": 25, "rotation": 270 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_20" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "ssss_______,,_______ss..", - "ssss_______,,_______sss.", - "_sss________________ssss", - "__ss_______,,________sss", - "__ss_______,,___________", - "__ss_______,,___________", - "__ss____________________", - "__s________,,___________", - "___________,,___________", - "___________,,___________", - "___________,,,__________", - "____________,,,,,,_,,,_,", - "_____________,,,,,_,,,_,", - "________________________", - "________________________", - "__s_____________________", - "__ss____________________", - "__ss____________________", - "__ss____________________", - "__sss___________________", - "_sssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - ".......ssssssss......sss" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_21" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - ",,_,,,_,,,_,,,_,,,_,,,_,", - ",,_,,,_,,,_,,,_,,,_,,,_,", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "s..........ssss.........", - "............ss.........T" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_22" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".{...{{.{..ss.....MM.MMM", - "...{.......ss..M..M.ssMM", - "sss{{s{sssssssssMsssMsMM", - "ssssssssssMsssssssMsssMs", - "_______________M__M_M__M", - "_____________M____M_,__M", - "___________________M,__M", - "_______M________M___M__M", - "_______________M____,___", - "_______________M____,_M_", - "_______________________M", - ",,_______________M___,M,", - ",,_________}_________,,,", - "_____________M__________", - "__,_____________________", - "__,___________________M_", - "__,_____________________", - "__,_____________________", - "__,_____________________", - "________________________", - "sss________,,_,,,,,__sss", - "ssss_______,,_______ssss", - ".sss_______,,_______ssss", - "..ss________________sss." - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ - { "item": "building_rubble", "x": [ 0, 9 ], "y": [ 0, 4 ], "chance": 70 }, - { "item": "building_rubble", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 20 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ], - "place_vehicles": [ { "vehicle": "fire_truck", "x": 15, "y": 8, "chance": 90, "rotation": 45 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_23" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "MMmm]]]]]]]]]]]]]]]mmMMM", - "MMMmm]]]]]]]]]]]]]mmMMMM", - "MMMmm]]]]]]]]]]]mmMMMMMM", - "MMMMMmm]]]]]]]]]mm)))MMs", - "_MMMMMmm]]]]]]]mmMM)))_M", - "__MMMMMmmmmmmmmmMMMM)))_", - "MM_MMMMMmmmmmmmMMMMM_)))", - "___MMMMMMMMMMMMMMMMMM___", - "MM___MMMMMMMMMMMMM______", - "__M_M_MMMMMMMMMMM_M__M__", - "__M___MMMMMMMMMM_____M__", - "_,,,_,,,MMMMMMM,_,M,_,,,", - "M,,,M,,,_,M,_,,,M,M,_,,,", - "______M____M____________", - "_______M_____M_____M____", - "______M_________________", - "________________________", - "_________M______________", - "________________________", - "________________________", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - ".........|------|-------", - ".........|nnn dd| " - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ - { "item": "vehicle_scrapped", "x": [ 18, 23 ], "y": [ 2, 8 ], "chance": 75 }, - { "item": "allclothes", "x": [ 14, 15 ], "y": [ 23, 23 ], "chance": 75 }, - { "item": "building_rubble", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 20 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ], - "place_vehicles": [ { "vehicle": "car", "x": 21, "y": 5, "chance": 100, "rotation": 45 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_24" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "MMss___M___,,_______ssss", - "MsMs_______,,_______ssss", - "sMs_,MM,,M_M________ssss", - "Mss__________________sss", - "_M____M_________________", - "_M_M___M________________", - "___M______M_____________", - "M__M____________________", - "_M____M_________________", - "________________________", - "________________________", - "_M,,_,,M_,,,_,,,_,,,_,,,", - "_,,,_,,,_,,,_,,,_,,,_,,,", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "------|-------|.........", - " oo |d@ @d|........." - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ - { "item": "novels", "x": [ 3, 4 ], "y": [ 23, 23 ], "chance": 70 }, - { "item": "allclothes", "x": [ 7, 7 ], "y": [ 23, 23 ], "chance": 75 }, - { "item": "allclothes", "x": [ 13, 13 ], "y": [ 23, 23 ], "chance": 75 }, - { "item": "building_rubble", "x": [ 0, 15 ], "y": [ 0, 15 ], "chance": 20 }, - { "item": "bed", "x": [ 8, 8 ], "y": [ 23, 23 ], "chance": 80 }, - { "item": "bed", "x": [ 12, 12 ], "y": [ 23, 23 ], "chance": 80 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_25" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..|------------|-|------", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "_,,,_,,,_,,,_,,,_,,,_,,,", - "_,,,_,,,_,,,_,,,_,,,_,,,", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "..s..........sssss......", - "..s.|-HHH-HHH-|ss|-HHH-|" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_26" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "-|9799999997999999977777", - "ssss_______s_______s....", - "ssss_______s_______s....", - "ssss_______s_______ss...", - "___________________sss..", - "____________________ss..", - "____________________ss..", - "____________________ss..", - "____________________ss..", - "____________________ss..", - "____________________ss..", - "_,,,_,,,,___________ss..", - "_,,,_,,,,,__________ss..", - "_________,,_________ss..", - "__________,,________ss..", - "___________,,_______ss..", - "___________,,_______ss..", - "___________,,_______ss..", - "____________________ss..", - "___________,,_______ss..", - "sss________,,_______ss..", - "ssss_______,,_______ss..", - ".sss________________ss..", - "..ss_______,,_______sM.." ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_27" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "777777777777778.........", - "........................", - "........................", - ".............#..........", - "........................", - "......#.................", - "..................X...#.", - "........................", - "........................", - "......#.................", - ".........#..............", - "..x.....................", - "........................", - "........................", - "....................#...", - "........................", - "........................", - ".......#................", - "..#.....................", - ".....#............C.....", - "........................", - "........................", - "...X.........#..........", - "........................" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ { "item": "field", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 70 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_28" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".....|-=====-|--|---HHH-", - ".....|e | r[ cccc", - "..#..| EEEEE | r[ ", - ".....| EEEEE | r[ ", - ".....|zzEEEE | r[ rrrrr", - ".....|zzEEEE | r[ rrrrr", - "....X| EEEEE | r[ ", - ".....|zzEEEzz| r[ ", - ".....|zzEEEzz| r[ rrrrr", - ".....| EEEEE + r[ rrrrr", - ".....|zzEEEE |--| ", - ".....|zz + ", - ".....|6 + rrrrr", - ".....|-------| | rrrrr", - "...........ss: | ", - "...........ss|--| ", - "...#.....x.ss|r rrrrr", - "...........ss|r rrrrr", - "...........ss|r {{ ", - "...........ss|r {", - "......#....ss|r rrrr)", - "...........ss|r {r{){)", - "...........ss|r{{{{ {{", - "...........ss|r {{ {{{{" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, "place_items": [ - { "item": "building_rubble", "x": [ 15, 23 ], "y": [ 18, 23 ], "chance": 95 }, - { "item": "alcohol", "x": [ 14, 14 ], "y": [ 16, 23 ], "chance": 75 }, - { "item": "cannedfood", "x": [ 19, 23 ], "y": [ 16, 17 ], "chance": 75 }, - { "item": "cannedfood", "x": [ 19, 23 ], "y": [ 12, 13 ], "chance": 75 }, - { "item": "pasta", "x": [ 19, 23 ], "y": [ 8, 9 ], "chance": 75 }, - { "item": "pasta", "x": [ 19, 23 ], "y": [ 4, 5 ], "chance": 75 }, - { "item": "kitchen", "x": [ 20, 23 ], "y": [ 1, 1 ], "chance": 70 }, - { "item": "fridge", "x": [ 15, 15 ], "y": [ 1, 9 ], "chance": 70 }, - { "item": "cannedfood", "x": [ 6, 7 ], "y": [ 4, 5 ], "chance": 80 }, - { "item": "cannedfood", "x": [ 6, 7 ], "y": [ 7, 8 ], "chance": 80 }, - { "item": "cannedfood", "x": [ 11, 12 ], "y": [ 7, 8 ], "chance": 80 }, - { "item": "pasta", "x": [ 6, 7 ], "y": [ 10, 11 ], "chance": 80 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_29" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "HHH-HHH-[[--[[-HHH-|.sss", - "ccccccc cccc|.sss", - " c|.sss", - " cc cc ZZ c|.sss", - "rrrr c c ZZ c|.sss", - "rrrr 6c 6c cV.sss", - " cV.sss", - " cV.sss", - "rrrr ZZ ZZ c c|.sss", - "rrrr ZZ ZZ c c|.sss", - " c {c{.sss", - " Z{ ZZ c {{.sss", - "rrrr Z{{ ZZ {{{{sss", - "rrrr { { {{){|.sss", - " {{ {{){{{{|.sss", - " {{ { rr{{{{{{{{{ss.sss", - "r{rr {{{{{){{sssss.sss", - "{rr){{{{){{{{{MssMssMMMs", - " {){{{{){{{MssssMssMMssM", - " {{{{{{))sMssMMssMs.sMM", - "{){){{sssssssMssMMMMMMMs", - ")){{sssMsssMMssMMMMMMMMM", - "{ssssssMsMssMsMMMMMMMMMM", - "sMsssssMsMMsMMMMMMMMMMMM" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ - { "item": "building_rubble", "x": [ 12, 22 ], "y": [ 10, 17 ], "chance": 95 }, - { "item": "building_rubble", "x": [ 0, 11 ], "y": [ 14, 23 ], "chance": 95 }, - { "item": "produce", "x": [ 11, 12 ], "y": [ 11, 12 ], "chance": 75 }, - { "item": "produce", "x": [ 7, 8 ], "y": [ 11, 12 ], "chance": 75 }, - { "item": "produce", "x": [ 11, 12 ], "y": [ 8, 9 ], "chance": 75 }, - { "item": "produce", "x": [ 7, 8 ], "y": [ 8, 9 ], "chance": 75 }, - { "item": "produce", "x": [ 14, 15 ], "y": [ 3, 4 ], "chance": 75 }, - { "item": "kitchen", "x": [ 15, 15 ], "y": [ 8, 11 ], "chance": 75 }, - { "item": "kitchen", "x": [ 18, 18 ], "y": [ 1, 10 ], "chance": 75 }, - { "item": "kitchen", "x": [ 15, 17 ], "y": [ 1, 1 ], "chance": 75 }, - { "item": "cannedfood", "x": [ 0, 3 ], "y": [ 16, 17 ], "chance": 75 }, - { "item": "cannedfood", "x": [ 0, 3 ], "y": [ 12, 13 ], "chance": 75 }, - { "item": "pasta", "x": [ 0, 3 ], "y": [ 8, 9 ], "chance": 75 }, - { "item": "pasta", "x": [ 0, 3 ], "y": [ 4, 5 ], "chance": 75 }, - { "item": "kitchen", "x": [ 0, 6 ], "y": [ 1, 1 ], "chance": 70 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_30" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "............ss..........", - "....T.......ss...T......", - "............bss.........", - "............bss.........", - "............bss.........", - "........T.....ss........", - "..............ss......T.", - ".............ssss.......", - "...T........ssssss......", - "........aAassssssss.....", - "........aUasssssssssssss", - "........aUasssssssssssss", - "........aAassssssss.....", - "...T........ssssss......", - ".............ssss......T", - "..NNNNNNNNNN..ss........", - ".MNNNNNNNNNNN..ss.......", - "MNN55555NNNNNN.ss..T....", - ".MNMNNNMNNNNNN.ss.......", - "MNNMMNMNNNNMNN.bss......", - "MMNNMNNNJJJNNN.bss......", - ".MNMMNMNJMJNNN.bss......", - "MNMNMNNNJJJNNN...ss....T", - "MMMNNNMNNMNNNNNNMss....." - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "U": "t_sidewalk", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ { "item": "field", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 70 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_31" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..ss_______,,_______sss.", - "..ss_______,,_______sss.", - "..ss_______,,_______sss.", - "..ss________________sss.", - "..ss_______,,_______sss.", - "..ss_______,,_______sss.", - "..ss_______,,_______sss.", - "..ss________________sss.", - "..ss_______,,_______sssU", - ".sss_______,,_______sss.", - "ssss_______,,_______ssss", - "ssss________________ssss", - ".sss_______,,_______ssss", - "..ss_______,,_______ssss", - "..ss_______,,_______sss.", - "..ss________________sssU", - "..ss_______,,_______sss.", - "..ss_______,,_______sss.", - "..ss_______,,_______sss.", - "..ss________________sss.", - "..ss_______,,_______sss.", - "..ss_______,,_______sss.", - "..ss_______,,_______sss.", - "..ss________________sss." - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "U": "t_sidewalk", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_32" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".........| h | h", - ".........| + kk", - ".........| h o| ", - ".........|nnn o| ", - ".......|-||-----|--| ", - "..|----|AA|-----|AA|---+", - "..| ccc ", - ".|| ", - ".| I h h h I h h h ", - "|| h h h h h h h h ", - "| h h h h h h h h ", - "+ h h h h h h h h ", - "+ h h h h h h h h ", - "| h h h h h h h h ", - "|| h h h h h h h h ", - ".| I h h h I h h h ", - ".|| ", - "..| ", - "..|----|AA|--:--|AA|----", - ".......|-||f ||-|zz ", - ".........|c |-|--- ", - ".........|S hnnh | ", - ".........|O hnnh ", - ".........|c |------" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ - { "item": "homebooks", "x": [ 15, 15 ], "y": [ 2, 3 ], "chance": 75 }, - { "item": "office", "x": [ 22, 23 ], "y": [ 1, 1 ], "chance": 75 }, - { "item": "church", "x": [ 20, 21 ], "y": [ 19, 19 ], "chance": 75 }, - { "item": "church", "x": [ 7, 22 ], "y": [ 8, 15 ], "chance": 75 }, - { "item": "fridge", "x": [ 11, 11 ], "y": [ 19, 19 ], "chance": 80 }, - { "item": "dining", "x": [ 13, 14 ], "y": [ 10, 17 ], "chance": 60 }, - { "item": "kitchen", "x": [ 10, 10 ], "y": [ 20, 23 ], "chance": 80 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_33" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " | @ @ |.........", - "k + |.........", - " | hnnh |.........", - " | hnnh |.........", - " |--|-------|.........", - "---|AA|-------|.........", - " oo n|.........", - " n|.........", - " I h h n|---|.....", - " h h h |.....", - " h h h n|--|..", - " h h h n| |..", - " h h h n| |..", - " h h h n| |..", - " h h h | |..", - " I h h n|---|r |..", - " n|tBB|r |..", - " n| | |..", - "---|AA|---:---|S | |..", - " zz|--|oo |-+-| |..", - "---| o| |..", - " | o|> |..", - " + kkk | |..", - "---| h @@ |--|.." - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "toilets": { "t": { } }, - "place_items": [ - { "item": "lmoe_guns", "x": [ 9, 9 ], "y": [ 22, 22 ], "chance": 10 }, - { "item": "office", "x": [ 9, 11 ], "y": [ 22, 22 ], "chance": 70 }, - { "item": "church", "x": [ 1, 2 ], "y": [ 19, 19 ], "chance": 70 }, - { "item": "homebooks", "x": [ 7, 8 ], "y": [ 19, 19 ], "chance": 70 }, - { "item": "alcohol", "x": [ 17, 17 ], "y": [ 20, 21 ], "chance": 80 }, - { "item": "homebooks", "x": [ 10, 11 ], "y": [ 6, 6 ], "chance": 70 }, - { "item": "church", "x": [ 1, 5 ], "y": [ 8, 15 ], "chance": 70 }, - { "item": "dining", "x": [ 10, 11 ], "y": [ 2, 3 ], "chance": 60 }, - { "item": "bed", "x": [ 8, 8 ], "y": [ 0, 0 ], "chance": 80 }, - { "item": "bed", "x": [ 12, 12 ], "y": [ 0, 0 ], "chance": 80 }, - { "item": "bed", "x": [ 15, 16 ], "y": [ 23, 23 ], "chance": 80 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_34" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..s.|ccccccccc|[[|ccccc|", - "..s.| cV", - "..s.| rr rr rr cV", - "..s.| rr rr rr cV", - "..s.| rr rr rr c|", - "..s.| cV", - "..s.|---|-----|cc6c cV", - "..ssssss= : c cV", - ".......s|rrrr>|rr c|", - ".......s|--|--|-|-+--|-|", - ".......ssss|rrrr| S |..", - ".......ssss; | t|..", - "......|----|--+-|-+--|{{", - "......|r {{ {{{{ss", - "......|r rr r){ {{sssM", - "......|r rr r)M{M{sssM", - "......|r r) r{{MssssMs", - "......|r r) {){{s)MsssM", - "......|r rr{{)ssMssssMs", - "......|r r){{{{sssssMss", - "......|r )){{{MssMsssMs", - "......|r {{{{{ssssssM{MM", - "......|){{{{{sssMssMsssM", - "......|-{{{{ssMsMssMssMM" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "toilets": { "t": { } }, - "place_items": [ - { "item": "building_rubble", "x": [ 7, 15 ], "y": [ 13, 18 ], "chance": 95 }, - { "item": "building_rubble", "x": [ 7, 15 ], "y": [ 15, 23 ], "chance": 95 }, - { "item": "novels", "x": [ 14, 15 ], "y": [ 14, 16 ], "chance": 70 }, - { "item": "manuals", "x": [ 10, 11 ], "y": [ 14, 19 ], "chance": 70 }, - { "item": "textbooks", "x": [ 7, 7 ], "y": [ 13, 21 ], "chance": 70 }, - { "item": "homebooks", "x": [ 12, 15 ], "y": [ 10, 10 ], "chance": 70 }, - { "item": "pawn", "x": [ 15, 16 ], "y": [ 8, 8 ], "chance": 70 }, - { "item": "pawn", "x": [ 9, 12 ], "y": [ 8, 8 ], "chance": 70 }, - { "item": "pawn", "x": [ 16, 17 ], "y": [ 2, 4 ], "chance": 70 }, - { "item": "pawn", "x": [ 11, 12 ], "y": [ 2, 4 ], "chance": 70 }, - { "item": "pawn", "x": [ 6, 7 ], "y": [ 2, 4 ], "chance": 70 }, - { "item": "pawn", "x": [ 22, 22 ], "y": [ 1, 8 ], "chance": 70 }, - { "item": "pawn", "x": [ 18, 22 ], "y": [ 0, 0 ], "chance": 70 }, - { "item": "pawn", "x": [ 6, 14 ], "y": [ 0, 0 ], "chance": 70 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_35" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..ss_______,,_____M_ssM.", - "..ss_______,,___M___ss..", - "..ss________M___M__Mss..", - "..ss_M_____,,___M__MMs..", - "..ss_____M_,M_M__M_MMsM.", - "..ss_______,,_M___M_sM..", - "..ss__M__MM_MM_MM_MMMM.M", - "..ssMMM____,,___M__Mss..", - ".Mss__M_M__M,M_M_M__ssM.", - "..Ms___M___,,MMMMMMMss.M", - "..MsM_M___M_MMMMMMMMMsM.", - "M.ss_M__M__MMMMMMMMMMM.M", - "..MM_M____MMMMMMMMMMMMM.", - ".Mss___M_MMMMMMMMMMMMMMM", - "..ssM___MMMMMmmmmmmmMMMM", - ".MMM___MMMMMmmmmmmmmmMMM", - "M.Ms__MMMMMmm]]]]]]]mmMM", - ".Mss_MMMMMmm]]]]]]]]]mmM", - "MMssMMMMMmm]]]]]]]]]]]mm", - ".MsMMMMMmm]]]]]]]]]]]]]m", - "M.MMMMMmm]]]]]]]]]]]]]]]", - ".MMMMMmm]]]]]]]]]]]]]]]]", - "MMMMMmm]]]]]]]]]]]]]]]]]", - "MMMMMmm]]]]]]]]]]]]]]]]]" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ - { "item": "building_rubble", "x": [ 0, 23 ], "y": [ 0, 15 ], "chance": 70 }, - { "item": "building_rubble", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 70 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_36" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "M.......................", - "........................", - "M..#....................", - ".............M..........", - ".M.M................M...", - "M...MM..................", - "M.......................", - "M.M...M.................", - "......M..M..............", - "MMM.............#.......", - "M.M....M................", - "M..M......M.............", - "MMM.M.M..M..............", - "MM.M..M..M..............", - "M.M.MMM.......M.M.......", - "MMM.M..M.M.M.M........C.", - "MMM..M..MM.M............", - "MMMMM.M....M.MM.........", - "MMMMM.MM.M..M...........", - "mMMMMMM.M..MM...M.......", - "mmMMMMM..M....M.........", - "]mmMMMMMM..M..MM........", - "]]mmMMMMM...M..M........", - "]]mmMMMMM.M..M..MM......" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ - { "item": "building_rubble", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50 }, - { "item": "field", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 70 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_37" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "...........ss|r {{{{{{", - "...........ss|--{{--{{--", - "...........sssssss{{{s8s", - "...........sss{{{sssssMs", - "......|--------{{{--ssss", - "......| dd kkk{{{{{sssss", - "......| @@ k {{{{sssss", - "......| @@ { {{{){sMssM", - ".#....| {{ {{{{{ssss", - "......|c {{{{){sssss", - "......|c @@{){{{ssssss", - "......|c {{{{{{sssssMs", - "......|J J{){{){{ssssM", - "......| {{ {)ssssss", - "......|c@@ {{{{{{{sMsss", - "......|c@@ @{{{{{sssss", - "......| KK@ {{{{{MssM", - "..x...|-|----{{{)--ssssM", - "........|rrrrr{{{{ssssss", - "........|r {{{{{{sssss", - "........|r rr)r{{{{ssss", - "......#.|r rrr{{{){{ssM", - "........|r { {{{{sss", - "........|r {{ rr{{){ss" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ - { "item": "home_hw", "x": [ 12, 15 ], "y": [ 20, 21 ], "chance": 75 }, - { "item": "home_hw", "x": [ 10, 13 ], "y": [ 18, 18 ], "chance": 75 }, - { "item": "home_hw", "x": [ 9, 9 ], "y": [ 18, 23 ], "chance": 75 }, - { "item": "building_rubble", "x": [ 11, 23 ], "y": [ 0, 23 ], "chance": 98 }, - { "item": "building_rubble", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 70 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_38" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "sssssssssMssMMMMMMMMMMMM", - "ss.sssMMsMsMMMMMmmmmmmmM", - "sssMMMMsMsMMMMMmmmmmmmmm", - "MMsMssMssMMMMMmm]]]]]]]m", - "sssssMM_MMMMMmm]]]]]]]]]", - "MsMM___MMMMMmm]]]]]]]]]]", - "sMss_MMMMMMmm]]]]]]]]]]]", - "ssss_MMMMMmm]]]]]]]]]]]]", - "MsMsMMMMMmm]]]]]]]]]]]]]", - "MsMMMMMMmm]]]]]]]]]]]]]]", - ".ssMMMMMmm]]]]]]]]]]]]]]", - "MsMMMMMMmm]]]]]]]]]]]]]]", - ".sMMMMMMmm]]]]]]]]]]]]]]", - "MssMMMMMmm]]]]]]]]]]]]]]", - "ssMMMMMMmm]]]]]]]]]]]]]]", - "sMMMMMMMmm]]]]]]]]]]]]]]", - "wsssMMMMMmm]]]]]]]]]]]]]", - "MMss_MMMMMmm]]]]]]]]]]]]", - "sssMM_MMMMMmm]]]]]]]]]]]", - "MsMM___MMMMMmm]]]]]]]]]]", - "sssMMM_MMMMMMmm]]]]]]]]]", - "sMss__MM_MMMMMmm]]]]]]]m", - "sssMM__MMMMMMMMmmmmmmmmm", - "sMsM_M_M__MMMMMMmmmmmmmM" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ { "item": "building_rubble", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 70 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_39" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "MMMNNMNNNMMNNNN..ss.....", - "MMMM.M..M...M.M.ssss....", - "MMMMMssssMssMssMssssssss", - "mMMMMMsMsMssssssssssssMs", - "mmMMMMM__MMMM_M___M_____", - "]mmMMMMM________M___M___", - "]]mmMMMMM_M_M__M________", - "]]]mmMMMMM_____M________", - "]]]]mmMMMMM_MMMMM_MM_M_M", - "]]]]]mmMMMMM_M______M___", - "]]]]]mmMMMMM_M_MM_______", - "]]]]]mmMMMMM,M_,,,M,,,_,", - "]]]]]mmMMMMMMM_MM,_MM,_,", - "]]]]]mmMMMMM_MM______M__", - "]]]]]mmMMMMM_____MM_____", - "]]]]]mmMMMMM_MM__M_M_M__", - "]]]]mmMMMMM_M__M________", - "]]]mmMMMMM____M__MMM__M_", - "]]mmMMMMM_MMM_M__M______", - "]mmMMMMM__MM__M____M____", - "mmMMMMMsssssMMMssssssss{", - "mMMMMMssMMsssssssssss{{{", - "MMMMMsssMMssMsssss---M{{", - "MMMMssssMsBssBBssss{{{{s" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ - { "item": "building_rubble", "x": [ 15, 23 ], "y": [ 20, 23 ], "chance": 80 }, - { "item": "building_rubble", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 70 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ], - "place_vehicles": [ { "vehicle": "ambulance", "x": 17, "y": 15, "chance": 90, "rotation": 0 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_40" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..ss_______,,_______sss.", - ".sss_______,,_______ssss", - "ssss_,,,,,_,,_______ssss", - "sss__________________sss", - "_M______________________", - "_M___M__________________", - "M_______________________", - "________________________", - "________________________", - "________________________", - "________________________", - ",,_,,,_,,,_,,,_,,,_,,,_,", - ",,_,,,_,,,_,,,_,,,_,,,_,", - "_M______________________", - "________________________", - "M_______________________", - "M_______________________", - "________________________", - "________________________", - "________________________", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "..ss{{{{--|--|--|-----|s", - "..ss{{ {@d|BB|BB|d@@ n|s" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ - { "item": "traveler", "x": [ 17, 17 ], "y": [ 23, 23 ], "chance": 80 }, - { "item": "bed", "x": [ 8, 8 ], "y": [ 23, 23 ], "chance": 80 }, - { "item": "bed", "x": [ 18, 19 ], "y": [ 23, 23 ], "chance": 80 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_41" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".........|c oo|......", - ".........|-------|......", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "________________________", - "______________________,_", - "______________________,_", - "______________________,_", - "______________________,_", - "______________________,_", - "________________________", - ",,____________________,,", - ",,__________}_________,,", - "________________________", - "_,______________________", - "_,______________________", - "_,______________________", - "_,______________________", - "_,______________________", - "________________________", - "sss__________________sss", - "ssss_________,,,,,,_ssss", - "ssss________________sss#", - "s.ss_______,,_______ss##" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ { "item": "homebooks", "x": [ 15, 16 ], "y": [ 0, 0 ], "chance": 70 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_42" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "...|d @@d|.....", - "...|--------------|.....", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - ",_,,,_,,,_,,,_,,,_,,,_,,", - ",_,,,_,,,_,,,_,,,_,,,_,,", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "######|--ww-++-ww---|sss", - "shhsss|hh chnnh|sss" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ - { "item": "allclothes", "x": [ 4, 4 ], "y": [ 0, 0 ], "chance": 75 }, - { "item": "allclothes", "x": [ 17, 17 ], "y": [ 0, 0 ], "chance": 75 }, - { "item": "bed", "x": [ 15, 16 ], "y": [ 0, 0 ], "chance": 80 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_43" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "...........###ss#MMM.M..", - "............#.ss.MM.M..M", - "sssssssssssMssssssMsMMsM", - "sssssssssMssssssssssssss", - "______________MM__M_MM__", - "_____________M___M____M_", - "_______M___________M____", - "_________M_____M__M__MMM", - "_________________M_M____", - "______________________M_", - "________________M__M____", - ",_,,,_,,,_,,,_,,,_,,,M,,", - ",_,,,_,,,_,,,_,,,_,M,_,,", - "________________________", - "____________________M___", - "_______________M_____M__", - "________________________", - "________________________", - "_____________________M__", - "________________________", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "...............ss.......", - "......#.....#..ss..#...." - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ { "item": "building_rubble", "x": [ 15, 23 ], "y": [ 0, 18 ], "chance": 70 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_44" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "MMMMMmm]]]]]]]]]]]]]]]]]", - "MMMMMmm]]]]]]]]]]]]]]]]]", - "MMMMMmm]]]]]]]]]]]]]]]]]", - "MMMMMmm]]]]]]]]]]]]]]]]]", - "MMMMMmm]]]]]]]]]]]]]]]]]", - "_MMMMMmm]]]]]]]]]]]]]]]]", - "_MMMMMMmm]]]]]]]]]]]]]]]", - "M__MMMMMmm]]]]]]]]]]]]]m", - "__M_MMMMMmm]]]]]]]]]]]mm", - "M_M__MMMMMmm]]]]]]]]]mmM", - "___MM_MMMMMmm]]]]]]]mmMM", - ",___M__MMMMMmmmmmmmmmMMM", - ",M___M_MMMMMMmmmmmmmMMMM", - "_M__M_M_MMMMMMMMMMMMMMMM", - "_,______M_MMMMMMMMMMMMMM", - "_,___M_M___MMMMMMMMMMM..", - "_,__MM___MM,MMMMMMMMMs..", - "_,_________,,MMMMMMMss.M", - "_,_M___M__M__M__M_M_sM..", - "______M__M_,,______Mss..", - "sss________,,M______ss.M", - "ssss_M_____,,____M__ss..", - ".sss_M______________ssM.", - "..ss_______,,__M____sss|" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ { "item": "building_rubble", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 70 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_45" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "]]mmMMMMM...M..M........", - "]]mmMMMMM.M..MM.........", - "]]mmMMMMM.M..M.M........", - "]]mmMMMMM.M..MM...M.....", - "]mmMMMMM.M..............", - "]mmMMMMM..M.M...........", - "mmMMMMM.M.....M.........", - "mMMMMMM.MM.M#.M.........", - "MMMMM......MM...........", - "MMMMMM.MM...M...........", - "MMM...M.MMM........#....", - "MMM.M..M................", - "MMM.M..M............#...", - "M.M..M....M.............", - "M..M....................", - "...M....................", - "MM...M...........#......", - "..........M.............", - "M.......................", - ".......#............X...", - ".MM.....................", - "........................", - "........................", - "--vvv--|-v-v-|--vv---|.." - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ - { "item": "building_rubble", "x": [ 0, 15 ], "y": [ 0, 18 ], "chance": 70 }, - { "item": "field", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 70 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_46" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "...#....|--w-| rr{{{{{s", - "........|kkk {){{{{ss", - "........|kh |rrrr{{{{{s", - ".......||--|-|-----{{{{s", - ".......|rrr|rrrrrr{{{{)s", - ".......| | {{))s", - ".......|r + rr rr{{ss", - ".......|r |r rr r){{{s", - "..#....|r |r {{ {{s", - ".......| |r { {{{", - ".......|zz |r c){c |s", - ".......|zz |r c [s", - ".......|--||r c c [s", - ".......| + c6cc |s", - "....C..| | |-", - ".......|--|r rrr ", - ".......| |r rr rrr rr ", - "X......|--| rr rr ", - ".......| + ", - ".......| |rrrrrrrrrrrrr", - "...#...|--|-------------", - ".......#...............s", - "........|--|--------|.ss", - "........|BB|d@@d@@ n|sss" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ - { "item": "traveler", "x": [ 12, 12 ], "y": [ 23, 23 ], "chance": 70 }, - { "item": "traveler", "x": [ 15, 15 ], "y": [ 23, 23 ], "chance": 70 }, - { "item": "building_rubble", "x": [ 16, 23 ], "y": [ 0, 11 ], "chance": 95 }, - { "item": "allclothes", "x": [ 16, 18 ], "y": [ 15, 16 ], "chance": 70 }, - { "item": "allclothes", "x": [ 11, 23 ], "y": [ 19, 19 ], "chance": 70 }, - { "item": "allclothes", "x": [ 12, 12 ], "y": [ 7, 12 ], "chance": 70 }, - { "item": "allclothes", "x": [ 8, 9 ], "y": [ 10, 11 ], "chance": 85 }, - { "item": "allclothes", "x": [ 8, 8 ], "y": [ 6, 8 ], "chance": 70 }, - { "item": "allclothes", "x": [ 18, 19 ], "y": [ 6, 7 ], "chance": 70 }, - { "item": "allclothes", "x": [ 15, 16 ], "y": [ 6, 7 ], "chance": 70 }, - { "item": "allclothes", "x": [ 8, 10 ], "y": [ 4, 4 ], "chance": 70 }, - { "item": "allclothes", "x": [ 12, 17 ], "y": [ 4, 4 ], "chance": 70 }, - { "item": "office", "x": [ 9, 11 ], "y": [ 1, 1 ], "chance": 70 }, - { "item": "home_hw", "x": [ 16, 17 ], "y": [ 0, 0 ], "chance": 70 }, - { "item": "home_hw", "x": [ 14, 17 ], "y": [ 2, 2 ], "chance": 70 }, - { "item": "bed", "x": [ 13, 14 ], "y": [ 23, 23 ], "chance": 80 }, - { "item": "bed", "x": [ 16, 17 ], "y": [ 23, 23 ], "chance": 80 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_47" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "sssM___MMMM,MMMMMMMMMMMM", - "ssMs_M_M__M,MMMMMMMMMMMM", - "ssss_MM_____MMMMMMMMMMMM", - "ssss__MM__M,M__MMMMMMMMM", - "ssMs___M___,,M__MMMMMMMM", - "ssMs_MM___M,,M_M____Ms..", - "ssss______M______M_MsM..", - "ssss__M___M,,MM_M___MsM.", - "ssss_______,,_MM__M_ssM.", - "{sss_______,,_______sM..", - "ssss_____________M__ss..", - "ssss_______,,_______ss..", - "s{{s_______,,_______ss..", - "s{ss_______,,_______ss..", - "|sss__________{{____ss..", - "|sss___________{____ss..", - "Vsss________________ss..", - "Vsss________________ss..", - "Vsss________________ss..", - "|sss________________ss..", - "|ssss______________ssss.", - "ssssssss________ssssssss", - "ssssssss________ssssssss", - "________________________" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ { "item": "building_rubble", "x": [ 0, 23 ], "y": [ 0, 19 ], "chance": 70 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ], - "place_vehicles": [ { "vehicle": "fire_truck", "x": 8, "y": 4, "chance": 90, "rotation": 270 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_48" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "MMMsssM@Msssssss)ss{{{{s", - "MMswssMMsssS sss {{{{{ss", - "MssssMsssMs)ssss{{{{ |ss", - ".sMsMssssssssf{{{{{{ {ss", - "Mssssssss ss|{{{{{{n{{ss", - ".sMssssss|-{{{-|{{{--|ss", - "Msssssssd|BB{BB|d@@ n|ss", - "Mssss{ss{{ t|t | @@ hwss", - ".sss{{{{{{ S|S | {{ wss", - ".ss{{M{ {{+-|-+| { |ss", - ".{s{{{{){ f|f ;ss", - ".s{{{{)){ { | nnnn |ss", - "{{s{{----|--|--|-----|ss", - ".s{|n @@d|BB|BB|d@@ n|ss", - ".sswh @@ | t|t | @@ hwss", - ".ssw | S|S | wss", - ".ss| |+-|-+| |ss", - ".ss; f|f ;ss", - ".ss| nnnn | nnnn |ss", - ".ss|--------|--------|ss", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "sss|-+---------|-- --|ss", - "sss| jjjjjj D|l |ss" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_vendingmachines": [ { "item_group": "vending_drink", "x": 16, "y": 23 } ], - "toilets": { "t": { } }, - "place_items": [ - { "item": "traveler", "x": [ 16, 16 ], "y": [ 6, 6 ], "chance": 70 }, - { "item": "traveler", "x": [ 16, 19 ], "y": [ 11, 11 ], "chance": 70 }, - { "item": "traveler", "x": [ 8, 8 ], "y": [ 13, 13 ], "chance": 70 }, - { "item": "traveler", "x": [ 5, 8 ], "y": [ 18, 18 ], "chance": 70 }, - { "item": "allclothes", "x": [ 7, 12 ], "y": [ 23, 23 ], "chance": 70 }, - { "item": "building_rubble", "x": [ 11, 22 ], "y": [ 2, 6 ], "chance": 95 }, - { "item": "building_rubble", "x": [ 0, 11 ], "y": [ 9, 15 ], "chance": 95 }, - { "item": "building_rubble", "x": [ 0, 8 ], "y": [ 0, 8 ], "chance": 60 }, - { "item": "bed", "x": [ 17, 18 ], "y": [ 6, 7 ], "chance": 80 }, - { "item": "bed", "x": [ 6, 7 ], "y": [ 13, 14 ], "chance": 80 }, - { "item": "bed", "x": [ 17, 18 ], "y": [ 13, 14 ], "chance": 80 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_49" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..ss{{{@@ | t|t | @@ hws", - "..ss{ | S|S | ws", - "..ss{ |+-|-+| |s", - "..ss; f|f ;s", - "..ss| nnnn | nnnn |s", - "..ss|-----|--|--|-----|s", - "..ss|n @@d|BB|BB|d@@ n|s", - "..sswh @@ | t|t | @@ hws", - "..ssw | S|S | ws", - "..ss| |+-|-+| |s", - "..ss; f|f ;s", - "..ss| nnnn | nnnn |s", - "..ss|-----|--|--|-----|s", - "..ss|n @@d|BB|BB|d@@ n|s", - "..sswh @@ | t|t | @@ hws", - "..ssw | S|S | ws", - "..ss| |+-|-+| |s", - "..ss; f|f ;s", - "..ss| nnnnn | nnnn |s", - "..ss|--------|--------|s", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "ss______________________" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "toilets": { "t": { } }, - "place_items": [ - { "item": "traveler", "x": [ 5, 9 ], "y": [ 6, 11 ], "chance": 70 }, - { "item": "traveler", "x": [ 16, 21 ], "y": [ 13, 18 ], "chance": 70 }, - { "item": "traveler", "x": [ 17, 17 ], "y": [ 16, 16 ], "chance": 80 }, - { "item": "traveler", "x": [ 6, 10 ], "y": [ 18, 18 ], "chance": 70 }, - { "item": "bed", "x": [ 7, 8 ], "y": [ 0, 0 ], "chance": 80 }, - { "item": "bed", "x": [ 7, 8 ], "y": [ 6, 7 ], "chance": 80 }, - { "item": "bed", "x": [ 7, 8 ], "y": [ 13, 14 ], "chance": 80 }, - { "item": "bed", "x": [ 18, 19 ], "y": [ 0, 0 ], "chance": 80 }, - { "item": "bed", "x": [ 18, 19 ], "y": [ 6, 7 ], "chance": 80 }, - { "item": "bed", "x": [ 18, 19 ], "y": [ 13, 14 ], "chance": 80 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_50" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "s.ss_______,,_______ss#s", - "s.ss_______,,_______ss#s", - "s.ss________________ssss", - "s.ss_______,,_______ssss", - "s.ss_______,,_______ss#s", - "s.ss_______,,_______ss#s", - "s.ss________________ss#s", - "s.ss_______,,_______ss#s", - "s.ss_______,,_______ss#s", - "s.ss_______,,_______ss#s", - "s.ss________________ssss", - "s.ss_______,,_______ssss", - "s.ss_______,,_______ss#s", - "s.ss_______,,_______ss#s", - "s.ss________________ss#s", - "s.ss_______,,_______ss#s", - "s.ss_______,,_______ss##", - "s.ss_______,,________ss#", - "s.ss____________________", - "s.ss_______,,___________", - "ssss_______,,___________", - "ssss_______,,___________", - "ssss____________________", - "__ss_______,,___________" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_51" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "hnnhss|nn chnnh|sss", - "hnnhsswnn h |sss", - "shhssswhh n hcc |777", - "sssssswcc h hc r|sss", - "ssssss|hh hc r|sss", - "shhsss|nn h hc f|sss", - "hnnhsswnn n hc f|sss", - "hnnhsswhh h hc c|sss", - "shhssswcc hc S|sss", - "ssssss| c r|sss", - "ssssss[ c r|sss", - "ssssss[ |----|c-- -|sss", - "ssssss| + | c|sss", - "shhsssw |S t |c S|Dss", - "hnnhssw |----|c S|Dss", - "hnnhssw + |c ;sss", - "shhsss| |S t |cOOff|797", - "####ss|--|----|-----|sss", - "___,__,_________________", - "___,,,,_________________", - "___,__,_________________", - "___,,,,_________________", - "___,__,_________________", - "___,,,,_________________" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, + { "item": "building_rubble", "x": [ 15, 23 ], "y": [ 42, 47 ], "chance": 95 }, + { "item": "alcohol", "x": [ 14, 14 ], "y": [ 40, 47 ], "chance": 75 }, + { "item": "cannedfood", "x": [ 19, 23 ], "y": [ 40, 41 ], "chance": 75 }, + { "item": "cannedfood", "x": [ 19, 23 ], "y": [ 36, 37 ], "chance": 75 }, + { "item": "pasta", "x": [ 19, 23 ], "y": [ 32, 33 ], "chance": 75 }, + { "item": "pasta", "x": [ 19, 23 ], "y": [ 28, 29 ], "chance": 75 }, + { "item": "kitchen", "x": [ 20, 23 ], "y": [ 25, 25 ], "chance": 70 }, + { "item": "fridge", "x": [ 15, 15 ], "y": [ 25, 33 ], "chance": 70 }, + { "item": "cannedfood", "x": [ 6, 7 ], "y": [ 28, 29 ], "chance": 80 }, + { "item": "cannedfood", "x": [ 6, 7 ], "y": [ 31, 32 ], "chance": 80 }, + { "item": "cannedfood", "x": [ 11, 12 ], "y": [ 31, 32 ], "chance": 80 }, + { "item": "pasta", "x": [ 6, 7 ], "y": [ 34, 35 ], "chance": 80 }, + { "item": "building_rubble", "x": [ 36, 46 ], "y": [ 34, 41 ], "chance": 95 }, + { "item": "building_rubble", "x": [ 24, 35 ], "y": [ 38, 47 ], "chance": 95 }, + { "item": "produce", "x": [ 35, 36 ], "y": [ 35, 36 ], "chance": 75 }, + { "item": "produce", "x": [ 31, 32 ], "y": [ 35, 36 ], "chance": 75 }, + { "item": "produce", "x": [ 35, 36 ], "y": [ 32, 33 ], "chance": 75 }, + { "item": "produce", "x": [ 31, 32 ], "y": [ 32, 33 ], "chance": 75 }, + { "item": "produce", "x": [ 38, 39 ], "y": [ 27, 28 ], "chance": 75 }, + { "item": "kitchen", "x": [ 39, 39 ], "y": [ 32, 35 ], "chance": 75 }, + { "item": "kitchen", "x": [ 42, 42 ], "y": [ 25, 34 ], "chance": 75 }, + { "item": "kitchen", "x": [ 39, 41 ], "y": [ 25, 25 ], "chance": 75 }, + { "item": "cannedfood", "x": [ 24, 27 ], "y": [ 40, 41 ], "chance": 75 }, + { "item": "cannedfood", "x": [ 24, 27 ], "y": [ 36, 37 ], "chance": 75 }, + { "item": "pasta", "x": [ 24, 27 ], "y": [ 32, 33 ], "chance": 75 }, + { "item": "pasta", "x": [ 24, 27 ], "y": [ 28, 29 ], "chance": 75 }, + { "item": "kitchen", "x": [ 24, 30 ], "y": [ 25, 25 ], "chance": 70 }, + { "item": "field", "x": [ 48, 71 ], "y": [ 24, 47 ], "chance": 70 } + ] + }, + "om_terrain": [ + [ "necropolis_a_19", "necropolis_a_20", "necropolis_a_21" ], + [ "necropolis_a_28", "necropolis_a_29", "necropolis_a_30" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + ".{...{{.{..ss.....MM.MMMMMmm]]]]]]]]]]]]]]]mmMMMMMss___M___,,_______ssss", + "...{.......ss..M..M.ssMMMMMmm]]]]]]]]]]]]]mmMMMMMsMs_______,,_______ssss", + "sss{{s{sssssssssMsssMsMMMMMmm]]]]]]]]]]]mmMMMMMMsMs_,MM,,M_M________ssss", + "ssssssssssMsssssssMsssMsMMMMMmm]]]]]]]]]mm)))MMsMss__________________sss", + "_______________M__M_M__M_MMMMMmm]]]]]]]mmMM)))_M_M____M_________________", + "_____________M____M_,__M__MMMMMmmmmmmmmmMMMM)))__M_M___M________________", + "___________________M,__MMM_MMMMMmmmmmmmMMMMM_)))___M______M_____________", + "_______M________M___M__M___MMMMMMMMMMMMMMMMMM___M__M____________________", + "_______________M____,___MM___MMMMMMMMMMMMM_______M____M_________________", + "_______________M____,_M___M_M_MMMMMMMMMMM_M__M__________________________", + "_______________________M__M___MMMMMMMMMM_____M__________________________", + ",,_______________M___,M,_,,,_,,,MMMMMMM,_,M,_,,,_M,,_,,M_,,,_,,,_,,,_,,,", + ",,_________}_________,,,M,,,M,,,_,M,_,,,M,M,_,,,_,,,_,,,_,,,_,,,_,,,_,,,", + "_____________M________________M____M____________________________________", + "__,____________________________M_____M_____M____________________________", + "__,___________________M_______M_________________________________________", + "__,_____________________________________________________________________", + "__,______________________________M______________________________________", + "__,_____________________________________________________________________", + "________________________________________________________________________", + "sss________,,_,,,,,__sssssssssssssssssssssssssssssssssssssssssssssssssss", + "ssss_______,,_______ssssssssssssssssssssssssssssssssssssssssssssssssssss", + ".sss_______,,_______ssss.........|------|-------------|-------|.........", + "..ss________________sss..........|nnn dd| oo |d@ @d|.........", + "..ss_______,,_______sss..........| h | h | @ @ |.........", + "..ss_______,,_______sss..........| + kkk + |.........", + "..ss_______,,_______sss..........| h o| | hnnh |.........", + "..ss________________sss..........|nnn o| | hnnh |.........", + "..ss_______,,_______sss........|-||-----|--| |--|-------|.........", + "..ss_______,,_______sss...|----|AA|-----|AA|---+---|AA|-------|.........", + "..ss_______,,_______sss...| ccc oo n|.........", + "..ss________________sss..|| n|.........", + "..ss_______,,_______sssU.| I h h h I h h h I h h n|---|.....", + ".sss_______,,_______sss.|| h h h h h h h h h h h |.....", + "ssss_______,,_______ssss| h h h h h h h h h h h n|--|..", + "ssss________________ssss+ h h h h h h h h h h h n| |..", + ".sss_______,,_______ssss+ h h h h h h h h h h h n| |..", + "..ss_______,,_______ssss| h h h h h h h h h h h n| |..", + "..ss_______,,_______sss.|| h h h h h h h h h h h | |..", + "..ss________________sssU.| I h h h I h h h I h h n|---|r |..", + "..ss_______,,_______sss..|| n|tBB|r |..", + "..ss_______,,_______sss...| n| | |..", + "..ss_______,,_______sss...|----|AA|--:--|AA|-------|AA|---:---|S | |..", + "..ss________________sss........|-||f ||-|zz zz|--|oo |-+-| |..", + "..ss_______,,_______sss..........|c |-|--- ---| o| |..", + "..ss_______,,_______sss..........|S hnnh | | o|> |..", + "..ss_______,,_______sss..........|O hnnh + kkk | |..", + "..ss________________sss..........|c |---------| h @@ |--|.." + ], + "palettes": [ "necropolis_a" ], + "terrain": { "&": "t_gas_pump", "D": "t_floor", "Z": "t_floor", "l": "t_floor", "u": "t_floor", "z": "t_floor" }, "toilets": { "t": { } }, "place_items": [ - { "item": "dining", "x": [ 16, 16 ], "y": [ 2, 9 ], "chance": 70 }, - { "item": "dining", "x": [ 7, 8 ], "y": [ 5, 6 ], "chance": 60 }, - { "item": "dining", "x": [ 7, 8 ], "y": [ 1, 2 ], "chance": 60 }, - { "item": "fridge", "x": [ 19, 19 ], "y": [ 3, 10 ], "chance": 80 }, - { "item": "kitchen", "x": [ 15, 19 ], "y": [ 12, 16 ], "chance": 80 }, - { "item": "produce", "x": [ 18, 19 ], "y": [ 16, 16 ], "chance": 80 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_52" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".....###...###.ss.###...", - "|------|----HHH[[HH{{{-|", - "|gGGGGg| ccccc|", - "|grrrrg| ccc V", - "|gr rg| 6 V", - "|gr rg| hc cc [", - "|gr rg| c cc [", - "|gGG=Gg| 6 V", - "|--| |-| hc V", - "; c V", - "|---+-|-----H HVH HHHHHV", - "|hh f|o V V", - "|nn c|o k V h V", - "|nn S| hkh V kkk V", - "|hh c| k V h V", - "| cc|P VP oo|", - "|-----|-HHHHHH-|-HHHHH-|", - "ssssssssssssssssssssssss", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ - { "item": "homebooks", "x": [ 21, 22 ], "y": [ 15, 15 ], "chance": 70 }, - { "item": "homebooks", "x": [ 7, 7 ], "y": [ 11, 12 ], "chance": 70 }, - { "item": "office", "x": [ 9, 9 ], "y": [ 12, 14 ], "chance": 70 }, - { "item": "office", "x": [ 18, 20 ], "y": [ 13, 13 ], "chance": 70 }, - { "item": "vault", "x": [ 2, 5 ], "y": [ 3, 6 ], "chance": 70 }, - { "item": "fridge", "x": [ 5, 5 ], "y": [ 11, 11 ], "chance": 80 }, - { "item": "dining", "x": [ 1, 2 ], "y": [ 12, 13 ], "chance": 70 }, - { "item": "kitchen", "x": [ 5, 5 ], "y": [ 12, 15 ], "chance": 80 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_53" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..ss_______,,_______sss|", - "..ss___M___,,_______sssv", - "..ss________________sssv", - "..ss_______,,_______sssv", - "..ss_______,,_______sss|", - "ssss_______,,_______sss|", - "ssss________________ssss", - "..ss_______,,_______ssss", - "#.ss_______,,_______ssss", - "##ss_______,,_______ssss", - "#.ss________________ssss", - "..ss_______,,_______ssss", - "..ss_______,,_______ssss", - "#.ss_______,,_______sss|", - "##ss________________sss|", - "#.ss_______,,_______sssv", - ".sss_______,,_______sssv", - "sss________,,_______sssv", - "____________________sss|", - "___________,,_______sss|", - "___________,,_______sss.", - "___________,,_______ss..", - "____________________ss..", - "___________,,_______ss.." + { "item": "building_rubble", "x": [ 0, 9 ], "y": [ 0, 4 ], "chance": 70 }, + { "item": "building_rubble", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 20 }, + { "item": "vehicle_scrapped", "x": [ 42, 47 ], "y": [ 2, 8 ], "chance": 75 }, + { "item": "allclothes", "x": [ 38, 39 ], "y": [ 23, 23 ], "chance": 75 }, + { "item": "building_rubble", "x": [ 24, 47 ], "y": [ 0, 23 ], "chance": 20 }, + { "item": "novels", "x": [ 51, 52 ], "y": [ 23, 23 ], "chance": 70 }, + { "item": "allclothes", "x": [ 55, 55 ], "y": [ 23, 23 ], "chance": 75 }, + { "item": "allclothes", "x": [ 61, 61 ], "y": [ 23, 23 ], "chance": 75 }, + { "item": "building_rubble", "x": [ 48, 63 ], "y": [ 0, 15 ], "chance": 20 }, + { "item": "bed", "x": [ 56, 56 ], "y": [ 23, 23 ], "chance": 80 }, + { "item": "bed", "x": [ 60, 60 ], "y": [ 23, 23 ], "chance": 80 }, + { "item": "homebooks", "x": [ 39, 39 ], "y": [ 26, 27 ], "chance": 75 }, + { "item": "office", "x": [ 46, 47 ], "y": [ 25, 25 ], "chance": 75 }, + { "item": "church", "x": [ 44, 45 ], "y": [ 43, 43 ], "chance": 75 }, + { "item": "church", "x": [ 31, 46 ], "y": [ 32, 39 ], "chance": 75 }, + { "item": "fridge", "x": [ 35, 35 ], "y": [ 43, 43 ], "chance": 80 }, + { "item": "dining", "x": [ 37, 38 ], "y": [ 34, 41 ], "chance": 60 }, + { "item": "kitchen", "x": [ 34, 34 ], "y": [ 44, 47 ], "chance": 80 }, + { "item": "lmoe_guns", "x": [ 57, 57 ], "y": [ 46, 46 ], "chance": 10 }, + { "item": "office", "x": [ 57, 59 ], "y": [ 46, 46 ], "chance": 70 }, + { "item": "church", "x": [ 49, 50 ], "y": [ 43, 43 ], "chance": 70 }, + { "item": "homebooks", "x": [ 55, 56 ], "y": [ 43, 43 ], "chance": 70 }, + { "item": "alcohol", "x": [ 65, 65 ], "y": [ 44, 45 ], "chance": 80 }, + { "item": "homebooks", "x": [ 58, 59 ], "y": [ 30, 30 ], "chance": 70 }, + { "item": "church", "x": [ 49, 53 ], "y": [ 32, 39 ], "chance": 70 }, + { "item": "dining", "x": [ 58, 59 ], "y": [ 26, 27 ], "chance": 60 }, + { "item": "bed", "x": [ 56, 56 ], "y": [ 24, 24 ], "chance": 80 }, + { "item": "bed", "x": [ 60, 60 ], "y": [ 24, 24 ], "chance": 80 }, + { "item": "bed", "x": [ 63, 64 ], "y": [ 47, 47 ], "chance": 80 } + ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_54" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " |ccOcc| d@@d |..", - " hnnh |c S| @@ kv..", - " hnnh |f S| hkv..", - " hnnh |o k|..", - " | |o |..", - "-|- --| |-+|--|+|..", - "sv |St| |..", - "s; --|-| + | |..", - "s|P >|r+ |BB|r|..", - "s|--------|-|---|--|-|..", - "s|oo >|r+ |BB|r|..", - "s; --|-| + | |..", - "sv |St| |..", - "-|- --| |-+|--|+|..", - " | | |..", - "c nn ? f|d n|..", - "c nn ? | S|d @@v..", - "c ? |c S|d @@v..", - " ?? ? |ccOcc| oo d|..", - "--vvv--|-v-v-|--vv---|..", - "........................", - "......#.................", - "........................", - "....C..................." + "place_vehicles": [ + { "vehicle": "fire_truck", "x": 15, "y": 8, "chance": 90, "rotation": 45 }, + { "vehicle": "car", "x": 45, "y": 5, "chance": 100, "rotation": 45 } + ] + }, + "om_terrain": [ + [ "necropolis_a_22", "necropolis_a_23", "necropolis_a_24" ], + [ "necropolis_a_31", "necropolis_a_32", "necropolis_a_33" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..|------------|-|-------|9799999997999999977777777777777777778.........", + "ssssssssssssssssssssssssssss_______s_______s............................", + "ssssssssssssssssssssssssssss_______s_______s............................", + "ssssssssssssssssssssssssssss_______s_______ss................#..........", + "___________________________________________sss..........................", + "____________________________________________ss........#.................", + "____________________________________________ss....................X...#.", + "____________________________________________ss..........................", + "____________________________________________ss..........................", + "____________________________________________ss........#.................", + "____________________________________________ss...........#..............", + "_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,,___________ss....x.....................", + "_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,,,__________ss..........................", + "_________________________________,,_________ss..........................", + "__________________________________,,________ss......................#...", + "___________________________________,,_______ss..........................", + "___________________________________,,_______ss..........................", + "___________________________________,,_______ss.........#................", + "____________________________________________ss....#.....................", + "___________________________________,,_______ss.......#............C.....", + "sssssssssssssssssssssssssss________,,_______ss..........................", + "ssssssssssssssssssssssssssss_______,,_______ss..........................", + "..s..........sssss.......sss________________ss.....X.........#..........", + "..s.|-HHH-HHH-|ss|-HHH-|..ss_______,,_______sM..........................", + "..s.|ccccccccc|[[|ccccc|..ss_______,,_____M_ssM.M.......................", + "..s.| cV..ss_______,,___M___ss..........................", + "..s.| rr rr rr cV..ss________M___M__Mss..M..#....................", + "..s.| rr rr rr cV..ss_M_____,,___M__MMs...............M..........", + "..s.| rr rr rr c|..ss_____M_,M_M__M_MMsM..M.M................M...", + "..s.| cV..ss_______,,_M___M_sM..M...MM..................", + "..s.|---|-----|cc6c cV..ss__M__MM_MM_MM_MMMM.MM.......................", + "..ssssss= : c cV..ssMMM____,,___M__Mss..M.M...M.................", + ".......s|rrrr>|rr c|.Mss__M_M__M,M_M_M__ssM.......M..M..............", + ".......s|--|--|-|-+--|-|..Ms___M___,,MMMMMMMss.MMMM.............#.......", + ".......ssss|rrrr| S |....MsM_M___M_MMMMMMMMMsM.M.M....M................", + ".......ssss; | t|..M.ss_M__M__MMMMMMMMMMM.MM..M......M.............", + "......|----|--+-|-+--|{{..MM_M____MMMMMMMMMMMMM.MMM.M.M..M..............", + "......|r {{ {{{{ss.Mss___M_MMMMMMMMMMMMMMMMM.M..M..M..............", + "......|r rr r){ {{sssM..ssM___MMMMMmmmmmmmMMMMM.M.MMM.......M.M.......", + "......|r rr r)M{M{sssM.MMM___MMMMMmmmmmmmmmMMMMMM.M..M.M.M.M........C.", + "......|r r) r{{MssssMsM.Ms__MMMMMmm]]]]]]]mmMMMMM..M..MM.M............", + "......|r r) {){{s)MsssM.Mss_MMMMMmm]]]]]]]]]mmMMMMMM.M....M.MM.........", + "......|r rr{{)ssMssssMsMMssMMMMMmm]]]]]]]]]]]mmMMMMM.MM.M..M...........", + "......|r r){{{{sssssMss.MsMMMMMmm]]]]]]]]]]]]]mmMMMMMM.M..MM...M.......", + "......|r )){{{MssMsssMsM.MMMMMmm]]]]]]]]]]]]]]]mmMMMMM..M....M.........", + "......|r {{{{{ssssssM{MM.MMMMMmm]]]]]]]]]]]]]]]]]mmMMMMMM..M..MM........", + "......|){{{{{sssMssMsssMMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM...M..M........", + "......|-{{{{ssMsMssMssMMMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM.M..M..MM......" + ], + "palettes": [ "necropolis_a" ], + "terrain": { "&": "t_gas_pump", "D": "t_floor", "Z": "t_floor", "l": "t_floor", "u": "t_floor", "z": "t_floor" }, + "toilets": { "t": { } }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, + "place_items": [ + { "item": "field", "x": [ 48, 71 ], "y": [ 0, 23 ], "chance": 70 }, + { "item": "building_rubble", "x": [ 7, 15 ], "y": [ 37, 42 ], "chance": 95 }, + { "item": "building_rubble", "x": [ 7, 15 ], "y": [ 39, 47 ], "chance": 95 }, + { "item": "novels", "x": [ 14, 15 ], "y": [ 38, 40 ], "chance": 70 }, + { "item": "manuals", "x": [ 10, 11 ], "y": [ 38, 43 ], "chance": 70 }, + { "item": "textbooks", "x": [ 7, 7 ], "y": [ 37, 45 ], "chance": 70 }, + { "item": "homebooks", "x": [ 12, 15 ], "y": [ 34, 34 ], "chance": 70 }, + { "item": "pawn", "x": [ 15, 16 ], "y": [ 32, 32 ], "chance": 70 }, + { "item": "pawn", "x": [ 9, 12 ], "y": [ 32, 32 ], "chance": 70 }, + { "item": "pawn", "x": [ 16, 17 ], "y": [ 26, 28 ], "chance": 70 }, + { "item": "pawn", "x": [ 11, 12 ], "y": [ 26, 28 ], "chance": 70 }, + { "item": "pawn", "x": [ 6, 7 ], "y": [ 26, 28 ], "chance": 70 }, + { "item": "pawn", "x": [ 22, 22 ], "y": [ 25, 32 ], "chance": 70 }, + { "item": "pawn", "x": [ 18, 22 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "pawn", "x": [ 6, 14 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "building_rubble", "x": [ 24, 47 ], "y": [ 24, 39 ], "chance": 70 }, + { "item": "building_rubble", "x": [ 24, 47 ], "y": [ 24, 47 ], "chance": 70 }, + { "item": "building_rubble", "x": [ 48, 71 ], "y": [ 24, 47 ], "chance": 50 }, + { "item": "field", "x": [ 48, 71 ], "y": [ 24, 47 ], "chance": 70 } + ] + }, + "om_terrain": [ + [ "necropolis_a_25", "necropolis_a_26", "necropolis_a_27" ], + [ "necropolis_a_34", "necropolis_a_35", "necropolis_a_36" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "...........ss|r {{{{{{sssssssssMssMMMMMMMMMMMMMMMNNMNNNMMNNNN..ss.....", + "...........ss|--{{--{{--ss.sssMMsMsMMMMMmmmmmmmMMMMM.M..M...M.M.ssss....", + "...........sssssss{{{s8ssssMMMMsMsMMMMMmmmmmmmmmMMMMMssssMssMssMssssssss", + "...........sss{{{sssssMsMMsMssMssMMMMMmm]]]]]]]mmMMMMMsMsMssssssssssssMs", + "......|--------{{{--sssssssssMM_MMMMMmm]]]]]]]]]mmMMMMM__MMMM_M___M_____", + "......| dd kkk{{{{{sssssMsMM___MMMMMmm]]]]]]]]]]]mmMMMMM________M___M___", + "......| @@ k {{{{ssssssMss_MMMMMMmm]]]]]]]]]]]]]mmMMMMM_M_M__M________", + "......| @@ { {{{){sMssMssss_MMMMMmm]]]]]]]]]]]]]]]mmMMMMM_____M________", + ".#....| {{ {{{{{ssssMsMsMMMMMmm]]]]]]]]]]]]]]]]]mmMMMMM_MMMMM_MM_M_M", + "......|c {{{{){sssssMsMMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM_M______M___", + "......|c @@{){{{ssssss.ssMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM_M_MM_______", + "......|c {{{{{{sssssMsMsMMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM,M_,,,M,,,_,", + "......|J J{){{){{ssssM.sMMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMMMM_MM,_MM,_,", + "......| {{ {)ssssssMssMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM_MM______M__", + "......|c@@ {{{{{{{sMsssssMMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM_____MM_____", + "......|c@@ @{{{{{ssssssMMMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM_MM__M_M_M__", + "......| KK@ {{{{{MssMwsssMMMMMmm]]]]]]]]]]]]]]]]]mmMMMMM_M__M________", + "..x...|-|----{{{)--ssssMMMss_MMMMMmm]]]]]]]]]]]]]]]mmMMMMM____M__MMM__M_", + "........|rrrrr{{{{sssssssssMM_MMMMMmm]]]]]]]]]]]]]mmMMMMM_MMM_M__M______", + "........|r {{{{{{sssssMsMM___MMMMMmm]]]]]]]]]]]mmMMMMM__MM__M____M____", + "........|r rr)r{{{{sssssssMMM_MMMMMMmm]]]]]]]]]mmMMMMMsssssMMMssssssss{", + "......#.|r rrr{{{){{ssMsMss__MM_MMMMMmm]]]]]]]mmMMMMMssMMsssssssssss{{{", + "........|r { {{{{ssssssMM__MMMMMMMMmmmmmmmmmMMMMMsssMMssMsssss---M{{", + "........|r {{ rr{{){sssMsM_M_M__MMMMMMmmmmmmmMMMMMssssMsBssBBssss{{{{s", + "...#....|--w-| rr{{{{{ssssM___MMMM,MMMMMMMMMMMMMMMsssM@Msssssss)ss{{{{s", + "........|kkk {){{{{ssssMs_M_M__M,MMMMMMMMMMMMMMswssMMsssS sss {{{{{ss", + "........|kh |rrrr{{{{{sssss_MM_____MMMMMMMMMMMMMssssMsssMs)ssss{{{{ |ss", + ".......||--|-|-----{{{{sssss__MM__M,M__MMMMMMMMM.sMsMssssssssf{{{{{{ {ss", + ".......|rrr|rrrrrr{{{{)sssMs___M___,,M__MMMMMMMMMssssssss ss|{{{{{{n{{ss", + ".......| | {{))sssMs_MM___M,,M_M____Ms...sMssssss|-{{{-|{{{--|ss", + ".......|r + rr rr{{ssssss______M______M_MsM..Msssssssd|BB{BB|d@@ n|ss", + ".......|r |r rr r){{{sssss__M___M,,MM_M___MsM.Mssss{ss{{ t|t | @@ hwss", + "..#....|r |r {{ {{sssss_______,,_MM__M_ssM..sss{{{{{{ S|S | {{ wss", + ".......| |r { {{{{sss_______,,_______sM...ss{{M{ {{+-|-+| { |ss", + ".......|zz |r c){c |sssss_____________M__ss...{s{{{{){ f|f ;ss", + ".......|zz |r c [sssss_______,,_______ss...s{{{{)){ { | nnnn |ss", + ".......|--||r c c [ss{{s_______,,_______ss..{{s{{----|--|--|-----|ss", + ".......| + c6cc |ss{ss_______,,_______ss...s{|n @@d|BB|BB|d@@ n|ss", + "....C..| | |-|sss__________{{____ss...sswh @@ | t|t | @@ hwss", + ".......|--|r rrr |sss___________{____ss...ssw | S|S | wss", + ".......| |r rr rrr rr Vsss________________ss...ss| |+-|-+| |ss", + "X......|--| rr rr Vsss________________ss...ss; f|f ;ss", + ".......| + Vsss________________ss...ss| nnnn | nnnn |ss", + ".......| |rrrrrrrrrrrrr|sss________________ss...ss|--------|--------|ss", + "...#...|--|-------------|ssss______________ssss.ssssssssssssssssssssssss", + ".......#...............sssssssss________ssssssssssssssssssssssssssssssss", + "........|--|--------|.ssssssssss________sssssssssss|-+---------|-- --|ss", + "........|BB|d@@d@@ n|sss________________________sss| jjjjjj D|l |ss" + ], + "palettes": [ "necropolis_a" ], + "terrain": { "&": "t_gas_pump", "D": "t_floor", "Z": "t_floor", "l": "t_floor", "u": "t_floor", "z": "t_floor" }, "toilets": { "t": { } }, "place_items": [ - { "item": "allclothes", "x": [ 14, 14 ], "y": [ 15, 17 ], "chance": 70 }, - { "item": "homebooks", "x": [ 16, 17 ], "y": [ 18, 18 ], "chance": 70 }, - { "item": "allclothes", "x": [ 20, 20 ], "y": [ 18, 18 ], "chance": 70 }, - { "item": "magazines", "x": [ 2, 3 ], "y": [ 15, 16 ], "chance": 50 }, - { "item": "novels", "x": [ 2, 3 ], "y": [ 10, 10 ], "chance": 50 }, - { "item": "fridge", "x": [ 12, 12 ], "y": [ 15, 15 ], "chance": 70 }, - { "item": "kitchen", "x": [ 8, 12 ], "y": [ 16, 18 ], "chance": 80 }, - { "item": "allclothes", "x": [ 20, 20 ], "y": [ 10, 10 ], "chance": 70 }, - { "item": "softdrugs", "x": [ 17, 18 ], "y": [ 10, 12 ], "chance": 50 }, - { "item": "jackets", "x": [ 11, 11 ], "y": [ 10, 10 ], "chance": 70 }, - { "item": "softdrugs", "x": [ 17, 18 ], "y": [ 6, 8 ], "chance": 50 }, - { "item": "allclothes", "x": [ 20, 20 ], "y": [ 8, 8 ], "chance": 70 }, - { "item": "jackets", "x": [ 11, 11 ], "y": [ 8, 8 ], "chance": 70 }, - { "item": "office", "x": [ 20, 20 ], "y": [ 1, 3 ], "chance": 70 }, - { "item": "homebooks", "x": [ 14, 14 ], "y": [ 3, 4 ], "chance": 70 }, - { "item": "allclothes", "x": [ 15, 15 ], "y": [ 0, 0 ], "chance": 70 }, - { "item": "allclothes", "x": [ 18, 18 ], "y": [ 0, 0 ], "chance": 70 }, - { "item": "fridge", "x": [ 8, 8 ], "y": [ 2, 2 ], "chance": 70 }, - { "item": "dining", "x": [ 3, 4 ], "y": [ 1, 3 ], "chance": 70 }, - { "item": "kitchen", "x": [ 8, 12 ], "y": [ 0, 2 ], "chance": 80 }, - { "item": "bed", "x": [ 16, 17 ], "y": [ 0, 1 ], "chance": 80 }, - { "item": "bed", "x": [ 19, 20 ], "y": [ 16, 17 ], "chance": 80 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_55" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........|t | @@ @@ hwss_", - "..#.....|S | wss_", - "........|-+| |ss_", - "........|f ;ss_", - "........| cccccc |ss_", - "........|--|--------|ss,", - "........|BB|d@@d@@ n|ss_", - "........|t | @@ @@ hwss_", - "......x.|S | wss_", - "........|-+| |ss_", - "........|f ;ss_", - "........| cccccc |ss_", - "........|--|--------|ss,", - "........|BB|d@@d@@ n|ss_", - "........|t | @@ @@ hwss_", - "........|S | wss_", - "........|-+| |ss_", - "..#.....|f ;ss_", - "........| cccccc |ss_", - "........|--|--------|ss,", - "........|BB|d@@d@@ n|ss_", - "........|t | @@ @@ hwss_", - "........|S | wss_", - "........|-+| |ss_" + { "item": "home_hw", "x": [ 12, 15 ], "y": [ 20, 21 ], "chance": 75 }, + { "item": "home_hw", "x": [ 10, 13 ], "y": [ 18, 18 ], "chance": 75 }, + { "item": "home_hw", "x": [ 9, 9 ], "y": [ 18, 23 ], "chance": 75 }, + { "item": "building_rubble", "x": [ 11, 23 ], "y": [ 0, 23 ], "chance": 98 }, + { "item": "building_rubble", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 70 }, + { "item": "building_rubble", "x": [ 24, 47 ], "y": [ 0, 23 ], "chance": 70 }, + { "item": "building_rubble", "x": [ 63, 71 ], "y": [ 20, 23 ], "chance": 80 }, + { "item": "building_rubble", "x": [ 48, 71 ], "y": [ 0, 23 ], "chance": 70 }, + { "item": "traveler", "x": [ 12, 12 ], "y": [ 47, 47 ], "chance": 70 }, + { "item": "traveler", "x": [ 15, 15 ], "y": [ 47, 47 ], "chance": 70 }, + { "item": "building_rubble", "x": [ 16, 23 ], "y": [ 24, 35 ], "chance": 95 }, + { "item": "allclothes", "x": [ 16, 18 ], "y": [ 39, 40 ], "chance": 70 }, + { "item": "allclothes", "x": [ 11, 23 ], "y": [ 43, 43 ], "chance": 70 }, + { "item": "allclothes", "x": [ 12, 12 ], "y": [ 31, 36 ], "chance": 70 }, + { "item": "allclothes", "x": [ 8, 9 ], "y": [ 34, 35 ], "chance": 85 }, + { "item": "allclothes", "x": [ 8, 8 ], "y": [ 30, 32 ], "chance": 70 }, + { "item": "allclothes", "x": [ 18, 19 ], "y": [ 30, 31 ], "chance": 70 }, + { "item": "allclothes", "x": [ 15, 16 ], "y": [ 30, 31 ], "chance": 70 }, + { "item": "allclothes", "x": [ 8, 10 ], "y": [ 28, 28 ], "chance": 70 }, + { "item": "allclothes", "x": [ 12, 17 ], "y": [ 28, 28 ], "chance": 70 }, + { "item": "office", "x": [ 9, 11 ], "y": [ 25, 25 ], "chance": 70 }, + { "item": "home_hw", "x": [ 16, 17 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "home_hw", "x": [ 14, 17 ], "y": [ 26, 26 ], "chance": 70 }, + { "item": "bed", "x": [ 13, 14 ], "y": [ 47, 47 ], "chance": 80 }, + { "item": "bed", "x": [ 16, 17 ], "y": [ 47, 47 ], "chance": 80 }, + { "item": "building_rubble", "x": [ 24, 47 ], "y": [ 24, 43 ], "chance": 70 }, + { "item": "traveler", "x": [ 64, 64 ], "y": [ 30, 30 ], "chance": 70 }, + { "item": "traveler", "x": [ 64, 67 ], "y": [ 35, 35 ], "chance": 70 }, + { "item": "traveler", "x": [ 56, 56 ], "y": [ 37, 37 ], "chance": 70 }, + { "item": "traveler", "x": [ 53, 56 ], "y": [ 42, 42 ], "chance": 70 }, + { "item": "allclothes", "x": [ 55, 60 ], "y": [ 47, 47 ], "chance": 70 }, + { "item": "building_rubble", "x": [ 59, 70 ], "y": [ 26, 30 ], "chance": 95 }, + { "item": "building_rubble", "x": [ 48, 59 ], "y": [ 33, 39 ], "chance": 95 }, + { "item": "building_rubble", "x": [ 48, 56 ], "y": [ 24, 32 ], "chance": 60 }, + { "item": "bed", "x": [ 65, 66 ], "y": [ 30, 31 ], "chance": 80 }, + { "item": "bed", "x": [ 54, 55 ], "y": [ 37, 38 ], "chance": 80 }, + { "item": "bed", "x": [ 65, 66 ], "y": [ 37, 38 ], "chance": 80 } + ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, + "place_vehicles": [ + { "vehicle": "ambulance", "x": 65, "y": 15, "chance": 90, "rotation": 0 }, + { "vehicle": "fire_truck", "x": 32, "y": 28, "chance": 90, "rotation": 270 } + ], + "place_vendingmachines": [ { "item_group": "vending_drink", "x": 64, "y": 47 } ] + }, + "om_terrain": [ + [ "necropolis_a_37", "necropolis_a_38", "necropolis_a_39" ], + [ "necropolis_a_46", "necropolis_a_47", "necropolis_a_48" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..ss_______,,_______sss..........|c oo|.........|d @@d|.....", + ".sss_______,,_______ssss.........|-------|.........|--------------|.....", + "ssss_,,,,,_,,_______ssssssssssssssssssssssssssssssssssssssssssssssssssss", + "sss__________________sssssssssssssssssssssssssssssssssssssssssssssssssss", + "_M______________________________________________________________________", + "_M___M________________________________________,_________________________", + "M_____________________________________________,_________________________", + "______________________________________________,_________________________", + "______________________________________________,_________________________", + "______________________________________________,_________________________", + "________________________________________________________________________", + ",,_,,,_,,,_,,,_,,,_,,,_,,,____________________,,,_,,,_,,,_,,,_,,,_,,,_,,", + ",,_,,,_,,,_,,,_,,,_,,,_,,,__________}_________,,,_,,,_,,,_,,,_,,,_,,,_,,", + "_M______________________________________________________________________", + "_________________________,______________________________________________", + "M________________________,______________________________________________", + "M________________________,______________________________________________", + "_________________________,______________________________________________", + "_________________________,______________________________________________", + "________________________________________________________________________", + "sssssssssssssssssssssssssss__________________sssssssssssssssssssssssssss", + "ssssssssssssssssssssssssssss_________,,,,,,_ssssssssssssssssssssssssssss", + "..ss{{{{--|--|--|-----|sssss________________sss#######|--ww-++-ww---|sss", + "..ss{{ {@d|BB|BB|d@@ n|ss.ss_______,,_______ss##shhsss|hh chnnh|sss", + "..ss{{{@@ | t|t | @@ hwss.ss_______,,_______ss#shnnhss|nn chnnh|sss", + "..ss{ | S|S | wss.ss_______,,_______ss#shnnhsswnn h |sss", + "..ss{ |+-|-+| |ss.ss________________ssssshhssswhh n hcc |777", + "..ss; f|f ;ss.ss_______,,_______sssssssssswcc h hc r|sss", + "..ss| nnnn | nnnn |ss.ss_______,,_______ss#sssssss|hh hc r|sss", + "..ss|-----|--|--|-----|ss.ss_______,,_______ss#sshhsss|nn h hc f|sss", + "..ss|n @@d|BB|BB|d@@ n|ss.ss________________ss#shnnhsswnn n hc f|sss", + "..sswh @@ | t|t | @@ hwss.ss_______,,_______ss#shnnhsswhh h hc c|sss", + "..ssw | S|S | wss.ss_______,,_______ss#sshhssswcc hc S|sss", + "..ss| |+-|-+| |ss.ss_______,,_______ss#sssssss| c r|sss", + "..ss; f|f ;ss.ss________________ssssssssss[ c r|sss", + "..ss| nnnn | nnnn |ss.ss_______,,_______ssssssssss[ |----|c-- -|sss", + "..ss|-----|--|--|-----|ss.ss_______,,_______ss#sssssss| + | c|sss", + "..ss|n @@d|BB|BB|d@@ n|ss.ss_______,,_______ss#sshhsssw |S t |c S|Dss", + "..sswh @@ | t|t | @@ hwss.ss________________ss#shnnhssw |----|c S|Dss", + "..ssw | S|S | wss.ss_______,,_______ss#shnnhssw + |c ;sss", + "..ss| |+-|-+| |ss.ss_______,,_______ss##shhsss| |S t |cOOff|797", + "..ss; f|f ;ss.ss_______,,________ss#####ss|--|----|-----|sss", + "..ss| nnnnn | nnnn |ss.ss_______________________,__,_________________", + "..ss|--------|--------|ss.ss_______,,______________,,,,_________________", + "ssssssssssssssssssssssssssss_______,,______________,__,_________________", + "ssssssssssssssssssssssssssss_______,,______________,,,,_________________", + "ssssssssssssssssssssssssssss_______________________,__,_________________", + "ss________________________ss_______,,______________,,,,_________________" + ], + "palettes": [ "necropolis_a" ], + "terrain": { "&": "t_gas_pump", "D": "t_floor", "Z": "t_floor", "l": "t_floor", "u": "t_floor", "z": "t_floor" }, + "toilets": { "t": { } }, + "place_items": [ + { "item": "traveler", "x": [ 17, 17 ], "y": [ 23, 23 ], "chance": 80 }, + { "item": "bed", "x": [ 8, 8 ], "y": [ 23, 23 ], "chance": 80 }, + { "item": "bed", "x": [ 18, 19 ], "y": [ 23, 23 ], "chance": 80 }, + { "item": "homebooks", "x": [ 39, 40 ], "y": [ 0, 0 ], "chance": 70 }, + { "item": "allclothes", "x": [ 52, 52 ], "y": [ 0, 0 ], "chance": 75 }, + { "item": "allclothes", "x": [ 65, 65 ], "y": [ 0, 0 ], "chance": 75 }, + { "item": "bed", "x": [ 63, 64 ], "y": [ 0, 0 ], "chance": 80 }, + { "item": "traveler", "x": [ 5, 9 ], "y": [ 30, 35 ], "chance": 70 }, + { "item": "traveler", "x": [ 16, 21 ], "y": [ 37, 42 ], "chance": 70 }, + { "item": "traveler", "x": [ 17, 17 ], "y": [ 40, 40 ], "chance": 80 }, + { "item": "traveler", "x": [ 6, 10 ], "y": [ 42, 42 ], "chance": 70 }, + { "item": "bed", "x": [ 7, 8 ], "y": [ 24, 24 ], "chance": 80 }, + { "item": "bed", "x": [ 7, 8 ], "y": [ 30, 31 ], "chance": 80 }, + { "item": "bed", "x": [ 7, 8 ], "y": [ 37, 38 ], "chance": 80 }, + { "item": "bed", "x": [ 18, 19 ], "y": [ 24, 24 ], "chance": 80 }, + { "item": "bed", "x": [ 18, 19 ], "y": [ 30, 31 ], "chance": 80 }, + { "item": "bed", "x": [ 18, 19 ], "y": [ 37, 38 ], "chance": 80 }, + { "item": "dining", "x": [ 64, 64 ], "y": [ 26, 33 ], "chance": 70 }, + { "item": "dining", "x": [ 55, 56 ], "y": [ 29, 30 ], "chance": 60 }, + { "item": "dining", "x": [ 55, 56 ], "y": [ 25, 26 ], "chance": 60 }, + { "item": "fridge", "x": [ 67, 67 ], "y": [ 27, 34 ], "chance": 80 }, + { "item": "kitchen", "x": [ 63, 67 ], "y": [ 36, 40 ], "chance": 80 }, + { "item": "produce", "x": [ 66, 67 ], "y": [ 40, 40 ], "chance": 80 } + ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } + ] + }, + "om_terrain": [ + [ "necropolis_a_40", "necropolis_a_41", "necropolis_a_42" ], + [ "necropolis_a_49", "necropolis_a_50", "necropolis_a_51" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "...........###ss#MMM.M..MMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM...M..M........", + "............#.ss.MM.M..MMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM.M..MM.........", + "sssssssssssMssssssMsMMsMMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM.M..M.M........", + "sssssssssMssssssssssssssMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM.M..MM...M.....", + "______________MM__M_MM__MMMMMmm]]]]]]]]]]]]]]]]]]mmMMMMM.M..............", + "_____________M___M____M__MMMMMmm]]]]]]]]]]]]]]]]]mmMMMMM..M.M...........", + "_______M___________M_____MMMMMMmm]]]]]]]]]]]]]]]mmMMMMM.M.....M.........", + "_________M_____M__M__MMMM__MMMMMmm]]]]]]]]]]]]]mmMMMMMM.MM.M#.M.........", + "_________________M_M______M_MMMMMmm]]]]]]]]]]]mmMMMMM......MM...........", + "______________________M_M_M__MMMMMmm]]]]]]]]]mmMMMMMMM.MM...M...........", + "________________M__M_______MM_MMMMMmm]]]]]]]mmMMMMM...M.MMM........#....", + ",_,,,_,,,_,,,_,,,_,,,M,,,___M__MMMMMmmmmmmmmmMMMMMM.M..M................", + ",_,,,_,,,_,,,_,,,_,M,_,,,M___M_MMMMMMmmmmmmmMMMMMMM.M..M............#...", + "_________________________M__M_M_MMMMMMMMMMMMMMMMM.M..M....M.............", + "____________________M____,______M_MMMMMMMMMMMMMMM..M....................", + "_______________M_____M___,___M_M___MMMMMMMMMMM.....M....................", + "_________________________,__MM___MM,MMMMMMMMMs..MM...M...........#......", + "_________________________,_________,,MMMMMMMss.M..........M.............", + "_____________________M___,_M___M__M__M__M_M_sM..M.......................", + "______________________________M__M_,,______Mss.........#............X...", + "sssssssssssssssssssssssssss________,,M______ss.M.MM.....................", + "ssssssssssssssssssssssssssss_M_____,,____M__ss..........................", + "...............ss........sss_M______________ssM.........................", + "......#.....#..ss..#......ss_______,,__M____sss|--vvv--|-v-v-|--vv---|..", + ".....###...###.ss.###.....ss_______,,_______sss| |ccOcc| d@@d |..", + "|------|----HHH[[HH{{{-|..ss___M___,,_______sssv hnnh |c S| @@ kv..", + "|gGGGGg| ccccc|..ss________________sssv hnnh |f S| hkv..", + "|grrrrg| ccc V..ss_______,,_______sssv hnnh |o k|..", + "|gr rg| 6 V..ss_______,,_______sss| | |o |..", + "|gr rg| hc cc [ssss_______,,_______sss|-|- --| |-+|--|+|..", + "|gr rg| c cc [ssss________________sssssv |St| |..", + "|gGG=Gg| 6 V..ss_______,,_______sssss; --|-| + | |..", + "|--| |-| hc V#.ss_______,,_______sssss|P >|r+ |BB|r|..", + "; c V##ss_______,,_______sssss|--------|-|---|--|-|..", + "|---+-|-----H HVH HHHHHV#.ss________________sssss|oo >|r+ |BB|r|..", + "|hh f|o V V..ss_______,,_______sssss; --|-| + | |..", + "|nn c|o k V h V..ss_______,,_______sssssv |St| |..", + "|nn S| hkh V kkk V#.ss_______,,_______sss|-|- --| |-+|--|+|..", + "|hh c| k V h V##ss________________sss| | | |..", + "| cc|P VP oo|#.ss_______,,_______sssvc nn ? f|d n|..", + "|-----|-HHHHHH-|-HHHHH-|.sss_______,,_______sssvc nn ? | S|d @@v..", + "sssssssssssssssssssssssssss________,,_______sssvc ? |c S|d @@v..", + "____________________________________________sss| ?? ? |ccOcc| oo d|..", + "___________________________________,,_______sss|--vvv--|-v-v-|--vv---|..", + "___________________________________,,_______sss.........................", + "___________________________________,,_______ss........#.................", + "____________________________________________ss..........................", + "___________________________________,,_______ss......C..................." + ], + "palettes": [ "necropolis_a" ], + "terrain": { "&": "t_gas_pump", "D": "t_floor", "Z": "t_floor", "l": "t_floor", "u": "t_floor", "z": "t_floor" }, + "toilets": { "t": { } }, + "place_items": [ + { "item": "building_rubble", "x": [ 15, 23 ], "y": [ 0, 18 ], "chance": 70 }, + { "item": "building_rubble", "x": [ 24, 47 ], "y": [ 0, 23 ], "chance": 70 }, + { "item": "building_rubble", "x": [ 48, 63 ], "y": [ 0, 18 ], "chance": 70 }, + { "item": "field", "x": [ 48, 71 ], "y": [ 0, 23 ], "chance": 70 }, + { "item": "homebooks", "x": [ 21, 22 ], "y": [ 39, 39 ], "chance": 70 }, + { "item": "homebooks", "x": [ 7, 7 ], "y": [ 35, 36 ], "chance": 70 }, + { "item": "office", "x": [ 9, 9 ], "y": [ 36, 38 ], "chance": 70 }, + { "item": "office", "x": [ 18, 20 ], "y": [ 37, 37 ], "chance": 70 }, + { "item": "vault", "x": [ 2, 5 ], "y": [ 27, 30 ], "chance": 70 }, + { "item": "fridge", "x": [ 5, 5 ], "y": [ 35, 35 ], "chance": 80 }, + { "item": "dining", "x": [ 1, 2 ], "y": [ 36, 37 ], "chance": 70 }, + { "item": "kitchen", "x": [ 5, 5 ], "y": [ 36, 39 ], "chance": 80 }, + { "item": "allclothes", "x": [ 62, 62 ], "y": [ 39, 41 ], "chance": 70 }, + { "item": "homebooks", "x": [ 64, 65 ], "y": [ 42, 42 ], "chance": 70 }, + { "item": "allclothes", "x": [ 68, 68 ], "y": [ 42, 42 ], "chance": 70 }, + { "item": "magazines", "x": [ 50, 51 ], "y": [ 39, 40 ], "chance": 50 }, + { "item": "novels", "x": [ 50, 51 ], "y": [ 34, 34 ], "chance": 50 }, + { "item": "fridge", "x": [ 60, 60 ], "y": [ 39, 39 ], "chance": 70 }, + { "item": "kitchen", "x": [ 56, 60 ], "y": [ 40, 42 ], "chance": 80 }, + { "item": "allclothes", "x": [ 68, 68 ], "y": [ 34, 34 ], "chance": 70 }, + { "item": "softdrugs", "x": [ 65, 66 ], "y": [ 34, 36 ], "chance": 50 }, + { "item": "jackets", "x": [ 59, 59 ], "y": [ 34, 34 ], "chance": 70 }, + { "item": "softdrugs", "x": [ 65, 66 ], "y": [ 30, 32 ], "chance": 50 }, + { "item": "allclothes", "x": [ 68, 68 ], "y": [ 32, 32 ], "chance": 70 }, + { "item": "jackets", "x": [ 59, 59 ], "y": [ 32, 32 ], "chance": 70 }, + { "item": "office", "x": [ 68, 68 ], "y": [ 25, 27 ], "chance": 70 }, + { "item": "homebooks", "x": [ 62, 62 ], "y": [ 27, 28 ], "chance": 70 }, + { "item": "allclothes", "x": [ 63, 63 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "allclothes", "x": [ 66, 66 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "fridge", "x": [ 56, 56 ], "y": [ 26, 26 ], "chance": 70 }, + { "item": "dining", "x": [ 51, 52 ], "y": [ 25, 27 ], "chance": 70 }, + { "item": "kitchen", "x": [ 56, 60 ], "y": [ 24, 26 ], "chance": 80 }, + { "item": "bed", "x": [ 64, 65 ], "y": [ 24, 25 ], "chance": 80 }, + { "item": "bed", "x": [ 67, 68 ], "y": [ 40, 41 ], "chance": 80 } + ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } + ] + }, + "om_terrain": [ + [ "necropolis_a_43", "necropolis_a_44", "necropolis_a_45" ], + [ "necropolis_a_52", "necropolis_a_53", "necropolis_a_54" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "........|t | @@ @@ hwss__________________________ss| |l f|ss", + "..#.....|S | wss__________________________ss|KKKK KKKK|D |ss", + "........|-+| |ss__________________________ss|-----|--|--|-----|ss", + "........|f ;ss__________________________ss|n @@d|BB|BB|d@@ n|ss", + "........| cccccc |ss__________________________sswh @@ | t|t | @@ hwss", + "........|--|--------|ss,,,,,,,____________,,,,,,,ssw | S|S | wss", + "........|BB|d@@d@@ n|ss__________________________ss| |+-|-+| |ss", + "........|t | @@ @@ hwss__________________________ss; f|f ;ss", + "......x.|S | wss__________________________ss| nnnn | nnnn |ss", + "........|-+| |ss__________________________ss|-----|--|--|-----|ss", + "........|f ;ss__________________________ss|d @@d|BB|BB|d@@ n|ss", + "........| cccccc |ss____________}_____________sswd @@ | t|t | @@ hwss", + "........|--|--------|ss,,,,,,,____________,,,,,,,ssw + S|S | wss", + "........|BB|d@@d@@ n|ss__________________________ss| |+-|-+| |ss", + "........|t | @@ @@ hwss__________________________ss|---+-| P|f ;ss", + "........|S | wss__________________________ss|ccf | nnnn |ss", + "........|-+| |ss__________________________sswO |--------|ss", + "..#.....|f ;ss__________________________sswS hnnh | 6 l|ss", + "........| cccccc |ss__________________________ss|c hnnh | c bwss", + "........|--|--------|ss,,,,,,,____________,,,,,,,ss|c | c bwss", + "........|BB|d@@d@@ n|ss__________________________ss|--ccc- -| bwss", + "........|t | @@ @@ hwss__________________________ss| ???? | |ss", + "........|S | wss__________________________ssw | k +ss", + "........|-+| |ss__________________________ssw ; hk +ss", + ".......#|f ;ss__________________________ss| cc | k |ss", + "........| ccnnnn |sss________________________sss|--------|-ww--ww-|ss", + "........|-----------|sssssssssss________ssssssssssssssssssssssssssssssss", + "...........###...###..sssssssss__________sssssssssssssssssssssssssssssss", + "________________________________________________________________________", + "________________________________________________________________________", + "________________u_______________________________________________________", + "________________u_______________________________________________________", + "________________u_______________________________________________________", + "________________________________________________________________________", + "__________________u_____________________________________________________", + "_,,,_,,,_,,,_,,,_,u,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,", + "_,,,_,,,_,,,_,,,_,u,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,", + "________________________________________________________________________", + "_________________u______________________________________________________", + "_________________u______________________________________________________", + "_________________u______________________________________________________", + "________________________________________________________________________", + "________________________________________________________________________", + "________________________________________________________________________", + ".............ssss_____________________________ss____,,____ssssssssssssss", + ".......X........ss___________________________ssss___,,___sssssssssssssss", + "..............#..s___________________________s##s__,,,,__s|HHHH[[HHHH|ss", + ".............###.s______,______,______,______s##s___,,___s|hnnh hnnh|ss" + ], + "palettes": [ "necropolis_a" ], + "terrain": { "&": "t_gas_pump", "D": "t_floor", "Z": "t_floor", "l": "t_floor", "u": "t_floor", "z": "t_floor" }, "toilets": { "t": { } }, "place_items": [ { "item": "traveler", "x": [ 13, 18 ], "y": [ 4, 4 ], "chance": 70 }, @@ -8983,3863 +1012,383 @@ { "item": "bed", "x": [ 13, 14 ], "y": [ 13, 14 ], "chance": 80 }, { "item": "bed", "x": [ 16, 17 ], "y": [ 13, 14 ], "chance": 80 }, { "item": "bed", "x": [ 13, 14 ], "y": [ 20, 21 ], "chance": 80 }, - { "item": "bed", "x": [ 16, 17 ], "y": [ 20, 21 ], "chance": 80 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_56" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - ",,,,,,____________,,,,,,", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "___________}____________", - ",,,,,,____________,,,,,,", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - ",,,,,,____________,,,,,,", - "________________________", - "________________________", - "________________________", - "________________________" + { "item": "bed", "x": [ 16, 17 ], "y": [ 20, 21 ], "chance": 80 }, + { "item": "traveler", "x": [ 64, 64 ], "y": [ 3, 3 ], "chance": 70 }, + { "item": "traveler", "x": [ 64, 67 ], "y": [ 8, 8 ], "chance": 70 }, + { "item": "traveler", "x": [ 64, 64 ], "y": [ 10, 10 ], "chance": 70 }, + { "item": "traveler", "x": [ 64, 67 ], "y": [ 15, 15 ], "chance": 70 }, + { "item": "allclothes", "x": [ 52, 55 ], "y": [ 1, 1 ], "chance": 70 }, + { "item": "allclothes", "x": [ 59, 62 ], "y": [ 1, 1 ], "chance": 70 }, + { "item": "office", "x": [ 63, 63 ], "y": [ 22, 23 ], "chance": 70 }, + { "item": "allclothes", "x": [ 56, 56 ], "y": [ 10, 10 ], "chance": 70 }, + { "item": "allclothes", "x": [ 52, 52 ], "y": [ 10, 11 ], "chance": 70 }, + { "item": "dining", "x": [ 56, 57 ], "y": [ 17, 18 ], "chance": 70 }, + { "item": "fridge", "x": [ 54, 54 ], "y": [ 15, 15 ], "chance": 70 }, + { "item": "kitchen", "x": [ 52, 53 ], "y": [ 15, 19 ], "chance": 80 }, + { "item": "bed", "x": [ 54, 55 ], "y": [ 3, 4 ], "chance": 80 }, + { "item": "bed", "x": [ 65, 66 ], "y": [ 3, 4 ], "chance": 80 }, + { "item": "bed", "x": [ 54, 55 ], "y": [ 10, 11 ], "chance": 80 }, + { "item": "bed", "x": [ 65, 66 ], "y": [ 10, 11 ], "chance": 80 }, + { "item": "dining", "x": [ 60, 61 ], "y": [ 47, 47 ], "chance": 70 }, + { "item": "dining", "x": [ 66, 67 ], "y": [ 47, 47 ], "chance": 70 } + ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ], "place_vehicles": [ - { "vehicle": "car_sports", "x": 22, "y": 9, "chance": 75, "rotation": 180 }, - { "vehicle": "flatbed_truck", "x": 2, "y": 21, "chance": 75, "rotation": 0 }, - { "vehicle": "car", "x": 12, "y": 10, "chance": 75, "rotation": 45 }, - { "vehicle": "ambulance", "x": 13, "y": 12, "chance": 90, "rotation": 270 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_57" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "_ss| |l f|ss", - "_ss|KKKK KKKK|D |ss", - "_ss|-----|--|--|-----|ss", - "_ss|n @@d|BB|BB|d@@ n|ss", - "_sswh @@ | t|t | @@ hwss", - ",ssw | S|S | wss", - "_ss| |+-|-+| |ss", - "_ss; f|f ;ss", - "_ss| nnnn | nnnn |ss", - "_ss|-----|--|--|-----|ss", - "_ss|d @@d|BB|BB|d@@ n|ss", - "_sswd @@ | t|t | @@ hwss", - ",ssw + S|S | wss", - "_ss| |+-|-+| |ss", - "_ss|---+-| P|f ;ss", - "_ss|ccf | nnnn |ss", - "_sswO |--------|ss", - "_sswS hnnh | 6 l|ss", - "_ss|c hnnh | c bwss", - ",ss|c | c bwss", - "_ss|--ccc- -| bwss", - "_ss| ???? | |ss", - "_ssw | k +ss", - "_ssw ; hk +ss" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_vendingmachines": [ { "item_group": "vending_food", "x": 16, "y": 0 }, { "item_group": "vending_drink", "x": 20, "y": 17 } ], - "toilets": { "t": { } }, - "place_items": [ - { "item": "traveler", "x": [ 16, 16 ], "y": [ 3, 3 ], "chance": 70 }, - { "item": "traveler", "x": [ 16, 19 ], "y": [ 8, 8 ], "chance": 70 }, - { "item": "traveler", "x": [ 16, 16 ], "y": [ 10, 10 ], "chance": 70 }, - { "item": "traveler", "x": [ 16, 19 ], "y": [ 15, 15 ], "chance": 70 }, - { "item": "allclothes", "x": [ 4, 7 ], "y": [ 1, 1 ], "chance": 70 }, - { "item": "allclothes", "x": [ 11, 14 ], "y": [ 1, 1 ], "chance": 70 }, - { "item": "office", "x": [ 15, 15 ], "y": [ 22, 23 ], "chance": 70 }, - { "item": "allclothes", "x": [ 8, 8 ], "y": [ 10, 10 ], "chance": 70 }, - { "item": "allclothes", "x": [ 4, 4 ], "y": [ 10, 11 ], "chance": 70 }, - { "item": "dining", "x": [ 8, 9 ], "y": [ 17, 18 ], "chance": 70 }, - { "item": "fridge", "x": [ 6, 6 ], "y": [ 15, 15 ], "chance": 70 }, - { "item": "kitchen", "x": [ 4, 5 ], "y": [ 15, 19 ], "chance": 80 }, - { "item": "bed", "x": [ 6, 7 ], "y": [ 3, 4 ], "chance": 80 }, - { "item": "bed", "x": [ 17, 18 ], "y": [ 3, 4 ], "chance": 80 }, - { "item": "bed", "x": [ 6, 7 ], "y": [ 10, 11 ], "chance": 80 }, - { "item": "bed", "x": [ 17, 18 ], "y": [ 10, 11 ], "chance": 80 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_58" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "s_______________________", - "s_______________________", - "s_______________________", - "s_______________________", - "s_______________________", - "s,,,,,,,________________", - "s_______________________", - "s_______________________", - "s_______________________", - "s_______________________", - "s_______________________", - "s____________}__________", - "s,,,,,,,________________", - "s_______________________", - "s_______________________", - "s_______________________", - "s_______________________", - "s_______________________", - "s_______________________", - "s,,,,,,,________________", - "s_______________________", - "s_______________________", - "s_______________________", - "s_______________________" + { "vehicle": "car_sports", "x": 46, "y": 9, "chance": 75, "rotation": 180 }, + { "vehicle": "flatbed_truck", "x": 26, "y": 21, "chance": 75, "rotation": 0 }, + { "vehicle": "car", "x": 36, "y": 10, "chance": 75, "rotation": 45 }, + { "vehicle": "ambulance", "x": 37, "y": 12, "chance": 90, "rotation": 270 }, + { "vehicle": "truck_trailer", "x": 0, "y": 40, "chance": 100, "rotation": 0 }, + { "vehicle": "semi_truck", "x": 12, "y": 38, "chance": 100, "rotation": 0 }, + { "vehicle": "policecar", "x": 23, "y": 35, "chance": 90, "rotation": 90 } + ], + "place_vendingmachines": [ { "item_group": "vending_food", "x": 64, "y": 0 }, { "item_group": "vending_drink", "x": 68, "y": 17 } ] + }, + "om_terrain": [ + [ "necropolis_a_55", "necropolis_a_56", "necropolis_a_57" ], + [ "necropolis_a_64", "necropolis_a_65", "necropolis_a_66" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "s_________________________ss_______,,______________,__,_________________", + "s_________________________ss_______,,________sssssssssssssssssssssssssss", + "s_________________________ss________________ssssssssssssssssssssssssssss", + "s_________________________ss_______,,_______ss______,______s.s______,___", + "s_________________________ss_______,,_______ss______,______s.s______,___", + "s,,,,,,,__________________s________,,_______ss______,______s.s______,___", + "s___________________________________________ss______,______s.s______,___", + "s__________________________________,,_______ss______,______s.s______,___", + "s__________________________________,,_______ss______,______sss______,___", + "s__________________________________,,_______ss______,_______s_______,___", + "s____________________________________________s__________________________", + "s____________}_____________________,,___________________________________", + "s,,,,,,,__________________ss_______,,___________________________________", + "s_________________________ss_______,,___________________________________", + "s_________________________ss____________________________________________", + "s__________________________________,,___________________________________", + "s__________________________________,,___________________________________", + "s__________________________________,,___________________________________", + "s____________________________________________s__________________________", + "s,,,,,,,___________________________,,_______ss______,_______s_______,___", + "s__________________________________,,_______ss______,______sss______,___", + "s_________________________s________,,_______ss______,______s.s______,___", + "s_________________________ss________________ss______,______s.s______,___", + "s_________________________ss_______,,_______ss______,______s.s______,___", + "s_________________________ss_______,,_______ss______,______s.s______,___", + "ss_______________________sss_______,,_______sss_____,______s.s______,___", + "sssssssss______sssssssssssss________________ssssssssssssssssssssssssssss", + "ssssssss________sssssssssss________,,________sssssssssssssssssssssssssss", + "___________________________________,,___________________________________", + "___________________________________,,________,,_________________________", + "_____________________________________________,,_________________________", + "___________________________________,,________,,_________________________", + "___________________________________,,________,,_________________________", + "___________________________________,,________,,_________________________", + "________________________________________________________________________", + "_,,,_,,,_,,,_,,,_,,,_,,,___________,,__________,,,_,,,_,,,_,,,_,,,_,,,_,", + "_,,,_,,,_,,,_,,,_,,,_,,,___________,,__________,,,_,,,_,,,_,,,_,,,_,,,_,", + "___________________________________,,___________________________________", + "________________________,,______________________________________________", + "________________________,,_________,,___________________________________", + "________________________,,_________,,___________________________________", + "________________________,,_________,,___________________________________", + "________________________,,______________________________________________", + "___________________________________,,___________________________________", + "ssssssss____,,____sssssssss________,,________ssssssssss____uuu___sssssss", + "sssssssss__,,,,__sssssssssss_______,,_______ssssssssssss________ssssssss", + "s___________,,___________sss________________sss_________________________", + "____________,,____________ss_______,,_______ss__________________________" + ], + "palettes": [ "necropolis_a" ], + "terrain": { "&": "t_gas_pump", "D": "t_floor", "Z": "t_floor", "l": "t_floor", "z": "t_floor" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ], "place_vehicles": [ { "vehicle": "car", "x": 4, "y": 2, "chance": 90, "rotation": 0 }, { "vehicle": "hippie_van", "x": 4, "y": 8, "chance": 50, "rotation": 0 }, { "vehicle": "electric_car", "x": 5, "y": 15, "chance": 50, "rotation": 0 }, { "vehicle": "car_mini", "x": 4, "y": 22, "chance": 50, "rotation": 0 }, - { "vehicle": "ambulance", "x": 12, "y": 12, "chance": 90, "rotation": 270 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_59" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "__ss_______,,___________", - "__ss_______,,________sss", - "__ss________________ssss", - "__ss_______,,_______ss__", - "__ss_______,,_______ss__", - "__s________,,_______ss__", - "____________________ss__", - "___________,,_______ss__", - "___________,,_______ss__", - "___________,,_______ss__", - "_____________________s__", - "___________,,___________", - "__ss_______,,___________", - "__ss_______,,___________", - "__ss____________________", - "___________,,___________", - "___________,,___________", - "___________,,___________", - "_____________________s__", - "___________,,_______ss__", - "___________,,_______ss__", - "__s________,,_______ss__", - "__ss________________ss__", - "__ss_______,,_______ss__" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_60" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "___,__,_________________", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "____,______s.s______,___", - "____,______s.s______,___", - "____,______s.s______,___", - "____,______s.s______,___", - "____,______s.s______,___", - "____,______sss______,___", - "____,_______s_______,___", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "____,_______s_______,___", - "____,______sss______,___", - "____,______s.s______,___", - "____,______s.s______,___", - "____,______s.s______,___" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ], - "place_vehicles": [ - { "vehicle": "car", "x": 1, "y": 7, "chance": 50, "rotation": 90 }, - { "vehicle": "pickup", "x": 8, "y": 7, "chance": 50, "rotation": 90 }, - { "vehicle": "car_mini", "x": 17, "y": 6, "chance": 50, "rotation": 90 }, - { "vehicle": "hippie_van", "x": 0, "y": 21, "chance": 50, "rotation": 270 }, - { "vehicle": "car", "x": 7, "y": 21, "chance": 50, "rotation": 270 }, - { "vehicle": "pickup", "x": 16, "y": 21, "chance": 50, "rotation": 270 }, - { "vehicle": "car", "x": 23, "y": 21, "chance": 50, "rotation": 270 } + { "vehicle": "ambulance", "x": 12, "y": 12, "chance": 90, "rotation": 270 }, + { "vehicle": "car", "x": 49, "y": 7, "chance": 50, "rotation": 90 }, + { "vehicle": "pickup", "x": 56, "y": 7, "chance": 50, "rotation": 90 }, + { "vehicle": "car_mini", "x": 65, "y": 6, "chance": 50, "rotation": 90 }, + { "vehicle": "hippie_van", "x": 48, "y": 21, "chance": 50, "rotation": 270 }, + { "vehicle": "car", "x": 55, "y": 21, "chance": 50, "rotation": 270 }, + { "vehicle": "pickup", "x": 64, "y": 21, "chance": 50, "rotation": 270 }, + { "vehicle": "car", "x": 71, "y": 21, "chance": 50, "rotation": 270 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_61" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "________________________", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "___,______s.s______,____", - "___,______s.s______,____", - "___,______s.s______,____", - "___,______s.s______,____", - "___,______s.s______,____", - "___,______sss______,____", - "___,_______s_______,____", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "___,_______s_______,____", - "___,______sss______,____", - "___,______s.s______,____", - "___,______s.s______,____", - "___,______s.s______,____" + }, + "om_terrain": [ + [ "necropolis_a_58", "necropolis_a_59", "necropolis_a_60" ], + [ "necropolis_a_67", "necropolis_a_68", "necropolis_a_69" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "___________________________________,,_______ss..........................", + "sssssssssssssssssssssssssss________,,_______ss..............#.........#.", + "ssssssssssssssssssssssssssss________________ss..........................", + "___,______s.s______,______ss_______,,_______ssqQQQQQQQQQQQQQQQQQQQQQQQq.", + "___,______s.s______,______ss_______,,_______ssq.......................q.", + "___,______s.s______,______ss_______,,_______ssq....|------|--|------|.q.", + "___,______s.s______,______ss________________ssq.T..|ooo@@ + r|cfcSSc|.q.", + "___,______s.s______,______ss_______,,_______ssq....v @@ |--| c|.q.", + "___,______sss______,______ss_______,,_______ssq....vn |BB|hh O|.q.", + "___,_______s_______,______ss_______,,_______ssq....vnh + t|nn c|.q.", + "__________________________s_________________ssq....|n | S|nn |ss.", + "___________________________________,,_______ssq....|-w-|-+|+-|hh ;ss.", + "___________________________________,,_______ssq......ss|P |ss.", + "___________________________________,,_______sssssssssss; v.q.", + "____________________________________________sssssssssss; v.q.", + "___________________________________,,_______ssq......ss| oo |.q.", + "___________________________________,,_______ssq....|-w-|-+|--| ???? |.q.", + "___________________________________,,_______ssq..T.| kkk |St| v.q.", + "__________________________s_________________ssq....v h + | nn v.q.", + "___,_______s_______,______ss_______,,_______ssq....v |BB| nn v.q.", + "___,______sss______,______ss_______,,_______ssq....v @@ |--| |.q.", + "___,______s.s______,______ss_______,,_______ssq....|d@@ + r| cccc |.q.", + "___,______s.s______,______ss________________ssq....|---vv-|--|------|.q.", + "___,______s.s______,______ss_______,,_______ssq.T.....................q.", + "___,______s.s______,______ss_______,,_______ssq.......................q.", + "___,______s.s______,_____sss_______,,_______ssqQQQQQQQQQQQQQQQQQQQQQQQq.", + "ssssssssssssssssssssssssssss________________ss..........................", + "sssssssssssssssssssssssssss________,,_______ss..........................", + "___________________________________,,_______ss.....#....................", + "___________________________________,,_______ss.................#........", + "____________________________________________ss..........................", + "___________________________________,,_______ss..........................", + "___________________________________,,_______ss.........................X", + "___________________________________,,_______ss.x........................", + "__________________________________,,________ss..........................", + ",,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,,_________ss..........................", + ",,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,__________ss.................C........", + "____________________________________________ss......#...................", + "____________________________________________ss..........................", + "____________________________________________ss..........................", + "____________________________________________ss.....................#....", + "____________________________________________ss..........................", + "____________________________________________ss..........................", + "____________________________________________ss..........................", + "ssssss___uuu___uuu___uuu______ssssssssssssssss..........................", + "sssssss______________________ssssssssssssssss...........................", + "_____________________________ss........................#................", + "_____________________________s.......#.................................." + ], + "palettes": [ "necropolis_a" ], + "terrain": { "&": "t_gas_pump", "D": "t_floor", "Z": "t_floor", "l": "t_floor", "u": "t_floor", "z": "t_floor" }, + "toilets": { "t": { } }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ], "place_vehicles": [ { "vehicle": "car", "x": 0, "y": 7, "chance": 25, "rotation": 90 }, { "vehicle": "car_sports", "x": 16, "y": 7, "chance": 25, "rotation": 90 }, { "vehicle": "pickup", "x": 15, "y": 21, "chance": 25, "rotation": 270 }, { "vehicle": "car", "x": 23, "y": 21, "chance": 25, "rotation": 270 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_62" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "___________,,_______ss..", - "sss________,,_______ss..", - "ssss________________ss..", - "__ss_______,,_______ssqQ", - "__ss_______,,_______ssq.", - "__ss_______,,_______ssq.", - "__ss________________ssq.", - "__ss_______,,_______ssq.", - "__ss_______,,_______ssq.", - "__ss_______,,_______ssq.", - "__s_________________ssq.", - "___________,,_______ssq.", - "___________,,_______ssq.", - "___________,,_______ssss", - "____________________ssss", - "___________,,_______ssq.", - "___________,,_______ssq.", - "___________,,_______ssq.", - "__s_________________ssq.", - "__ss_______,,_______ssq.", - "__ss_______,,_______ssq.", - "__ss_______,,_______ssq.", - "__ss________________ssq.", - "__ss_______,,_______ssq." - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_63" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "............#.........#.", - "........................", - "QQQQQQQQQQQQQQQQQQQQQQq.", - "......................q.", - "...|------|--|------|.q.", - "T..|ooo@@ + r|cfcSSc|.q.", - "...v @@ |--| c|.q.", - "...vn |BB|hh O|.q.", - "...vnh + t|nn c|.q.", - "...|n | S|nn |ss.", - "...|-w-|-+|+-|hh ;ss.", - ".....ss|P |ss.", - "sssssss; v.q.", - "sssssss; v.q.", - ".....ss| oo |.q.", - "...|-w-|-+|--| ???? |.q.", - ".T.| kkk |St| v.q.", - "...v h + | nn v.q.", - "...v |BB| nn v.q.", - "...v @@ |--| |.q.", - "...|d@@ + r| cccc |.q.", - "...|---vv-|--|------|.q.", - "T.....................q." ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "toilets": { "t": { } }, "place_items": [ - { "item": "magazines", "x": [ 16, 17 ], "y": [ 18, 19 ], "chance": 75 }, - { "item": "allclothes", "x": [ 4, 4 ], "y": [ 21, 21 ], "chance": 75 }, - { "item": "office", "x": [ 5, 7 ], "y": [ 17, 17 ], "chance": 70 }, - { "item": "allclothes", "x": [ 12, 12 ], "y": [ 21, 21 ], "chance": 75 }, - { "item": "softdrugs", "x": [ 11, 12 ], "y": [ 17, 19 ], "chance": 50 }, - { "item": "homebooks", "x": [ 11, 12 ], "y": [ 15, 15 ], "chance": 70 }, - { "item": "softdrugs", "x": [ 11, 12 ], "y": [ 8, 10 ], "chance": 50 }, - { "item": "office", "x": [ 4, 4 ], "y": [ 8, 10 ], "chance": 70 }, - { "item": "homebooks", "x": [ 4, 6 ], "y": [ 6, 6 ], "chance": 70 }, - { "item": "allclothes", "x": [ 12, 12 ], "y": [ 6, 6 ], "chance": 70 }, - { "item": "dining", "x": [ 14, 15 ], "y": [ 9, 10 ], "chance": 70 }, - { "item": "fridge", "x": [ 15, 15 ], "y": [ 6, 6 ], "chance": 70 }, - { "item": "kitchen", "x": [ 14, 19 ], "y": [ 6, 9 ], "chance": 80 }, - { "item": "bed", "x": [ 7, 8 ], "y": [ 6, 7 ], "chance": 80 }, - { "item": "bed", "x": [ 5, 6 ], "y": [ 20, 21 ], "chance": 80 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_64" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".......#|f ;ss_", - "........| ccnnnn |sss", - "........|-----------|sss", - "...........###...###..ss", - "________________________", - "________________________", - "________________u_______", - "________________u_______", - "________________u_______", - "________________________", - "__________________u_____", - "_,,,_,,,_,,,_,,,_,u,_,,,", - "_,,,_,,,_,,,_,,,_,u,_,,,", - "________________________", - "_________________u______", - "_________________u______", - "_________________u______", - "________________________", - "________________________", - "________________________", - ".............ssss_______", - ".......X........ss______", - "..............#..s______", - ".............###.s______" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_pavement", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "u": "f_barricade_road", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ], - "place_vehicles": [ - { "vehicle": "truck_trailer", "x": 0, "y": 16, "chance": 100, "rotation": 0 }, - { "vehicle": "semi_truck", "x": 12, "y": 14, "chance": 100, "rotation": 0 }, - { "vehicle": "policecar", "x": 23, "y": 11, "chance": 90, "rotation": 90 } + { "item": "magazines", "x": [ 64, 65 ], "y": [ 18, 19 ], "chance": 75 }, + { "item": "allclothes", "x": [ 52, 52 ], "y": [ 21, 21 ], "chance": 75 }, + { "item": "office", "x": [ 53, 55 ], "y": [ 17, 17 ], "chance": 70 }, + { "item": "allclothes", "x": [ 60, 60 ], "y": [ 21, 21 ], "chance": 75 }, + { "item": "softdrugs", "x": [ 59, 60 ], "y": [ 17, 19 ], "chance": 50 }, + { "item": "homebooks", "x": [ 59, 60 ], "y": [ 15, 15 ], "chance": 70 }, + { "item": "softdrugs", "x": [ 59, 60 ], "y": [ 8, 10 ], "chance": 50 }, + { "item": "office", "x": [ 52, 52 ], "y": [ 8, 10 ], "chance": 70 }, + { "item": "homebooks", "x": [ 52, 54 ], "y": [ 6, 6 ], "chance": 70 }, + { "item": "allclothes", "x": [ 60, 60 ], "y": [ 6, 6 ], "chance": 70 }, + { "item": "dining", "x": [ 62, 63 ], "y": [ 9, 10 ], "chance": 70 }, + { "item": "fridge", "x": [ 63, 63 ], "y": [ 6, 6 ], "chance": 70 }, + { "item": "kitchen", "x": [ 62, 67 ], "y": [ 6, 9 ], "chance": 80 }, + { "item": "bed", "x": [ 55, 56 ], "y": [ 6, 7 ], "chance": 80 }, + { "item": "bed", "x": [ 53, 54 ], "y": [ 20, 21 ], "chance": 80 }, + { "item": "field", "x": [ 48, 71 ], "y": [ 24, 47 ], "chance": 70 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_65" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "________________________", - "________________________", - "ssssssss________ssssssss", - "sssssss__________sssssss", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "_,,,_,,,_,,,_,,,_,,,_,,,", - "_,,,_,,,_,,,_,,,_,,,_,,,", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "______________________ss", - "_____________________sss", - "_____________________s##", - ",______,______,______s##" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_66" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "_ss| cc | k |ss", - "sss|--------|-ww--ww-|ss", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "_,,,_,,,_,,,_,,,_,,,_,,,", - "_,,,_,,,_,,,_,,,_,,,_,,,", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "____,,____ssssssssssssss", - "s___,,___sssssssssssssss", - "s__,,,,__s|HHHH[[HHHH|ss", - "s___,,___s|hnnh hnnh|ss" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ - { "item": "dining", "x": [ 12, 13 ], "y": [ 23, 23 ], "chance": 70 }, - { "item": "dining", "x": [ 18, 19 ], "y": [ 23, 23 ], "chance": 70 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_67" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "s_______________________", - "ss______________________", - "sssssssss______sssssssss", - "ssssssss________ssssssss", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "_,,,_,,,_,,,_,,,_,,,_,,,", - "_,,,_,,,_,,,_,,,_,,,_,,,", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "ssssssss____,,____ssssss", - "sssssssss__,,,,__sssssss", - "s___________,,__________", - "____________,,__________" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_68" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "__ss_______,,_______ss__", - "_sss_______,,_______sss_", - "ssss________________ssss", - "sss________,,________sss", - "___________,,___________", - "___________,,________,,_", - "_____________________,,_", - "___________,,________,,_", - "___________,,________,,_", - "___________,,________,,_", - "________________________", - "___________,,__________,", - "___________,,__________,", - "___________,,___________", - ",,______________________", - ",,_________,,___________", - ",,_________,,___________", - ",,_________,,___________", - ",,______________________", - "___________,,___________", - "sss________,,________sss", - "ssss_______,,_______ssss", - "_sss________________sss_", - "__ss_______,,_______ss__" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_69" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "____,______s.s______,___", - "____,______s.s______,___", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - ",,_,,,_,,,_,,,_,,,_,,,_,", - ",,_,,,_,,,_,,,_,,,_,,,_,", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "sssssss____uuu___sssssss", - "ssssssss________ssssssss", - "________________________", - "________________________" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_pavement", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "u": "f_barricade_road", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_70" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "___,______s.s______,____", - "___,______s.s______,____", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - ",,_,,,_,,,_,,,_,,,_,,,_,", - ",,_,,,_,,,_,,,_,,,_,,,_,", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "ssssss___uuu___uuu___uuu", - "sssssss_________________", - "________________________", - "________________________" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_pavement", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "u": "f_barricade_road", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_71" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "__ss_______,,_______ssq.", - "_sss_______,,_______ssqQ", - "ssss________________ss..", - "sss________,,_______ss..", - "___________,,_______ss..", - "___________,,_______ss..", - "____________________ss..", - "___________,,_______ss..", - "___________,,_______ss..", - "___________,,_______ss.x", - "__________,,________ss..", - ",,_,,,_,,,,_________ss..", - ",,_,,,_,,,__________ss..", - "____________________ss..", - "____________________ss..", - "____________________ss..", - "____________________ss..", - "____________________ss..", - "____________________ss..", - "____________________ss..", - "______ssssssssssssssss..", - "_____ssssssssssssssss...", - "_____ss.................", - "_____s.......#.........." - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_72" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "......................q.", - "QQQQQQQQQQQQQQQQQQQQQQq.", - "........................", - "........................", - "...#....................", - "...............#........", - "........................", - "........................", - ".......................X", - "........................", - "........................", - "........................", - "...............C........", - "....#...................", - "........................", - "........................", - "...................#....", - "........................", - "........................", - "........................", - "........................", - "........................", - ".......#................", - "........................" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ { "item": "field", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 70 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_73" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "....#.........#..s______", - ".................s______", - ".................s______", - "x........#.......s______", - ".................s______", - "....C............ss_____", - "..................ssssss", - "..................ssssss", - "........................", - ".....................#..", - "....#...............###.", - "................|--i---i", - "................| h ", - "................i pp hnh", - "................| pp h ", - "................| pp ", - "................i pp h", - "................| ", - "...#............|--i---i", - "...........#............", - "...................x....", - "........................", - ".........X..............", - "........................" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, + }, + "om_terrain": [ + [ "necropolis_a_61", "necropolis_a_62", "necropolis_a_63" ], + [ "necropolis_a_70", "necropolis_a_71", "necropolis_a_72" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "....#.........#..s______,______,______,______s..s________sV Vss", + ".................s______,______,______,______s..s________sV Vss", + ".................s______,______,______,______s..s________s|D |ss", + "x........#.......s______,______,______,______s..s________s|cccc6ccc [ss", + ".................s______,______,______,______s..s________s|f + |ss", + "....C............ss_____,______,______,_____ss..s________s|f rrr c|-+|ss", + "..................ssssssssssssssssssssssssssss..s________sw S|S |ss", + "..................sssssssssssssssssssssssssss...s________s|ccOc S|t |ss", + ".........................|i-++-i|...........##..s________s||f |--|ss", + ".....................#...|D |---i----i--|#..s________ss||6 rr +L||ss", + "....#...............###..| h h |...s_________ss|-w---|-|sss", + "................|--i---i-| hnh hnh pppp |--|s__________sssssssssssss", + "................| h h h pppp |St|s_______________________", + "................i pp hnh + |s_______________________", + "................| pp h hhhhhhhhhhhhh|--|--|s_______________________", + "................| pp h hccccccccccccc| +ssss_______________________", + "................i pp hnh hc | r|#..ss______________________", + "................| h + r|....ss_____________________", + "...#............|--i---i-| c rrrrrrrrrS| r|.....ssssssssssssssssssssss", + "...........#.............|---i-----------|--|...........................", + "...................x....................................................", + "....................................#...................................", + ".........X....................................C.........................", + "........................................................#..............." + ], + "palettes": [ "necropolis_a" ], + "terrain": { "&": "t_gas_pump", "D": "t_floor", "Z": "t_floor", "l": "t_floor", "u": "t_floor", "z": "t_floor" }, + "toilets": { "t": { } }, "place_items": [ { "item": "pool_table", "x": [ 18, 19 ], "y": [ 13, 16 ], "chance": 70 }, - { "item": "field", "x": [ 0, 16 ], "y": [ 0, 23 ], "chance": 70 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_74" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ",______,______,______s..", - ",______,______,______s..", - ",______,______,______s..", - ",______,______,______s..", - ",______,______,______s..", - ",______,______,_____ss..", - "ssssssssssssssssssssss..", - "sssssssssssssssssssss...", - ".|i-++-i|...........##..", - ".|D |---i----i--|#..", - ".| h h |...", - "-| hnh hnh pppp |--|", - " h h pppp |St|", - " + |", - " hhhhhhhhhhhhh|--|--|", - "h hccccccccccccc| +sss", - "nh hc | r|#..", - "h + r|...", - "-| c rrrrrrrrrS| r|...", - ".|---i-----------|--|...", - "........................", - "............#...........", - "......................C.", - "........................" + { "item": "field", "x": [ 0, 16 ], "y": [ 0, 23 ], "chance": 70 }, + { "item": "alcohol", "x": [ 43, 43 ], "y": [ 16, 18 ], "chance": 85 }, + { "item": "alcohol", "x": [ 31, 39 ], "y": [ 18, 18 ], "chance": 80 }, + { "item": "alcohol", "x": [ 28, 40 ], "y": [ 15, 15 ], "chance": 50 }, + { "item": "dining", "x": [ 28, 40 ], "y": [ 15, 15 ], "chance": 70 }, + { "item": "dining", "x": [ 24, 24 ], "y": [ 16, 16 ], "chance": 50 }, + { "item": "dining", "x": [ 31, 31 ], "y": [ 11, 11 ], "chance": 50 }, + { "item": "pool_table", "x": [ 39, 42 ], "y": [ 11, 12 ], "chance": 70 }, + { "item": "dining", "x": [ 35, 35 ], "y": [ 11, 11 ], "chance": 50 }, + { "item": "floor_trash", "x": [ 59, 59 ], "y": [ 2, 2 ], "chance": 90 }, + { "item": "fast_food", "x": [ 63, 64 ], "y": [ 9, 9 ], "chance": 70 }, + { "item": "cleaning", "x": [ 67, 67 ], "y": [ 9, 9 ], "chance": 70 }, + { "item": "produce", "x": [ 60, 60 ], "y": [ 8, 8 ], "chance": 70 }, + { "item": "fast_food", "x": [ 59, 62 ], "y": [ 7, 7 ], "chance": 70 }, + { "item": "fast_food", "x": [ 61, 63 ], "y": [ 5, 5 ], "chance": 70 }, + { "item": "fast_food", "x": [ 59, 59 ], "y": [ 4, 5 ], "chance": 70 } + ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 } + ] + }, + "om_terrain": [ [ "necropolis_a_73", "necropolis_a_74", "necropolis_a_75" ] ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "__________________________ss_______,,_______ss__________________________", + "__________________________ss_______,,_______ss__________________________", + "__________________________ss________________ss__________________________", + "__________________________ss_______,,_______ss__________________________", + ",,,,,,,____________,,,,,,,ss_______,,_______ss__________________ssssssss", + "__________________________ss_______,,_______ss________I________sssssssss", + "__________________________ss________________ss________&________sss|-www-", + "__________________________ss_______,,_______ss________I________ssswrrrr ", + "__________________________ss_______,,_______ss________s________sssw ", + "__________________________ss_______,,_______ss________s________ssD|r cc ", + "s_________________________ss____________uuu_ss________s________sss[ ", + "sssssss____________,,,,,,,ss_______,,_______ss________I________sss[ ", + "__________________________ss_______,uuu_____ss________&________ssD|r ", + "__________________________ss_______,,________s________I________sssw ", + "__________________________ss__uuu______________________________sssw rrr ", + "__________________________ss_______,,__________________________sss| rrr ", + "__________________________ss_______,,__________________________sssw ", + "_________________________sss_______,,__________________________sssw ", + "ssssssssssssssssssssssssssss___________________________________sss|[[[[[", + "............................_______,,__________________________sss|rrrrr", + "X..........................._______,,___________________________ss| ", + "...........#..............x._______,,__________________________...|-----", + "............................_________________s..........................", + "............................________________ss.........................." + ], + "palettes": [ "necropolis_a" ], + "terrain": { "Z": "t_floor", "l": "t_floor", "u": "t_floor", "z": "t_floor" }, + "gaspumps": { "&": { } }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 } ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "toilets": { "t": { } }, + "place_vehicles": [ { "vehicle": "policecar", "x": 33, "y": 9, "chance": 90, "rotation": 0 } ], "place_items": [ - { "item": "alcohol", "x": [ 19, 19 ], "y": [ 16, 18 ], "chance": 85 }, - { "item": "alcohol", "x": [ 7, 15 ], "y": [ 18, 18 ], "chance": 80 }, - { "item": "alcohol", "x": [ 4, 16 ], "y": [ 15, 15 ], "chance": 50 }, - { "item": "dining", "x": [ 4, 16 ], "y": [ 15, 15 ], "chance": 70 }, - { "item": "dining", "x": [ 0, 0 ], "y": [ 16, 16 ], "chance": 50 }, - { "item": "dining", "x": [ 7, 7 ], "y": [ 11, 11 ], "chance": 50 }, - { "item": "pool_table", "x": [ 15, 18 ], "y": [ 11, 12 ], "chance": 70 }, - { "item": "dining", "x": [ 11, 11 ], "y": [ 11, 11 ], "chance": 50 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_75" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "s________sV Vss", - "s________sV Vss", - "s________s|D |ss", - "s________s|cccc6ccc [ss", - "s________s|f + |ss", - "s________s|f rrr c|-+|ss", - "s________sw S|S |ss", - "s________s|ccOc S|t |ss", - "s________s||f |--|ss", - "s________ss||6 rr +L||ss", - "s_________ss|-w---|-|sss", - "s__________sssssssssssss", - "s_______________________", - "s_______________________", - "s_______________________", - "s_______________________", - "ss______________________", - ".ss_____________________", - "..ssssssssssssssssssssss", - "........................", - "........................", - "........................", - "........................", - "........#..............." - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, + { "item": "alcohol", "x": [ 67, 71 ], "y": [ 19, 19 ], "chance": 70 }, + { "item": "magazines", "x": [ 67, 67 ], "y": [ 12, 12 ], "chance": 70 }, + { "item": "snacks", "x": [ 68, 70 ], "y": [ 14, 15 ], "chance": 70 }, + { "item": "floor_trash", "x": [ 65, 65 ], "y": [ 12, 12 ], "chance": 90 }, + { "item": "floor_trash", "x": [ 65, 65 ], "y": [ 9, 9 ], "chance": 90 }, + { "item": "magazines", "x": [ 67, 67 ], "y": [ 9, 9 ], "chance": 70 }, + { "item": "snacks", "x": [ 67, 70 ], "y": [ 7, 7 ], "chance": 70 } + ] + }, + "om_terrain": [ [ "necropolis_a_76", "necropolis_a_77", "necropolis_a_78" ] ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "_____________________________s..........................................", + "_____________________________s..........................................", + "_____________________________s..........................................", + "____________________________ss.........C................................", + "ssssss__________s__________sss..........................................", + "sssllss________sss________ssssss........................................", + "www-|--========---========---|sssss..........#..........................", + "rrrr| e e |ssssss.........................#..........", + " [ I r|---|ss....................................", + " [ r| S|ss....................................", + " cc | r|t +ss....................................", + " 6 |r c|---|ss................................x...", + " c |r I c|t +ss....................................", + " c r|r r| S|s.....................................", + " c r|r r|---|s.....................X...............", + " |+-| +sssss.....................................", + " | + I w..........................................", + " | z|-www-+-| w..........................................", + "[| z| kkk P|rrcccrrrrcccrrrr|........#.................................", + "r| z| h |--www----www----|..........................................", + " + | ooo|...............................................#...........", + "----|-------|....................x......................................", + ".......................X..................................C.............", + "..............#........................................................." + ], + "palettes": [ "necropolis_a" ], + "terrain": { "&": "t_gas_pump", "D": "t_floor", "Z": "t_floor", "l": "t_floor", "u": "t_floor", "z": "t_floor" }, "toilets": { "t": { } }, - "place_items": [ - { "item": "floor_trash", "x": [ 11, 11 ], "y": [ 2, 2 ], "chance": 90 }, - { "item": "fast_food", "x": [ 15, 16 ], "y": [ 9, 9 ], "chance": 70 }, - { "item": "cleaning", "x": [ 19, 19 ], "y": [ 9, 9 ], "chance": 70 }, - { "item": "produce", "x": [ 12, 12 ], "y": [ 8, 8 ], "chance": 70 }, - { "item": "fast_food", "x": [ 11, 14 ], "y": [ 7, 7 ], "chance": 70 }, - { "item": "fast_food", "x": [ 13, 15 ], "y": [ 5, 5 ], "chance": 70 }, - { "item": "fast_food", "x": [ 11, 11 ], "y": [ 4, 5 ], "chance": 70 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_76" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "________________________", - "________________________", - "________________________", - "________________________", - ",,,,,,,____________,,,,,", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "s_______________________", - "sssssss____________,,,,,", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "ssssssssssssssssssssssss", - "........................", - "X.......................", - "...........#............", - "........................", - "........................" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_77" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "__ss_______,,_______ss__", - "__ss_______,,_______ss__", - "__ss________________ss__", - "__ss_______,,_______ss__", - ",,ss_______,,_______ss__", - "__ss_______,,_______ss__", - "__ss________________ss__", - "__ss_______,,_______ss__", - "__ss_______,,_______ss__", - "__ss_______,,_______ss__", - "__ss____________uuu_ss__", - ",,ss_______,,_______ss__", - "__ss_______,uuu_____ss__", - "__ss_______,,________s__", - "__ss__uuu_______________", - "__ss_______,,___________", - "__ss_______,,___________", - "_sss_______,,___________", - "ssss____________________", - "...._______,,___________", - "...._______,,___________", - "..x._______,,___________", - "...._________________s..", - "....________________ss.." - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_pavement", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "u": "f_barricade_road", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ], - "place_vehicles": [ { "vehicle": "policecar", "x": 9, "y": 9, "chance": 90, "rotation": 0 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_78" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "________________________", - "________________________", - "________________________", - "________________________", - "________________ssssssss", - "______I________sssssssss", - "______&________sss|-www-", - "______I________ssswrrrr ", - "______s________sssw ", - "______s________ssD|r cc ", - "______s________sss[ ", - "______I________sss[ ", - "______&________ssD|r ", - "______I________sssw ", - "_______________sssw rrr ", - "_______________sss| rrr ", - "_______________sssw ", - "_______________sssw ", - "_______________sss|[[[[[", - "_______________sss|rrrrr", - "________________ss| ", - "_______________...|-----", - "........................", - "........................" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_sidewalk", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_sidewalk", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "gaspumps": { "&": { } }, - "place_items": [ - { "item": "alcohol", "x": [ 19, 23 ], "y": [ 19, 19 ], "chance": 70 }, - { "item": "magazines", "x": [ 19, 19 ], "y": [ 12, 12 ], "chance": 70 }, - { "item": "snacks", "x": [ 20, 22 ], "y": [ 14, 15 ], "chance": 70 }, - { "item": "floor_trash", "x": [ 17, 17 ], "y": [ 12, 12 ], "chance": 90 }, - { "item": "floor_trash", "x": [ 17, 17 ], "y": [ 9, 9 ], "chance": 90 }, - { "item": "magazines", "x": [ 19, 19 ], "y": [ 9, 9 ], "chance": 70 }, - { "item": "snacks", "x": [ 19, 22 ], "y": [ 7, 7 ], "chance": 70 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_79" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "________________________", - "________________________", - "________________________", - "________________________", - "ssssss__________s_______", - "sssllss________sss______", - "www-|--========---======", - "rrrr| e ", - " [ I ", - " [ ", - " cc | ", - " 6 |r ", - " c |r I ", - " c r|r ", - " c r|r ", - " |+-| ", - " | + I ", - " | z|-www-+-| ", - "[| z| kkk P|rrcccrrrrcc", - "r| z| h |--www----ww", - " + | ooo|...........", - "----|-------|...........", - ".......................X", - "..............#........." - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_sidewalk", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, "place_vendingmachines": [ { "item_group": "vending_food", "x": 3, "y": 5 }, { "item_group": "vending_drink", "x": 4, "y": 5 } ], "place_items": [ { "item": "mechanics", "x": [ 11, 23 ], "y": [ 18, 18 ], "chance": 80 }, @@ -12849,332 +1398,24 @@ { "item": "mechanics", "x": [ 0, 3 ], "y": [ 7, 7 ], "chance": 70 }, { "item": "smoke_shop", "x": [ 3, 3 ], "y": [ 13, 14 ], "chance": 90 }, { "item": "alcohol", "x": [ 0, 0 ], "y": [ 19, 19 ], "chance": 70 }, - { "item": "snacks", "x": [ 3, 3 ], "y": [ 17, 19 ], "chance": 70 } + { "item": "snacks", "x": [ 3, 3 ], "y": [ 17, 19 ], "chance": 70 }, + { "item": "mechanics", "x": [ 28, 28 ], "y": [ 8, 14 ], "chance": 70 }, + { "item": "mechanics", "x": [ 24, 28 ], "y": [ 18, 18 ], "chance": 70 }, + { "item": "field", "x": [ 36, 47 ], "y": [ 0, 23 ], "chance": 70 }, + { "item": "field", "x": [ 48, 71 ], "y": [ 0, 23 ], "chance": 70 } + ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ], "place_vehicles": [ { "vehicle": "car", "x": 10, "y": 10, "chance": 75, "rotation": 270 }, { "vehicle": "pickup", "x": 21, "y": 10, "chance": 75, "rotation": 270 } ] - } - }, - { + }, + "om_terrain": [ [ "necropolis_a_79", "necropolis_a_80", "necropolis_a_81" ] ], "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_80" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "_____s..................", - "_____s..................", - "_____s..................", - "____ss.........C........", - "___sss..................", - "__ssssss................", - "==---|sssss..........#..", - " e |ssssss............", - " r|---|ss............", - " r| S|ss............", - " r|t +ss............", - " c|---|ss............", - " c|t +ss............", - " r| S|s.............", - " r|---|s.............", - " +sssss.............", - " w..................", - " w..................", - "crrrr|........#.........", - "w----|..................", - "........................", - ".........x..............", - "........................", - "........................" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "toilets": { "t": { } }, - "place_items": [ - { "item": "mechanics", "x": [ 4, 4 ], "y": [ 8, 14 ], "chance": 70 }, - { "item": "mechanics", "x": [ 0, 4 ], "y": [ 18, 18 ], "chance": 70 }, - { "item": "field", "x": [ 12, 23 ], "y": [ 0, 23 ], "chance": 70 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_a_81" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - ".............#..........", - "........................", - "........................", - "........................", - "....................x...", - "........................", - "........................", - "........X...............", - "........................", - "........................", - "........................", - "........................", - "........................", - "............#...........", - "........................", - "..........C.............", - "........................" - ], - "terrain": { - "!": "t_bars", - "#": "t_shrub", - "&": "t_gas_pump", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_grass", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_recycler", - "4": "t_water_pump", - "5": "t_slide", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked_interior", - ";": "t_door_locked", - "<": "t_stairs_down", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "C": "t_grass", - "D": "t_floor", - "E": "t_elevator", - "F": "t_floor", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_monkey_bars", - "K": "t_floor", - "L": "t_floor", - "M": "t_dirt", - "N": "t_sandbox", - "O": "t_floor", - "P": "t_floor", - "Q": "t_fence_h", - "R": "t_hole", - "S": "t_floor", - "T": "t_tree", - "V": "t_wall_glass", - "W": "t_floor", - "X": "t_grass", - "Y": "t_floor", - "Z": "t_floor", - "[": "t_door_glass_c", - "]": "t_dirt", - "_": "t_pavement", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "i": "t_window_stained_green", - "j": "t_floor", - "k": "t_floor", - "l": "t_floor", - "m": "t_dirtmound", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_fence_v", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "u": "t_floor", - "v": "t_window_domestic", - "w": "t_window", - "x": "t_grass", - "y": "t_window_boarded", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_mutpoppy", - "D": "f_trashcan", - "F": "f_arcade_machine", - "K": "f_dryer", - "L": "f_locker", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "W": "f_washer", - "X": "f_dahlia", - "Y": "f_dryer", - "Z": "f_crate_o", - "]": "f_ash", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_washer", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "p": "f_pool_table", - "r": "f_rack", - "t": "f_toilet", - "x": "f_bluebell", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ { "item": "field", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 70 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } + "weight": 250 } ] diff --git a/data/json/mapgen/necropolis/necropolisB1.json b/data/json/mapgen/necropolis/necropolisB1.json index 3b4d8257d6134..7bf822e757c1a 100644 --- a/data/json/mapgen/necropolis/necropolisB1.json +++ b/data/json/mapgen/necropolis/necropolisB1.json @@ -50,9259 +50,986 @@ ] }, { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_1" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_2" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "...........3............", - "...........3............", - "...........3............", - "...........3............", - "...........3............", - "...........3............", - "...........3............", - "...........3............", - "...........3............", - "...........3............", - "...........!............", - "...........3............" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_3" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - ".............3...3......", - ".............3...3......", - ".............3...3......", - ".............3...3......", - ".............3...3......", - ".............3...3......", - ".............3...3......", - ".............3...3......", - ".............3...3......", - ".............3...3......", - ".............3...3......", - ".............3...3......", - ".............3...3......", - ".............3...3......", - ".............3...3......", - ".............3...3......", - ".............3...3......", - ".............3...3......", - ".............3...3......", - ".............3...3......", - ".............3...3......" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_4" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - ".......................5", - ".......................5", - ".......................5", - ".......................5", - ".......................5", - ".......................5" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_5" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "......................33", - ".....................333", - "....................3333", - "...................333..", - "...................333..", - "...................33...", - "................. 33...", - "......... ! 333...", - "......... ! 333...", - "......... ...... 333...", - "......... ........33333", - "....... .......3333", - "5555 ..........3", - "55555 ...........", - "5...... ...........", - "5........ .............", - "5........ ..... ..", - "5........ ..... ..", - "5........ ! " - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_6" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..........333...........", - "..........333...........", - "..........333...........", - "..........333...........", - "........ 333...........", - "3333333*XX333...........", - "3333333!XX333...........", - "........ 333...........", - "..........333...........", - "..........333...........", - "..........!!!...........", - "..........xxx...........", - "..........33x...........", - "..........33x...........", - "..........33x...........", - "..........33x...........", - "3.........33x...........", - "33.......222x22222222222", - "33.......233xxxxxxxxxxxx", - "33.......233x33333333333", - "33.......233x...........", - "33.......23ax...........", - "333.... 2Aax .........", - " 33333)XXXxxx !........" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_7" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - ".. ...................", - ".. # ...................", - ".. x ...................", - "222x22222222222222222222", - "xxxxxxxxxxxxxxxxxxxxxxxx", - "333333333333333333333333", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", "method": "json", - "om_terrain": [ "necropolis_b_8" ], - "weight": 250, "object": { "fill_ter": "t_floor", "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "....... .............", - ".......22 .............", - ".......2 .............", - ".......2 .............", - ".......22 .............", - ".......2 .............", - ".......2 .............", - ".......22 LL..........", - ".......2 .........", - ".......2 cc..........", - ".......2 .............", - "22222222xxxa3...........", - "xxxx*xxxx#xa3...........", - "3333!333AAAa3...........", - "......3333333...........", - "......3333333...........", - ".......33333............", - "........!!!............." + "........................................................................", + "........................................................................", + "........................................................................", + ".............................................................3...3......", + ".............................................................3...3......", + ".............................................................3...3......", + ".............................................................3...3......", + ".............................................................3...3......", + ".............................................................3...3......", + ".............................................................3...3......", + ".............................................................3...3......", + ".............................................................3...3......", + "...................................3.........................3...3......", + "...................................3.........................3...3......", + "...................................3.........................3...3......", + "...................................3.........................3...3......", + "...................................3.........................3...3......", + "...................................3.........................3...3......", + "...................................3.........................3...3......", + "...................................3.........................3...3......", + "...................................3.........................3...3......", + "...................................3.........................3...3......", + "...................................!.........................3...3......", + "...................................3.........................3...3......", + "..................................33x........................!...!......", + "....................3333333333333!33x..................... X X ...", + "....................3.............33x..................... 333333333 ", + "....................3.............33x................ 3333333333333", + "....................3.............33x............... 333333333 ", + "..................................33x...55 55555.. .... X X ...", + "..................................33x ..5 555 .. .......!...!......", + "..................................33x ! .......3...3......", + "..................................33x * ......333333333....", + "..................................33x .. 55 ........33333333333...", + "..................................33x... 5555 ........33333333333...", + "..................................33x.....................33333333333...", + "..................................33x......................333333333....", + "..................................33x...................................", + "..................................33x...................................", + "..................................33x................... ..........", + "..................................33x................. 555........", + "..................................33x ............... ...555522222222", + "..................................33x ) 555.........5 5....55.........", + "..................................33x ! 55........5 5...............", + "..................................33x ..... .......5 ................", + "..................................33x........ ......55 ................", + "..................................33x........ ...5 ..... ", + "..................................33x........ X!XX3333333333" + ], + "palettes": [ "necropolis_b1" ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 } + ] + }, + "om_terrain": [ + [ "necropolis_b_1", "necropolis_b_2", "necropolis_b_3" ], + [ "necropolis_b_10", "necropolis_b_11", "necropolis_b_12" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..........................................................333...........", + "..........................................................333...........", + "..........................................................333...........", + "..........................................................333...........", + "........................................................ 333...........", + "..............................................333333333*XX333...........", + ".............................................3333333333!XX333...........", + "............................................3333........ 333...........", + "...........................................333............333...........", + "...........................................333............333...........", + "...........................................33.............!!!...........", + "......................................... 33.............xxx...........", + "................................. ! 333.............33x...........", + "................................. ! 333.............33x...........", + "................................. ...... 333.............33x...........", + "................................. ........33333..........33x...........", + "............................... .......33333.........33x...........", + "........................5555 ..........333.......222x22222222222", + ".......................555555 ...........33.......233xxxxxxxxxxxx", + ".......................55...... ...........33.......233x33333333333", + ".......................55........ .............33.......233x...........", + ".......................55........ ..... ..33.......23ax...........", + ".......................55........ ..... ..333.... 2Aax .........", + ".......................55........ ! 33333)XXXxxx !........", + ".......................55......... ! 3333!XX2Aax !........", + ".......................55............... ......... 23ax .........", + " .....................55............... ...........233x...........", + "3 ...................55................. .............233x...........", + "333 .................5 ................................233x...........", + " 333 ................ ................................233x...........", + ". 33 ... 55 .... ..............................233x...........", + ".... 33 ... .... ..............................233x...........", + "..... 33 ..............................233x...........", + "...... 3 ..............................233x...........", + "...... 3 .. .... {..............................233x .........", + "...... 3 .. ....{ {{..............................233xXX!33333333", + "...... 3 .............. ................................233xXX!33333333", + "...... 3 .............. {................................233x ........!", + "...... 3 ..............{{................................233x........333", + "...... 3 ..............{.................................233x........33 ", + "...... 3 ................................................233x........3 ", + "222222X3 ................................................233x........ ", + "...... 3 ..........................X.....................233x.......... ", + "...... 3 .........................XXX....................233x.......... ", + "...... 3 ..........................X.....................233x........33 ", + "...... 3 ................................................233x.......33 ", + " 3 {{ { {{{{{............................. 233x .....3 ..", + "333333X3X3333333333333{.{.....................{{333{{3!XX233x ! .." + ], + "palettes": [ "necropolis_b1" ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 } + ] + }, + "om_terrain": [ + [ "necropolis_b_4", "necropolis_b_5", "necropolis_b_6" ], + [ "necropolis_b_13", "necropolis_b_14", "necropolis_b_15" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "............................... .....................................", + "...............................22 .....................................", + "...............................2 .....................................", + "...............................2 .....................................", + "...............................22 .....................................", + "...............................2 .....................................", + "...............................2 .....................................", + "...............................22 LL..................................", + ".. ..........................2 .................................", + ".. # ..........................2 cc..................................", + ".. x ..........................2 .....................................", + "222x2222222222222222222222222222xxxa3...................................", + "xxxxxxxxxxxxxxxxxxxxxxxxxxxx*xxxx#xa3...................................", + "3333333333333333333333333333!333AAAa3...................................", + "..............................3333333...................................", + "..............................3333333...................................", + "...............................33333....................................", + "................................!!!.....................................", + "................................333.....................................", + "................................333.....................................", + "................................333.....................................", + "................................333.....................................", + "................................333.....................................", + "................................333.....................................", + "................................3333....................................", + "...............................333333...................................", + "..33333333333333333333333333333333..33..................................", + ".33333333333333333333333333333333....33.................................", + "333........333333333333333333333......33................................", + "33.....................................33...............................", + "3............................ @......33...............................", + "!................2........... @......33...............................", + " ..............2........... ......!!...............................", + " ......2.......2...........!*!!......33...............................", + " 3......2222222222222 rr xxxa3333..............................", + " 3..................2 x#xa33333.............................", + " ....................2 xxxa33333.............................", + " ....................2xAAAAAAAAAAAAAAa3333..............................", + " ....................2x333333333333333333...............................", + ".....................2x33333............................................", + ".....................2x333..............................................", + ".....................2x33..............................................." + ], + "palettes": [ "necropolis_b1" ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 } ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, "place_items": [ - { "item": "sewage_plant", "x": [ 12, 13 ], "y": [ 13, 13 ], "chance": 60 }, - { "item": "sewage_plant", "x": [ 12, 13 ], "y": [ 13, 13 ], "chance": 60 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_9" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_10" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "....................3333", - "....................3...", - "....................3...", - "....................3...", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_11" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..........33x...........", - "333333333!33x...........", - "..........33x...........", - "..........33x...........", - "..........33x...........", - "..........33x...55 555", - "..........33x ..5 55", - "..........33x ! ", - "..........33x * ", - "..........33x .. 55 ", - "..........33x... 5555 ", - "..........33x...........", - "..........33x...........", - "..........33x...........", - "..........33x...........", - "..........33x...........", - "..........33x...........", - "..........33x .........", - "..........33x ) 555...", - "..........33x ! 55..", - "..........33x ..... .", - "..........33x........ .", - "..........33x........ ", - "..........33x........ " - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_12" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".............!...!......", - ".......... X X ...", - ".......... 333333333 ", - "..... 3333333333333", - ".... 333333333 ", - "55.. .... X X ...", - "5 .. .......!...!......", - " .......3...3......", - " ......333333333....", - " ........33333333333...", - " ........33333333333...", - "..........33333333333...", - "...........333333333....", - "........................", - "........................", - "........ ..........", - "...... 555........", - "...... ...555522222222", - "......5 5....55.........", - "......5 5...............", - "......5 ................", - ".....55 ................", - "...5 ..... ", - " X!XX3333333333" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_13" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".......................5", - ".......................5", - " .....................5", - "3 ...................5", - "333 .................5", - " 333 ................ ", - ". 33 ... 55 .... ", - ".... 33 ... .... ", - "..... 33 ", - "...... 3 ", - "...... 3 .. .... ", - "...... 3 .. ....{ ", - "...... 3 .............. ", - "...... 3 .............. ", - "...... 3 ..............{", - "...... 3 ..............{", - "...... 3 ...............", - "222222X3 ...............", - "...... 3 ...............", - "...... 3 ...............", - "...... 3 ...............", - "...... 3 ...............", - " 3 {{ { {{{", - "333333X3X3333333333333{." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_14" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "5......... ! ", - "5............... ..", - "5............... ..", - "5................. ....", - " .......................", - " .......................", - " .....................", - " .....................", - " .....................", - " .....................", - " {.....................", - " {{.....................", - " .......................", - "{.......................", - "{.......................", - "........................", - "........................", - "........................", - "...........X............", - "..........XXX...........", - "...........X............", - "........................", - "{{......................", - "{.....................{{" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_15" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " 3333!XX2Aax !........", - "....... 23ax .........", - ".........233x...........", - ".........233x...........", - ".........233x...........", - ".........233x...........", - ".........233x...........", - ".........233x...........", - ".........233x...........", - ".........233x...........", - ".........233x .........", - ".........233xXX!33333333", - ".........233xXX!33333333", - ".........233x ........!", - ".........233x........333", - ".........233x........33 ", - ".........233x........3 ", - ".........233x........ ", - ".........233x.......... ", - ".........233x.......... ", - ".........233x........33 ", - ".........233x.......33 ", - "....... 233x .....3 ..", - "333{{3!XX233x ! .." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_16" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "..3333333333333333333333", - ".33333333333333333333333", - "333........3333333333333", - "33......................", - "3.......................", - "!................2......", - " ..............2......", - " ......2.......2......", - " 3......2222222222222 ", - " 3..................2 ", - " ....................2 ", - " ....................2xA", - " ....................2x3", - ".....................2x3", - ".....................2x3", - ".....................2x3" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_17" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........333.............", - "........333.............", - "........333.............", - "........333.............", - "........333.............", - "........333.............", - "........3333............", - ".......333333...........", - "3333333333..33..........", - "333333333....33.........", - "33333333......33........", - "...............33.......", - "..... @......33.......", - "..... @......33.......", - "..... ......!!.......", - ".....!*!!......33.......", - " rr xxxa3333......", - " x#xa33333.....", - " xxxa33333.....", - "AAAAAAAAAAAAAa3333......", - "33333333333333333.......", - "3333....................", - "33......................", - "3......................." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ { "item": "cop_evidence", "x": [ 2, 3 ], "y": [ 16, 16 ], "chance": 60 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_18" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_19" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "..............33333.....", - "................3.......", - "................3.......", - "................3.......", - "................3.......", - "................!.......", - "...............333......", - "...............333333333", - "...............3#xxxxxxx", - "...............333......", - "...............333......", - "................!.......", - "................3.......", - "................3.......", - "................3.......", - "..............33333.....", - "....................gGGG", - "....................grrr", - "....................gr;;", - "....................gr;;", - "......... ........gr;;" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, + { "item": "sewage_plant", "x": [ 36, 37 ], "y": [ 13, 13 ], "chance": 60 }, + { "item": "sewage_plant", "x": [ 36, 37 ], "y": [ 13, 13 ], "chance": 60 }, + { "item": "cop_evidence", "x": [ 26, 27 ], "y": [ 40, 40 ], "chance": 60 } + ] + }, + "om_terrain": [ + [ "necropolis_b_7", "necropolis_b_8", "necropolis_b_9" ], + [ "necropolis_b_16", "necropolis_b_17", "necropolis_b_18" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..................................33x......... 55 55 .. ", + "..................................33x.................... ............", + "..................................33x..................... 5...........", + "..............33333...............33x...................... ...........", + "................3.................33x...................... ...........", + "................3.................33x...................... ...........", + "................3.................33x...................... ...........", + "................3.................33x......................*!...........", + "................!.................3ax..................... ..........", + "...............333................3axa.................... ..........", + "...............33333333333333333333axa3333333333333333333333333333333333", + "...............3#xxxxxxxxxxxxxxxxxxxxa3333333333333333333333333333333333", + "...............333..................xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "...............333........................................ XX ..........", + "................!......................................... XX ..........", + "................3..........................................!!...........", + "................3..........gGGGgGGGGgGGGGGGGGGGGg..........33...........", + "................3..........g;>;gEEEEg;;;;;;;;;;;g..........33...........", + "..............33333........g;;;gEEEEg;;;EEEEEE;;g.........333...........", + "....................gGGGgGGgG+GgG==Gg;;;EEEEEE;;g.......3333............", + "....................grrrg;;D;;;;;;;;;;;;EEEEEE;;g......333..............", + "....................gr;;+;;;;;;;;;;;;;;;EEEEEE;;g......33... }........", + "....................gr;;g;;;;cc;;;;;;;;;EEEEEE;;gGGGG..33...44 a3333333", + "......... ........gr;;V;;;;ccb;;;;a;;;EEEEEEb;=;;rg..333..44AAa3333333", + "...... .......gr;;V;;;;cc;;;;ca;;;EEEEEE;;g;;rg...3333333333......", + "..... ......grb;V;;;;;;;;;;ca;;;EEEEEE;;Vc;;g....33333333.......", + "..... EEEEE ......gr;;V;;;;h;;;;hcab;;EEEEEE;5V6hbg........ .........", + ".... EEEEE L.....grrrg;ccc6ccc6cca;;;EEEEEE55Vc;;g........!!.........", + ".... EEEEE L.....gGGGgAAAAAAAAAAAa;;;;;555555Vc;rg........ .........", + "..... EEEEE L.........g;;;;;;;;;;;;;;;55555555gc;rg........ .........", + "..... EEEEE ..........g;;;;b;;;;;;;;;555555))bgGGGg..... ......", + "..... EEEEE b..........g;============;5555555){g......... ......", + "..... EEEEE ..........g;============;;5555){{{g......... 333 ......", + "..... EEEEE .......GGGGGGGGGGGGGGg;;;;55555){{gG........ 33333 333", + "..... EEEEE 6.......GGGGGGGGGGGGGGg;;;;;555))){G2........ 333 33 33", + ".... .......GGGGGGGGGGGGGGg;;;;;;55555{g2........ 333 ......", + "....77799999777........ ;;;;;;;;;;;;;555552........33333 ......", + ".... , ........ ;6;;;;;;b;;;;;;5b52......................", + "..... ,,, .......... b;; 2......................", + "..... , ............ zz 222......................", + "..... , .............. zz 22........................", + "..... , ................ 22.........................", + ".... ................. 2..........................", + ".... ................. 2..........................", + ".... ................ 22.........................", + "..... zz .............. 222222)...................", + "..... zz ............ {){....................", + "..... ..... 8 {{{.....2............33 " + ], + "palettes": [ "necropolis_b1" ], "place_items": [ { "item": "vault_survival", "x": [ 21, 21 ], "y": [ 20, 23 ], "chance": 85 }, - { "item": "vault_survival", "x": [ 22, 23 ], "y": [ 20, 20 ], "chance": 85 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_20" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..........33x......... ", - "..........33x...........", - "..........33x...........", - "..........33x...........", - "..........33x...........", - "..........33x...........", - "..........33x...........", - "..........33x...........", - "..........3ax...........", - "..........3axa..........", - "33333333333axa3333333333", - "xxxxxxxxxxxxxa3333333333", - "............xxxxxxxxxxxx", - "........................", - "........................", - "........................", - "...gGGGgGGGGgGGGGGGGGGGG", - "...g;>;gEEEEg;;;;;;;;;;;", - "...g;;;gEEEEg;;;EEEEEE;;", - "gGGgG+GgG==Gg;;;EEEEEE;;", - "g;;D;;;;;;;;;;;;EEEEEE;;", - "+;;;;;;;;;;;;;;;EEEEEE;;", - "g;;;;cc;;;;;;;;;EEEEEE;;", - "V;;;;ccb;;;;a;;;EEEEEEb;" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "b": "t_utility_light", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_loot": [ - { "group": "survivor_weapons", "x": [ 18, 20 ], "y": [ 20, 23 ], "chance": 30, "ammo": 100, "magazine": 100 }, - { "group": "survivor_weapons", "x": [ 5, 6 ], "y": [ 22, 23 ], "chance": 50, "ammo": 100, "magazine": 100 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ], - "place_vehicles": [ { "vehicle": "humvee", "x": 18, "y": 22, "chance": 100, "rotation": 270 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_21" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "55 55 .. ", - "......... ............", - ".......... 5...........", - "........... ...........", - "........... ...........", - "........... ...........", - "........... ...........", - "...........*!...........", - ".......... ..........", - ".......... ..........", - "333333333333333333333333", - "333333333333333333333333", - "xxxxxxxxxxxxxxxxxxxxxxxx", - ".......... XX ..........", - ".......... XX ..........", - "...........!!...........", - "g..........33...........", - "g..........33...........", - "g.........333...........", - "g.......3333............", - "g......333..............", - "g......33... }........", - "gGGGG..33...44 a3333333", - "=;;rg..333..44AAa3333333" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_22" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " X {{ {{{", - "...... 3 ...............", - "...... 3 ...............", - ".......2................", - ".......2................", - ".......2................", - ".......2................", - ".......2................", - ".......2................", - ".......2...2222222222222", - "333333333322333333333333", - "333333333323333333333333", - "xxxxxxxxxxxxxxxxxxxxxxxx", - "..........233x3.........", - "..........233x..........", - "..........233x..........", - "..........233x..........", - "..........233x..........", - "..........233x..........", - "..........233x..........", - "..........233x..........", - "..........233x..........", - "3.........233x..........", - "333..... 233x.........." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_23" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".......................{", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "222222222222222222222222", - "333333333333333333333333", - "333333333333333333333333", - "xxxxxxxxxxxxxxxxxxxxxxxx", - "............. .......", - "..............*!........", - ".............. ........", - ".............. ........", - ".............. .. 33", - ".............. .. 3", - ".............. ", - "............... ", - ".................. ", - ".................. ", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_24" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "{333{3!XX233x ! ...", - "....... 233x .........", - ".........233x...........", - ".........233x...........", - ".........233x...........", - ".........233x...........", - ".........233x...........", - "........223ax...........", - ".......2233axa..........", - "22222222333axa3.........", - "33333332333axa3333333333", - "33333332333axa3333333333", - "xxxxxxxxxxxxxxxxxxxxxxxx", - ".......222XX222222222222", - "..........*!............", - ".......... ............", - ".......... ............", - "33 33 .. ............", - "333 3 .. ............", - " 33333 ", - " 33333 ", - " 33 .... ..........", - " 3333 .... ..........", - "............ .........5" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_25" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".....................2*!", - ".....................2x3", - ".....................2x3", - ".....................2x3", - ".....................2x3", - ".....................2x3", - ".....................2x3", - ".....................2x3", - ".....................2x3", - "....................22xa", - "333333333333333333332axa", - "333333333333333333332axa", - "xxxxxxxxxxxxxxxxxxxxxxxx", - "222222222222222222222...", - "........................", - "........................", - "........................", - "........................", - "........................", - " ....................", - " ....................", - ".. ....................", - ".. ....................", - " ................ " - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_26" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "!.......................", - "3.......................", - "3.......................", - "3.......................", - "3.......................", - "3.......................", - "3.......................", - "3.......................", - "3.......................", - "33......................", - "33333333333.............", - "333333333333............", - "xxxxxxxxxx333...........", - ".........xx333..........", - "..........xx33..........", - "...........x33..........", - "...........x33..........", - "...........x33..........", - "...........x33..........", - "...........x33..........", - "...........x33..........", - "...........x33..........", - "...........x33..........", - " ! x33.........." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_27" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_28" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "...... .......gr;;", - "..... ......grb;", - "..... EEEEE ......gr;;", - ".... EEEEE L.....grrr", - ".... EEEEE L.....gGGG", - "..... EEEEE L.........", - "..... EEEEE ..........", - "..... EEEEE b..........", - "..... EEEEE ..........", - "..... EEEEE .......GGG", - "..... EEEEE 6.......GGG", - ".... .......GGG", - "....77799999777........ ", - ".... , ........ ", - "..... ,,, ..........", - "..... , ..........", - "..... , ..........", - "..... , ..........", - ".... ..........", - ".... .........", - ".... ........", - "..... zz ......", - "..... zz .....", - "..... ." + { "item": "vault_survival", "x": [ 22, 23 ], "y": [ 20, 20 ], "chance": 85 }, + { "item": "vault_survival", "x": [ 21, 21 ], "y": [ 24, 27 ], "chance": 85 }, + { "item": "vault_survival", "x": [ 22, 23 ], "y": [ 27, 27 ], "chance": 85 }, + { "item": "cannedfood", "x": [ 15, 16 ], "y": [ 45, 46 ], "chance": 90 }, + { "item": "cannedfood", "x": [ 31, 32 ], "y": [ 39, 40 ], "chance": 90 }, + { "item": "consumer_electronics", "x": [ 51, 51 ], "y": [ 28, 29 ], "chance": 70 } + ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 } + ], + "place_vehicles": [ { "vehicle": "humvee", "x": 42, "y": 22, "chance": 100, "rotation": 270 } ] + }, + "om_terrain": [ + [ "necropolis_b_19", "necropolis_b_20", "necropolis_b_21" ], + [ "necropolis_b_28", "necropolis_b_29", "necropolis_b_30" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + " X {{ {{{.......................{{333{3!XX233x ! ...", + "...... 3 .............................................. 233x .........", + "...... 3 ................................................233x...........", + ".......2.................................................233x...........", + ".......2.................................................233x...........", + ".......2.................................................233x...........", + ".......2.................................................233x...........", + ".......2................................................223ax...........", + ".......2...............................................2233axa..........", + ".......2...222222222222222222222222222222222222222222222333axa3.........", + "33333333332233333333333333333333333333333333333333333332333axa3333333333", + "33333333332333333333333333333333333333333333333333333332333axa3333333333", + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "..........233x3...................... ..............222XX222222222222", + "..........233x........................*!..................*!............", + "..........233x........................ .................. ............", + "..........233x........................ .................. ............", + "..........233x........................ .. 3333 33 .. ............", + "..........233x........................ .. 3333 3 .. ............", + "..........233x........................ 33333 ", + "..........233x......................... 33333 ", + "..........233x............................ 33 .... ..........", + "3.........233x............................ 3333 .... ..........", + "333..... 233x.............................................. .........5", + ".333333!XXxxxx.............................................. .........5", + "...3333!XX233x................................ 333 .. ......... ", + "........ 233x .............................. 3 .. ......... ", + "..........233x * ................ ......... ", + "..........233x ! ................ 3 ......... ", + "..........233x ........ ................ .. 333............. ", + "..........233x.......... ................ .. 3333............. ", + "..........233x........ .............. ....... .................. ", + "..........233x........3 .. 333.. ....... .................. ", + " .....233x........3 .. 33 .. ..... ................ ", + "3 .....233x........ XX ..... ................ ", + "...3 .....233x........ XX ...... .................", + "...3 .....233x........ .. 333 ......... .................", + "... .....233x........ 33 ..3 333 ......... .................", + ". ...233x........ ......!!............. ...|---------|...", + ". ...233x.......... ........33............. ...|d@@ oo|...", + ".3 . 233x ........ ........33............. ...| @@ h |...", + ".33 * 233x ! ........33............. ...| Inn |...", + ".3 ! 233x ! ........33............. ...| nn |...", + ". . 233x ...... ..........333............ ...| h |...", + ". ...233x........ ...........3333............ .....|-!*!---|*|...", + "... .....233x........ .............333...........!!....... X ...|<|...", + "... .....233x........ .......... XX 3 ...|-|...", + "33 .....233x......... ........ 3333X3333333333333333333 ........." + ], + "palettes": [ "necropolis_b1" ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 } + ], + "place_items": [ { "item": "homebooks", "x": [ 66, 67 ], "y": [ 39, 39 ], "chance": 90 } ] + }, + "om_terrain": [ + [ "necropolis_b_22", "necropolis_b_23", "necropolis_b_24" ], + [ "necropolis_b_31", "necropolis_b_32", "necropolis_b_33" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + ".....................2*!!...............................................", + ".....................2x33...............................................", + ".....................2x33...............................................", + ".....................2x33...............................................", + ".....................2x33...............................................", + ".....................2x33...............................................", + ".....................2x33...............................................", + ".....................2x33...............................................", + ".....................2x33...............................................", + "....................22xa33..............................................", + "333333333333333333332axa33333333333.....................................", + "333333333333333333332axa333333333333....................................", + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx333...................................", + "222222222222222222222............xx333..................................", + "..................................xx33..................................", + "...................................x33..................................", + "...................................x33..................................", + "...................................x33..................................", + "...................................x33..................................", + " ...............................x33..................................", + " ...............................x33..................................", + ".. ...............................x33..................................", + ".. ...............................x33..................................", + " ................ ! x33..................................", + "5 ............... * x33..................................", + " .............. ...... ....x33..................................", + " 5 .............. ...... ....x33..................................", + "555 ....|---------!*-|.. ..x33..................................", + " 5 5....|r rr rr r|.. ..x33..................................", + " 55....|r rr rr r|.. 33..x33..................................", + " 555....|r rr rr r|..3 3..x33..................................", + " 55....| r|..3 ..x33..................................", + " 555....||< r|.. ..x33..................................", + " 555 .....|-----------|.. 3..x33..................................", + " 5 .................... 33..x33..................................", + ".. ..... 3 .... ....x33..................................", + ".. ..... 33 3 3.... ....x33..................................", + ".. 333 33 {....x3{..................................", + ".. 33 {{....{33..................................", + "......... 3 3 ..........x{3..................................", + "......... 3333 33 ..........x3{..................................", + "................ .................{{3..................................", + "................ .................x33..................................", + "................ {.................x{{..................................", + "................ .................{{{..................................", + "................ {.................{{{..................................", + "................{{.................{....................................", + "................{......................................................." + ], + "palettes": [ "necropolis_b1" ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 } ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "b": "t_utility_light", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, "place_items": [ - { "item": "vault_survival", "x": [ 21, 21 ], "y": [ 0, 3 ], "chance": 85 }, - { "item": "vault_survival", "x": [ 22, 23 ], "y": [ 3, 3 ], "chance": 85 }, - { "item": "cannedfood", "x": [ 15, 16 ], "y": [ 21, 22 ], "chance": 90 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_29" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "V;;;;cc;;;;ca;;;EEEEEE;;", - "V;;;;;;;;;;ca;;;EEEEEE;;", - "V;;;;h;;;;hcab;;EEEEEE;5", - "g;ccc6ccc6cca;;;EEEEEE55", - "gAAAAAAAAAAAa;;;;;555555", - "g;;;;;;;;;;;;;;;55555555", - "g;;;;b;;;;;;;;;555555))b", - "g;============;5555555){", - "g;============;;5555){{{", - "GGGGGGGGGGGg;;;;55555){{", - "GGGGGGGGGGGg;;;;;555))){", - "GGGGGGGGGGGg;;;;;;55555{", - " ;;;;;;;;;;;;;5555", - " ;6;;;;;;b;;;;;;5b", - " b;; ", - ".. zz 2", - ".... zz 22", - "...... 22.", - "....... 2..", - "........ 2..", - "........ 22.", - "........ 22", - "....... ", - ".... 8 {" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "b": "t_utility_light", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ { "item": "cannedfood", "x": [ 7, 8 ], "y": [ 15, 16 ], "chance": 90 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_VAULT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_30" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "g;;rg...3333333333......", - "Vc;;g....33333333.......", - "V6hbg........ .........", - "Vc;;g........!!.........", - "Vc;rg........ .........", - "gc;rg........ .........", - "gGGGg..... ......", - "g......... ......", - "g......... 333 ......", - "gG........ 33333 333", - "G2........ 333 33 33", - "g2........ 333 ......", - "52........33333 ......", - "52......................", - " 2......................", - "22......................", - "........................", - "........................", - "........................", - "........................", - "........................", - "2222)...................", - " {){....................", - "{{.....2............33 " + { "item": "pawn", "x": [ 12, 12 ], "y": [ 28, 30 ], "chance": 70 }, + { "item": "pawn", "x": [ 15, 16 ], "y": [ 28, 30 ], "chance": 70 }, + { "item": "pawn", "x": [ 19, 20 ], "y": [ 28, 30 ], "chance": 70 }, + { "item": "pawn", "x": [ 23, 23 ], "y": [ 28, 32 ], "chance": 70 } + ] + }, + "om_terrain": [ + [ "necropolis_b_25", "necropolis_b_26", "necropolis_b_27" ], + [ "necropolis_b_34", "necropolis_b_35", "necropolis_b_36" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..... 8 {{)......2...........33 ", + "... ,,,,, , 9 ..............2...........3 ...", + ".. , , 9 ...............2......... .", + ".. , , 9 .............))2......... 3.", + ".. XX , , 9 ..............){2......... 3.", + ".. XX , , 9 ................{{2......... .", + ".. X , , 9 .................{ 2......... 3.", + ". X , , 9 ................... 2......... 33.", + ". X , 8 ....................**2...........!!...", + ".. X , 8 ...................... 22......... ..", + ".. X , ........................ 2222222222222222", + ".. X , ,,,,,,,,,,,,,,, .........{{{.......{{){{3xxa3{{3333333333333", + "..,,,X,,, , , , ........3{{{{.....{{{{{{3xxaA{33333333333333", + "... X , , , ........{33xx..........x{{xxxxxxx{{xxxxxxxxxx", + "... X , XX , XX , ........{{3{{.......................... XX .", + ".. Xzz , XXXXXXXXX , .......{3x{............................ XX ..", + ".... Xzz , X , ,.........33x..............................!!...", + ".... X , X , , ........33x..............................33...", + ".....X zz , X , , .......{3x..............................33...", + ".....XXzz , X , ,.........{{x..............................33...", + "......XX , X , ,.........{3x..............................33...", + ".......XXXXXXX , .............33x...................3333333333333...", + "....... X ........................33{..............................33...", + "....... 3 ........................33x..............................33...", + ".......777........................33x..............................33...", + "....... 3 ........................33x..............................333..", + "....... 3 ........................33x..............................33333", + "....... 3 ..................... 3ax ............................33333", + "....... 33 ! Aax ! ................333..", + "....... 3333333333X33333333333!XXxxxXX!3333333333 ..............33...", + "........ ! Aax ! 333 ..............33...", + "........................)!...... 3ax ......... 3 ..33333333333333333", + "........................ ........33x............. 3 ..............33...", + "........................ ........33x............. 3 ..............33...", + ".................33..... ........33x............. 3 ..............33...", + ".........33.....33...... ........33x............. 3 ..............33...", + "..........33...33......3 .......33x............. 3 ..............33...", + "...........33.33.......33 .......33x............. 3 ..............33...", + "............3333.......3 .......33x............. 3 ..33333333333333333", + ".............333....... .......33x............. 3 ..............33...", + "..............333...... .......33x............. 3 .............33...", + "...............333..... .......3ax............. 33 !33...", + "................333..... ........Aax............. 33333333333333!33...", + ".................333.... ...... xxx.............. !33...", + "..................33333aXXa3333!X3Aax..............................33...", + ".................333333aXXa3333!X33ax..............................33...", + "................333..... ...... 33x.................333333333333333333", + "...............33....... ........33x..............................33..." + ], + "palettes": [ "necropolis_b1" ], + "place_items": [ + { "item": "cannedfood", "x": [ 6, 7 ], "y": [ 15, 16 ], "chance": 90 }, + { "item": "cannedfood", "x": [ 7, 8 ], "y": [ 18, 19 ], "chance": 90 } ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "b": "t_utility_light", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ { "item": "consumer_electronics", "x": [ 3, 3 ], "y": [ 4, 5 ], "chance": 70 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_31" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".333333!XXxxxx..........", - "...3333!XX233x..........", - "........ 233x ........", - "..........233x * ", - "..........233x ! ", - "..........233x ........", - "..........233x..........", - "..........233x........ ", - "..........233x........3 ", - " .....233x........3 ", - "3 .....233x........ ", - "...3 .....233x........ ", - "...3 .....233x........ ", - "... .....233x........ ", - ". ...233x........ ", - ". ...233x..........", - ".3 . 233x ........", - ".33 * 233x ! ", - ".3 ! 233x ! ", - ". . 233x ...... ", - ". ...233x........ ", - "... .....233x........ ", - "... .....233x........ ", - "33 .....233x......... " + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 } ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_32" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "...................... ", - "...................... ", - " ................ ", - " ................ ", - " ................ .. ", - " ................ .. ", - " .............. ....", - " .. 333.. ....", - " .. 33 .. ....", - " XX ....", - " XX .....", - " .. 333 ........", - " 33 ..3 333 ........", - " ......!!............", - " ........33............", - " ........33............", - " ........33............", - " ........33............", - "..........333...........", - "...........3333.........", - ".............333........", - " .......... XX ", - " ........ 3333X33333" + "place_vehicles": [ { "vehicle": "humvee", "x": 13, "y": 16, "chance": 100, "rotation": 270 } ] + }, + "om_terrain": [ + [ "necropolis_b_37", "necropolis_b_38", "necropolis_b_39" ], + [ "necropolis_b_46", "necropolis_b_47", "necropolis_b_48" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + " 33 ......233x............ ....... 33 .........", + "..........233x............ ....... 33 ................................", + "..........233x............ ....... 3 .................................", + "..........233x.......... ..... 3 ..................................", + "..........233x.......... ..... 3 ................................ ", + "..........233x.......... ..... 3 ................................ ", + "..........233x.......... ..... 3 ................................ ", + "..........233x.......... ..... 3 ................................ ", + ".........223ax.......... .....!!*................................ ", + "........2233axa...........!!...... X .................................", + "222222222333axa3......... ..... X ................................ ", + "333333333333axa3333333333333333333axxxa333333333333333333333333333333333", + "333333333333axa3333333333333333333ax#xa333333333333333333333333333333333", + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "........... XX ........ ......AAA................................. ", + "............ XX ..........!!.......333..................................", + ".............!!.........3 333.....333..................................", + ".........2222332222.....33 33.....333..................................", + ".............33.........3 3.....333..................................", + ".............33.........3 333.....333............3333..................", + ".............33......... 333 .....333............3.....................", + ".........2222332222................333............3.....................", + ".............33....................333............3.....................", + ".............33....................333............!.....................", + ".............33....................333...........333...................3", + ".............333..................33333.........33333.................33", + "333333333333333333333333333333333333333333333333333333333333333333333333", + "33333333333333333333333333333333333333333333333333333333333333333333333.", + ".............333..................33333.........33333.......... .....", + ".............33....................333...........333............ ......", + ".............33....................333............!............. ......", + "33.......2222332222................333............3............. ", + ".............33....................333............3.............. ", + ".............33....................333............3.....................", + ".............33....................333............3333..................", + ".............33....................333..................................", + ".............33....................333..................................", + ".............33....................33333................................", + "33.......2222332222................33333333333333333333333333333333.....", + ".............33....................333333333333333333333333333333333....", + ".............33 ...................33333.........................333....", + ".............33 * 333 ........333............................33....", + ".............33 ! 3 .......333............................33....", + ".............33 .......... .......3333..........................3333...", + ".............33........... .......3333333333333333333333333333!33333333", + ".............33........... .......3333333333333333333333333333!33333333", + "33......22222332222.......3 .......3333.................................", + ".............33...........3 .......333.................................." + ], + "palettes": [ "necropolis_b1" ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SWIMMING", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SWIMMING", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.075 }, + { "monster": "GROUP_NECROPOLIS_SWIMMING", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.075 } + ] + }, + "om_terrain": [ + [ "necropolis_b_40", "necropolis_b_41", "necropolis_b_42" ], + [ "necropolis_b_49", "necropolis_b_50", "necropolis_b_51" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + " {{ {{{{.........................R...............................", + " { {..........................RRR..............................", + " ......................................R...............................", + " ......................................................................", + " ....................................................................", + " ....................................................................", + " ...............................{{...................................", + " ...............................{{{..................................", + " ...............................x{{..................................", + "!!................................3x3{..................................", + "XX ..............................3{x33..................................", + "333333333333{3333{{33333{{{3333{{33x{{..................................", + "333333333333333{333333333{333{33333x3{..................................", + "xxxxxxxxxxxxxxxxxxx{xxxxxxxx{{xx{xxx{3..................................", + "XX .............. ............3{x33..................................", + "!)................!*..............3x3{..................................", + "33............... ..............{{{..................................", + "33............... ..............x33..................................", + "33............... ..............x{{..................................", + "33............... ..............{{)..................................", + "33............... ..............x{...................................", + "33................ ...............){...................................", + "33................ ....................................................", + "33...... 33 .. ..................................................", + "33......33 .. ..............)...................................", + "3.......3 .............{{{..................................", + "........ .............{{3..................................", + "........ 33.. .............{)3...........|--------|.............", + "........ 3333.. .............{33...........| zzz d|.............", + ".................. ...............x33...........|? Iz d|.............", + ".................. ...............x33...........|? |.............", + " 3333 333 ............x33...........|? AAA|.............", + " 3333 333 ...........x33 ..........| <|.............", + "..................... ...........x33 !.........|--------|.............", + "..................... ...........x33 !.........|zz <|.............", + ".....................!!!...........x33 ..........|zz AAA|.............", + "..................... ...........x33...........| hhh|.............", + "................@@ .......x33...........| Innhz|.............", + "............... @ ......x33...........|fz nnzz|.............", + "................d @d.......x33...........|--------|.............", + ".................... ..........x33..................................", + "..................... ...........x33..................................", + ".....................!)!...........xa3..................................", + "..................... ..........axa3..................................", + "3333333333333333333333333333333333axa3..................................", + "3333333333333333333333333333333333axa3..................................", + ".............33333................axa3..................................", + "..............333..................xa3.................................." + ], + "palettes": [ "necropolis_b1" ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 } + ], + "place_items": [ { "item": "alcohol", "x": [ 50, 50 ], "y": [ 38, 38 ], "chance": 90 } ] + }, + "om_terrain": [ + [ "necropolis_b_43", "necropolis_b_44", "necropolis_b_45" ], + [ "necropolis_b_52", "necropolis_b_53", "necropolis_b_54" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..............33....... .......33x..............................33...", + ".............33........ .......33x..............................33...", + "............33......... .......33x...........................33!33...", + "...........33.......... 3.......33x..........................333!33...", + "..........33........... 3.......33x.........................33...33...", + "................... 3.......33x........................33....33...", + "................... .......33x.......................33.....33...", + "........... 3333.. .. 3.......33x......................33......33...", + "........... 33 3.. .. 33.......33x.....................33........33..", + "...........33 ! .............AaxgGGGg .............33.........33.", + "...........3 ! .............xxxgrrrg . ......33...........33", + "...........3 3.. ...... ..x#x+ + 5 ...33............3", + "........... 333.. ...... . xxxgrrrg 55 33.............", + "................... ! AaxgGGGg 55 33............", + "................... ! 33x.........555.... 33...........", + "....................... ..3 . 33x.................. . 33..........", + "....................... ..333 ..33x...................... 33.........", + "....................... .........33x....................... 33........", + "....................... .........33x........................ 33.......", + "....................... .........33x......................... 33 ", + "..................... .......33x.......................... 3X33333", + "..................... .......33x........................... ", + "..................... 3.......33x...................................", + "..................... 3.......33x...................................", + "..................... 33.......33x...................................", + "....................... 3.........33x...................................", + ".......................33.........33x...................................", + ".......................33.........33x...................................", + ".......................3 .. ...33x...................................", + ".......................3 ...33x...................................", + "....................... ...33x...................................", + "........................... ...33x...................................", + "............................*!....3axa..................................", + "........................... ...Aaxa .................................", + ".33333333333333333333333!xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "333333333333333333333333!x3333333AAAAAA333333333333333333333333333333333", + ".33333333333333333333333!x3333333333333333333333333333333333333333333333", + "................................!............................. 33 ......", + "................................3..............................!!.......", + "................................3..............................33.......", + "................................3..............................33.......", + "................................3..............................33.......", + "................................3..............................33.......", + "................................3..............................33.......", + "................................3..............................33.......", + "................................3..............................33.......", + "................................3..............................33.......", + "................................3..............................33......." + ], + "palettes": [ "necropolis_b1" ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 } ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_33" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "............ .........5", - " 333 .. ......... ", - " 3 .. ......... ", - " ......... ", - " 3 ......... ", - " 333............. ", - " 3333............. ", - "... .................. ", - "... .................. ", - ". ................ ", - ". ................ ", - ". .................", - ". .................", - ". .................", - ". ...|---------|...", - ". ...|d@@ oo|...", - ". ...| @@ h |...", - ". ...| Inn |...", - ". ...| nn |...", - ". ...| h |...", - "... .....|-!*!---|*|...", - "...!!....... X ...|<|...", - " 3 ...|-|...", - "33333333333333 ........." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ { "item": "homebooks", "x": [ 18, 19 ], "y": [ 15, 15 ], "chance": 90 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_34" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "5 ............... ", - " .............. .", - " 5 .............. .", - "555 ....|---------!*-", - " 5 5....|r rr rr r", - " 55....|r rr rr r", - " 555....|r rr rr r", - " 55....| r", - " 555....||< r", - " 555 .....|-----------", - " 5 .................", - ".. ..... 3 ", - ".. ..... 33 3 ", - ".. 333 ", - ".. 33 ", - "......... 3 3 ", - "......... 3333 33 ", - "................ ......", - "................ ......", - "................ {......", - "................ ......", - "................ {......", - "................{{......", - "................{......." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ - { "item": "pawn", "x": [ 12, 12 ], "y": [ 4, 6 ], "chance": 70 }, - { "item": "pawn", "x": [ 15, 16 ], "y": [ 4, 6 ], "chance": 70 }, - { "item": "pawn", "x": [ 19, 20 ], "y": [ 4, 6 ], "chance": 70 }, - { "item": "pawn", "x": [ 23, 23 ], "y": [ 4, 8 ], "chance": 70 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_35" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " * x33..........", - "..... ....x33..........", - "..... ....x33..........", - "|.. ..x33..........", - "|.. ..x33..........", - "|.. 33..x33..........", - "|..3 3..x33..........", - "|..3 ..x33..........", - "|.. ..x33..........", - "|.. 3..x33..........", - "... 33..x33..........", - " .... ....x33..........", - "3.... ....x33..........", - " 33 {....x3{..........", - " {{....{33..........", - " ..........x{3..........", - " ..........x3{..........", - "...........{{3..........", - "...........x33..........", - "...........x{{..........", - "...........{{{..........", - "...........{{{..........", - "...........{............", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_36" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_37" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..... ", - "... ,,,,, ", - ".. , ", - ".. , ", - ".. XX , ", - ".. XX , ", - ".. X , ", - ". X , ", - ". X , ", - ".. X , ", - ".. X , ", - ".. X , ,,,,,,,,,,,,,,", - "..,,,X,,, , , ", - "... X , , ", - "... X , XX , XX ", - ".. Xzz , XXXXXXXXX ", - ".... Xzz , X , ", - ".... X , X , ", - ".....X zz , X , ", - ".....XXzz , X , ", - "......XX , X , ", - ".......XXXXXXX , ...", - "....... X ..............", - "....... 3 .............." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, "place_items": [ - { "item": "cannedfood", "x": [ 6, 7 ], "y": [ 15, 16 ], "chance": 90 }, - { "item": "cannedfood", "x": [ 7, 8 ], "y": [ 18, 19 ], "chance": 90 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_VAULT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ], - "place_vehicles": [ { "vehicle": "humvee", "x": 13, "y": 16, "chance": 100, "rotation": 270 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_38" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " 8 {{", - " , 9 .......", - " , 9 ........", - " , 9 ........", - " , 9 .........", - " , 9 ...........", - " , 9 ............", - " , 9 ..............", - " 8 ...............", - " 8 .................", - " ....................", - ", .........{{{.......{", - ", ........3{{{{.....{{", - ", ........{33xx........", - ", ........{{3{{.........", - ", .......{3x{..........", - ",.........33x...........", - ", ........33x...........", - ", .......{3x...........", - ",.........{{x...........", - ",.........{3x...........", - "..........33x...........", - "..........33{...........", - "..........33x..........." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_39" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ")......2...........33 ", - ".......2...........3 ...", - ".......2......... .", - ".....))2......... 3.", - ".....){2......... 3.", - ".....{{2......... .", - ".....{ 2......... 3.", - "..... 2......... 33.", - ".....**2...........!!...", - "..... 22......... ..", - ".... 2222222222222222", - "{){{3xxa3{{3333333333333", - "{{{{3xxaA{33333333333333", - "..x{{xxxxxxx{{xxxxxxxxxx", - "................. XX .", - ".................. XX ..", - "...................!!...", - "...................33...", - "...................33...", - "...................33...", - "...................33...", - "........3333333333333...", - "...................33...", - "...................33..." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_40" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " 33 ......233x..........", - "..........233x..........", - "..........233x..........", - "..........233x..........", - "..........233x..........", - "..........233x..........", - "..........233x..........", - "..........233x..........", - ".........223ax..........", - "........2233axa.........", - "222222222333axa3........", - "333333333333axa333333333", - "333333333333axa333333333", - "xxxxxxxxxxxxxxxxxxxxxxxx", - "........... XX .......", - "............ XX ........", - ".............!!.........", - ".........2222332222.....", - ".............33.........", - ".............33.........", - ".............33.........", - ".........2222332222.....", - ".............33.........", - ".............33........." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_41" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".. ....... 33 ", - ".. ....... 33 ........", - ".. ....... 3 .........", - " ..... 3 ..........", - " ..... 3 ..........", - " ..... 3 ..........", - " ..... 3 ..........", - " ..... 3 ..........", - " .....!!*..........", - "..!!...... X .........", - ". ..... X .........", - "3333333333axxxa333333333", - "3333333333ax#xa333333333", - "xxxxxxxxxxxxxxxxxxxxxxxx", - ". ......AAA..........", - "..!!.......333..........", - "3 333.....333..........", - "33 33.....333..........", - "3 3.....333..........", - "3 333.....333..........", - " 333 .....333..........", - "...........333..........", - "...........333..........", - "...........333.........." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_42" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " .........", - "........................", - "........................", - "........................", - "...................... ", - "...................... ", - "...................... ", - "...................... ", - "...................... ", - "........................", - "....................... ", - "333333333333333333333333", - "333333333333333333333333", - "xxxxxxxxxxxxxxxxxxxxxxxx", - "....................... ", - "........................", - "........................", - "........................", - "........................", - "..3333..................", - "..3.....................", - "..3.....................", - "..3.....................", - "..!....................." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_43" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " {{ {{{{.........", - " { {...........", - " ......................", - " ......................", - " ....................", - " ....................", - " ....................", - " ....................", - " ....................", - "!!......................", - "XX .....................", - "333333333333{3333{{33333", - "333333333333333{33333333", - "xxxxxxxxxxxxxxxxxxx{xxxx", - "XX .............. ...", - "!)................!*....", - "33............... ...", - "33............... ...", - "33............... ...", - "33............... ...", - "33............... ...", - "33................ ....", - "33................ ....", - "33...... 33 .. .." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_44" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "................R.......", - "...............RRR......", - "................R.......", - "........................", - "........................", - "........................", - "...........{{...........", - "...........{{{..........", - "...........x{{..........", - "..........3x3{..........", - ".........3{x33..........", - "{{{3333{{33x{{..........", - "3{333{33333x3{..........", - "xxxx{{xx{xxx{3..........", - ".........3{x33..........", - "..........3x3{..........", - "...........{{{..........", - "...........x33..........", - "...........x{{..........", - "...........{{)..........", - "...........x{...........", - "...........){...........", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_45" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_46" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".......777..............", - "....... 3 ..............", - "....... 3 ..............", - "....... 3 .............", - "....... 33 ", - "....... 3333333333X3333", - "........ ", - "........................", - "........................", - "........................", - ".................33.....", - ".........33.....33......", - "..........33...33......3", - "...........33.33.......3", - "............3333.......3", - ".............333....... ", - "..............333...... ", - "...............333..... ", - "................333.....", - ".................333....", - "..................33333a", - ".................333333a", - "................333.....", - "...............33......." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_47" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..........33x...........", - "..........33x...........", - "..........33x...........", - "........ 3ax .........", - " ! Aax ! ", - "3333333!XXxxxXX!33333333", - " ! Aax ! ", - ")!...... 3ax .........", - " ........33x...........", - " ........33x...........", - " ........33x...........", - " ........33x...........", - " .......33x...........", - "3 .......33x...........", - " .......33x...........", - " .......33x...........", - " .......33x...........", - " .......3ax...........", - " ........Aax...........", - " ...... xxx...........", - "XXa3333!X3Aax...........", - "XXa3333!X33ax...........", - " ...... 33x...........", - " ........33x..........." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_48" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "...................33...", - "...................333..", - "...................33333", - "...................33333", - " ................333..", - "33 ..............33...", - " 333 ..............33...", - " 3 ..33333333333333333", - ".. 3 ..............33...", - ".. 3 ..............33...", - ".. 3 ..............33...", - ".. 3 ..............33...", - ".. 3 ..............33...", - ".. 3 ..............33...", - ".. 3 ..33333333333333333", - ".. 3 ..............33...", - ".. 3 .............33...", - ".. 33 !33...", - ".. 33333333333333!33...", - "... !33...", - "...................33...", - "...................33...", - "......333333333333333333", - "...................33..." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_49" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".............33.........", - ".............333........", - "333333333333333333333333", - "333333333333333333333333", - ".............333........", - ".............33.........", - ".............33.........", - "33.......2222332222.....", - ".............33.........", - ".............33.........", - ".............33.........", - ".............33.........", - ".............33.........", - ".............33.........", - "33.......2222332222.....", - ".............33.........", - ".............33 ........", - ".............33 * 33", - ".............33 ! 3", - ".............33 ........", - ".............33.........", - ".............33.........", - "33......22222332222.....", - ".............33........." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SWIMMING", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_50" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "...........333..........", - "..........33333.........", - "333333333333333333333333", - "333333333333333333333333", - "..........33333.........", - "...........333..........", - "...........333..........", - "...........333..........", - "...........333..........", - "...........333..........", - "...........333..........", - "...........333..........", - "...........333..........", - "...........33333........", - "...........3333333333333", - "...........3333333333333", - "...........33333........", - "3 ........333..........", - " .......333..........", - ".. .......3333.........", - ".. .......3333333333333", - ".. .......3333333333333", - "..3 .......3333.........", - "..3 .......333.........." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SWIMMING", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_51" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".333...................3", - "33333.................33", - "333333333333333333333333", - "33333333333333333333333.", - "33333.......... .....", - ".333............ ......", - "..!............. ......", - "..3............. ", - "..3.............. ", - "..3.....................", - "..3333..................", - "........................", - "........................", - "........................", - "3333333333333333333.....", - "33333333333333333333....", - ".................333....", - "..................33....", - "..................33....", - ".................3333...", - "333333333333333!33333333", - "333333333333333!33333333", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SWIMMING", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_52" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "33......33 .. ..", - "3.......3 ..", - "........ ..", - "........ 33.. ..", - "........ 3333.. ..", - ".................. ....", - ".................. ....", - " 3333 333 .", - " 3333 333 ", - "..................... ", - "..................... ", - ".....................!!!", - "..................... ", - "................@@ ", - "............... ", - "................d ", - ".................... ", - "..................... ", - ".....................!)!", - "..................... ", - "333333333333333333333333", - "333333333333333333333333", - ".............33333......", - "..............333......." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_53" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "............)...........", - "...........{{{..........", - "...........{{3..........", - "...........{)3..........", - "...........{33..........", - "...........x33..........", - "...........x33..........", - "...........x33..........", - "...........x33 .........", - "...........x33 !........", - "...........x33 !........", - "...........x33 .........", - "...........x33..........", - " .......x33..........", - " @ ......x33..........", - " @d.......x33..........", - " ..........x33..........", - "...........x33..........", - "...........xa3..........", - "..........axa3..........", - "3333333333axa3..........", - "3333333333axa3..........", - "..........axa3..........", - "...........xa3.........." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_54" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - ".|--------|.............", - ".| zzz d|.............", - ".|? Iz d|.............", - ".|? |.............", - ".|? AAA|.............", - ".| <|.............", - ".|--------|.............", - ".|zz <|.............", - ".|zz AAA|.............", - ".| hhh|.............", - ".| Innhz|.............", - ".|fz nnzz|.............", - ".|--------|.............", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ { "item": "alcohol", "x": [ 2, 2 ], "y": [ 14, 14 ], "chance": 90 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_55" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..............33....... ", - ".............33........ ", - "............33......... ", - "...........33.......... ", - "..........33........... ", - "................... ", - "................... ", - "........... 3333.. .. ", - "........... 33 3.. .. ", - "...........33 ! ...", - "...........3 ! ...", - "...........3 3.. ...", - "........... 333.. ...", - "................... ", - "................... ", - "....................... ", - "....................... ", - "....................... ", - "....................... ", - "....................... ", - "..................... ", - "..................... ", - "..................... ", - "..................... " - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_56" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " .......33x...........", - " .......33x...........", - " .......33x...........", - " 3.......33x...........", - " 3.......33x...........", - " 3.......33x...........", - " .......33x...........", - " 3.......33x...........", - " 33.......33x...........", - "..........AaxgGGGg ...", - "..........xxxgrrrg ", - "... ..x#x+ + 5 ", - "... . xxxgrrrg 55 ", - " ! AaxgGGGg 55", - " ! 33x.........55", - " ..3 . 33x...........", - " ..333 ..33x...........", - " .........33x...........", - " .........33x...........", - " .........33x...........", - " .......33x...........", - " .......33x...........", - " 3.......33x...........", - " 3.......33x..........." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_items": [ - { "item": "sewage_plant", "x": [ 14, 16 ], "y": [ 10, 10 ], "chance": 70 }, - { "item": "sewage_plant", "x": [ 14, 16 ], "y": [ 12, 12 ], "chance": 70 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_57" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "...................33...", - "...................33...", - "................33!33...", - "...............333!33...", - "..............33...33...", - ".............33....33...", - "............33.....33...", - "...........33......33...", - "..........33........33..", - "..........33.........33.", - " . ......33...........33", - " ...33............3", - " 33.............", - " 33............", - "5.... 33...........", - "....... . 33..........", - "........... 33.........", - "............ 33........", - "............. 33.......", - ".............. 33 ", - "............... 3X33333", - "................ ", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_58" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".............33.........", - ".............33.........", - ".............33.........", - ".............33.........", - ".............33.........", - ".............33.........", - ".............33.........", - ".............33.........", - ".............!!.........", - "..........33aAAA........", - "3........AAAaxxxxxxxxxxx", - "3333XXX*xxxxx#aA33333333", - ".. ....AAAAAa333333333", - "...=......333333........", - ".. ........!!.........", - ".. ........33.........", - ".. ........33333333333", - ". .........33333333333", - " .....3333333.........", - " 3333333333..........", - "333XX .................", - " 33 ................", - "... 33 ..............3", - ".... 333 ..............3" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_59" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".. .......333..........", - "..3 ...... 333..........", - "..3 ) 333..........", - "...3 ! 333..........", - ".......... 333..........", - "...........333..........", - "...........333..........", - "...........!!!..........", - "...........333..........", - "..........AAAA..........", - "xxxxxxxxxxxxxx..........", - "33333333AAAAax..........", - "333333333333axa.........", - "..........33axa333333333", - "...........3axa333333333", - "...........3axa.........", - "3..........3ax..........", - "333........33x..........", - ".33........33x..........", - ".33........33x..........", - ".333.......3ax . 33..", - "33333......Aax ! ", - "333333... xxx ! ", - "33333333!XXAax . 33 .." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_60" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "............5...........", - "............55..........", - ".............55555555555", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "333333333333333333333333", - "333333333333333333333333", - "........................", - "....................... ", - "....................... ", - "....................... ", - "....................... ", - "........................", - " ......................", - " ........... ", - " .......... " - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SWIMMING", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_61" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..............333.......", - "..............333.......", - ".............35333......", - "............3533355.....", - "...........333355335....", - "..........5535335353....", - "55555555!55535355333....", - "..........5335335335....", - "...........333553533....", - "............3533333.....", - ".............35353......", - "..............333.......", - ".............33333......", - "333333333333333333333333", - "333333333333333333333333", - "!!......................", - " .....................", - " .....................", - " .....................", - " .....................", - " ......................", - " .................... ", - " 33............. ", - " 3............. " - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SWIMMING", "x": [ 13, 18 ], "y": [ 2, 10 ], "density": 0.25 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_62" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "...........x33..........", - "...........x33..........", - "...........x33..........", - "...........x33..........", - "...........x33..........", - "...........x33..........", - "...........x33..........", - "...........x33..........", - "...........x33..........", - "...........x33..........", - "...........x33..........", - "...........x33..........", - "..........3x33..........", - "33333333333x33..........", - "33333333333x33..........", - "..........3x33..........", - "...........x33!333333333", - "...........x33..........", - "...........x33..........", - "...........x33..........", - "...........x33..........", - "3333 .. x33..........", - " 3 *XXx33..........", - " !XXx33.........." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_63" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "3333333333..............", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_64" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..................... ", - "....................... ", - ".......................3", - ".......................3", - ".......................3", - ".......................3", - "....................... ", - "........................", - "........................", - "........................", - ".33333333333333333333333", - "333333333333333333333333", - ".33333333333333333333333", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_65" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " 33.......33x...........", - "3.........33x...........", - "3.........33x...........", - "3.........33x...........", - " .. ...33x...........", - " ...33x...........", - " ...33x...........", - "... ...33x...........", - "....*!....3axa..........", - "... ...Aaxa .........", - "!xxxxxxxxxxxxxxxxxxxxxxx", - "!x3333333AAAAAA333333333", - "!x3333333333333333333333", - "........!...............", - "........3...............", - "........3...............", - "........3...............", - "........3...............", - "........3...............", - "........3...............", - "........3...............", - "........3...............", - "........3...............", - "........3..............." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_66" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "xxxxxxxxxxxxxxxxxxxxxxxx", - "333333333333333333333333", - "333333333333333333333333", - ".............. 33 ......", - "...............!!.......", - "...............33.......", - "...............33.......", - "...............33.......", - "...............33.......", - "...............33.......", - "...............33.......", - "...............33.......", - "...............33.......", - "...............33......." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_67" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".... 33 ..............3", - "..... 33 ...............", - "..... 33 ...............", - "..... 33 ...............", - "..... 33 ...............", - "..... 33 ...............", - "..... 33 ...............", - "......!!................", - "..... XX ...............", - ".... 33 ..............", - "xxxxxxxxxxxxxxxxxxxxxxxx", - "333333333333333333333333", - "333333333333333333333333", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_68" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "33333333!XX3ax..........", - "333333... 33x..........", - ".333.......33x..........", - "...........33x..........", - "...........33x..........", - "...........33x..........", - "...........33x..........", - "...........3ax..........", - "..........33axa.........", - ".........AAAaxaA........", - "xxxxxxxxxxxxxxxxxxxxxxxx", - "33333333AAAAaxa333333333", - "333333333333axa333333333", - ".........333axa3........", - "..........33axa.........", - "...........3ax..........", - "...........33x..........", - "...........33x..........", - "...........33x..........", - "...........33x..........", - "...........33x..........", - "...........33x..........", - "...........33x..........", - "...........33x.........." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_69" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " .......... ..........", - " .......... ..........", - " ........3 ........", - " ........3 ........", - " 3333 ........", - " 3 ........", - ".......... ........", - ".......... ........", - "............*!..........", - "........... XX .........", - "xxxxxxxxxxxxxxxxxxxxxxxx", - "333333333333333333333333", - "333333333333333333333333", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "................. ", - "................ 33353", - "............... 533353", - ".............. 3355333" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_70" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "...33............. .. ", - "... 3.. .. ....", - "... .. .. ....", - "... 3....", - "... 33....", - "....... ........", - "....... ........", - "........................", - "........................", - "........................", - "xxxxxxxxxxxxxxxxxxxxxxxx", - "333333333333333333333333", - "333333333333333333333333", - "........ ............", - ".........!!.............", - "......... .............", - "......... .............", - "......... .............", - "......... .............", - "......... .............", - " ..... .............", - "335 .... .............", - "3533 ... .............", - "53353 . ............." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_71" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " ... x33..........", - "...........x33..........", - "...........x33..........", - "...........x33..........", - "...........x33..........", - "...........x33..........", - "...........x33..........", - "...........x33..........", - "..........xx33..........", - ".........xx333..........", - "xxxxxxxxxx3333..........", - "3333333333333...........", - "333333333333............", - "......!.................", - "......3.................", - "......3.................", - "......3.................", - "......3.................", - "......3.................", - "......3.................", - "......3.................", - "......3.................", - "......3.................", - "......3................." - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_72" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_73" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_74" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........3...............", - "........3...............", - "........3...............", - "........3...............", - "........3...............", - "........3...............", - "........3...............", - "........3...............", - "........3...............", - "........3...............", - "........3...............", - "........3...............", - "........3...............", - "........3...............", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_75" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "...............33.......", - "...............33.......", - "...............33.......", - "...............33.......", - "...............33.......", - "...............33.......", - ".............33333333...", - "................33333...", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_76" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_77" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "...........33x..........", - "...........33x ........", - "...........33x * ", - "...........33xsX!X333333", - "...........33x ! ", - "...........33x ........", - "...........33x..........", - "...........33x..........", - "...........33x..........", - "...........33x..........", - "...........33x..........", - "...........33x..........", - "...........33x..........", - "...........33x..........", - "...........33x..........", - "...........33x..........", - "...........33x..........", - "...........33x..........", - "...........33x..........", - "...........33x..........", - "...........33x..........", - "...........33x..........", - "............3...........", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_78" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".............. 33353335", - "............. 335353355", - " 353353535", - "333333333333333353533535", - " 333553335", - ".............. 33533533", - "............... 3333353", - "................ ", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_SWIMMING", "x": [ 18, 23 ], "y": [ 0, 5 ], "density": 0.15 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_79" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "33533 ..............", - "33353 ...............", - "33353 .................", - "33335 .................", - "3353 ..................", - "353 ...................", - "33 ....................", - " .....................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_80" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "......3.................", - "......3.................", - "......3.................", - "......3.................", - "......3.................", - "......3.................", - "......3.................", - "......3.................", - "......3.................", - "......3.................", - "......3.................", - "......3.................", - "......3.................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_b_81" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_rock_floor", - "!": "t_bars", - "#": "t_ladder_up", - ")": "t_floor", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall", - ".": "t_rock", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_water_sh", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_railing_h", - "B": "t_floor", - "D": "t_floor", - "E": "t_elevator", - "G": "t_wall_metal", - "H": "t_wall_glass", - "I": "t_column", - "L": "t_floor", - "R": "t_hole", - "S": "t_floor", - "U": "t_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_floor", - "a": "t_railing_v", - "c": "t_floor", - "d": "t_floor", - "e": "t_gates_mech_control", - "f": "t_floor", - "g": "t_wall_metal", - "h": "t_floor", - "k": "t_floor", - "n": "t_floor", - "o": "t_floor", - "r": "t_floor", - "s": "t_sidewalk", - "t": "t_floor", - "x": "t_bridge", - "z": "t_floor", - "{": "t_floor", - "|": "t_wall", - "}": "t_manhole_cover" - }, - "furniture": { - ")": "f_wreckage", - "?": "f_sofa", - "@": "f_bed", - "D": "f_trashcan", - "L": "f_locker", - "S": "f_sink", - "Z": "f_crate_o", - "]": "f_ash", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "k": "f_desk", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "{": "f_rubble" - } - } + { "item": "sewage_plant", "x": [ 38, 40 ], "y": [ 10, 10 ], "chance": 70 }, + { "item": "sewage_plant", "x": [ 38, 40 ], "y": [ 12, 12 ], "chance": 70 } + ] + }, + "om_terrain": [ + [ "necropolis_b_55", "necropolis_b_56", "necropolis_b_57" ], + [ "necropolis_b_64", "necropolis_b_65", "necropolis_b_66" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + ".............33........... .......333..................................", + ".............33...........3 ...... 333..................................", + ".............33...........3 ) 333..................................", + ".............33............3 ! 333..................................", + ".............33................... 333......................5...........", + ".............33....................333......................55..........", + ".............33....................333.......................55555555555", + ".............33....................!!!..................................", + ".............!!....................333..................................", + "..........33aAAA..................AAAA..................................", + "3........AAAaxxxxxxxxxxxxxxxxxxxxxxxxx..................................", + "3333XXX*xxxxx#aA3333333333333333AAAAax..................................", + ".. ....AAAAAa333333333333333333333axa.................................", + "...=......333333..................33axa333333333333333333333333333333333", + ".. ........!!....................3axa333333333333333333333333333333333", + ".. ........33....................3axa.................................", + ".. ........333333333333..........3ax................................. ", + ". .........33333333333333........33x................................. ", + " .....3333333..........33........33x................................. ", + " 3333333333...........33........33x................................. ", + "333XX ..................333.......3ax . 33..........................", + " 33 ................33333......Aax ! ......................", + "... 33 ..............3333333... xxx ! ........... ", + ".... 333 ..............333333333!XXAax . 33 .. .......... ", + ".... 33 ..............333333333!XX3ax.......... .......... ..........", + "..... 33 ...............333333... 33x.......... .......... ..........", + "..... 33 ................333.......33x.......... ........3 ........", + "..... 33 ..........................33x.......... ........3 ........", + "..... 33 ..........................33x.......... 3333 ........", + "..... 33 ..........................33x.......... 3 ........", + "..... 33 ..........................33x.................... ........", + "......!!...........................3ax.................... ........", + "..... XX .........................33axa.....................*!..........", + ".... 33 .......................AAAaxaA................... XX .........", + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "33333333333333333333333333333333AAAAaxa333333333333333333333333333333333", + "333333333333333333333333333333333333axa333333333333333333333333333333333", + ".................................333axa3................................", + "..................................33axa.................................", + "...................................3ax..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x........................... ", + "...................................33x.......................... 33353", + "...................................33x......................... 533353", + "...................................33x........................ 3355333" + ], + "palettes": [ "necropolis_b1" ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SWIMMING", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 } + ] + }, + "om_terrain": [ + [ "necropolis_b_58", "necropolis_b_59", "necropolis_b_60" ], + [ "necropolis_b_67", "necropolis_b_68", "necropolis_b_69" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..............333..................x33..................................", + "..............333..................x33..................................", + ".............35333.................x33..................................", + "............3533355................x33..................................", + "...........333355335...............x33..................................", + "..........5535335353...............x33..................................", + "55555555!55535355333...............x33..................................", + "..........5335335335...............x33..................................", + "...........333553533...............x33..................................", + "............3533333................x33..................................", + ".............35353.................x33..................................", + "..............333..................x33..................................", + ".............33333................3x33..................................", + "33333333333333333333333333333333333x33..................................", + "33333333333333333333333333333333333x33..................................", + "!!................................3x33..................................", + " ................................x33!3333333333333333333..............", + " ................................x33..................................", + " ................................x33..................................", + " ................................x33..................................", + " .................................x33..................................", + " .................... 3333 .. x33..................................", + " 33............. 3 *XXx33..................................", + " 3............. !XXx33..................................", + "...33............. .. ... x33..................................", + "... 3.. .. ...............x33..................................", + "... .. .. ...............x33..................................", + "... 3...............x33..................................", + "... 33...............x33..................................", + "....... ...................x33..................................", + "....... ...................x33..................................", + "...................................x33..................................", + "..................................xx33..................................", + ".................................xx333..................................", + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3333..................................", + "3333333333333333333333333333333333333...................................", + "333333333333333333333333333333333333....................................", + "........ ..................!.........................................", + ".........!!...................3.........................................", + "......... ...................3.........................................", + "......... ...................3.........................................", + "......... ...................3.........................................", + "......... ...................3.........................................", + "......... ...................3.........................................", + " ..... ...................3.........................................", + "335 .... ...................3.........................................", + "3533 ... ...................3.........................................", + "53353 . ...................3........................................." + ], + "palettes": [ "necropolis_b1" ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SWIMMING", "x": [ 13, 18 ], "y": [ 2, 10 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 } + ] + }, + "om_terrain": [ + [ "necropolis_b_61", "necropolis_b_62", "necropolis_b_63" ], + [ "necropolis_b_70", "necropolis_b_71", "necropolis_b_72" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "................................3..............................33.......", + "................................3..............................33.......", + "................................3..............................33.......", + "................................3..............................33.......", + "................................3..............................33.......", + "................................3..............................33.......", + "................................3............................33333333...", + "................................3...............................33333...", + "................................3.......................................", + "................................3.......................................", + "................................3.......................................", + "................................3.......................................", + "................................3.......................................", + "................................3.......................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................" + ], + "palettes": [ "necropolis_b1" ] + }, + "om_terrain": [ [ "necropolis_b_73", "necropolis_b_74", "necropolis_b_75" ] ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "...................................33x........................ 33353335", + "...................................33x ..................... 335353355", + "...................................33x * 353353535", + "...................................33xsX!X333333333333333333333353533535", + "...................................33x ! 333553335", + "...................................33x ...................... 33533533", + "...................................33x......................... 3333353", + "...................................33x.......................... ", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "....................................3...................................", + "........................................................................" + ], + "palettes": [ "necropolis_b1" ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SWIMMING", "x": [ 66, 71 ], "y": [ 0, 5 ], "density": 0.15 } + ] + }, + "om_terrain": [ [ "necropolis_b_76", "necropolis_b_77", "necropolis_b_78" ] ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "33533 ....................3.........................................", + "33353 .....................3.........................................", + "33353 .......................3.........................................", + "33335 .......................3.........................................", + "3353 ........................3.........................................", + "353 .........................3.........................................", + "33 ..........................3.........................................", + " ...........................3.........................................", + "..............................3.........................................", + "..............................3.........................................", + "..............................3.........................................", + "..............................3.........................................", + "..............................3.........................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................" + ], + "palettes": [ "necropolis_b1" ] + }, + "om_terrain": [ [ "necropolis_b_79", "necropolis_b_80", "necropolis_b_81" ] ], + "type": "mapgen", + "weight": 250 } ] diff --git a/data/json/mapgen/necropolis/necropolisB2.json b/data/json/mapgen/necropolis/necropolisB2.json index 065a6c086a6ba..2b3d782d44418 100644 --- a/data/json/mapgen/necropolis/necropolisB2.json +++ b/data/json/mapgen/necropolis/necropolisB2.json @@ -16,12623 +16,1162 @@ "items": [ [ "newest_newspaper", 10 ], [ "necropolis_leaflet", 50 ] ] }, { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_1" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..........|---|.........", - "..........|r r|..|---|..", - ".......|--|-+-|--|S t|--", - ".......|d@@ + + ", - ".......| @@ |---| ", - ".......| h + + ", - ".......|o kkk | | ", - ".......|---------| |--", - ".................| |..", - "..........|-|-|..| G|..", - ".......|--|r|r|--| |--", - ".....|-|@@|+|+|@@| |@@", - ".....|t| | | ", - ".....| + [ [ ", - ".....|S| | | ", - ".....|-|@@|+|+|@@| |@@", - ".......|--|r|r|--| |--", - "..........|-|-|r + + r", - ".......|--|r|r|--| |--", - ".....|-|@@|+|+|@@|G |@@", - ".....|t| | | ", - ".....| + [ [ ", - ".....|S| | | ", - ".....|-|@@|+|+|@@| |@@" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "book_military", "x": [ 8, 8 ], "y": [ 6, 6 ], "chance": 50 }, - { "group": "office", "x": [ 12, 14 ], "y": [ 6, 6 ], "chance": 70 }, - { "group": "cleaning", "x": [ 15, 15 ], "y": [ 17, 17 ], "chance": 70 }, - { "group": "cleaning", "x": [ 23, 23 ], "y": [ 17, 17 ], "chance": 70 }, - { "group": "army_bed", "x": [ 22, 23 ], "y": [ 23, 23 ], "chance": 70 }, - { "group": "army_bed", "x": [ 15, 16 ], "y": [ 23, 23 ], "chance": 70 }, - { "group": "army_bed", "x": [ 8, 9 ], "y": [ 23, 23 ], "chance": 70 }, - { "group": "army_bed", "x": [ 22, 23 ], "y": [ 19, 19 ], "chance": 70 }, - { "group": "army_bed", "x": [ 15, 16 ], "y": [ 19, 19 ], "chance": 70 }, - { "group": "army_bed", "x": [ 8, 9 ], "y": [ 19, 19 ], "chance": 70 }, - { "group": "army_bed", "x": [ 22, 23 ], "y": [ 15, 15 ], "chance": 70 }, - { "group": "army_bed", "x": [ 15, 16 ], "y": [ 15, 15 ], "chance": 70 }, - { "group": "army_bed", "x": [ 8, 9 ], "y": [ 15, 15 ], "chance": 70 }, - { "group": "army_bed", "x": [ 22, 23 ], "y": [ 11, 11 ], "chance": 70 }, - { "group": "army_bed", "x": [ 15, 16 ], "y": [ 11, 11 ], "chance": 70 }, - { "group": "army_bed", "x": [ 8, 9 ], "y": [ 11, 11 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 8, 8 ], "y": [ 3, 3 ], "chance": 70 }, - { "group": "army_bed", "x": [ 9, 10 ], "y": [ 3, 4 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 11, 11 ], "y": [ 1, 1 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 13, 13 ], "y": [ 1, 1 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 11, 11 ], "y": [ 10, 10 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 13, 13 ], "y": [ 10, 10 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 11, 11 ], "y": [ 16, 16 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 13, 13 ], "y": [ 16, 16 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 11, 11 ], "y": [ 18, 18 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 13, 13 ], "y": [ 18, 18 ], "chance": 70 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.35 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_2" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "|---|...................", - "|r r|...................", - "|-+-|--|................", - " @@d|................", - " @@ |................", - " h |................", - "kkk o|................", - "-------|.|--------------", - ".........|rrrrrrrrrrrrrr", - "|-|-|....|r ", - "|r|r|--|.|r ccc ", - "|+|+|@@|-|r ccc G ", - " |t|r ", - " + |-------| |", - " |S|.......| 5|", - "|+|+|@@|-|-------|-===-|", - "|r|r|--|.|rrrrrrr| 6|", - "|-|-|....|r + G ", - "|r|r|--|.|r rrrr | h ", - "|+|+|@@|-|r rrrr |k6kkk|", - " |t|r |!!!!!|", - " + |rGrrrr | |", - " |S|r rrrr v |", - "|+|+|@@|-|r v |" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "mil_food", "x": [ 10, 10 ], "y": [ 16, 23 ], "chance": 90 }, - { "group": "mil_accessories", "x": [ 11, 16 ], "y": [ 16, 16 ], "chance": 75 }, - { "group": "mil_armor", "x": [ 12, 15 ], "y": [ 18, 19 ], "chance": 80 }, - { "group": "mil_armor", "x": [ 12, 15 ], "y": [ 21, 22 ], "chance": 80 }, - { "group": "office", "x": [ 20, 22 ], "y": [ 19, 19 ], "chance": 60 }, - { "group": "guns_rifle_milspec", "x": [ 11, 23 ], "y": [ 8, 8 ], "chance": 85, "magazine": 100 }, - { "group": "energy_weapon_armory", "x": [ 11, 23 ], "y": [ 8, 8 ], "chance": 100 }, - { "group": "guns_pistol_milspec", "x": [ 10, 10 ], "y": [ 8, 12 ], "chance": 85, "magazine": 100 }, - { "group": "bionics_mil", "x": [ 13, 15 ], "y": [ 10, 11 ], "chance": 50 }, - { "group": "book_military", "x": [ 6, 6 ], "y": [ 6, 6 ], "chance": 50 }, - { "group": "office", "x": [ 0, 2 ], "y": [ 6, 6 ], "chance": 70 }, - { "group": "army_bed", "x": [ 5, 6 ], "y": [ 23, 23 ], "chance": 70 }, - { "group": "army_bed", "x": [ 5, 6 ], "y": [ 19, 19 ], "chance": 70 }, - { "group": "army_bed", "x": [ 5, 6 ], "y": [ 15, 15 ], "chance": 70 }, - { "group": "army_bed", "x": [ 5, 6 ], "y": [ 11, 11 ], "chance": 70 }, - { "group": "army_bed", "x": [ 4, 5 ], "y": [ 3, 4 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 1, 1 ], "y": [ 1, 1 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 3, 3 ], "y": [ 1, 1 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 6, 6 ], "y": [ 3, 3 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 1, 1 ], "y": [ 10, 10 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 3, 3 ], "y": [ 10, 10 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 1, 1 ], "y": [ 16, 16 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 3, 3 ], "y": [ 16, 16 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 1, 1 ], "y": [ 18, 18 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 3, 3 ], "y": [ 18, 18 ], "chance": 70 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.35 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_3" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "............|---|.......", - "............|r r|..|---|", - ".........|--|-+-|--|S t|", - ".........|d@@ + +", - ".........| @@ |---|", - ".........| h + +", - ".........|o kkk | |", - "-------|.|---------| |", - "rrrrrrr|...........| |", - " r|....|-|-|..|G |", - " ccc r|.|--|r|r|--| |", - " ccc r|-|@@|+|+|@@| |", - " r|t| | |", - "----|--| + [ [", - "EEEE|..|S| | |", - "EEEE|..|-|@@|+|+|@@| |", - "-==-|....|--|r|r|--| |", - " |.......|-|-|r + +", - " |....|--|r|r|--| |", - "-| |..|-|@@|+|+|@@| G|", - ".| |..|t| | |", - ".| |..| + [ [", - ".| |..|S| | |", - "-|[[|--|-|@@|+|+|@@| |" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "cleaning", "x": [ 17, 17 ], "y": [ 17, 17 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 13, 13 ], "y": [ 18, 18 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 15, 15 ], "y": [ 18, 18 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 13, 13 ], "y": [ 16, 16 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 15, 15 ], "y": [ 16, 16 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 13, 13 ], "y": [ 10, 10 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 15, 15 ], "y": [ 10, 10 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 13, 13 ], "y": [ 1, 1 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 15, 15 ], "y": [ 1, 1 ], "chance": 70 }, - { "group": "guns_rifle_milspec", "x": [ 0, 5 ], "y": [ 8, 8 ], "chance": 85, "magazine": 50 }, - { "group": "energy_weapon_armory", "x": [ 0, 5 ], "y": [ 8, 8 ], "chance": 85 }, - { "group": "grenades", "x": [ 6, 6 ], "y": [ 8, 12 ], "chance": 85 }, - { "group": "launchers", "x": [ 1, 3 ], "y": [ 10, 11 ], "chance": 70 }, - { "group": "book_military", "x": [ 10, 10 ], "y": [ 6, 6 ], "chance": 50 }, - { "group": "office", "x": [ 14, 16 ], "y": [ 6, 6 ], "chance": 70 }, - { "group": "army_bed", "x": [ 11, 12 ], "y": [ 3, 4 ], "chance": 70 }, - { "group": "army_bed", "x": [ 10, 11 ], "y": [ 11, 11 ], "chance": 70 }, - { "group": "army_bed", "x": [ 17, 18 ], "y": [ 11, 11 ], "chance": 70 }, - { "group": "army_bed", "x": [ 10, 11 ], "y": [ 15, 15 ], "chance": 70 }, - { "group": "army_bed", "x": [ 17, 18 ], "y": [ 15, 15 ], "chance": 70 }, - { "group": "army_bed", "x": [ 10, 11 ], "y": [ 19, 19 ], "chance": 70 }, - { "group": "army_bed", "x": [ 17, 18 ], "y": [ 19, 19 ], "chance": 70 }, - { "group": "army_bed", "x": [ 10, 11 ], "y": [ 23, 23 ], "chance": 70 }, - { "group": "army_bed", "x": [ 17, 18 ], "y": [ 23, 23 ], "chance": 70 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.35 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_4" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..|---|.................", - "..|r r|.................", - "--|-+-|--|..............", - " @@d|..............", - " @@ |..............", - " h |..............", - " kkk o|..............", - "---------|..............", - "........................", - "..|-|-|.................", - "--|r|r|--|..............", - "@@|+|+|@@|-|............", - " |t|............", - " + |............", - " |S|............", - "@@|+|+|@@|-|............", - "--|r|r|--|..............", - " r|-|-|.................", - "--|r|r|--|..............", - "@@|+|+|@@|-|............", - " |t|............", - " + |...|--------", - " |S|...| V h V", - "@@|+|+|@@|-|...| V k6kV" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "office", "x": [ 20, 22 ], "y": [ 23, 23 ], "chance": 60 }, - { "group": "army_bed", "x": [ 0, 1 ], "y": [ 23, 23 ], "chance": 70 }, - { "group": "army_bed", "x": [ 7, 8 ], "y": [ 23, 23 ], "chance": 70 }, - { "group": "army_bed", "x": [ 0, 1 ], "y": [ 19, 19 ], "chance": 70 }, - { "group": "army_bed", "x": [ 7, 8 ], "y": [ 19, 19 ], "chance": 70 }, - { "group": "army_bed", "x": [ 0, 1 ], "y": [ 15, 15 ], "chance": 70 }, - { "group": "army_bed", "x": [ 7, 8 ], "y": [ 15, 15 ], "chance": 70 }, - { "group": "army_bed", "x": [ 0, 1 ], "y": [ 11, 11 ], "chance": 70 }, - { "group": "army_bed", "x": [ 7, 8 ], "y": [ 11, 11 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 5, 5 ], "y": [ 18, 18 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 3, 3 ], "y": [ 18, 18 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 5, 5 ], "y": [ 16, 16 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 3, 3 ], "y": [ 16, 16 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 5, 5 ], "y": [ 10, 10 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 3, 3 ], "y": [ 10, 10 ], "chance": 70 }, - { "group": "book_military", "x": [ 8, 8 ], "y": [ 6, 6 ], "chance": 50 }, - { "group": "office", "x": [ 2, 4 ], "y": [ 6, 6 ], "chance": 70 }, - { "group": "cleaning", "x": [ 1, 1 ], "y": [ 17, 17 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 8, 8 ], "y": [ 3, 3 ], "chance": 70 }, - { "group": "army_bed", "x": [ 6, 7 ], "y": [ 3, 4 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 5, 5 ], "y": [ 1, 1 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 3, 3 ], "y": [ 1, 1 ], "chance": 70 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.35 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_5" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "................|------|", - "................| d|", - "................| @@|", - "................| |", - "................| |", - "................| @@|", - "................| d|", - "................| |---|", - "................| + B|", - "................| |StB|", - "......|---------|-[|---|", - "......| | ", - "......| [ ", - "......| |+-| ", - "......| | S| |---", - "......| @ @ | t| |rrr", - "......|d@ @d|BB| + ", - "......|------|--| |rrr", - "......| | |---", - "----|.| [ |rrr", - " h |.| |+-|G + ", - " k6k|.| | S| | " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "softdrugs", "x": [ 21, 23 ], "y": [ 21, 21 ], "chance": 80 }, - { "group": "cleaning", "x": [ 21, 23 ], "y": [ 19, 19 ], "chance": 70 }, - { "group": "cleaning", "x": [ 21, 23 ], "y": [ 17, 17 ], "chance": 70 }, - { "group": "bed", "x": [ 21, 22 ], "y": [ 4, 4 ], "chance": 70 }, - { "group": "bed", "x": [ 21, 22 ], "y": [ 7, 7 ], "chance": 70 }, - { "group": "bed", "x": [ 11, 11 ], "y": [ 17, 18 ], "chance": 70 }, - { "group": "bed", "x": [ 8, 8 ], "y": [ 17, 18 ], "chance": 70 }, - { "group": "hospital_bed", "x": [ 22, 22 ], "y": [ 3, 3 ], "chance": 60 }, - { "group": "hospital_bed", "x": [ 22, 22 ], "y": [ 8, 8 ], "chance": 60 }, - { "group": "hospital_bed", "x": [ 7, 7 ], "y": [ 18, 18 ], "chance": 60 }, - { "group": "hospital_bed", "x": [ 12, 12 ], "y": [ 18, 18 ], "chance": 60 }, - { "group": "office", "x": [ 1, 3 ], "y": [ 23, 23 ], "chance": 60 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } - ] - } - }, - { - "type": "mapgen", "method": "json", - "om_terrain": [ "necropolis_c_6" ], - "weight": 250, "object": { "fill_ter": "t_floor", "rows": [ - "........................", - "........................", - "........................", - "........|--|-------|...|", - "........| |r G r|---|", - "........| V n | |", - "........| V n [ [", - "........| | [ [", - "....|---| [ | |", - "....|ScS |rrSrrrr| |", - "....| |-|---||| |", - "--|.|rr +r|r r||| |", - " 5|-|----[-|-|-+-|| ", - " = ", - " = G ", - " = ", - "|-|5 |===|--[--|--| ", - "|.|--|EEE|cc |..|| |", - "|....|EEE|S |--|| |", - "|....|---|O |r r| |", - "|........|f |r r| c", - "|........| |-+-| c", - "|........|hnnh | c c", - "|........|hnnh [ c G |" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "surgery", "x": [ 12, 12 ], "y": [ 4, 4 ], "chance": 85 }, - { "group": "harddrugs", "x": [ 18, 18 ], "y": [ 4, 4 ], "chance": 85 }, - { "group": "surgery", "x": [ 12, 18 ], "y": [ 9, 9 ], "chance": 80 }, - { "group": "dissection", "x": [ 5, 6 ], "y": [ 11, 11 ], "chance": 80 }, - { "group": "dissection", "x": [ 12, 12 ], "y": [ 11, 11 ], "chance": 80 }, - { "group": "cleaning", "x": [ 16, 16 ], "y": [ 11, 11 ], "chance": 80 }, - { "group": "cleaning", "x": [ 14, 14 ], "y": [ 11, 11 ], "chance": 80 }, - { "group": "fridgesnacks", "x": [ 10, 10 ], "y": [ 20, 20 ], "chance": 80 }, - { "group": "dining", "x": [ 11, 12 ], "y": [ 22, 23 ], "chance": 60 }, - { "group": "office", "x": [ 16, 16 ], "y": [ 19, 20 ], "chance": 80 }, - { "group": "office", "x": [ 18, 18 ], "y": [ 19, 20 ], "chance": 80 } - ], + "..........|---|.........|---|...............................|---|.......", + "..........|r r|..|---|..|r r|...............................|r r|..|---|", + ".......|--|-+-|--|S t|--|-+-|--|.........................|--|-+-|--|S t|", + ".......|d@@ + + @@d|.........................|d@@ + +", + ".......| @@ |---| @@ |.........................| @@ |---|", + ".......| h + + h |.........................| h + +", + ".......|o kkk | | kkk o|.........................|o kkk | |", + ".......|---------| |---------|.|---------------------|.|---------| |", + ".................| |...........|rrrrrrrrrrrrrrrrrrrrr|...........| |", + "..........|-|-|..| G|..|-|-|....|r r|....|-|-|..|G |", + ".......|--|r|r|--| |--|r|r|--|.|r ccc ccc r|.|--|r|r|--| |", + ".....|-|@@|+|+|@@| |@@|+|+|@@|-|r ccc G ccc r|-|@@|+|+|@@| |", + ".....|t| | | |t|r r|t| | |", + ".....| + [ [ + |-------| |----|--| + [ [", + ".....|S| | | |S|.......| 5|EEEE|..|S| | |", + ".....|-|@@|+|+|@@| |@@|+|+|@@|-|-------|-===-|EEEE|..|-|@@|+|+|@@| |", + ".......|--|r|r|--| |--|r|r|--|.|rrrrrrr| 6|-==-|....|--|r|r|--| |", + "..........|-|-|r + + r|-|-|....|r + G |.......|-|-|r + +", + ".......|--|r|r|--| |--|r|r|--|.|r rrrr | h |....|--|r|r|--| |", + ".....|-|@@|+|+|@@|G |@@|+|+|@@|-|r rrrr |k6kkk|-| |..|-|@@|+|+|@@| G|", + ".....|t| | | |t|r |!!!!!|.| |..|t| | |", + ".....| + [ [ + |rGrrrr | |.| |..| + [ [", + ".....|S| | | |S|r rrrr v |.| |..|S| | |", + ".....|-|@@|+|+|@@| |@@|+|+|@@|-|r v |-|[[|--|-|@@|+|+|@@| |", + ".......|--|r|r|--| |--|r|r|--|.|r rrrr v + |.|--|r|r|--| |", + "..........|-|-|..| |..|-|-|....|r rrrr v vk G k|....|-|-|..| |", + ".................| |...........|r | vkh hk|...........| |", + ".............|---| |.|--|......|r rr | 5v6kkkkk6|......|--|.| |", + ".............| c |-|5 |------|--uu---|-===-|-uuuuu-|------| 5|-| c", + ".............| hc = G 5 = c", + ".............| c = ,,,,,,,,,,,,,,,,,,,,, = c", + ".............|G = /,///,///,///,///,///,/ = ", + ".............|------| 5||-[-|++-|/,///,///,///,///,///,/|-++--[-||5 |---", + "....................|--|| |EEE|/,///,///,///,///,///,/|EEE| ||--|...", + "........................| > |EEE|/,,,,,,,,,,,,,,,,,,,,,/|EEE| > |.......", + "........................|---|---|///////////////////////|---|---|...|---", + "................................|G/////////////////////G|...........| ", + "...|---|------------------------|////////////////////|--|...........| ", + "...|c t| G P| |-|/////////////|-|..............|HHH", + "...|S | J J J J c C C C C C V |.|-|/////////|-|................|k6k", + "...|c D| c V |...|-|/////|-|..................| h ", + "...|-+-| J J J J c C C C C C V |.....|/////|....................|k ", + "...|r D| |.....|/////|....................|6h ", + "...|l [ |.....|/////|....................|k k", + "...|l [ |.....|/////|....................|---", + "...|D | |.....|/////|........................", + "...|-+-| jj jj j j j j V |...|-|/////|-|......................", + "...|c D| jjj jj jj V |...|/////////|----------------------" + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, "place_monsters": [ { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_7" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "...................|----", - "-------|--|........|d ", - "r G r| |........|@@ ", - " n V |........| ", - " n V |........| ", - " | |........|@@ ", - " [ |---|....|d ", - "rrrrSrr| ScS|....|---|", - "||---|-| |....|B +", - "||r r|r+ rr|.|--|BtS|", - "||-+-|-|-[----|-|5 |---|", - " = ", - " = ", - " = ", - "|-|-[[-------| 5|-|---| ", - "|.| rrrrrr|--|.|rrr| ", - "..| |....| + ", - "--| rrrrrr|--|.|rrr| ", - "6k rrrrrrr r|.|---| ", - "h r|.|rrr| ", - " rrrrrrr r|.| + ", - " rrrrrrr r|.| | " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "softdrugs", "x": [ 19, 21 ], "y": [ 21, 21 ], "chance": 80 }, - { "group": "cleaning", "x": [ 19, 21 ], "y": [ 19, 19 ], "chance": 70 }, - { "group": "cleaning", "x": [ 19, 21 ], "y": [ 17, 17 ], "chance": 70 }, - { "group": "bed", "x": [ 20, 21 ], "y": [ 4, 4 ], "chance": 70 }, - { "group": "bed", "x": [ 20, 21 ], "y": [ 7, 7 ], "chance": 70 }, - { "group": "hospital_bed", "x": [ 20, 20 ], "y": [ 3, 3 ], "chance": 70 }, - { "group": "hospital_bed", "x": [ 20, 20 ], "y": [ 8, 8 ], "chance": 70 }, - { "group": "surgery", "x": [ 0, 0 ], "y": [ 4, 4 ], "chance": 85 }, - { "group": "harddrugs", "x": [ 6, 6 ], "y": [ 4, 4 ], "chance": 85 }, - { "group": "surgery", "x": [ 0, 6 ], "y": [ 9, 9 ], "chance": 80 }, - { "group": "dissection", "x": [ 6, 6 ], "y": [ 11, 11 ], "chance": 80 }, - { "group": "dissection", "x": [ 12, 13 ], "y": [ 11, 11 ], "chance": 80 }, - { "group": "cleaning", "x": [ 2, 2 ], "y": [ 11, 11 ], "chance": 80 }, - { "group": "cleaning", "x": [ 4, 4 ], "y": [ 11, 11 ], "chance": 80 }, - { "group": "harddrugs", "x": [ 7, 12 ], "y": [ 17, 17 ], "chance": 80 }, - { "group": "harddrugs", "x": [ 7, 12 ], "y": [ 19, 19 ], "chance": 80 }, - { "group": "softdrugs", "x": [ 7, 13 ], "y": [ 20, 20 ], "chance": 80 }, - { "group": "softdrugs", "x": [ 7, 13 ], "y": [ 22, 22 ], "chance": 80 }, - { "group": "softdrugs", "x": [ 15, 15 ], "y": [ 20, 23 ], "chance": 80 }, - { "group": "chem_lab", "x": [ 7, 13 ], "y": [ 23, 23 ], "chance": 80 } - ], + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.35 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.35 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.35 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.45 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.45 } + ], + "place_vehicles": [ { "vehicle": "golf_cart", "x": 40, "y": 32, "chance": 75, "rotation": 90 } ] + }, + "om_terrain": [ + [ "necropolis_c_1", "necropolis_c_2", "necropolis_c_3" ], + [ "necropolis_c_10", "necropolis_c_11", "necropolis_c_12" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..|---|.................................................................", + "..|r r|.................................................................", + "--|-+-|--|..............................|------|........................", + " @@d|..............................| d|........|--|-------|...|", + " @@ |..............................| @@|........| |r G r|---|", + " h |..............................| |........| V n | |", + " kkk o|..............................| |........| V n [ [", + "---------|..............................| @@|........| | [ [", + "........................................| d|....|---| [ | |", + "..|-|-|.................................| |---|....|ScS |rrSrrrr| |", + "--|r|r|--|..............................| + B|....| |-|---||| |", + "@@|+|+|@@|-|............................| |StB|--|.|rr +r|r r||| |", + " |t|..................|---------|-[|---| 5|-|----[-|-|-+-|| ", + " + |..................| | = ", + " |S|..................| [ = G ", + "@@|+|+|@@|-|..................| |+-| = ", + "--|r|r|--|....................| | S| |---|-|5 |===|--[--|--| ", + " r|-|-|.......................| @ @ | t| |rrr|.|--|EEE|cc |..|| |", + "--|r|r|--|....................|d@ @d|BB| + |....|EEE|S |--|| |", + "@@|+|+|@@|-|..................|------|--| |rrr|....|---|O |r r| |", + " |t|..................| | |---|........|f |r r| c", + " + |...|------------|.| [ |rrr|........| |-+-| c", + " |S|...| V h V h |.| |+-|G + |........|hnnh | c c", + "@@|+|+|@@|-|...| V k6kV k6k|.| | S| | |........|hnnh [ c G |", + "--|r|r|--|.....| V V |.| @ @ | t| |r S|........|-----| c |", + "..|-|-|........| VHH[HVHH[H|.|d@ @d|BB| |---|..............| h c |", + "......|--------| |.|------|--| |........|---|-|cc6c |", + "---|..| V |.| | cc |........|EEE|b ", + " |..| hnnh [ VHH[HVHH[H|.| [ c |........|EEE|b ", + "h |..| hnnh [ V V |.| |+-| 6h |........|-++|b ", + " |..| hnnh V V k6kV k6k|.| | S| cccc|--------|5 ", + " G|..| hnnh V V h V h |.| @ @ | t| = bbbb bb", + "---|--| hnnh [ V V |.|d@ @d|BB| = |-HHHHHH", + "...| t| hnnh [ |---------|.|------|--|-[|---|-[|---| 5|---| | G ", + "...| S| V |.....................| |StB| |StB|--|S D| [ ", + "---|+-|HHH[[HHHV |------------------|..| + B| + B|..|c + [ ", + " h c P|..| |---| |---|..|S |--| ", + " c6cc |..| d| d|..|-| | |-| ", + "V VHHH|+|HHHV VHHH|---| |..|| @@| @@|..|t+ + t|.| 5", + "V Vk6k|L|k6kV[H[Vk6k|...| |...| | |..|-|-|--|.|-===-", + " h |-| h h |.|-|HHHH[[HHHH|-|.| | |...........| 5", + " k|.|k k|.| G G |.| @@| @@|....|------| ", + "h h h6|.|6h h h h6|.|/,,,,, ,,,,,/|.| d| d|....| G ", + "6k k6k k|.|k k6k k6k k|.|/,///, ,///,/|.|-----|------|....| ,,,,,,,,,,,", + "--------|.|-----------|.|/,///, ,///,/|...................| ,///,///,//", + "........................|/,///, ,///,/|...................| ,///,///,//", + "....|---------|.........|/,,,,,,,,,,,,/|...................| ,///,///,//", + "----|/////////|---------|/////,//,/////|-------------------| ,,,,,,,,,,," + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, "place_monsters": [ { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_8" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "--|.....................", - " |.................|---", - " |.................|@@ ", - " |.................| ", - " |.................|t ", - " |.................|!!!", - " |.................|t ", - " |.................| ", - " |.................|@@ ", - " |.................|!!!", - "[-|----------|......|@@ ", - " | |......| ", - " [ |......|t ", - " |-+| |......|!!!", - " |S | |......|t ", - " |t | @ @ |......| ", - " |BB|d@ @d|......|@@ ", - " |--|-------|......|!!!", - " | |......|@@ ", - " [ |......| ", - " G|-+| |......|t ", - " |S | |......|---" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "bed", "x": [ 21, 22 ], "y": [ 20, 20 ], "chance": 50 }, - { "group": "bed", "x": [ 21, 22 ], "y": [ 18, 18 ], "chance": 50 }, - { "group": "bed", "x": [ 21, 22 ], "y": [ 12, 12 ], "chance": 50 }, - { "group": "bed", "x": [ 21, 22 ], "y": [ 10, 10 ], "chance": 50 }, - { "group": "bed", "x": [ 21, 22 ], "y": [ 4, 4 ], "chance": 50 }, - { "group": "bed", "x": [ 7, 7 ], "y": [ 17, 18 ], "chance": 70 }, - { "group": "bed", "x": [ 11, 11 ], "y": [ 17, 18 ], "chance": 70 }, - { "group": "hospital_bed", "x": [ 6, 6 ], "y": [ 18, 18 ], "chance": 70 }, - { "group": "hospital_bed", "x": [ 12, 12 ], "y": [ 18, 18 ], "chance": 70 } + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.35 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.45 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.45 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.45 } ], + "place_vehicles": [ + { "vehicle": "golf_cart", "x": 28, "y": 44, "chance": 75, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 67, "y": 45, "chance": 75, "rotation": 90 } + ] + }, + "om_terrain": [ + [ "necropolis_c_4", "necropolis_c_5", "necropolis_c_6" ], + [ "necropolis_c_13", "necropolis_c_14", "necropolis_c_15" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "........................................................................", + "........................................................................", + "...................|------|.............................................", + "-------|--|........|d |.................|---|--------|--------|---|.", + "r G r| |........|@@ |.................|@@ ! ! ! @@|.", + " n V |........| |.................| * * * |.", + " n V |........| |.................|t ! ||| ! t|.", + " | |........|@@ |.................|!!!! !!!!|.|!!!! !!!!|.", + " [ |---|....|d |.................|t ! ! t|.|t ! ! t|.", + "rrrrSrr| ScS|....|---| |.................| * * |.| * * |.", + "||---|-| |....|B + |.................|@@ ! ! @@|.|@@ ! ! @@|.", + "||r r|r+ rr|.|--|BtS| |.................|!!!! !!!!|.|!!!! !!!!|.", + "||-+-|-|-[----|-|5 |---|[-|----------|......|@@ ! ! @@|.|@@ ! ! @@|.", + " = | |......| * * |.| * * |.", + " = [ |......|t ! ! t|.|t ! ! t|.", + " = |-+| |......|!!!! !!!!|.|!!!! !!!!|.", + "|-|-[[-------| 5|-|---| |S | |......|t ! ! t|.|t ! ! t|.", + "|.| rrrrrr|--|.|rrr| |t | @ @ |......| * * |.| * * |.", + "..| |....| + |BB|d@ @d|......|@@ ! ! @@|.|@@ ! ! @@|.", + "--| rrrrrr|--|.|rrr| |--|-------|......|!!!! !!!!|.|!!!! !!!!|.", + "6k rrrrrrr r|.|---| | |......|@@ ! ! @@|.|@@ ! ! @@|.", + "h r|.|rrr| [ |......| * * |.| * * |.", + " rrrrrrr r|.| + G|-+| |......|t ! ! t|.|t ! ! t|.", + " rrrrrrr r|.| | |S | |......|---| |---|.|---| |---|.", + "d r|.|S r| |t | @ @ |..........|!*!|.........|!*!|.....", + "6h rrrrrrrrr|.|---| |BB|d@ @d|..........| |.|-----|.| |.....", + "-cc--|---|------|.| |--|-------|..........| |.|6 h |.| |.....", + " b| > |........| cc | |..........|!*!|-|66kk |-|!*!|.....", + " b| |........| c [ |..........| !!!!!*! |.....", + " b|-[-|........| 6 |-+| |..........| |.....", + " 5|--------|cccc |S | |..........| G |.....", + "bb = |t | @ @ |..........|-----| |-----|.....", + "H-| = |BB|d@ @d|................| 5|...........", + " | |---|5 |---|[-|---|[-|--|-------|................|-===-|...........", + " [ |D S|--|BtS| |BtS| |...................|-------| 5|...........", + " [ + c|..|B + |B..+ |...................| G |...........", + " |--| S|..|---| |---| |.......|--------|..| |...........", + "|-| | |-|..|d |d |.......|rrrrrrr |..| |---------|...........", + "|.|t + +t|..|@@ |@@ |.......| |..| |.....................", + "|.|--|-|-|..| | |.......| ||-| |-------------------|.", + "|...........| | |.......|rrrrrr 5|5 Vbbb6k V 6 V h |.", + "|------|....|@@ |@@ |.......|rrrrrr = V kh V k6k V k6k |.", + " G |....|d |d |.......| = G k V V |.", + ",,,,,, |....|------|------|.......|rrrrrr = VH HVH H|.", + "/,///, |..........................|rrrrrr | V |.", + "/,///, |..........................| ||-| Vbbb |.", + "/,///, |............|-------|.....| |..| |-----| |.", + ",,,,,, |------------|///////|.....|rrrrrrr |..| |.....|kh hk|." + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, "place_monsters": [ { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_9" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "|--------|--------|---|.", - "! ! ! @@|.", - "* * * |.", - "! ||| ! t|.", - "! !!!!|.|!!!! !!!!|.", - "! ! t|.|t ! ! t|.", - "* * |.| * * |.", - "! ! @@|.|@@ ! ! @@|.", - "! !!!!|.|!!!! !!!!|.", - "! ! @@|.|@@ ! ! @@|.", - "* * |.| * * |.", - "! ! t|.|t ! ! t|.", - "! !!!!|.|!!!! !!!!|.", - "! ! t|.|t ! ! t|.", - "* * |.| * * |.", - "! ! @@|.|@@ ! ! @@|.", - "! !!!!|.|!!!! !!!!|.", - "! ! @@|.|@@ ! ! @@|.", - "* * |.| * * |.", - "! ! t|.|t ! ! t|.", - "| |---|.|---| |---|." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "bed", "x": [ 20, 21 ], "y": [ 4, 4 ], "chance": 50 }, - { "group": "bed", "x": [ 20, 21 ], "y": [ 18, 18 ], "chance": 50 }, - { "group": "bed", "x": [ 20, 21 ], "y": [ 20, 20 ], "chance": 50 }, - { "group": "bed", "x": [ 20, 21 ], "y": [ 12, 12 ], "chance": 50 }, - { "group": "bed", "x": [ 20, 21 ], "y": [ 10, 10 ], "chance": 50 }, - { "group": "bed", "x": [ 11, 12 ], "y": [ 18, 18 ], "chance": 50 }, - { "group": "bed", "x": [ 11, 12 ], "y": [ 20, 20 ], "chance": 50 }, - { "group": "bed", "x": [ 11, 12 ], "y": [ 12, 12 ], "chance": 50 }, - { "group": "bed", "x": [ 11, 12 ], "y": [ 10, 10 ], "chance": 50 }, - { "group": "bed", "x": [ 6, 7 ], "y": [ 18, 18 ], "chance": 50 }, - { "group": "bed", "x": [ 6, 7 ], "y": [ 20, 20 ], "chance": 50 }, - { "group": "bed", "x": [ 6, 7 ], "y": [ 12, 12 ], "chance": 50 }, - { "group": "bed", "x": [ 6, 7 ], "y": [ 10, 10 ], "chance": 50 } - ], + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.45 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 36 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 36 ], "y": [ 25, 46 ], "density": 0.45 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.45 } + ], + "place_vehicles": [ { "vehicle": "golf_cart", "x": 3, "y": 46, "chance": 75, "rotation": 90 } ] + }, + "om_terrain": [ + [ "necropolis_c_7", "necropolis_c_8", "necropolis_c_9" ], + [ "necropolis_c_16", "necropolis_c_17", "necropolis_c_18" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "...|S | jj jj j j j j V |...|//////////////////////////////=/", + "...|c T| G P| |...|//////////////////////////////=/", + "...|---|------------------------| ||..|////G////////////////G////////=/", + "................................| |..|//////////////////////////////=/", + "................................| 5|..|//////////////////////////////=/", + "................................|==-|..|/////////|----------------|//5|-", + "................................| 6|..|---------|................|---|.", + "................................| |...................................", + "................................| ||...................................", + "................................| |....................................", + "................................| |....................................", + "........................|-------| |....................................", + "........................| |....................................", + "........................| |....................................", + "....................|---| |-------|............|-|..|-------|....|-----", + "....................| 5| |........|-----------|F|..|///2222|....|r//rr", + "....................| = |---|----|rrrGrrr rrr| |..|//44//2|....|r////", + "....................| |-| | < |EEEE| | |..|//44//2|....|r////", + "....................| |.| | |EEEE| EEEEEE | |..|//////2|....|r////", + "...................|| |-| |-[-|-++-| EEEEEE | |..|---|792|----|7777|", + "...................| c| | | EEEEEE | |..|rrr|//2/////8////V", + "..................||G cv v v EEEEEE | |--| v//2//K//8////V", + "..................|L h6v v v EEEEEE | + =//44/G//9////V", + "..................|L cv v G| EEEEEE |----| 5|//44////9////V", + "..................|| h6v v [ EEEEEE |....|rrr|//X/////8////V", + "...................| c| | | EEEEEE |....|---|//2|----|////|", + "...................|----| |--| |--| EEEEEE |....|r/////2|....|/////", + "........................| |..| | + EEEEEE |....|r/44//2|....|L////", + "........................| |..|[[|Sr| 5 G|....|r/44//2|....|L////", + "........................| |--| |--|---======-||....|r//2222|....|L////", + "........................| G ,//////5|.....|-------|....|-----", + "................|-------|,,,,,,,,,,,,,,,///////|-|......................", + "................|////////////////////////////////|------------------|...", + "..............|-|//////////////////////////G////////////////////////|-|.", + "..............|///////////////////////////////////////////////////////|-", + "..............|/////////////////////////////////////////////////////////", + "..............|////G/////////////G/////////////////////G////////////////", + "..............|///////////////////////////////////////////////////G/////", + "..............|/////////////////////////////////////////////////////////", + "..............|/////////////////////////////////////////////////////////", + "..............|/////////|-----------------------------------|///////////", + "..............|///////|-|...................................|-|///////|-", + "..............|///////|...|-------------------------------|...|///////|.", + "..............|///////|...|///////////////////////////////|...|///////|.", + "..............|///////|...|//,,,,,,,///,,,,,,,///,,,,,,,//|...|///////|.", + "..............|///////|...|//,/////,///,/////,///,/////,//|...|///////|.", + "..............|///G///|...|//,/////,/I/,/////,/I/,/////,//|...|///G///|.", + "..............|///////|...|//,/////,///,/////,///,/////,//|...|///////|." + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 12 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 12 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 10 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 28, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 28, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.25 } + ], + "place_vehicles": [ { "vehicle": "golf_cart", "x": 34, "y": 33, "chance": 25, "rotation": 180 } ] + }, + "om_terrain": [ + [ "necropolis_c_19", "necropolis_c_20", "necropolis_c_21" ], + [ "necropolis_c_28", "necropolis_c_29", "necropolis_c_30" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "//////////////////////////////,,,,/////////////////////////,,,//////////", + "//////////////////////////////,//,/////////////////////////,/,//////////", + "/////////G////////////////G///,,,,///G/////////////////G///,,,///////G//", + "//////////////////////////////,//,/////////////////////////,/,//////////", + "//////////////////////////////,,,,/////////////////////////,,,//////////", + "----|/////////|---------------| ,,,,,,,,,,,,,/|-----------| ,,,,,,,,,,,", + "....|-|/////|-|...............| ,///,///,///,/|...........| ,///,///,//", + "......|/////|.................| ,///,///,///,/|-----------| ,///,///,//", + "......|/////|.................| ,///,///,///, G ,///,///,//", + "......|/////|.................| ,,,,,,,,,,,,, ,,,,,,,,,,,", + "......|/////|.................|G |--| |----| G ", + "......|/////|.................|-----| |----|..| |....|------------", + "......|/////|.......................| 5|.......| |.................", + "......|/////|.......................|-===-|.......| |--|.....|--|-----", + "----|.|//G//|.......................| 5|.......| | |.....|EE| ", + "r//r|.|/////|............|-----|----| |--|....| [ >|.....|EE+ ", + "///r|.|/////|............| vccc6c |St|....| | |.....|EE+ |-", + "///r|.|/////|............| RRR vc h + |....| |--|.....|--| | ", + "///r|.|/////|---|........| RRR v6h G |--|....| |....|--|...| | ", + "-=--|-|/////////|........| RRR vc h + r|....| |----| 5|---| | ", + "c rr| //////,,,,|........| vcc6cc |--|....| = | ", + "c | //////,//,|........|-|=--|HHHHH[H|[-|rr|....| G = | ", + "6hG + //////,//G|..........| | |....| = | ", + "c | //////,//,|..........|H[H|H[H|H[H|rrrrr|....|---| |---|5 |---| ", + "c 5r|G//////,,,,|..........| | | |-----|........| |Pll|---| a ", + "-=--|-|/////////|..........|c6 |c6 |c6 |..............| | h + a ", + "////|.|/////|---|..........| h | h | h |..............| | hnnnh |b aA", + "////|.|/////|..............|---|---|---|..............| | hn nh |b h", + "////|.|/////|.........................................| | hn nh |b n", + "/cSc|.|//G//|.........................................| | hn nh |b ", + "----|.|/////|...........................|-------------| | hnnnh |b c", + "......|/////|...........................|,///,///,///,G | h | ", + "......|/////|...........................|,///,///,///, |-------|-----", + "....|-|/////|-|..........|---------|.|--|,///,///,///,////|.............", + "----|/////////|----------|/////////|-|5//,,,,,,,,,,,,,,//,|-------------", + "/////////////////////////////////////=////////////////,,,,//////////////", + "/////////////////////////////////////=////////////////,//,//////////////", + "/////////G//////////G/////////G//////=/G//////////G///,,,,//////////////", + "/////////////////////////////////////=////////////////,//,//////////////", + "/////////////////////////////////////=////////////////,,,,//////////////", + "|----|/,,,,,//,,,,,/|----|/////////|-----|,,,,,,,,,,,,,//,|--|----------", + "|....|/,///,//,///,/|....|-|/////|-|.....|///,///,///, G|..| 666666666", + ".....|/,///,//,///,/|......|/////|.......|///,///,///|-[[-|..| ", + ".....|/,///,//,///,/|......|/////|.......|///,///,///| |..| ", + ".....|/,,,,,//,,,,,/|......|/////|.......|------|----| |..|k6k Gkk6k", + ".....| G G |......|/////|..............| c |..| hk hk", + "|--|-|HHHHH-[[-HHHHH|-|--|.|/////|..............| c |..| aAAA", + "|EE| |EE|.|/////|..........|---|G h6 G|..|k6k a 6k" + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_10" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".......|--|r|r|--| |--", - "..........|-|-|..| |..", - ".................| |..", - ".............|---| |.|", - ".............| c |-|", - ".............| hc =", - ".............| c =", - ".............|G =", - ".............|------| 5|", - "....................|--|", - "........................", - "........................", - "........................", - "...|---|----------------", - "...|c t| G ", - "...|S | J J J J c C C ", - "...|c D| c ", - "...|-+-| J J J J c C C ", - "...|r ", - "...|l ", - "...|l ", - "...|D ", - "...|-+-| jj jj j j ", - "...|c D| jjj j" + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 6, 22 ], "y": [ 1, 20 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 6, 22 ], "y": [ 1, 20 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 10 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 10 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 4, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 4, 22 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 30, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 30, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 36, 38 ], "density": 0.35 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 36, 38 ], "density": 0.35 } ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "office", "x": [ 17, 17 ], "y": [ 4, 6 ], "chance": 75 }, - { "group": "gym", "x": [ 4, 4 ], "y": [ 18, 18 ], "chance": 75 }, - { "group": "vending_drink", "x": [ 4, 4 ], "y": [ 19, 19 ], "chance": 80 }, - { "group": "vending_drink", "x": [ 4, 4 ], "y": [ 20, 20 ], "chance": 80 }, - { "group": "gym", "x": [ 22, 22 ], "y": [ 17, 17 ], "chance": 50 }, - { "group": "gym", "x": [ 20, 20 ], "y": [ 17, 17 ], "chance": 50 }, - { "group": "gym", "x": [ 16, 16 ], "y": [ 17, 17 ], "chance": 50 }, - { "group": "gym", "x": [ 14, 14 ], "y": [ 17, 17 ], "chance": 50 }, - { "group": "gym", "x": [ 12, 12 ], "y": [ 17, 17 ], "chance": 50 }, - { "group": "gym", "x": [ 10, 10 ], "y": [ 17, 17 ], "chance": 50 }, - { "group": "gym", "x": [ 22, 22 ], "y": [ 15, 15 ], "chance": 50 }, - { "group": "gym", "x": [ 20, 20 ], "y": [ 15, 15 ], "chance": 50 }, - { "group": "gym", "x": [ 16, 16 ], "y": [ 15, 15 ], "chance": 50 }, - { "group": "gym", "x": [ 14, 14 ], "y": [ 15, 15 ], "chance": 50 }, - { "group": "gym", "x": [ 12, 12 ], "y": [ 15, 15 ], "chance": 50 }, - { "group": "gym", "x": [ 10, 10 ], "y": [ 15, 15 ], "chance": 50 } + "place_vehicles": [ + { "vehicle": "golf_cart", "x": 13, "y": 22, "chance": 50, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 35, "y": 7, "chance": 25, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 39, "y": 8, "chance": 25, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 42, "y": 7, "chance": 25, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 71, "y": 7, "chance": 25, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 66, "y": 7, "chance": 25, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 16, "y": 42, "chance": 25, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 9, "y": 42, "chance": 25, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 47, "y": 32, "chance": 15, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 47, "y": 42, "chance": 15, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 43, "y": 32, "chance": 15, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 43, "y": 42, "chance": 15, "rotation": 270 } ], + "place_npcs": [ + { "class": "old_guard_necropolis_commo", "x": 34, "y": 18 }, + { "class": "old_guard_soldier", "x": 41, "y": 20 }, + { "class": "old_guard_soldier", "x": 41, "y": 16 }, + { "class": "old_guard_soldier", "x": 38, "y": 20 } + ] + }, + "om_terrain": [ + [ "necropolis_c_22", "necropolis_c_23", "necropolis_c_24" ], + [ "necropolis_c_31", "necropolis_c_32", "necropolis_c_33" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "/////,,,////////////////////|.....|--------|..| |---|.|6kkh hkk6|.", + "/////,/,////////////////////|.................| |EEE|.| |.", + "/////,,,//////G/////////G///|.....|---------|-| +EEE|.| |.", + "/////,/,////////////////////|.....|rrrrrrr 5|5 +EEE|.|kh hk|.", + "/////,,,////////////////////|.....| = |EEE|.|6kkh hkk6|.", + ",,,,,, |------------|///////|.....| rrrrr = G |---|-| |.", + "/,///, |............||/////||.....| = |kh V |.", + "/,///, |.............|/////|......|rrrrrrr | V6kkh Vkh hk|.", + "/,///, |...........|-|/////|-|....|--|------|-| V V6kkh kk6|.", + ",,,,,, |.|----|----|/////////|----|..|t+ cScSc| VHH+HHV h |.", + " G |.|rrrr| /////////////// |..|-| | |.", + "-------|.| 6| ,,,,,/////,,,,, |..|t+ D| |.", + ".........| h6| ,///,/////,///, |..|-|-|-+--| VHH+HHV |.", + "---------|u=uu| ,///,/////,///, |......| V V6kkh hkk6|.", + " | ,///,/////,///, |-|----| V6kkh Vkh hk|.", + " 5|5 ,,,,,/////,,,,, 5|5 ccc|--|kh V |.", + "---[[----| = ,///,/////,///, = c |..|-----|--| 5 |---|.", + " | = ,///,//G//,///, = G 6h |...........|--===-|.....", + "bbb bbb | = ,///,/////,///, = c |........|--||5 |---|.", + " | |G ,,,,,/////,,,,, G| cc |--|.....|t ! ! t|.", + "bbb bbb |-+|-| ,///,/////,///, |-|----| |.....| * * |.", + " |S |.| ,///,/////,///, |......| |.....|@@ ! ! @@|.", + "bbb bbb |t |.| ,///,/////,///, |....|-|-HH-| |.....|!!!! !!!!|.", + " |--|-| ,,,,,/////,,,,, |....| | |.....|@@ ! ! @@|.", + "bbb bbb a | /////////////// |....| k6 V |.....| * * |.", + " a |----|/////////|----|....| hk hV |.....|t ! ! t|.", + "AAA AAAAA b|....|-|/////|-|.........| k V |-|---|!!!! !!!!|.", + "hh hhh b|......|/////|...........| kk | = ! t|.", + "nn G nnn b|......|/////|...........| [ = * |.", + " b|......|/////|...........|oo | = ! @@|.", + "ccc6ccc c6c b|......|/////|...........|------|--| 5|5 |--------------|.", + "h c h ch |......|/////|.....................|--|--|................", + "--------------|......|/////|............................................", + "...................|-|/////|-|........................|---------|.......", + "-------------------|/////////|------------------------|/////////|.......", + "////////////////////////////////////////////////////////////////|.......", + "////////////////////////////////////////////////////////////////|.......", + "/G//////////////////////G//////////////////////////////////G////|.......", + "////////////////////////////////////////////////////////////////|.......", + "////////////////////////////////////////////////////////////////|.......", + "------------|------|/////////|------------------------|/////////|.......", + "66666666666 |......|---------|........................|-|/////|-|.......", + " |...........................................|/////|.........", + " |......|-----|----------------------------|.|/////|.........", + " k6kkG k6k|......|BB t | V^^^^^^^^^^|.|/////|.........", + " kh kh |......|BB + G G VHHHHHHV^^^|.|/////|.........", + "AAAAAa |......| c| I cc I cc I VHV^|.|/////|.........", + "66k6 a k6k|......|rcSSc| 6 V^|.|/////|........." + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, "place_monsters": [ { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_11" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "|r|r|--|.|r rrrr v +", - "|-|-|....|r rrrr v v", - ".........|r | v", - "--|......|r rr | 5v", - "5 |------|--uu---|-===-|", - " G 5 ", - " ,,,,,,,,,,,,,,", - " /,///,///,///,/", - "|-[-|++-|/,///,///,///,/", - "| |EEE|/,///,///,///,/", - "| > |EEE|/,,,,,,,,,,,,,,", - "|---|---|///////////////", - "........|G//////////////", - "--------|///////////////", - " P| |-|//////////", - "C C C V |.|-|////////", - " V |...|-|/////|", - "C C C V |.....|/////|", - " D| |.....|/////|", - " [ |.....|/////|", - " [ |.....|/////|", - " | |.....|/////|", - "j j V |...|-|/////|", - "j jj V |...|////////" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "mil_food", "x": [ 10, 10 ], "y": [ 0, 3 ], "chance": 90 }, - { "group": "mil_food", "x": [ 12, 15 ], "y": [ 0, 1 ], "chance": 90 }, - { "group": "mil_accessories", "x": [ 14, 15 ], "y": [ 3, 3 ], "chance": 75 }, - { "group": "army_personal_locker", "x": [ 1, 1 ], "y": [ 0, 0 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 3, 3 ], "y": [ 0, 0 ], "chance": 70 }, - { "group": "gym", "x": [ 0, 0 ], "y": [ 17, 17 ], "chance": 50 }, - { "group": "gym", "x": [ 2, 2 ], "y": [ 17, 17 ], "chance": 50 }, - { "group": "gym", "x": [ 4, 4 ], "y": [ 17, 17 ], "chance": 50 }, - { "group": "gym", "x": [ 0, 0 ], "y": [ 15, 15 ], "chance": 50 }, - { "group": "gym", "x": [ 2, 2 ], "y": [ 15, 15 ], "chance": 50 }, - { "group": "gym", "x": [ 4, 4 ], "y": [ 15, 15 ], "chance": 50 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.45 } - ], - "place_vehicles": [ { "vehicle": "golf_cart", "x": 16, "y": 8, "chance": 75, "rotation": 90 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_12" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " |.|--|r|r|--| |", - "k G k|....|-|-|..| |", - "kh hk|...........| |", - "6kkkkk6|......|--|.| |", - "-uuuuu-|------| 5|-| c", - " = c", - ",,,,,,, = c", - "//,///,/ = ", - "//,///,/|-++--[-||5 |---", - "//,///,/|EEE| ||--|...", - ",,,,,,,/|EEE| > |.......", - "////////|---|---|...|---", - "///////G|...........| ", - "/////|--|...........| ", - "///|-|..............|HHH", - "/|-|................|k6k", - "-|..................| h ", - "....................|k ", - "....................|6h ", - "....................|k k", - "....................|---", - "........................", - "-|......................", - "/|----------------------" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "office", "x": [ 21, 21 ], "y": [ 17, 19 ], "chance": 70 }, - { "group": "office", "x": [ 21, 23 ], "y": [ 15, 15 ], "chance": 70 }, - { "group": "office", "x": [ 6, 6 ], "y": [ 1, 2 ], "chance": 70 }, - { "group": "office", "x": [ 0, 0 ], "y": [ 1, 2 ], "chance": 70 }, - { "group": "office", "x": [ 1, 5 ], "y": [ 3, 3 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 13, 13 ], "y": [ 0, 0 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 15, 15 ], "y": [ 0, 0 ], "chance": 70 } + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 36 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 36 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 36 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 36 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 38 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 38 ], "density": 0.05 } ], + "place_vehicles": [ + { "vehicle": "golf_cart", "x": 19, "y": 17, "chance": 25, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 19, "y": 13, "chance": 25, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 19, "y": 21, "chance": 25, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 29, "y": 17, "chance": 25, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 29, "y": 13, "chance": 25, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 29, "y": 21, "chance": 25, "rotation": 270 } + ], + "place_npcs": [ { "class": "old_guard_soldier", "x": 38, "y": 47 }, { "class": "old_guard_soldier", "x": 32, "y": 45 } ] + }, + "om_terrain": [ + [ "necropolis_c_25", "necropolis_c_26", "necropolis_c_27" ], + [ "necropolis_c_34", "necropolis_c_35", "necropolis_c_36" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..............|///////|...|//,/////,///,/////,///,/////,//|...|///////|.", + "..............|///////|...|//,/////,/&/,/////,/&/,/////,//|...|///////|.", + "..............|///////|...|//,/////,///,/////,///,/////,//|...|///////|.", + "..............|///////|...|//,/////,///,/////,///,/////,//|...|///////|-", + "..............|///////|...|//,/////,/I/,/////,/I/,/////,//|...|//////// ", + "..............|///////|---|//,/////,///,/////,///,/////,//|---|//////// ", + "..............|//////////5|5/,,,,,,,///,,,,,,,///,,,,,,,/5|5/////////// ", + "..............|///////////=///////////////////////////////=//////////// ", + "..............|///////////=///////////////G///////////////=//////////// ", + "..............|///////////=///////////////////////////////=//////////// ", + "..............|////G//////=///G///////////////////////G///=//////G////|-", + "..............|///////////=///////////////////////////////=///////////|.", + "..............|///////////=///////////////////////////////=///////////|.", + "..............|///////////=///////////,,,,,,,,,///////////=///////////|.", + "..............|///////|---|///////////,EEEEEEE,///////////|-|/////////|.", + "..............|-------|...|///////////,EEEEEEE,///////////|.|-|/////|-|.", + "..........................|//////////I,EEEEEEE,I/,,,,,,,//|...|-----|...", + "..........................|///////////,EEEEEEE,//,/////,//|.............", + "..........................|///////////,EEEEEEE,//,/////,//|...|---------", + "..........................|///////////,EEEEEEE,&/,/////,//|...|o G ", + "..........................|///////////,EEEEEEE,//,/////,//|...|o h h", + "..........................|-|/////////,,,,,,,,,//,/////,//|...| h h", + "............................|////////|-7799977-|/,/////,//|...| n h h", + "............................|////////|r/////rrr|/,/////,//|...| hn ", + "............................|-|//////8r////////8/,,,,,,,//|...| hn ", + "..............................|//////8r////////8//////////|...| n h h", + "..............................|//////8////G///c|----------|...| h h", + "..............................|//////8/ccc////S|..............|o h h", + "..............................|//////8/ccc////c|----------|...|o G ", + "..............................|//////8/////////= rrrr r|...|---------", + "..............................|//////8rrrr/////= r|.............", + "..............................|//////8rrrr/////= rrrr r|.|-----------", + "..............................|//////8////////5|----------|.|///////////", + "..............................|//////8/////////|............|/////,,,,,/", + "..............................|//////8r///G/cc/|------------|/////,///,/", + "..............................|//////8r/////cc/8//////////////////,///,/", + "..............................|//////8r/////cc/8/,,,,,,,//////////,///,/", + "............................|-|//////|r////////|/,/////,//////////,,,,,/", + "............................|////////|-7799977-|/,/////,//////////,///,/", + "............................|////////////////////,/////,/&////////,///,/", + "..........................|-|////////////////////,/////,//////////,///,/", + "..........................|//////////////////////,/////,//////////,,,,,/", + "..........................|//////////////////////,/////,/I////////,///,/", + "..........................|//////////////////////,/////,//////////,///,/", + "..........................|//////////////////////,,,,,,,//////////,///,/", + "..........................|///////////////////////////////////////,,,,,/", + "..........................|/////////////////////////////////////////////", + "..........................|////////////////////////////////////,,,,,////" + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, "place_monsters": [ { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.45 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_13" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "--|r|r|--|.....| V V", - "..|-|-|........| VHH[HV", - "......|--------| ", - "---|..| V ", - " |..| hnnh [ VHH[HV", - "h |..| hnnh [ V V", - " |..| hnnh V V k6kV", - " G|..| hnnh V V h V", - "---|--| hnnh [ V V", - "...| t| hnnh [ |-----", - "...| S| V |.....", - "---|+-|HHH[[HHHV |-----", - " ", - " ", - "V VHHH|+|HHHV VHHH|-", - "V Vk6k|L|k6kV[H[Vk6k|.", - " h |-| h h |.", - " k|.|k k|.", - "h h h6|.|6h h h h6|.", - "6k k6k k|.|k k6k k6k k|.", - "--------|.|-----------|.", - "........................", - "....|---------|.........", - "----|/////////|---------" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "office", "x": [ 10, 11 ], "y": [ 4, 9 ], "chance": 70 }, - { "group": "office", "x": [ 20, 22 ], "y": [ 6, 6 ], "chance": 70 }, - { "group": "office", "x": [ 19, 21 ], "y": [ 15, 15 ], "chance": 70 }, - { "group": "office", "x": [ 21, 21 ], "y": [ 17, 19 ], "chance": 70 }, - { "group": "office", "x": [ 17, 19 ], "y": [ 19, 19 ], "chance": 70 }, - { "group": "office", "x": [ 13, 15 ], "y": [ 19, 19 ], "chance": 70 }, - { "group": "office", "x": [ 11, 13 ], "y": [ 15, 15 ], "chance": 70 }, - { "group": "office", "x": [ 11, 11 ], "y": [ 17, 19 ], "chance": 70 }, - { "group": "office", "x": [ 5, 7 ], "y": [ 15, 15 ], "chance": 70 }, - { "group": "office", "x": [ 7, 7 ], "y": [ 17, 19 ], "chance": 70 }, - { "group": "office", "x": [ 3, 5 ], "y": [ 19, 19 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 3, 3 ], "y": [ 0, 0 ], "chance": 70 }, - { "group": "army_personal_locker", "x": [ 5, 5 ], "y": [ 0, 0 ], "chance": 70 } + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 } ], + "place_vehicles": [ + { "vehicle": "humvee", "x": 33, "y": 1, "chance": 60, "rotation": 90 }, + { "vehicle": "humvee", "x": 43, "y": 1, "chance": 60, "rotation": 90 }, + { "vehicle": "humvee", "x": 53, "y": 1, "chance": 100, "rotation": 90 }, + { "vehicle": "humvee", "x": 51, "y": 20, "chance": 100, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 68, "y": 43, "chance": 25, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 68, "y": 39, "chance": 25, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 68, "y": 35, "chance": 25, "rotation": 90 }, + { "vehicle": "humvee", "x": 53, "y": 40, "chance": 60, "rotation": 90 } + ] + }, + "om_terrain": [ + [ "necropolis_c_37", "necropolis_c_38", "necropolis_c_39" ], + [ "necropolis_c_46", "necropolis_c_47", "necropolis_c_48" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "|EE+ +EE|.|/////|..........|r r| c |..| hk a k ", + "|EE+ +EE|.|/////|..........|r r| cc |..| aG ", + "|EE| cc6ccc |EE|.|/////|..........|r r| |..| aAa ", + "|--| cc h cc |--|-|/////|..........|-+-|HHHHV |..| kka ", + "V G c c G bV///////|..........|c V |--|u=u| h6a ", + "V cc rr cc nn bV///////|..........|6h 5|5 Gv ka ", + "[ ch rr hc bV////G//|..........|c G = v a ", + "[ 6 rr 6 bV///////|..........|c = vkh a ", + "V cc rr cc nn bV///////|..........|6h h h V = vk6k a ", + "V G c G bV///////|..........|ccc6cc6cV |--| |-uuu--", + "|--| cc h cc |----|/////|........|-|HHHHHHHHV |..| ", + "...| cc6ccc b|....|/////|........|cc |..| G ", + "...|r nn b|....|/////|........|S G|..|----------", + "...|r b|....|/////|........|O |-----|.............", + "...|rrr bbbbb|....|/////|........|f hnnh |...................", + "...|------| |---|-|||...|/////|........|c hnnh |..|----------------", + "..........| 5|ccS|t|t|..||/////||.......|D hnnh |..| ", + "..........|-==-|S |+|+|..|///////|.......| G |..| bnnb bnnb b", + "----------| 5|c |..|//////5|.......|---------|..| bnnb bnnb b", + " | + |..|-=====-|....................| bnnb bnnb b", + " h h h h V |----|--|..|//////5|....................| bnnb bnnb b", + " h h h h V |cScS|..|..|///////|....................| ", + " h h h h | + |..|..||//G//||....................| bnnb bnnb b", + " [ | |..|...|/////|.....................| bnnb bnnb b", + " [ |+|+-|--|---|/////|-----|...............| bnnb bnnb b", + " h h h h | |t| t| ,///,/////,///, |.........|-----| bnnb bnnb b", + " h h h h V |-|--| ,///,/////,///, |.........| ", + " h h h h V | ,///,/////,///, |.........| bnnb ", + " | G = ,,,,,/////,,,,, |.........| bnnb ", + "----------| = ,///,/////,///, |.........| bnnb |---|-==-|-=-", + "..........| 5|5 ,///,/////,///, |.|--|--|.| bnnb | r|EEEE|r ", + "--------|.|| |--|--| ,///,/////,///, |-| 5|5 |-| c r|EEEE|r ", + "////////|..| | |EE| ,,,,,,,,,,,,,,, = c r|-||-|r ", + "/,,,,,//|..| + >|EE+ G/////,/,/,/////G = G c +r||r+ ", + "/,///,//|..| | |EE+ ,,,,,,,,,,,,,,, = c r|-||-|r ", + "/,///,//|..| |--|--| ,///,/////,///, |-| | |-| c =EEEE= ", + "/,///,//|..| |.....| ,///,/////,///, |.|--|--|.| bnnb | =EEEE= ", + "/,,,,,//|..| |.....| ,///,/////,///, |.........| bnnb |-=-|----|---", + "/,///,//|..| |.....| ,,,,,/////,,,,, |.........| bnnb ", + "G,///,//|..| |.....| ,///,/////,///, |.........| bnnb ", + "/,///,//|..| |.....| ,///,/////,///, |.........| ", + "/,,,,,//|..| |.....| ,///,/////,///, |.........|-----| bnnb bnnb b", + "/,///,//|..| |.....|------|/////|-----|...............| bnnb bnnb b", + "/,///,//|..| |............|/////|.....................| bnnb bnnb b", + "/,///,//|..| |...........||//G//||....................| bnnb bnnb b", + "/,,,,,//|..| |...........|///////|....................| ", + "////////|..| |...........|//////5|....................| bnnb bnnb b", + "////////|..| |...........|-=====-|....................| bnnb bnnb b" + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, "place_monsters": [ { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.45 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_14" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " |.| @ @ | t| |r S", - "HH[H|.|d@ @d|BB| |---", - " |.|------|--| ", - " |.| | cc ", - "HH[H|.| [ c ", - " |.| |+-| 6h ", - " k6k|.| | S| cccc", - " h |.| @ @ | t| ", - " |.|d@ @d|BB| ", - "----|.|------|--|-[|---|", - "................| |StB|", - "-------------|..| + B|", - " h c P|..| |---|", - " c6cc |..| d|", - "--| |..|| @@|", - "..| |...| |", - "|-|HHHH[[HHHH|-|.| |", - "| G G |.| @@|", - "|/,,,,, ,,,,,/|.| d|", - "|/,///, ,///,/|.|-----|", - "|/,///, ,///,/|........", - "|/,///, ,///,/|........", - "|/,,,,,,,,,,,,/|........", - "|/////,//,/////|--------" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "office", "x": [ 1, 3 ], "y": [ 6, 6 ], "chance": 70 }, - { "group": "bed", "x": [ 21, 22 ], "y": [ 14, 14 ], "chance": 70 }, - { "group": "bed", "x": [ 21, 22 ], "y": [ 17, 17 ], "chance": 70 }, - { "group": "hospital_bed", "x": [ 22, 22 ], "y": [ 13, 13 ], "chance": 70 }, - { "group": "hospital_bed", "x": [ 22, 22 ], "y": [ 18, 18 ], "chance": 70 }, - { "group": "bed", "x": [ 8, 8 ], "y": [ 7, 8 ], "chance": 70 }, - { "group": "bed", "x": [ 11, 11 ], "y": [ 7, 8 ], "chance": 70 }, - { "group": "hospital_bed", "x": [ 7, 7 ], "y": [ 8, 8 ], "chance": 70 }, - { "group": "hospital_bed", "x": [ 12, 12 ], "y": [ 8, 8 ], "chance": 70 }, - { "group": "bed", "x": [ 8, 8 ], "y": [ 0, 1 ], "chance": 70 }, - { "group": "bed", "x": [ 11, 11 ], "y": [ 0, 1 ], "chance": 70 }, - { "group": "hospital_bed", "x": [ 7, 7 ], "y": [ 1, 1 ], "chance": 70 }, - { "group": "hospital_bed", "x": [ 12, 12 ], "y": [ 1, 1 ], "chance": 70 } + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 36 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 36 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 18, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 18, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.25 } ], + "place_vehicles": [ + { "vehicle": "golf_cart", "x": 3, "y": 43, "chance": 25, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 3, "y": 39, "chance": 25, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 3, "y": 35, "chance": 25, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 35, "y": 26, "chance": 20, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 35, "y": 30, "chance": 20, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 35, "y": 36, "chance": 20, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 35, "y": 40, "chance": 20, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 25, "y": 26, "chance": 20, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 25, "y": 30, "chance": 20, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 25, "y": 36, "chance": 20, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 25, "y": 40, "chance": 20, "rotation": 90 } + ] + }, + "om_terrain": [ + [ "necropolis_c_40", "necropolis_c_41", "necropolis_c_42" ], + [ "necropolis_c_49", "necropolis_c_50", "necropolis_c_51" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + " h k a kh |......|-----| kk 66 V^|.|/////|.........", + " Ga |......| + k 6GV^|.|/////|.........", + " aAa |......| + k h 6 V^|.|/////|.........", + " a6k |......| |-| kk 66 V^|.|/////|.........", + " akh |u=u|--|---| |.| 6 V^|.|/////|.........", + " ak vG 5|5 |.| I cc I cc I VHV^|.|/////|.........", + " a v = G|.| G G VHHHHHHV^^^|.|/////|.........", + " a hkv = |.| V^^^^^^^^^^|.|/////|.........", + " 5a k6kv |--|----| |-|-------------|-++---------|-|.|/////|.........", + "==--uuu-| |..|rrrr| G + ccc|...|/////|.........", + " 5 |..| + + hh c|...|/////|.........", + " G |..|cScr|--------|-+-|-+-|-| hnnnnh c|...|/////|.........", + "------------|..|----|........|t S|S t|.| nnnnnn |...|/////|.........", + ".............................|---|---|.| hnnG nnh |...|/////|.........", + "....|-|-|..|-|-|.......................| hnn Gnnh |...|/////|.........", + "----|t|t|..|t|t|--------------------|..| nnnnnn |..||//G//||........", + " |+|+|--|+|+| |..|c hnnnnh c|..|///////|........", + "nnb | | bnnb bnnb bnnb |..|c hh c|..|//////5|........", + "nnb |+|+| |+|+| bnnb bnnb bnnb |..|ccc ccc|..|-=====-|........", + "nnb |t|t| |t|t| bnnb bnnb bnnb |..|------------|..|//////5|........", + "nnb |-|-| |-|-| bnnb bnnb bnnb |..................|///////|........", + " |ScSc cScS| |..................||//G//||........", + "nnb | | bnnb bnnb bnnb |...................|/////|.........", + "nnb | | bnnb bnnb bnnb |.............|-----|/////|-----|...", + "nnb |ScSc cScS| bnnb bnnb bnnb |.............| ,///,/////,///, |...", + "nnb |----++----| bnnb bnnb bnnb |-----|.......| ,///,/////,///, |...", + " |.......| ,///,/////,///, |...", + " G bnnb bnnb bnnb |.......| ,,,,,/////,,,,, |...", + " bnnb bnnb bnnb |.......| ,///,/////,///, |...", + "| bnnb bnnb |---|-==-|-=-| bnnb |.......| ,///,/////,///, |...", + "| bnnb bnnb | r|EEEE|r | bnnb |.|--|--| ,///,/////,///, |...", + "c c r|EEEE|r c |-| 5|5 ,,,,,/////,,,,, |...", + "c c r|-||-|r c = //////////,///, |...", + "c c +r||r+ c G = G ///////G//,///, |...", + "c c r|-||-|r c = //////////,///, |...", + "c c =EEEE= c |-| | ,,,,,/////,,,,, |...", + "| bnnb bnnb | =EEEE= | bnnb |.|--|--| ,///,/////,///, |...", + "| bnnb bnnb |-=-|----|---| bnnb |.......| ,///,/////,///, |...", + " bnnb bnnb bnnb |.......| ,///,/////,///, |...", + " bnnb bnnb G bnnb |.......| ,,,,,/////,,,,, |...", + " |.......| ,///,/////,///, |...", + "nnb |----++----| bnnb bnnb bnnb |-----|.......| ,///,/////,///, |...", + "nnb |ScSc cScS| bnnb bnnb bnnb |.............| ,///,/////,///, |...", + "nnb | | bnnb bnnb bnnb |.............|-----|/////|-----|...", + "nnb | | bnnb bnnb bnnb |...................|/////|.........", + " |ScSc cScS| |...................|/////|.........", + "nnb |-|-| |-|-| bnnb bnnb bnnb |..................||/////||........", + "nnb |t|t| |t|t| bnnb bnnb bnnb |..................|///////|........" + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.45 } + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 18, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 18, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 28 ], "y": [ 20, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 30 ], "y": [ 20, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 60, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 60, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 } ], - "place_vehicles": [ { "vehicle": "golf_cart", "x": 4, "y": 20, "chance": 75, "rotation": 90 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_15" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "|........|-----| c |", - "|..............| h c |", - "|........|---|-|cc6c |", - "|........|EEE|b ", - "|........|EEE|b ", - "|........|-++|b ", - "|--------|5 ", - " = bbbb bb", - " = |-HHHHHH", - "-[|---| 5|---| | G ", - " |StB|--|S D| [ ", - " + B|..|c + [ ", - " |---|..|S |--| ", - " d|..|-| | |-| ", - " @@|..|t+ + t|.| 5", - " |..|-|-|--|.|-===-", - " |...........| 5", - " @@|....|------| ", - " d|....| G ", - "------|....| ,,,,,,,,,,,", - "...........| ,///,///,//", - "...........| ,///,///,//", - "...........| ,///,///,//", - "-----------| ,,,,,,,,,,," + "place_npcs": [ + { "class": "old_guard_necropolis_cpt", "x": 47, "y": 1 }, + { "class": "old_guard_soldier", "x": 33, "y": 6 }, + { "class": "old_guard_soldier", "x": 42, "y": 5 } ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "bed", "x": [ 4, 5 ], "y": [ 14, 14 ], "chance": 70 }, - { "group": "bed", "x": [ 4, 5 ], "y": [ 17, 17 ], "chance": 70 }, - { "group": "hospital_bed", "x": [ 5, 5 ], "y": [ 13, 13 ], "chance": 70 }, - { "group": "hospital_bed", "x": [ 5, 5 ], "y": [ 18, 18 ], "chance": 70 } + "place_vehicles": [ + { "vehicle": "golf_cart", "x": 64, "y": 25, "chance": 15, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 64, "y": 29, "chance": 15, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 64, "y": 37, "chance": 15, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 64, "y": 41, "chance": 15, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 54, "y": 25, "chance": 15, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 54, "y": 29, "chance": 15, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 54, "y": 37, "chance": 15, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 54, "y": 41, "chance": 15, "rotation": 90 } + ] + }, + "om_terrain": [ + [ "necropolis_c_43", "necropolis_c_44", "necropolis_c_45" ], + [ "necropolis_c_52", "necropolis_c_53", "necropolis_c_54" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..........................|////////////////////////////////////,///,//|-", + "..........................|////////////////////////////////////,///,//|.", + "..........................|////////////////////////////////////,///,//|.", + "..........................|////////////I&I//|---------------|//,,,,,//|.", + "..........................|/////////////////|...............|/////////|.", + "..........................||///G///|--------|...............|---------|.", + "...........................|//////5|....................................", + "..............|---------|..|-=====-|....................................", + "..............|/////////|--|//////5|------------------------------------", + "..............|/////////////////////////////////////////////////////////", + "..............|/////////////////////////////////////////////////////////", + "..............|////G//////////////////////////////G//////////////////G//", + "..............|/////////////////////////////////////////////////////////", + "..............|/////////////////////////////////////////////////////////", + "..............|/////////|-------------------|////,,,,,,,,,,,,,,,,,,,,,,,", + "..............|---------|...................|-|//,///,///,///,///,///,//", + "..............................................|//,///,///,///,///,///,//", + "..............................................|//,///,///,///,///,///,//", + "..............................................|//,,,,,,,,,,,,,,,,,,,,,,,", + "..............................................| ", + "..............................................| ", + "..............................................|-----------| G |-------", + "..........................................................| 5|.......", + "..............................|-----------|.|-----------|.|-===-|.......", + "..............................|kh |.|kh |.| 5|.......", + "..............................|6kk nnn |.|6kk nnn |.| |.......", + "..............................| |.| |.| |-------", + "..............................| k k k k |.| k k k k |.| c k6k L", + "..............................| h h h h |.| h h h h |.| G c h ", + "..............................| k k k k |.| k k k k |.| c ", + "..............................| h h h h |.| h h h h |.| cc h", + "..............................| k k k k |.| k k k k |.| kk", + ".......|--|-|-|-|-|-|.........| h h h h |.| h h h h |.| |-------", + ".......|t |t|t|t|t|t|.........| |.| |.| |.......", + ".......| | | | | | |.........|----| |----|.|----| |----|.| |.......", + ".......|-+|+|+|+|+|+|..............|[|...........|[|......| |.......", + ".......| |-----|--------| |-----------| |------| |-------", + ".......| D|LLLLLLL LLLLLLLLL LLLL LLLLLLL", + ".......|cScScScScSc + ", + ".......|------------------| ", + ".......|cScScScScSc + G ", + ".......| D|LLLLLLL LLLLLLL |HHHHH| ", + ".......| |-----|--------| |-------|-[[-|++-|ccccc|-++|-[[", + ".......|-+|+|+|+|+|+|..............| |.......| |EEE|-----|EEE| ", + ".......| | | | | | |.|----------|.|L L|.......| |EEE| |EEE| ", + ".......|t |t|t|t|t|t|.| |.|L L|..|----| |---| |---| ", + ".......|--|-|-|-|-|-|.| khkhkh |.|L L|..| ", + "......................| |.|L L|..| " + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.25 } ], + "place_vehicles": [ + { "vehicle": "golf_cart", "x": 67, "y": 16, "chance": 20, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 71, "y": 16, "chance": 20, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 63, "y": 16, "chance": 20, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 59, "y": 16, "chance": 20, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 55, "y": 16, "chance": 20, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 51, "y": 16, "chance": 20, "rotation": 270 } + ] + }, + "om_terrain": [ + [ "necropolis_c_55", "necropolis_c_56", "necropolis_c_57" ], + [ "necropolis_c_64", "necropolis_c_65", "necropolis_c_66" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "--------|..| |...........|//////5|....................| bnnb bnnb b", + "...........| |...........|///////|....................| bnnb bnnb b", + "...........| |...........||/////||....................| ", + ".|---------| |............|/////|.....................|-----|[[|-------", + ".| |............|/////|..........................|| ||......", + ".| |............|/////|..........................| |......", + ".| |---------|............|/////|..........................| |......", + "|| ||...................|-|/////|-|........................|| ||......", + "|, ,|-------------------|/////////|-------------------------|[[|-------", + "/,,,,////////////////////////////////////////////////////////,//,///////", + "/,//,////////////////////////////////////////////////////////,,,,///////", + "/,,,,/////////////////////////G//////////////////////////////,//,G//////", + "/,//,////////////////////////////////////////////////////////,,,,///////", + "/,,,,////////////////////////////////////////////////////////,//,///////", + ",, ,/|------------------|/////////|----------------------|//,,,,/////,,", + "/, |-|..................|---------|......................|-|,//,/////,/", + "/, |.|--------------|......................................|,,,,/////,/", + "/, |.|P k h P|.|------------|.......|---------|.....|,//,/////,/", + ",, |.| k6kkk |.|rrrrrrrrrrrr|.......|L |.....|-[[-|////,,", + " |.| o|.| |...|---|L c h c |.....| |////,/", + " |.| h o|.|r rr rr rr |...|r r| cc6cc |.....| V////,/", + "----|.|[[|-----------|.|r rr rr rr |...|r S| |...|-| V////,/", + "......| |P o|.|r rr rr rr |...|r c| P|---| V////,,", + "......| | 6k o|.|r rr rr rr |-|-|-+-|-uuuu-[[-| 5|5 |////,/", + "......| [ h kh o|.|r rr rr rr = = G [////,/", + "......| |h kk o|.|r rr rr rr = = [////,/", + "------| |h o|.| 5|5 |-uu-uu-uu-|---| |////,,", + "LL kk6| |------|----|.|rrrrrrrrrrrr | | kk6k o|...| V//////", + " hk| bbbbbb|......|--------------|-| [ k hk o|...|-| V//////", + " [ |.......................| |kk |---|.| V/G////", + "k [ |------------|.|------|.| v6h + |.| |//////", + "6 oo|b |LLL rr@ @|.|rrrrrr|.| |k ooP |rrr|.| |-HHHH-", + "------|b [ @ @|.|r |.| |----------|---|.| ", + "......|Pbb |6kk r|.|r rrr|.| |................| ", + "......|---|[[|--| h LLL r|.|r rrr|.| |-------------|..| ", + "..........| |..||-----------|-|r |.| | |..| ", + "----------| |-|.|r S S S r|r rrr|.| |!*!!*!!*!!*! |..|-----------", + "LLLLLLLLLLL LL|.|r c c c r|r rrr|.| | ! ! ! ! |..............", + " L|.| c c c |r |.| | ! ! ! ! |..............", + " |.| c c c V rrr|.| |!!!!!!!!!!!! |..|-----------", + " G |-| V rrr|.| | ! |..| ! ! ", + " LLLLLLL [ [ |.| | cc6cc! |..| * * ", + "-|-------| |-| V rrr|.| | c h c! |--|!!!! !!!", + " |.......| |.| c c c V rrr|.| |cc6cc ! ! ", + " |.......|L L|.| c c c k |r |.| |c h c G ! * ", + " |----|..|L L|.|r c c c kh|r rrr|.| | !*|--|!!!! !!!", + " |..|L L|.|r S S S 6k|r rrr|.| | |..| * * ", + " |..|L L|.|-------------|r |.| |c c|..| ! ! " + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, "place_monsters": [ { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.45 } - ], - "place_vehicles": [ { "vehicle": "golf_cart", "x": 19, "y": 21, "chance": 75, "rotation": 90 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_16" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "d r|.|S r| ", - "6h rrrrrrrrr|.|---| ", - "-cc--|---|------|.| ", - " b| > |........| cc ", - " b| |........| c ", - " b|-[-|........| 6 ", - " 5|--------|cccc ", - "bb = ", - "H-| = ", - " | |---|5 |---|[-|---|", - " [ |D S|--|BtS| |BtS|", - " [ + c|..|B + |B..+", - " |--| S|..|---| |---|", - "|-| | |-|..|d |d ", - "|.|t + +t|..|@@ |@@ ", - "|.|--|-|-|..| | ", - "|...........| | ", - "|------|....|@@ |@@ ", - " G |....|d |d ", - ",,,,,, |....|------|----", - "/,///, |................", - "/,///, |................", - "/,///, |............|---", - ",,,,,, |------------|///" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "softdrugs", "x": [ 15, 15 ], "y": [ 0, 1 ], "chance": 80 }, - { "group": "chem_lab", "x": [ 7, 14 ], "y": [ 1, 1 ], "chance": 80 }, - { "group": "bed", "x": [ 20, 21 ], "y": [ 14, 14 ], "chance": 70 }, - { "group": "bed", "x": [ 20, 21 ], "y": [ 17, 17 ], "chance": 70 }, - { "group": "hospital_bed", "x": [ 20, 20 ], "y": [ 13, 13 ], "chance": 70 }, - { "group": "hospital_bed", "x": [ 20, 20 ], "y": [ 18, 18 ], "chance": 70 }, - { "group": "bed", "x": [ 13, 14 ], "y": [ 14, 14 ], "chance": 70 }, - { "group": "bed", "x": [ 13, 14 ], "y": [ 17, 17 ], "chance": 70 }, - { "group": "hospital_bed", "x": [ 13, 13 ], "y": [ 13, 13 ], "chance": 70 }, - { "group": "hospital_bed", "x": [ 3, 13 ], "y": [ 18, 18 ], "chance": 70 } - ], + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 34 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 34 ], "density": 0.05 } + ] + }, + "om_terrain": [ + [ "necropolis_c_58", "necropolis_c_59", "necropolis_c_60" ], + [ "necropolis_c_67", "necropolis_c_68", "necropolis_c_69" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "nnb |+|+| |+|+| bnnb bnnb bnnb |..................|//////5|........", + "nnb | | bnnb bnnb bnnb |..................|-=====-|........", + " |+|+|--|+|+| |..................|//////5|........", + "----|t|t|..|t|t|-----------|[[|-----|..................|///////|........", + "....|-|-|..|-|-|..........|| ||.......................||/////||........", + "..........................| |........................|/////|.........", + "..........................| |........................|/////|.........", + "..........................|| ||......................|-|/////||........", + "---------------------------|[[|-----------------------|////////|........", + "///////////////////////////,//,////////////////////////////////|........", + "///////////////////////////,,,,////////////////////////////////|........", + "//////////////////////////G,//,////////////////////////////G///|........", + "///////////////////////////,,,,////////////////////////////////|........", + "///////////////////////////,//,////////////////////////////////|........", + ",,,,,,,//////,,,,,,,,,/////,,,,//|--------------------|////////|........", + "//,///,//////,///,///,/////,//,|-|....................|--------|........", + "//,///,///G//,///,///,/////,,,,|........................................", + "//,///,//////,///,///,/////,//,|.....|--------|--------|................", + ",,,,,,,//////,,,,,,,,,////|-[[-|.....|r r|0000__00|................", + "//,///,//////,///,///,////| |.....|r r r r|0 __ 0|................", + "//,///,//////,///,///,////V |.....| r r |$$ N|................", + "//,///,//////,///,///,////V |-|...|r r|$$ c6c 0|................", + ",,,,,,,//////,,,,,,,,,////V |---|r r| h c|................", + "//,///,//////,///,///,////| 6|5 |-uuuu-=-|-uuuu-=-||-----|.........", + "//,///,//////,///,///,////[ G = |k6koo|----|....", + "//,///,///G//,///,///,////[ = vkh = |....", + ",,,,,,,//////,,,,,,,,,////| |------|-HHHH--HHHH-| v k| c|....", + "//////////////////////////V |......| | v h6v c|....", + "//////////////////////////V |-|.|--|-| hh hh V v kv c|....", + "////////////////////////G/V |...|tS|D hnnh hnnh V | P| c|....", + "//////////////////////////| |...| + hnnh hnnh V = hk|----|....", + "HHHH-HHHH--HHHH-HHHH-HHHH-| |...|--| hh hh V |ook6k|.........", + " |...| + | |-uuu-|--|......", + " |...|tS|l [ |......", + " |...|--|l G [ |......", + " |......|c | |-----| |......", + "-----| 6 |----------------|......|S hh hh V |ook6k| |......", + ".....|--====--|.......................|c hnnh hnnh V = hk| |......", + ".....| 6 |.......................|c hnnh hnnh V | | |---|..", + "-|...| |....|--------|.........|-| hh hh V v | |rrr|..", + " |...| G |....| ! ! |...........| | v P| + |..", + " |..||-| |-|....| ! ! |........|--|-HHH-[[-HHH-| vk o| |rcS|..", + "!|..|EE| |......| ! ! |..|-----| vkh o| |---|..", + " |..|EE= |......| * * |..| kh | |6k o| |......", + " |..|EE= |------| ! ! |..| k6k v |-uuu-|-uuuuuu-||-----| |......", + "!|..|--| |cccc P|-uu++uu-|..| h v |o kk| |rrrrrr| |......", + " |..|EE| V6h | c6|..| v = h6h| i i | v |-|-|..", + " |..|EE= Vc |c6c hc|..| k v | k | |rrrr + |t|t|.." + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, "place_monsters": [ { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.45 } - ], - "place_vehicles": [ { "vehicle": "golf_cart", "x": 3, "y": 22, "chance": 75, "rotation": 90 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_17" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " |t | @ @ |..........", - " |BB|d@ @d|..........", - " |--|-------|..........", - " | |..........", - " [ |..........", - " |-+| |..........", - " |S | |..........", - " |t | @ @ |..........", - " |BB|d@ @d|..........", - "[-|--|-------|..........", - " |...................|-", - " |...................| ", - " |.......|--------|..| ", - " |.......|rrrrrrr |..| ", - " |.......| |..| ", - " |.......| ||-| ", - " |.......|rrrrrr 5|5 ", - " |.......|rrrrrr = ", - " |.......| = ", - "--|.......|rrrrrr = ", - "..........|rrrrrr | ", - "..........| ||-| ", - "----|.....| |..| ", - "////|.....|rrrrrrr |..| " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "cop_evidence", "x": [ 11, 17 ], "y": [ 13, 13 ], "chance": 70 }, - { "group": "cop_evidence", "x": [ 11, 16 ], "y": [ 16, 17 ], "chance": 70 }, - { "group": "cop_evidence", "x": [ 11, 16 ], "y": [ 19, 20 ], "chance": 70 }, - { "group": "cop_evidence", "x": [ 11, 17 ], "y": [ 23, 23 ], "chance": 70 }, - { "group": "bed", "x": [ 7, 7 ], "y": [ 0, 1 ], "chance": 70 }, - { "group": "bed", "x": [ 11, 11 ], "y": [ 0, 1 ], "chance": 70 }, - { "group": "hospital_bed", "x": [ 6, 6 ], "y": [ 1, 1 ], "chance": 70 }, - { "group": "hospital_bed", "x": [ 12, 12 ], "y": [ 1, 1 ], "chance": 70 }, - { "group": "bed", "x": [ 7, 7 ], "y": [ 7, 8 ], "chance": 70 }, - { "group": "bed", "x": [ 11, 11 ], "y": [ 7, 8 ], "chance": 70 }, - { "group": "hospital_bed", "x": [ 6, 6 ], "y": [ 8, 8 ], "chance": 70 }, - { "group": "hospital_bed", "x": [ 12, 12 ], "y": [ 8, 8 ], "chance": 70 } + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 16 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 16 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.25 } ], + "place_vehicles": [ + { "vehicle": "golf_cart", "x": 19, "y": 16, "chance": 20, "rotation": 180 }, + { "vehicle": "golf_cart", "x": 19, "y": 20, "chance": 20, "rotation": 180 }, + { "vehicle": "golf_cart", "x": 15, "y": 16, "chance": 20, "rotation": 0 }, + { "vehicle": "golf_cart", "x": 15, "y": 20, "chance": 20, "rotation": 0 }, + { "vehicle": "golf_cart", "x": 4, "y": 16, "chance": 20, "rotation": 180 }, + { "vehicle": "golf_cart", "x": 4, "y": 20, "chance": 20, "rotation": 180 }, + { "vehicle": "golf_cart", "x": 0, "y": 16, "chance": 20, "rotation": 0 }, + { "vehicle": "golf_cart", "x": 0, "y": 20, "chance": 20, "rotation": 0 }, + { "vehicle": "golf_cart", "x": 19, "y": 24, "chance": 20, "rotation": 180 }, + { "vehicle": "golf_cart", "x": 15, "y": 24, "chance": 20, "rotation": 180 }, + { "vehicle": "golf_cart", "x": 4, "y": 24, "chance": 20, "rotation": 0 }, + { "vehicle": "golf_cart", "x": 0, "y": 24, "chance": 20, "rotation": 0 } + ] + }, + "om_terrain": [ + [ "necropolis_c_61", "necropolis_c_62", "necropolis_c_63" ], + [ "necropolis_c_70", "necropolis_c_71", "necropolis_c_72" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "......................| khkhkh |.| L|--| hhhhhhhhhhhh hhhhhhhh", + "......................| n |-| |EE| ", + "......................| n [ +EE| hhhhhhhhhhhh hhhhhhhh", + "......................| n |-| +EE| ", + "......................| khkhkh |.| |--| hhhhhhhhhhhh hhhhhhhh", + "......................| k |.|L L|..| ", + "......................|hk khkhkh |.|L L|..| hhhhhhhhhhhh hhhhhhhh", + "......................|k6 |.|L L|..|G ", + "......................|----------|.|L L|--| hhhhhhhhhhhh hhhhhhhh", + "...................................|L | | ", + "......................|----------|.|L [ >| hhhhhhhhhhhh hhhhhhhh", + "......................| |.|L | | ", + "......................| khkhkh |.|L |--| hhhhhhhhhhhh hhhhhhhh", + "......................| |.|L [ [ ", + "......................| khkhkh |.| [ [ ", + "......................| n |-| |--| aAAAAAAAAAAAAAAAAAAAAAAAA", + "......................| n [ |..| a ", + "......................| n |-| L|..|-[| ", + "......................| khkhkh |.| L|..| ", + "......................| k |.|L |--| -------------------------", + "......................|hk khkhkh |.|L [ [ ", + "......................|k6 |.|L [ [ ", + "......................|----------|.|-----|--|---------------------------", + "........................................................................" + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.45 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.45 } + ] + }, + "om_terrain": [ [ "necropolis_c_73", "necropolis_c_74", "necropolis_c_75" ] ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "hhhh |--|L L|...............|r rr|.| |c |u+u| c|..|---| |---", + " |EE| L|...............|-| |-|.| |6h cv vc h6|......|5 |...", + "hhhh |EE+ |.................|[[|...| |ccccv vcccc|......|-==|...", + " |EE+ |-----------------| |---| |-uu-|u+u|-uu-|------|6 |---", + "hhhh |--| ", + " |..|L G G ", + "hhhh |..|L |----------------------| |---------------| |--------", + " G|..|L |......................|H[[H|...............| |........", + "hhhh |--|L L|.|----------|.|-------| |-------|.|-|---| |---|-|.|", + " | | L|.| 6k|.| G|.|t+ + + +t|.|", + "hhhh |> [ L|.| hkhkhk kh|.| |.|-| D| |D |-|.|", + " | | L|.| k |.| h h h hc ch h h h |.|t+ S| |S +t|.|", + "hhhh |--| |.| hkhkhk |.| 6c6c6c6c c6c6c6c6 |.|-| c| |c |-|.|", + " [ [ |-| n |.| |.|t+ S| |S +t|.|", + " [ [ [ n |.| h h h hc ch h h h |.|-| c| |c |-|.|", + "AAAa |--| |-| n |.| 6c6c6c6c c6c6c6c6 |.|t+ S| |S +t|.|", + " a |..|-----|.| hkhkhk |.| |.|-|---| |---|-|.|", + " |[-|..........| |.| h h h hc ch h h h |.......| |.......|", + " |..........| hkhkhk |.| 6c6c6c6c c6c6c6c6 |-------| |-------|", + "---- |..........| |.| [ [", + " |..........|----------|.|6kk nnnn [ [", + " |.......................|khG |-------------------|", + "------|.......................|--------------------|...................|", + "........................................................................" + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 12 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 12 ], "y": [ 1, 22 ], "density": 0.45 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_18" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "|!*!|.........|!*!|.....", - "| |.|-----|.| |.....", - "| |.|6 h |.| |.....", - "|!*!|-|66kk |-|!*!|.....", - "| !!!!!*! |.....", - "| |.....", - "| G |.....", - "|-----| |-----|.....", - "......| 5|...........", - "......|-===-|...........", - "------| 5|...........", - " G |...........", - " |...........", - " |---------|...........", - " |.....................", - " |-------------------|.", - " Vbbb6k V 6 V h |.", - " V kh V k6k V k6k |.", - "G k V V |.", - " VH HVH H|.", - " V |.", - " Vbbb |.", - " |-----| |.", - " |.....|kh hk|." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "cop_gear", "x": [ 18, 20 ], "y": [ 17, 17 ], "chance": 50 }, - { "group": "cop_gear", "x": [ 12, 14 ], "y": [ 17, 17 ], "chance": 50 }, - { "group": "cop_gear", "x": [ 7, 7 ], "y": [ 16, 18 ], "chance": 50 }, - { "group": "prison_weapons", "x": [ 9, 10 ], "y": [ 3, 3 ], "chance": 70 } - ], + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.25 } + ] + }, + "om_terrain": [ [ "necropolis_c_76", "necropolis_c_77", "necropolis_c_78" ] ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "-|..|EE= Vc o| h c|..|h6h | v | i c6c| v |+|+|..", + "....|--| V o| |..|kk = v o| hc|rrrrrr| | |..", + ".......| | | |..|o o| v h o|--|+|---|------| + |..", + "-------| |-H[[H-|-uuuu-=-|--|-uuu-| vk6k |..| |..........| |SDS|..", + " |kh P|..| |---|------| |---|..", + " |-----|..| + ooP| |SDS|..", + "-------| |---------|-uuuu-=-|-=-uuuu-|........| | v + |..", + ".......|H[[H|.........|c | c|.|------|+--|-| k v | |..", + "-------| |-------|.|6h c|c h6|.| cGh o|.|hk v |+|+|..", + "G |.|c h6|6h c|.| c6cc o|.|k6 | |t|t|..", + " |.|c h h c|c h h c|.| |-|-uu-=-| |-|-|..", + " h h h hc ch h h h |.|cc6c6ccc|ccc6c6cc|.| i i | |......", + " 6c6c6c6c c6c6c6c6 |.|--------|--------|.| v |......", + " |.....................| i i v |-uu[[uu-|----|.", + " h h h hc ch h h h |.....................| | | |.", + " 6c6c6c6c c6c6c6c6 |---------------------|-uu-uu-uu-| v h h h h h |.", + " [ v 6 6 6 6 6 |.", + " h h h hc ch h h h [ | h h h h h |.", + " 6c6c6c6c c6c6c6c6 |-----------------------------------| 6 6 6 6 6 |.", + " |...................................| G |.", + " nnnn k6k|...................................| c6c |.", + " Ghk|...................................| h |.", + "--------------------|...................................|-------------|.", + "........................................................................" + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, "place_monsters": [ { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.45 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_19" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "...|S | jj jj j j ", - "...|c T| G ", - "...|---|----------------", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "....................|---", - "....................| 5", - "....................| ", - "....................| |-", - "....................| |.", - "...................|| |-", - "...................| c", - "..................||G c", - "..................|L h6", - "..................|L c" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ { "group": "cop_armory", "x": [ 19, 19 ], "y": [ 22, 23 ], "chance": 90 } ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_20" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "j j V |...|////////", - " P| |...|////////", - "--------| ||..|////G///", - "........| |..|////////", - "........| 5|..|////////", - "........|==-|..|////////", - "........| 6|..|--------", - "........| |...........", - "........| ||...........", - "........| |............", - "........| |............", - "|-------| |............", - "| |............", - "| |............", - "| |-------|............", - "| |........|-----------", - "= |---|----|rrrGrrr rrr", - "| | < |EEEE| ", - "| | |EEEE| EEEEEE ", - "| |-[-|-++-| EEEEEE ", - "| | | EEEEEE ", - "v v v EEEEEE ", - "v v v EEEEEE ", - "v v G| EEEEEE " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "rad_gear", "x": [ 21, 23 ], "y": [ 16, 16 ], "chance": 85 }, - { "group": "hazmat_mask", "x": [ 17, 19 ], "y": [ 16, 16 ], "chance": 85 }, - { "group": "fireman_gear", "x": [ 13, 15 ], "y": [ 16, 16 ], "chance": 85 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 12 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 12 ], "density": 0.25 } + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.25 } ] - } - }, - { + }, + "om_terrain": [ [ "necropolis_c_79", "necropolis_c_80", "necropolis_c_81" ] ], "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_21" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "//////////////////////=/", - "//////////////////////=/", - "/////////////G////////=/", - "//////////////////////=/", - "//////////////////////=/", - "/|----------------|//5|-", - "-|................|---|.", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "|-|..|-------|....|-----", - "|F|..|///2222|....|r//rr", - "| |..|//44//2|....|r////", - "| |..|//44//2|....|r////", - "| |..|//////2|....|r////", - "| |..|---|792|----|7777|", - "| |..|rrr|//2/////8////V", - "| |--| v//2//K//8////V", - "| + =//44/G//9////V", - "|----| 5|//44////9////V" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "rad_gear", "x": [ 19, 19 ], "y": [ 15, 18 ], "chance": 85 }, - { "group": "hazmat_mask", "x": [ 22, 23 ], "y": [ 15, 15 ], "chance": 85 }, - { "group": "fireman_gear", "x": [ 6, 8 ], "y": [ 20, 20 ], "chance": 85 } - ], - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 10 ], "density": 0.25 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_22" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "////////////////////////", - "////////////////////////", - "/////////G//////////////", - "////////////////////////", - "////////////////////////", - "----|/////////|---------", - "....|-|/////|-|.........", - "......|/////|...........", - "......|/////|...........", - "......|/////|...........", - "......|/////|...........", - "......|/////|...........", - "......|/////|...........", - "......|/////|...........", - "----|.|//G//|...........", - "r//r|.|/////|...........", - "///r|.|/////|...........", - "///r|.|/////|...........", - "///r|.|/////|---|.......", - "-=--|-|/////////|.......", - "c rr| //////,,,,|.......", - "c | //////,//,|.......", - "6hG + //////,//G|.......", - "c | //////,//,|......." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "hazmat_full", "x": [ 3, 3 ], "y": [ 15, 18 ], "chance": 85 }, - { "group": "hazmat_mask", "x": [ 0, 0 ], "y": [ 15, 15 ], "chance": 85 }, - { "group": "mechanics", "x": [ 2, 3 ], "y": [ 20, 20 ], "chance": 85 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 6, 22 ], "y": [ 1, 20 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 6, 22 ], "y": [ 1, 20 ], "density": 0.25 } - ], - "place_vehicles": [ { "vehicle": "golf_cart", "x": 13, "y": 22, "chance": 50, "rotation": 270 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_23" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "//////,,,,//////////////", - "//////,//,//////////////", - "//G///,,,,///G//////////", - "//////,//,//////////////", - "//////,,,,//////////////", - "------| ,,,,,,,,,,,,,/|", - "......| ,///,///,///,/|", - "......| ,///,///,///,/|", - "......| ,///,///,///, ", - "......| ,,,,,,,,,,,,, ", - "......|G |", - "......|-----| |----|", - "............| 5|.....", - "............|-===-|.....", - "............| 5|.....", - ".|-----|----| |--|..", - ".| vccc6c |St|..", - ".| RRR vc h + |..", - ".| RRR v6h G |--|..", - ".| RRR vc h + r|..", - ".| vcc6cc |--|..", - ".|-|=--|HHHHH[H|[-|rr|..", - "...| | |..", - "...|H[H|H[H|H[H|rrrrr|.." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_radio_tower", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "cleaning", "x": [ 20, 20 ], "y": [ 19, 19 ], "chance": 85 }, - { "group": "electronics", "x": [ 16, 20 ], "y": [ 23, 23 ], "chance": 85 }, - { "group": "mechanics", "x": [ 19, 20 ], "y": [ 21, 21 ], "chance": 85 } - ], - "place_npcs": [ - { "class": "old_guard_necropolis_commo", "x": 10, "y": 18 }, - { "class": "old_guard_soldier", "x": 17, "y": 20 }, - { "class": "old_guard_soldier", "x": 17, "y": 16 }, - { "class": "old_guard_soldier", "x": 14, "y": 20 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 10 ], "density": 0.25 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 10 ], "density": 0.25 } - ], - "place_vehicles": [ - { "vehicle": "golf_cart", "x": 11, "y": 7, "chance": 25, "rotation": 270 }, - { "vehicle": "golf_cart", "x": 15, "y": 8, "chance": 25, "rotation": 270 }, - { "vehicle": "golf_cart", "x": 18, "y": 7, "chance": 25, "rotation": 270 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_24" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "///////////,,,//////////", - "///////////,/,//////////", - "///////G///,,,///////G//", - "///////////,/,//////////", - "///////////,,,//////////", - "-----------| ,,,,,,,,,,,", - "...........| ,///,///,//", - "-----------| ,///,///,//", - " G ,///,///,//", - " ,,,,,,,,,,,", - "--| |----| G ", - "..| |....|------------", - "..| |.................", - "..| |--|.....|--|-----", - "..| | |.....|EE| ", - "..| [ >|.....|EE+ ", - "..| | |.....|EE+ |-", - "..| |--|.....|--| | ", - "..| |....|--|...| | ", - "..| |----| 5|---| | ", - "..| = | ", - "..| G = | ", - "..| = | ", - "..|---| |---|5 |---| " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 } - ], - "place_vehicles": [ - { "vehicle": "golf_cart", "x": 23, "y": 7, "chance": 25, "rotation": 270 }, - { "vehicle": "golf_cart", "x": 18, "y": 7, "chance": 25, "rotation": 270 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_25" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "/////,,,////////////////", - "/////,/,////////////////", - "/////,,,//////G/////////", - "/////,/,////////////////", - "/////,,,////////////////", - ",,,,,, |------------|///", - "/,///, |............||//", - "/,///, |.............|//", - "/,///, |...........|-|//", - ",,,,,, |.|----|----|////", - " G |.|rrrr| ///////", - "-------|.| 6| ,,,,,//", - ".........| h6| ,///,//", - "---------|u=uu| ,///,//", - " | ,///,//", - " 5|5 ,,,,,//", - "---[[----| = ,///,//", - " | = ,///,//", - "bbb bbb | = ,///,//", - " | |G ,,,,,//", - "bbb bbb |-+|-| ,///,//", - " |S |.| ,///,//", - "bbb bbb |t |.| ,///,//", - " |--|-| ,,,,,//" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "church", "x": [ 5, 7 ], "y": [ 18, 18 ], "chance": 70 }, - { "group": "church", "x": [ 5, 7 ], "y": [ 20, 20 ], "chance": 70 }, - { "group": "church", "x": [ 5, 7 ], "y": [ 22, 22 ], "chance": 70 }, - { "group": "church", "x": [ 0, 2 ], "y": [ 18, 18 ], "chance": 70 }, - { "group": "church", "x": [ 0, 2 ], "y": [ 20, 20 ], "chance": 70 }, - { "group": "church", "x": [ 0, 2 ], "y": [ 22, 22 ], "chance": 70 }, - { "group": "prison_weapons", "x": [ 10, 11 ], "y": [ 10, 10 ], "chance": 85 }, - { "group": "prison_armor", "x": [ 12, 13 ], "y": [ 10, 10 ], "chance": 85 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ], - "place_vehicles": [ - { "vehicle": "golf_cart", "x": 19, "y": 17, "chance": 25, "rotation": 90 }, - { "vehicle": "golf_cart", "x": 19, "y": 13, "chance": 25, "rotation": 90 }, - { "vehicle": "golf_cart", "x": 19, "y": 21, "chance": 25, "rotation": 90 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_26" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "////|.....|--------|..| ", - "////|.................| ", - "G///|.....|---------|-| ", - "////|.....|rrrrrrr 5|5 ", - "////|.....| = ", - "////|.....| rrrrr = ", - "///||.....| = ", - "///|......|rrrrrrr | ", - "///|-|....|--|------|-| ", - "/////|----|..|t+ cScSc| ", - "//////// |..|-| | ", - "///,,,,, |..|t+ D| ", - "///,///, |..|-|-|-+--| ", - "///,///, |......| ", - "///,///, |-|----| ", - "///,,,,, 5|5 ccc|", - "///,///, = c |", - "G//,///, = G 6h |", - "///,///, = c |", - "///,,,,, G| cc |", - "///,///, |-|----| ", - "///,///, |......| ", - "///,///, |....|-|-HH-| ", - "///,,,,, |....| | " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "cop_gear", "x": [ 12, 16 ], "y": [ 5, 5 ], "chance": 85 }, - { "group": "prison_weapons", "x": [ 11, 17 ], "y": [ 3, 3 ], "chance": 85 }, - { "group": "prison_armor", "x": [ 11, 17 ], "y": [ 7, 7 ], "chance": 85 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ], - "place_vehicles": [ - { "vehicle": "golf_cart", "x": 5, "y": 17, "chance": 25, "rotation": 270 }, - { "vehicle": "golf_cart", "x": 5, "y": 13, "chance": 25, "rotation": 270 }, - { "vehicle": "golf_cart", "x": 5, "y": 21, "chance": 25, "rotation": 270 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_27" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " |---|.|6kkh hkk6|.", - " |EEE|.| |.", - " +EEE|.| |.", - " +EEE|.|kh hk|.", - " |EEE|.|6kkh hkk6|.", - "G |---|-| |.", - " |kh V |.", - " V6kkh Vkh hk|.", - " V V6kkh kk6|.", - " VHH+HHV h |.", - " |.", - " |.", - " VHH+HHV |.", - " V V6kkh hkk6|.", - " V6kkh Vkh hk|.", - "--|kh V |.", - "..|-----|--| 5 |---|.", - "...........|--===-|.....", - "........|--||5 |---|.", - "--|.....|t ! ! t|.", - " |.....| * * |.", - " |.....|@@ ! ! @@|.", - " |.....|!!!! !!!!|.", - " |.....|@@ ! ! @@|." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "bed", "x": [ 20, 21 ], "y": [ 21, 21 ], "chance": 50 }, - { "group": "bed", "x": [ 20, 21 ], "y": [ 23, 23 ], "chance": 50 }, - { "group": "bed", "x": [ 9, 10 ], "y": [ 21, 21 ], "chance": 50 }, - { "group": "bed", "x": [ 9, 10 ], "y": [ 23, 23 ], "chance": 50 }, - { "group": "cop_gear", "x": [ 3, 5 ], "y": [ 7, 7 ], "chance": 50 }, - { "group": "cop_gear", "x": [ 3, 5 ], "y": [ 14, 14 ], "chance": 50 }, - { "group": "cop_gear", "x": [ 9, 11 ], "y": [ 13, 13 ], "chance": 50 }, - { "group": "cop_gear", "x": [ 19, 21 ], "y": [ 13, 13 ], "chance": 50 }, - { "group": "cop_gear", "x": [ 9, 11 ], "y": [ 8, 8 ], "chance": 50 }, - { "group": "cop_gear", "x": [ 19, 21 ], "y": [ 8, 8 ], "chance": 50 }, - { "group": "cop_gear", "x": [ 9, 11 ], "y": [ 4, 4 ], "chance": 50 }, - { "group": "cop_gear", "x": [ 19, 21 ], "y": [ 4, 4 ], "chance": 50 }, - { "group": "cop_gear", "x": [ 9, 11 ], "y": [ 0, 0 ], "chance": 50 }, - { "group": "cop_gear", "x": [ 19, 21 ], "y": [ 0, 0 ], "chance": 50 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_28" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..................|| h6", - "...................| c", - "...................|----", - "........................", - "........................", - "........................", - "........................", - "................|-------", - "................|///////", - "..............|-|///////", - "..............|/////////", - "..............|/////////", - "..............|////G////", - "..............|/////////", - "..............|/////////", - "..............|/////////", - "..............|/////////", - "..............|///////|-", - "..............|///////|.", - "..............|///////|.", - "..............|///////|.", - "..............|///////|.", - "..............|///G///|.", - "..............|///////|." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_29" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "v v [ EEEEEE ", - "| | | EEEEEE ", - "| |--| |--| EEEEEE ", - "| |..| | + EEEEEE ", - "| |..|[[|Sr| 5 G", - "| |--| |--|---======-|", - "| G ,//////5|", - "|,,,,,,,,,,,,,,,///////|", - "////////////////////////", - "///////////////////G////", - "////////////////////////", - "////////////////////////", - "/////////G//////////////", - "////////////////////////", - "////////////////////////", - "////////////////////////", - "|-----------------------", - "|.......................", - "..|---------------------", - "..|/////////////////////", - "..|//,,,,,,,///,,,,,,,//", - "..|//,/////,///,/////,//", - "..|//,/////,/I/,/////,/I", - "..|//,/////,///,/////,//" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ { "group": "cleaning", "x": [ 11, 11 ], "y": [ 4, 4 ], "chance": 50 } ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 4, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 4, 22 ], "density": 0.25 } - ], - "place_vehicles": [ { "vehicle": "golf_cart", "x": 10, "y": 9, "chance": 25, "rotation": 180 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_30" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "|....|rrr|//X/////8////V", - "|....|---|//2|----|////|", - "|....|r/////2|....|/////", - "|....|r/44//2|....|L////", - "|....|r/44//2|....|L////", - "|....|r//2222|....|L////", - ".....|-------|....|-----", - "-|......................", - "/|------------------|...", - "////////////////////|-|.", - "//////////////////////|-", - "////////////////////////", - "///////G////////////////", - "//////////////////G/////", - "////////////////////////", - "////////////////////////", - "------------|///////////", - "............|-|///////|-", - "----------|...|///////|.", - "//////////|...|///////|.", - "/,,,,,,,//|...|///////|.", - "/,/////,//|...|///////|.", - "/,/////,//|...|///G///|.", - "/,/////,//|...|///////|." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "home_hw", "x": [ 19, 19 ], "y": [ 2, 5 ], "chance": 90 }, - { "group": "mechanics", "x": [ 19, 19 ], "y": [ 3, 5 ], "chance": 90 }, - { "group": "electronics", "x": [ 6, 6 ], "y": [ 2, 5 ], "chance": 90 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_31" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "c 5r|G//////,,,,|.......", - "-=--|-|/////////|.......", - "////|.|/////|---|.......", - "////|.|/////|...........", - "////|.|/////|...........", - "/cSc|.|//G//|...........", - "----|.|/////|...........", - "......|/////|...........", - "......|/////|...........", - "....|-|/////|-|.........", - "----|/////////|---------", - "////////////////////////", - "////////////////////////", - "/////////G//////////G///", - "////////////////////////", - "////////////////////////", - "|----|/,,,,,//,,,,,/|---", - "|....|/,///,//,///,/|...", - ".....|/,///,//,///,/|...", - ".....|/,///,//,///,/|...", - ".....|/,,,,,//,,,,,/|...", - ".....| G G |...", - "|--|-|HHHHH-[[-HHHHH|-|-", - "|EE| |E" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 4, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 4, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ], - "place_vehicles": [ - { "vehicle": "golf_cart", "x": 16, "y": 18, "chance": 25, "rotation": 270 }, - { "vehicle": "golf_cart", "x": 9, "y": 18, "chance": 25, "rotation": 270 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_32" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "...| | | |-----|..", - "...|c6 |c6 |c6 |........", - "...| h | h | h |........", - "...|---|---|---|........", - "........................", - "........................", - "................|-------", - "................|,///,//", - "................|,///,//", - ".|---------|.|--|,///,//", - "-|/////////|-|5//,,,,,,,", - "/////////////=//////////", - "/////////////=//////////", - "//////G//////=/G////////", - "/////////////=//////////", - "/////////////=//////////", - "-|/////////|-----|,,,,,,", - ".|-|/////|-|.....|///,//", - "...|/////|.......|///,//", - "...|/////|.......|///,//", - "...|/////|.......|------", - "...|/////|..............", - "-|.|/////|..............", - "E|.|/////|..........|---" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 6, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 6, 22 ], "density": 0.25 } - ], - "place_vehicles": [ - { "vehicle": "golf_cart", "x": 23, "y": 8, "chance": 15, "rotation": 270 }, - { "vehicle": "golf_cart", "x": 23, "y": 18, "chance": 15, "rotation": 270 }, - { "vehicle": "golf_cart", "x": 19, "y": 8, "chance": 15, "rotation": 270 }, - { "vehicle": "golf_cart", "x": 19, "y": 18, "chance": 15, "rotation": 270 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_33" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "......| |Pll|---| a ", - "......| | h + a ", - "......| | hnnnh |b aA", - "......| | hn nh |b h", - "......| | hn nh |b n", - "......| | hn nh |b ", - "------| | hnnnh |b c", - "/,///,G | h | ", - "/,///, |-------|-----", - "/,///,////|.............", - ",,,,,,,//,|-------------", - "//////,,,,//////////////", - "//////,//,//////////////", - "//G///,,,,//////////////", - "//////,//,//////////////", - "//////,,,,//////////////", - ",,,,,,,//,|--|----------", - "/,///, G|..| 666666666", - "/,///|-[[-|..| ", - "/,///| |..| ", - "|----| |..|k6k Gkk6k", - "| c |..| hk hk", - "| c |..| aAAA", - "|G h6 G|..|k6k a 6k" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "office", "x": [ 20, 23 ], "y": [ 20, 20 ], "chance": 70 }, - { "group": "office", "x": [ 14, 16 ], "y": [ 23, 23 ], "chance": 70 }, - { "group": "office", "x": [ 14, 16 ], "y": [ 20, 20 ], "chance": 70 }, - { "group": "office", "x": [ 13, 15 ], "y": [ 2, 6 ], "chance": 70 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 12, 14 ], "density": 0.35 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 12, 14 ], "density": 0.35 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_34" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "bbb bbb a | ///////", - " a |----|////", - "AAA AAAAA b|....|-|//", - "hh hhh b|......|//", - "nn G nnn b|......|//", - " b|......|//", - "ccc6ccc c6c b|......|//", - "h c h ch |......|//", - "--------------|......|//", - "...................|-|//", - "-------------------|////", - "////////////////////////", - "////////////////////////", - "/G//////////////////////", - "////////////////////////", - "////////////////////////", - "------------|------|////", - "66666666666 |......|----", - " |...........", - " |......|----", - " k6kkG k6k|......|BB t", - " kh kh |......|BB ", - "AAAAAa |......| ", - "66k6 a k6k|......|rcSS" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "church", "x": [ 0, 2 ], "y": [ 0, 0 ], "chance": 50 }, - { "group": "church", "x": [ 5, 7 ], "y": [ 0, 0 ], "chance": 50 }, - { "group": "office", "x": [ 2, 5 ], "y": [ 20, 20 ], "chance": 70 }, - { "group": "office", "x": [ 9, 11 ], "y": [ 23, 23 ], "chance": 70 }, - { "group": "office", "x": [ 9, 11 ], "y": [ 20, 20 ], "chance": 70 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 12 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 12 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_35" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "//////// |....| k6 V ", - "/////|----|....| hk hV ", - "///|-|.........| k V ", - "///|...........| kk | ", - "///|...........| [ ", - "///|...........|oo | ", - "///|...........|------|-", - "///|....................", - "///|....................", - "///|-|..................", - "/////|------------------", - "////////////////////////", - "////////////////////////", - "G///////////////////////", - "////////////////////////", - "////////////////////////", - "/////|------------------", - "-----|..................", - "........................", - "-|----------------------", - " | V^^^^", - " + G G VHHHH", - "c| I cc I cc I ", - "c| " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "museum_misc", "x": [ 8, 9 ], "y": [ 22, 22 ], "chance": 80 }, - { "group": "museum_melee", "x": [ 13, 14 ], "y": [ 22, 22 ], "chance": 80 }, - { "group": "book_military", "x": [ 16, 17 ], "y": [ 5, 5 ], "chance": 70 }, - { "group": "cop_gear", "x": [ 19, 19 ], "y": [ 1, 3 ], "chance": 50 } - ], - "place_npcs": [ { "class": "old_guard_soldier", "x": 14, "y": 23 }, { "class": "old_guard_soldier", "x": 8, "y": 21 } ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 12 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 12 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_36" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " |.....| * * |.", - " |.....|t ! ! t|.", - " |-|---|!!!! !!!!|.", - " = ! t|.", - " = * |.", - " = ! @@|.", - "-| 5|5 |--------------|.", - ".|--|--|................", - "........................", - "......|---------|.......", - "------|/////////|.......", - "////////////////|.......", - "////////////////|.......", - "///////////G////|.......", - "////////////////|.......", - "////////////////|.......", - "------|/////////|.......", - "......|-|/////|-|.......", - "........|/////|.........", - "------|.|/////|.........", - "^^^^^^|.|/////|.........", - "HHV^^^|.|/////|.........", - " VHV^|.|/////|.........", - " 6 V^|.|/////|........." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ { "group": "bed", "x": [ 20, 21 ], "y": [ 8, 8 ], "chance": 50 } ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 14 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 14 ], "density": 0.05 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_37" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..............|///////|.", - "..............|///////|.", - "..............|///////|.", - "..............|///////|.", - "..............|///////|.", - "..............|///////|-", - "..............|/////////", - "..............|/////////", - "..............|/////////", - "..............|/////////", - "..............|////G////", - "..............|/////////", - "..............|/////////", - "..............|/////////", - "..............|///////|-", - "..............|-------|.", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_38" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..|//,/////,///,/////,//", - "..|//,/////,/&/,/////,/&", - "..|//,/////,///,/////,//", - "..|//,/////,///,/////,//", - "..|//,/////,/I/,/////,/I", - "--|//,/////,///,/////,//", - "/5|5/,,,,,,,///,,,,,,,//", - "//=/////////////////////", - "//=///////////////G/////", - "//=/////////////////////", - "//=///G/////////////////", - "//=/////////////////////", - "//=/////////////////////", - "//=///////////,,,,,,,,,/", - "--|///////////,EEEEEEE,/", - "..|///////////,EEEEEEE,/", - "..|//////////I,EEEEEEE,I", - "..|///////////,EEEEEEE,/", - "..|///////////,EEEEEEE,/", - "..|///////////,EEEEEEE,&", - "..|///////////,EEEEEEE,/", - "..|-|/////////,,,,,,,,,/", - "....|////////|-7799977-|", - "....|////////|r/////rrr|" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "&": "t_gas_pump", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ { "group": "cavern", "x": [ 20, 22 ], "y": [ 23, 23 ], "chance": 80 } ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } - ], - "place_vehicles": [ - { "vehicle": "humvee", "x": 9, "y": 1, "chance": 60, "rotation": 90 }, - { "vehicle": "humvee", "x": 19, "y": 1, "chance": 60, "rotation": 90 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_39" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "/,/////,//|...|///////|.", - "/,/////,//|...|///////|.", - "/,/////,//|...|///////|.", - "/,/////,//|...|///////|-", - "/,/////,//|...|//////// ", - "/,/////,//|---|//////// ", - "/,,,,,,,/5|5/////////// ", - "//////////=//////////// ", - "//////////=//////////// ", - "//////////=//////////// ", - "//////G///=//////G////|-", - "//////////=///////////|.", - "//////////=///////////|.", - "//////////=///////////|.", - "//////////|-|/////////|.", - "//////////|.|-|/////|-|.", - "/,,,,,,,//|...|-----|...", - "/,/////,//|.............", - "/,/////,//|...|---------", - "/,/////,//|...|o G ", - "/,/////,//|...|o h h", - "/,/////,//|...| h h", - "/,/////,//|...| n h h", - "/,/////,//|...| hn " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ { "group": "novels", "x": [ 15, 15 ], "y": [ 19, 20 ], "chance": 80 } ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } - ], - "place_vehicles": [ - { "vehicle": "humvee", "x": 5, "y": 1, "chance": 100, "rotation": 90 }, - { "vehicle": "humvee", "x": 3, "y": 20, "chance": 100, "rotation": 270 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_40" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "|EE+ +E", - "|EE+ +E", - "|EE| cc6ccc |E", - "|--| cc h cc |-", - "V G c c G ", - "V cc rr cc nn ", - "[ ch rr hc ", - "[ 6 rr 6 ", - "V cc rr cc nn ", - "V G c G ", - "|--| cc h cc |-", - "...| cc6ccc b|.", - "...|r nn b|.", - "...|r b|.", - "...|rrr bbbbb|.", - "...|------| |---|-|||", - "..........| 5|ccS|t|t|", - "..........|-==-|S |+|+|", - "----------| 5|c |", - " | + |", - " h h h h V |----|--|", - " h h h h V |cScS|..|", - " h h h h | + |..|", - " [ | |..|" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "necropolis_visitors", "x": [ 12, 13 ], "y": [ 5, 5 ], "chance": 80 }, - { "group": "necropolis_visitors", "x": [ 12, 13 ], "y": [ 6, 6 ], "chance": 80 }, - { "group": "necropolis_visitors", "x": [ 12, 13 ], "y": [ 8, 8 ], "chance": 80 }, - { "group": "necropolis_visitors", "x": [ 12, 13 ], "y": [ 7, 7 ], "chance": 80 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_41" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "E|.|/////|..........|r r", - "E|.|/////|..........|r r", - "E|.|/////|..........|r r", - "-|-|/////|..........|-+-", - "bV///////|..........|c ", - "bV///////|..........|6h ", - "bV////G//|..........|c ", - "bV///////|..........|c ", - "bV///////|..........|6h ", - "bV///////|..........|ccc", - "---|/////|........|-|HHH", - "...|/////|........|cc ", - "...|/////|........|S ", - "...|/////|........|O ", - "...|/////|........|f h", - "...|/////|........|c h", - "..||/////||.......|D h", - "..|///////|.......| G ", - "..|//////5|.......|-----", - "..|-=====-|.............", - "..|//////5|.............", - "..|///////|.............", - "..||//G//||.............", - "...|/////|.............." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "fridgesnacks", "x": [ 19, 19 ], "y": [ 14, 14 ], "chance": 80 }, - { "group": "prison_weapons", "x": [ 23, 23 ], "y": [ 0, 2 ], "chance": 80 }, - { "group": "prison_armor", "x": [ 21, 21 ], "y": [ 0, 2 ], "chance": 80 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 12 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 12 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_42" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "| c |..| hk a k ", - "| cc |..| aG ", - "| |..| aAa ", - "|HHHHV |..| kka ", - " V |--|u=u| h6a ", - " 5|5 Gv ka ", - " G = v a ", - " = vkh a ", - "h h V = vk6k a ", - "6cc6cV |--| |-uuu--", - "HHHHHV |..| ", - " |..| G ", - " G|..|----------", - " |-----|.............", - "nnh |...................", - "nnh |..|----------------", - "nnh |..| ", - " |..| bnnb bnnb b", - "----|..| bnnb bnnb b", - ".......| bnnb bnnb b", - ".......| bnnb bnnb b", - ".......| ", - ".......| bnnb bnnb b", - ".......| bnnb bnnb b" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "office", "x": [ 18, 20 ], "y": [ 8, 8 ], "chance": 70 }, - { "group": "dining", "x": [ 0, 1 ], "y": [ 14, 16 ], "chance": 70 }, - { "group": "dining", "x": [ 10, 11 ], "y": [ 17, 20 ], "chance": 70 }, - { "group": "dining", "x": [ 17, 18 ], "y": [ 17, 20 ], "chance": 70 }, - { "group": "dining", "x": [ 10, 11 ], "y": [ 22, 23 ], "chance": 70 }, - { "group": "dining", "x": [ 17, 18 ], "y": [ 22, 23 ], "chance": 70 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 18, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 18, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_43" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " h k a kh |......|----", - " Ga |......| ", - " aAa |......| ", - " a6k |......| |", - " akh |u=u|--|---| |", - " ak vG 5|5 |", - " a v = G|", - " a hkv = |", - " 5a k6kv |--|----| |", - "==--uuu-| |..|rrrr| ", - " 5 |..| + ", - " G |..|cScr|---", - "------------|..|----|...", - "........................", - "....|-|-|..|-|-|........", - "----|t|t|..|t|t|--------", - " |+|+|--|+|+| ", - "nnb | | bnnb ", - "nnb |+|+| |+|+| bnnb ", - "nnb |t|t| |t|t| bnnb ", - "nnb |-|-| |-|-| bnnb ", - " |ScSc cScS| ", - "nnb | | bnnb ", - "nnb | | bnnb " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "cleaning", "x": [ 16, 19 ], "y": [ 9, 9 ], "chance": 70 }, - { "group": "office", "x": [ 5, 7 ], "y": [ 8, 8 ], "chance": 70 }, - { "group": "office", "x": [ 4, 4 ], "y": [ 3, 5 ], "chance": 70 }, - { "group": "dining", "x": [ 18, 19 ], "y": [ 17, 20 ], "chance": 70 }, - { "group": "dining", "x": [ 18, 19 ], "y": [ 22, 23 ], "chance": 70 }, - { "group": "dining", "x": [ 0, 1 ], "y": [ 17, 20 ], "chance": 70 }, - { "group": "dining", "x": [ 0, 1 ], "y": [ 22, 23 ], "chance": 70 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 18, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 18, 22 ], "density": 0.05 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_44" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "-| kk ", - " + k ", - " + k h", - "-| kk ", - ".| ", - ".| I cc I cc I ", - ".| G G VHHHH", - ".| V^^^^", - "-|-------------|-++-----", - " G + ", - " + hh ", - "-----|-+-|-+-|-| hnnnn", - ".....|t S|S t|.| nnnnn", - ".....|---|---|.| hnnG n", - "...............| hnn Gn", - "------------|..| nnnnn", - " |..|c hnnnn", - "bnnb bnnb |..|c hh ", - "bnnb bnnb |..|ccc ", - "bnnb bnnb |..|--------", - "bnnb bnnb |...........", - " |...........", - "bnnb bnnb |...........", - "bnnb bnnb |..........." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "museum_armor", "x": [ 13, 14 ], "y": [ 5, 5 ], "chance": 70 }, - { "group": "museum_guns", "x": [ 8, 9 ], "y": [ 5, 5 ], "chance": 70 }, - { "group": "alcohol", "x": [ 16, 16 ], "y": [ 16, 18 ], "chance": 70 }, - { "group": "alcohol", "x": [ 17, 18 ], "y": [ 18, 18 ], "chance": 70 }, - { "group": "dining", "x": [ 8, 9 ], "y": [ 17, 20 ], "chance": 70 }, - { "group": "dining", "x": [ 8, 9 ], "y": [ 22, 23 ], "chance": 70 }, - { "group": "dining", "x": [ 1, 2 ], "y": [ 17, 20 ], "chance": 70 }, - { "group": "dining", "x": [ 1, 2 ], "y": [ 22, 23 ], "chance": 70 } - ], - "place_npcs": [ - { "class": "old_guard_necropolis_cpt", "x": 23, "y": 1 }, - { "class": "old_guard_soldier", "x": 9, "y": 6 }, - { "class": "old_guard_soldier", "x": 18, "y": 5 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 4 ], "y": [ 20, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 6 ], "y": [ 20, 22 ], "density": 0.05 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_45" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " 66 V^|.|/////|.........", - " 6GV^|.|/////|.........", - " 6 V^|.|/////|.........", - " 66 V^|.|/////|.........", - " 6 V^|.|/////|.........", - " VHV^|.|/////|.........", - "HHV^^^|.|/////|.........", - "^^^^^^|.|/////|.........", - "----|-|.|/////|.........", - " ccc|...|/////|.........", - " c|...|/////|.........", - "h c|...|/////|.........", - "n |...|/////|.........", - "nh |...|/////|.........", - "nh |...|/////|.........", - "n |..||//G//||........", - "h c|..|///////|........", - " c|..|//////5|........", - " ccc|..|-=====-|........", - "----|..|//////5|........", - ".......|///////|........", - ".......||//G//||........", - "........|/////|.........", - "..|-----|/////|-----|..." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "antique", "x": [ 3, 3 ], "y": [ 16, 18 ], "chance": 70 }, - { "group": "antique", "x": [ 1, 2 ], "y": [ 18, 18 ], "chance": 70 }, - { "group": "novels", "x": [ 13, 3 ], "y": [ 9, 11 ], "chance": 70 }, - { "group": "novels", "x": [ 1, 2 ], "y": [ 9, 9 ], "chance": 70 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 12, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 12, 22 ], "y": [ 1, 22 ], "density": 0.05 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_46" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_47" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "....|-|//////8r////////8", - "......|//////8r////////8", - "......|//////8////G///c|", - "......|//////8/ccc////S|", - "......|//////8/ccc////c|", - "......|//////8/////////=", - "......|//////8rrrr/////=", - "......|//////8rrrr/////=", - "......|//////8////////5|", - "......|//////8/////////|", - "......|//////8r///G/cc/|", - "......|//////8r/////cc/8", - "......|//////8r/////cc/8", - "....|-|//////|r////////|", - "....|////////|-7799977-|", - "....|///////////////////", - "..|-|///////////////////", - "..|/////////////////////", - "..|/////////////////////", - "..|/////////////////////", - "..|/////////////////////", - "..|/////////////////////", - "..|/////////////////////", - "..|/////////////////////" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "cavern", "x": [ 20, 21 ], "y": [ 10, 12 ], "chance": 85 }, - { "group": "mechanics", "x": [ 14, 14 ], "y": [ 0, 1 ], "chance": 85 }, - { "group": "mechanics", "x": [ 15, 17 ], "y": [ 3, 4 ], "chance": 85 }, - { "group": "mechanics", "x": [ 14, 17 ], "y": [ 6, 7 ], "chance": 85 }, - { "group": "mechanics", "x": [ 14, 14 ], "y": [ 10, 13 ], "chance": 85 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_48" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "/,,,,,,,//|...| hn ", - "//////////|...| n h h", - "----------|...| h h", - "..............|o h h", - "----------|...|o G ", - " rrrr r|...|---------", - " r|.............", - " rrrr r|.|-----------", - "----------|.|///////////", - "............|/////,,,,,/", - "------------|/////,///,/", - "//////////////////,///,/", - "/,,,,,,,//////////,///,/", - "/,/////,//////////,,,,,/", - "/,/////,//////////,///,/", - "/,/////,/&////////,///,/", - "/,/////,//////////,///,/", - "/,/////,//////////,,,,,/", - "/,/////,/I////////,///,/", - "/,/////,//////////,///,/", - "/,,,,,,,//////////,///,/", - "//////////////////,,,,,/", - "////////////////////////", - "///////////////,,,,,////" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "&": "t_gas_pump", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "mine_equipment", "x": [ 4, 7 ], "y": [ 5, 5 ], "chance": 85 }, - { "group": "mine_equipment", "x": [ 9, 9 ], "y": [ 5, 7 ], "chance": 85 }, - { "group": "mine_equipment", "x": [ 4, 7 ], "y": [ 7, 7 ], "chance": 85 }, - { "group": "novels", "x": [ 5, 5 ], "y": [ 3, 4 ], "chance": 70 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } - ], - "place_vehicles": [ - { "vehicle": "golf_cart", "x": 20, "y": 19, "chance": 25, "rotation": 90 }, - { "vehicle": "golf_cart", "x": 20, "y": 15, "chance": 25, "rotation": 90 }, - { "vehicle": "golf_cart", "x": 20, "y": 11, "chance": 25, "rotation": 90 }, - { "vehicle": "humvee", "x": 5, "y": 16, "chance": 60, "rotation": 90 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_49" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " [ |+|+-|--|", - " h h h h | |t| t| ,", - " h h h h V |-|--| ,", - " h h h h V | ,", - " | G = ,", - "----------| = ,", - "..........| 5|5 ,", - "--------|.|| |--|--| ,", - "////////|..| | |EE| ,", - "/,,,,,//|..| + >|EE+ G/", - "/,///,//|..| | |EE+ ,", - "/,///,//|..| |--|--| ,", - "/,///,//|..| |.....| ,", - "/,,,,,//|..| |.....| ,", - "/,///,//|..| |.....| ,", - "G,///,//|..| |.....| ,", - "/,///,//|..| |.....| ,", - "/,,,,,//|..| |.....| ,", - "/,///,//|..| |.....|---", - "/,///,//|..| |.........", - "/,///,//|..| |.........", - "/,,,,,//|..| |.........", - "////////|..| |.........", - "////////|..| |........." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } - ], - "place_vehicles": [ - { "vehicle": "golf_cart", "x": 3, "y": 19, "chance": 25, "rotation": 90 }, - { "vehicle": "golf_cart", "x": 3, "y": 15, "chance": 25, "rotation": 90 }, - { "vehicle": "golf_cart", "x": 3, "y": 11, "chance": 25, "rotation": 90 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_50" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "---|/////|-----|........", - "///,/////,///, |........", - "///,/////,///, |........", - "///,/////,///, |........", - ",,,,/////,,,,, |........", - "///,/////,///, |........", - "///,/////,///, |.|--|--|", - "///,/////,///, |-| 5|5 |", - ",,,,,,,,,,,,,, = ", - "////,/,/,/////G = ", - ",,,,,,,,,,,,,, = ", - "///,/////,///, |-| | |", - "///,/////,///, |.|--|--|", - "///,/////,///, |........", - ",,,,/////,,,,, |........", - "///,/////,///, |........", - "///,/////,///, |........", - "///,/////,///, |........", - "---|/////|-----|........", - "...|/////|..............", - "..||//G//||.............", - "..|///////|.............", - "..|//////5|.............", - "..|-=====-|............." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } - ], - "place_vehicles": [ - { "vehicle": "golf_cart", "x": 11, "y": 2, "chance": 20, "rotation": 270 }, - { "vehicle": "golf_cart", "x": 11, "y": 6, "chance": 20, "rotation": 270 }, - { "vehicle": "golf_cart", "x": 11, "y": 12, "chance": 20, "rotation": 270 }, - { "vehicle": "golf_cart", "x": 11, "y": 16, "chance": 20, "rotation": 270 }, - { "vehicle": "golf_cart", "x": 1, "y": 2, "chance": 20, "rotation": 90 }, - { "vehicle": "golf_cart", "x": 1, "y": 6, "chance": 20, "rotation": 90 }, - { "vehicle": "golf_cart", "x": 1, "y": 12, "chance": 20, "rotation": 90 }, - { "vehicle": "golf_cart", "x": 1, "y": 16, "chance": 20, "rotation": 90 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_51" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".......| bnnb bnnb b", - ".|-----| bnnb bnnb b", - ".| ", - ".| bnnb ", - ".| bnnb ", - ".| bnnb |---|-==-|-=-", - ".| bnnb | r|EEEE|r ", - "-| c r|EEEE|r ", - " c r|-||-|r ", - " G c +r||r+ ", - " c r|-||-|r ", - "-| c =EEEE= ", - ".| bnnb | =EEEE= ", - ".| bnnb |-=-|----|---", - ".| bnnb ", - ".| bnnb ", - ".| ", - ".|-----| bnnb bnnb b", - ".......| bnnb bnnb b", - ".......| bnnb bnnb b", - ".......| bnnb bnnb b", - ".......| ", - ".......| bnnb bnnb b", - ".......| bnnb bnnb b" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "cleaning", "x": [ 19, 19 ], "y": [ 9, 9 ], "chance": 85 }, - { "group": "cleaning", "x": [ 16, 16 ], "y": [ 9, 9 ], "chance": 85 }, - { "group": "fast_food", "x": [ 21, 21 ], "y": [ 6, 8 ], "chance": 85 }, - { "group": "fast_food", "x": [ 14, 14 ], "y": [ 6, 8 ], "chance": 85 }, - { "group": "dining", "x": [ 17, 18 ], "y": [ 17, 20 ], "chance": 70 }, - { "group": "dining", "x": [ 10, 11 ], "y": [ 17, 20 ], "chance": 70 }, - { "group": "dining", "x": [ 17, 18 ], "y": [ 22, 23 ], "chance": 70 }, - { "group": "dining", "x": [ 10, 11 ], "y": [ 22, 23 ], "chance": 70 }, - { "group": "dining", "x": [ 4, 5 ], "y": [ 12, 15 ], "chance": 70 }, - { "group": "dining", "x": [ 4, 5 ], "y": [ 3, 6 ], "chance": 70 }, - { "group": "dining", "x": [ 17, 18 ], "y": [ 0, 1 ], "chance": 70 }, - { "group": "dining", "x": [ 10, 11 ], "y": [ 0, 1 ], "chance": 70 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_52" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "nnb |ScSc cScS| bnnb ", - "nnb |----++----| bnnb ", - " ", - " G bnnb bnnb ", - " bnnb bnnb ", - "| bnnb bnnb |---|", - "| bnnb bnnb | r|", - "c c r|", - "c c r|", - "c c +", - "c c r|", - "c c =", - "| bnnb bnnb | =", - "| bnnb bnnb |-=-|", - " bnnb bnnb ", - " bnnb bnnb G ", - " ", - "nnb |----++----| bnnb ", - "nnb |ScSc cScS| bnnb ", - "nnb | | bnnb ", - "nnb | | bnnb ", - " |ScSc cScS| ", - "nnb |-|-| |-|-| bnnb ", - "nnb |t|t| |t|t| bnnb " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "fast_food", "x": [ 22, 22 ], "y": [ 6, 8 ], "chance": 85 }, - { "group": "dining", "x": [ 18, 19 ], "y": [ 17, 20 ], "chance": 70 }, - { "group": "dining", "x": [ 0, 1 ], "y": [ 17, 20 ], "chance": 70 }, - { "group": "dining", "x": [ 18, 19 ], "y": [ 22, 23 ], "chance": 70 }, - { "group": "dining", "x": [ 0, 1 ], "y": [ 22, 23 ], "chance": 70 }, - { "group": "dining", "x": [ 6, 7 ], "y": [ 12, 15 ], "chance": 70 }, - { "group": "dining", "x": [ 12, 13 ], "y": [ 12, 15 ], "chance": 70 }, - { "group": "dining", "x": [ 6, 7 ], "y": [ 3, 6 ], "chance": 70 }, - { "group": "dining", "x": [ 12, 13 ], "y": [ 3, 6 ], "chance": 70 }, - { "group": "dining", "x": [ 18, 19 ], "y": [ 0, 1 ], "chance": 70 }, - { "group": "dining", "x": [ 0, 1 ], "y": [ 0, 1 ], "chance": 70 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_53" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "bnnb bnnb |...........", - "bnnb bnnb |-----|.....", - " |.....", - " bnnb |.....", - " bnnb |.....", - "-==-|-=-| bnnb |.....", - "EEEE|r | bnnb |.|--|", - "EEEE|r c |-| 5|", - "-||-|r c =", - "r||r+ c G =", - "-||-|r c =", - "EEEE= c |-| |", - "EEEE= | bnnb |.|--|", - "----|---| bnnb |.....", - " bnnb |.....", - " bnnb |.....", - " |.....", - "bnnb bnnb |-----|.....", - "bnnb bnnb |...........", - "bnnb bnnb |...........", - "bnnb bnnb |...........", - " |...........", - "bnnb bnnb |...........", - "bnnb bnnb |..........." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "dining", "x": [ 8, 9 ], "y": [ 17, 20 ], "chance": 70 }, - { "group": "dining", "x": [ 1, 2 ], "y": [ 17, 20 ], "chance": 70 }, - { "group": "dining", "x": [ 8, 9 ], "y": [ 22, 23 ], "chance": 70 }, - { "group": "dining", "x": [ 1, 2 ], "y": [ 22, 23 ], "chance": 70 }, - { "group": "dining", "x": [ 14, 15 ], "y": [ 12, 15 ], "chance": 70 }, - { "group": "dining", "x": [ 14, 15 ], "y": [ 3, 6 ], "chance": 70 }, - { "group": "dining", "x": [ 8, 9 ], "y": [ 0, 1 ], "chance": 70 }, - { "group": "dining", "x": [ 1, 2 ], "y": [ 0, 1 ], "chance": 70 }, - { "group": "fast_food", "x": [ 5, 5 ], "y": [ 6, 8 ], "chance": 85 }, - { "group": "cleaning", "x": [ 0, 0 ], "y": [ 9, 9 ], "chance": 70 }, - { "group": "cleaning", "x": [ 3, 3 ], "y": [ 9, 9 ], "chance": 70 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_54" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..| ,///,/////,///, |...", - "..| ,///,/////,///, |...", - "..| ,///,/////,///, |...", - "..| ,,,,,/////,,,,, |...", - "..| ,///,/////,///, |...", - "..| ,///,/////,///, |...", - "--| ,///,/////,///, |...", - "5 ,,,,,/////,,,,, |...", - " //////////,///, |...", - " G ///////G//,///, |...", - " //////////,///, |...", - " ,,,,,/////,,,,, |...", - "--| ,///,/////,///, |...", - "..| ,///,/////,///, |...", - "..| ,///,/////,///, |...", - "..| ,,,,,/////,,,,, |...", - "..| ,///,/////,///, |...", - "..| ,///,/////,///, |...", - "..| ,///,/////,///, |...", - "..|-----|/////|-----|...", - "........|/////|.........", - "........|/////|.........", - ".......||/////||........", - ".......|///////|........" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } - ], - "place_vehicles": [ - { "vehicle": "golf_cart", "x": 16, "y": 1, "chance": 15, "rotation": 270 }, - { "vehicle": "golf_cart", "x": 16, "y": 5, "chance": 15, "rotation": 270 }, - { "vehicle": "golf_cart", "x": 16, "y": 13, "chance": 15, "rotation": 270 }, - { "vehicle": "golf_cart", "x": 16, "y": 17, "chance": 15, "rotation": 270 }, - { "vehicle": "golf_cart", "x": 6, "y": 1, "chance": 15, "rotation": 90 }, - { "vehicle": "golf_cart", "x": 6, "y": 5, "chance": 15, "rotation": 90 }, - { "vehicle": "golf_cart", "x": 6, "y": 13, "chance": 15, "rotation": 90 }, - { "vehicle": "golf_cart", "x": 6, "y": 17, "chance": 15, "rotation": 90 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_55" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "..............|---------", - "..............|/////////", - "..............|/////////", - "..............|/////////", - "..............|////G////", - "..............|/////////", - "..............|/////////", - "..............|/////////", - "..............|---------", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_56" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..|/////////////////////", - "..|/////////////////////", - "..|/////////////////////", - "..|////////////I&I//|---", - "..|/////////////////|...", - "..||///G///|--------|...", - "...|//////5|............", - "|..|-=====-|............", - "|--|//////5|------------", - "////////////////////////", - "////////////////////////", - "////////////////////////", - "////////////////////////", - "////////////////////////", - "|-------------------|///", - "|...................|-|/", - "......................|/", - "......................|/", - "......................|/", - "......................| ", - "......................| ", - "......................|-", - "........................", - "......|-----------|.|---" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "&": "t_gas_pump", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_57" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "///////////////,///,//|-", - "///////////////,///,//|.", - "///////////////,///,//|.", - "------------|//,,,,,//|.", - "............|/////////|.", - "............|---------|.", - "........................", - "........................", - "------------------------", - "////////////////////////", - "////////////////////////", - "//G//////////////////G//", - "////////////////////////", - "////////////////////////", - "/,,,,,,,,,,,,,,,,,,,,,,,", - "/,///,///,///,///,///,//", - "/,///,///,///,///,///,//", - "/,///,///,///,///,///,//", - "/,,,,,,,,,,,,,,,,,,,,,,,", - " ", - " ", - "----------| G |-------", - "..........| 5|.......", - "--------|.|-===-|......." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 } - ], - "place_vehicles": [ - { "vehicle": "golf_cart", "x": 19, "y": 16, "chance": 20, "rotation": 270 }, - { "vehicle": "golf_cart", "x": 23, "y": 16, "chance": 20, "rotation": 270 }, - { "vehicle": "golf_cart", "x": 15, "y": 16, "chance": 20, "rotation": 270 }, - { "vehicle": "golf_cart", "x": 11, "y": 16, "chance": 20, "rotation": 270 }, - { "vehicle": "golf_cart", "x": 7, "y": 16, "chance": 20, "rotation": 270 }, - { "vehicle": "golf_cart", "x": 3, "y": 16, "chance": 20, "rotation": 270 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_58" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "--------|..| |.........", - "...........| |.........", - "...........| |.........", - ".|---------| |.........", - ".| |.........", - ".| |.........", - ".| |---------|.........", - "|| ||..................", - "|, ,|------------------", - "/,,,,///////////////////", - "/,//,///////////////////", - "/,,,,///////////////////", - "/,//,///////////////////", - "/,,,,///////////////////", - ",, ,/|-----------------", - "/, |-|.................", - "/, |.|--------------|..", - "/, |.|P k h P|.|", - ",, |.| k6kkk |.|", - " |.| o|.|", - " |.| h o|.|", - "----|.|[[|-----------|.|", - "......| |P o|.|", - "......| | 6k o|.|" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "office", "x": [ 12, 16 ], "y": [ 18, 18 ], "chance": 80 }, - { "group": "novels", "x": [ 20, 20 ], "y": [ 19, 20 ], "chance": 80 }, - { "group": "novels", "x": [ 20, 20 ], "y": [ 22, 23 ], "chance": 80 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_59" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..|//////5|.............", - "..|///////|.............", - "..||/////||.............", - "...|/////|..............", - "...|/////|..............", - "...|/////|..............", - "...|/////|..............", - ".|-|/////|-|............", - "-|/////////|------------", - "////////////////////////", - "////////////////////////", - "//////G/////////////////", - "////////////////////////", - "////////////////////////", - "-|/////////|------------", - ".|---------|............", - "........................", - "------------|.......|---", - "rrrrrrrrrrrr|.......|L ", - " |...|---|L c", - "r rr rr rr |...|r r| c", - "r rr rr rr |...|r S| ", - "r rr rr rr |...|r c| ", - "r rr rr rr |-|-|-+-|-uu" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "textbooks", "x": [ 21, 21 ], "y": [ 18, 19 ], "chance": 90 }, - { "group": "chem_lab", "x": [ 2, 3 ], "y": [ 20, 23 ], "chance": 90 }, - { "group": "chem_lab", "x": [ 5, 6 ], "y": [ 20, 23 ], "chance": 90 }, - { "group": "chem_lab", "x": [ 8, 9 ], "y": [ 20, 23 ], "chance": 90 }, - { "group": "chem_lab", "x": [ 0, 0 ], "y": [ 20, 23 ], "chance": 90 }, - { "group": "goo", "x": [ 0, 11 ], "y": [ 18, 18 ], "chance": 90 }, - { "group": "cleaning", "x": [ 17, 17 ], "y": [ 20, 22 ], "chance": 80 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_60" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".......| bnnb bnnb b", - ".......| bnnb bnnb b", - ".......| ", - ".......|-----|[[|-------", - "............|| ||......", - "............| |......", - "............| |......", - "............|| ||......", - "-------------|[[|-------", - "/////////////,//,///////", - "/////////////,,,,///////", - "/////////////,//,G//////", - "/////////////,,,,///////", - "/////////////,//,///////", - "----------|//,,,,/////,,", - "..........|-|,//,/////,/", - "............|,,,,/////,/", - "------|.....|,//,/////,/", - " |.....|-[[-|////,,", - " h c |.....| |////,/", - "c6cc |.....| V////,/", - " |...|-| V////,/", - " P|---| V////,,", - "uu-[[-| 5|5 |////,/" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "dining", "x": [ 17, 18 ], "y": [ 0, 1 ], "chance": 50 }, - { "group": "dining", "x": [ 10, 11 ], "y": [ 0, 1 ], "chance": 50 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_61" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "nnb |+|+| |+|+| bnnb ", - "nnb | | bnnb ", - " |+|+|--|+|+| ", - "----|t|t|..|t|t|--------", - "....|-|-|..|-|-|........", - "........................", - "........................", - "........................", - "------------------------", - "////////////////////////", - "////////////////////////", - "////////////////////////", - "////////////////////////", - "////////////////////////", - ",,,,,,,//////,,,,,,,,,//", - "//,///,//////,///,///,//", - "//,///,///G//,///,///,//", - "//,///,//////,///,///,//", - ",,,,,,,//////,,,,,,,,,//", - "//,///,//////,///,///,//", - "//,///,//////,///,///,//", - "//,///,//////,///,///,//", - ",,,,,,,//////,,,,,,,,,//", - "//,///,//////,///,///,//" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "dining", "x": [ 0, 1 ], "y": [ 0, 1 ], "chance": 50 }, - { "group": "dining", "x": [ 18, 19 ], "y": [ 0, 1 ], "chance": 50 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ], - "place_vehicles": [ - { "vehicle": "golf_cart", "x": 19, "y": 16, "chance": 20, "rotation": 180 }, - { "vehicle": "golf_cart", "x": 19, "y": 20, "chance": 20, "rotation": 180 }, - { "vehicle": "golf_cart", "x": 15, "y": 16, "chance": 20, "rotation": 0 }, - { "vehicle": "golf_cart", "x": 15, "y": 20, "chance": 20, "rotation": 0 }, - { "vehicle": "golf_cart", "x": 4, "y": 16, "chance": 20, "rotation": 180 }, - { "vehicle": "golf_cart", "x": 4, "y": 20, "chance": 20, "rotation": 180 }, - { "vehicle": "golf_cart", "x": 0, "y": 16, "chance": 20, "rotation": 0 }, - { "vehicle": "golf_cart", "x": 0, "y": 20, "chance": 20, "rotation": 0 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_62" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "bnnb bnnb |...........", - "bnnb bnnb |...........", - " |...........", - "---|[[|-----|...........", - "..|| ||................", - "..| |................", - "..| |................", - "..|| ||................", - "---|[[|-----------------", - "///,//,/////////////////", - "///,,,,/////////////////", - "//G,//,/////////////////", - "///,,,,/////////////////", - "///,//,/////////////////", - "///,,,,//|--------------", - "///,//,|-|..............", - "///,,,,|................", - "///,//,|.....|--------|-", - "//|-[[-|.....|r r|0", - "//| |.....|r r r r|0", - "//V |.....| r r |$", - "//V |-|...|r r|$", - "//V |---|r r| ", - "//| 6|5 |-uuuu-=-|-" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "mut_lab", "x": [ 16, 16 ], "y": [ 19, 20 ], "chance": 90 }, - { "group": "mut_lab", "x": [ 19, 19 ], "y": [ 19, 20 ], "chance": 90 }, - { "group": "mut_lab", "x": [ 21, 21 ], "y": [ 18, 19 ], "chance": 90 }, - { "group": "mut_lab", "x": [ 21, 21 ], "y": [ 21, 22 ], "chance": 90 }, - { "group": "mut_lab", "x": [ 14, 14 ], "y": [ 18, 19 ], "chance": 90 }, - { "group": "mut_lab", "x": [ 14, 14 ], "y": [ 21, 22 ], "chance": 90 }, - { "group": "dining", "x": [ 1, 2 ], "y": [ 0, 1 ], "chance": 50 }, - { "group": "dining", "x": [ 8, 9 ], "y": [ 0, 1 ], "chance": 50 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_63" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".......|//////5|........", - ".......|-=====-|........", - ".......|//////5|........", - ".......|///////|........", - ".......||/////||........", - "........|/////|.........", - "........|/////|.........", - "......|-|/////||........", - "------|////////|........", - "///////////////|........", - "///////////////|........", - "///////////G///|........", - "///////////////|........", - "///////////////|........", - "------|////////|........", - "......|--------|........", - "........................", - "-------|................", - "000__00|................", - " __ 0|................", - "$ N|................", - "$ c6c 0|................", - " h c|................", - "uuuu-=-||-----|........." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 16 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 16 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_64" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - ".......|--|-|-|-|-|-|...", - ".......|t |t|t|t|t|t|...", - ".......| | | | | | |...", - ".......|-+|+|+|+|+|+|...", - ".......| |---", - ".......| ", - ".......|cScScScScSc ", - ".......|----------------", - ".......|cScScScScSc ", - ".......| ", - ".......| |---", - ".......|-+|+|+|+|+|+|...", - ".......| | | | | | |.|-", - ".......|t |t|t|t|t|t|.| ", - ".......|--|-|-|-|-|-|.| ", - "......................| " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_65" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "......|kh |.|kh ", - "......|6kk nnn |.|6kk", - "......| |.| ", - "......| k k k k |.| k ", - "......| h h h h |.| h ", - "......| k k k k |.| k ", - "......| h h h h |.| h ", - "......| k k k k |.| k ", - "......| h h h h |.| h ", - "......| |.| ", - "......|----| |----|.|---", - "...........|[|..........", - "--|--------| |----------", - " D|LLLLLLL LLLLLLLLL", - " + ", - "--| ", - " + G ", - " D|LLLLLLL LLLLL", - "--|--------| |------", - "...........| |......", - "---------|.|L L|......", - " |.|L L|..|---", - " khkhkh |.|L L|..| ", - " |.|L L|..| " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "school", "x": [ 6, 6 ], "y": [ 22, 22 ], "chance": 50 }, - { "group": "school", "x": [ 4, 4 ], "y": [ 22, 22 ], "chance": 50 }, - { "group": "school", "x": [ 2, 2 ], "y": [ 22, 22 ], "chance": 50 }, - { "group": "school", "x": [ 22, 22 ], "y": [ 7, 7 ], "chance": 50 }, - { "group": "school", "x": [ 16, 16 ], "y": [ 7, 7 ], "chance": 50 }, - { "group": "school", "x": [ 14, 14 ], "y": [ 7, 7 ], "chance": 50 }, - { "group": "school", "x": [ 10, 10 ], "y": [ 7, 7 ], "chance": 50 }, - { "group": "school", "x": [ 8, 8 ], "y": [ 7, 7 ], "chance": 50 }, - { "group": "school", "x": [ 22, 22 ], "y": [ 5, 5 ], "chance": 50 }, - { "group": "school", "x": [ 16, 16 ], "y": [ 5, 5 ], "chance": 50 }, - { "group": "school", "x": [ 14, 14 ], "y": [ 5, 5 ], "chance": 50 }, - { "group": "school", "x": [ 10, 10 ], "y": [ 5, 5 ], "chance": 50 }, - { "group": "school", "x": [ 8, 8 ], "y": [ 5, 5 ], "chance": 50 }, - { "group": "school", "x": [ 22, 22 ], "y": [ 3, 3 ], "chance": 50 }, - { "group": "school", "x": [ 16, 16 ], "y": [ 3, 3 ], "chance": 50 }, - { "group": "school", "x": [ 14, 14 ], "y": [ 3, 3 ], "chance": 50 }, - { "group": "school", "x": [ 10, 10 ], "y": [ 3, 3 ], "chance": 50 }, - { "group": "school", "x": [ 8, 8 ], "y": [ 3, 3 ], "chance": 50 }, - { "group": "school", "x": [ 16, 16 ], "y": [ 20, 23 ], "chance": 75 }, - { "group": "school", "x": [ 12, 12 ], "y": [ 20, 23 ], "chance": 75 }, - { "group": "school", "x": [ 19, 23 ], "y": [ 17, 17 ], "chance": 75 }, - { "group": "school", "x": [ 3, 9 ], "y": [ 17, 17 ], "chance": 75 }, - { "group": "school", "x": [ 15, 23 ], "y": [ 13, 13 ], "chance": 75 }, - { "group": "school", "x": [ 3, 9 ], "y": [ 13, 13 ], "chance": 75 }, - { "group": "office", "x": [ 21, 23 ], "y": [ 1, 1 ], "chance": 75 }, - { "group": "office", "x": [ 7, 9 ], "y": [ 1, 1 ], "chance": 75 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_66" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " |.| 5|.......", - " nnn |.| |.......", - " |.| |-------", - "k k k |.| c k6k L", - "h h h |.| G c h ", - "k k k |.| c ", - "h h h |.| cc h", - "k k k |.| kk", - "h h h |.| |-------", - " |.| |.......", - "-| |----|.| |.......", - ".|[|......| |.......", - "-| |------| |-------", - " LLLL LLLLLLL", - " ", - " ", - " ", - "LL |HHHHH| ", - "-|-[[-|++-|ccccc|-++|-[[", - ".| |EEE|-----|EEE| ", - ".| |EEE| |EEE| ", - "-| |---| |---| ", - " ", - " " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "antique", "x": [ 11, 15 ], "y": [ 18, 18 ], "chance": 70 }, - { "group": "school", "x": [ 6, 6 ], "y": [ 7, 7 ], "chance": 50 }, - { "group": "school", "x": [ 4, 4 ], "y": [ 7, 7 ], "chance": 50 }, - { "group": "school", "x": [ 0, 0 ], "y": [ 7, 7 ], "chance": 50 }, - { "group": "school", "x": [ 6, 6 ], "y": [ 5, 5 ], "chance": 50 }, - { "group": "school", "x": [ 4, 4 ], "y": [ 5, 5 ], "chance": 50 }, - { "group": "school", "x": [ 0, 0 ], "y": [ 5, 5 ], "chance": 50 }, - { "group": "school", "x": [ 6, 6 ], "y": [ 3, 3 ], "chance": 50 }, - { "group": "school", "x": [ 4, 4 ], "y": [ 3, 3 ], "chance": 50 }, - { "group": "school", "x": [ 0, 0 ], "y": [ 3, 3 ], "chance": 50 }, - { "group": "school", "x": [ 17, 23 ], "y": [ 13, 13 ], "chance": 75 }, - { "group": "school", "x": [ 5, 8 ], "y": [ 13, 13 ], "chance": 75 }, - { "group": "school", "x": [ 0, 1 ], "y": [ 17, 17 ], "chance": 75 }, - { "group": "office", "x": [ 22, 23 ], "y": [ 7, 7 ], "chance": 75 }, - { "group": "office", "x": [ 19, 21 ], "y": [ 3, 3 ], "chance": 75 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_67" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "......| [ h kh o|.|", - "......| |h kk o|.|", - "------| |h o|.|", - "LL kk6| |------|----|.|", - " hk| bbbbbb|......|", - " [ |.......", - "k [ |-------", - "6 oo|b |LLL r", - "------|b [ ", - "......|Pbb |6kk ", - "......|---|[[|--| h LL", - "..........| |..||------", - "----------| |-|.|r S ", - "LLLLLLLLLLL LL|.|r c ", - " L|.| c ", - " |.| c ", - " G |-| ", - " LLLLLLL [ ", - "-|-------| |-| ", - " |.......| |.| c ", - " |.......|L L|.| c ", - " |----|..|L L|.|r c ", - " |..|L L|.|r S ", - " |..|L L|.|------" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "chem_school", "x": [ 21, 21 ], "y": [ 13, 15 ], "chance": 55 }, - { "group": "chem_school", "x": [ 21, 21 ], "y": [ 19, 21 ], "chance": 55 }, - { "group": "chem_school", "x": [ 18, 18 ], "y": [ 12, 13 ], "chance": 85 }, - { "group": "chem_school", "x": [ 18, 18 ], "y": [ 21, 22 ], "chance": 85 }, - { "group": "school", "x": [ 10, 10 ], "y": [ 20, 23 ], "chance": 75 }, - { "group": "school", "x": [ 14, 14 ], "y": [ 20, 23 ], "chance": 75 }, - { "group": "school", "x": [ 1, 7 ], "y": [ 17, 17 ], "chance": 75 }, - { "group": "school", "x": [ 13, 14 ], "y": [ 13, 13 ], "chance": 75 }, - { "group": "school", "x": [ 0, 10 ], "y": [ 13, 13 ], "chance": 75 }, - { "group": "softdrugs", "x": [ 22, 23 ], "y": [ 10, 10 ], "chance": 85 }, - { "group": "softdrugs", "x": [ 17, 19 ], "y": [ 7, 7 ], "chance": 85 }, - { "group": "office", "x": [ 18, 19 ], "y": [ 9, 9 ], "chance": 75 }, - { "group": "homebooks", "x": [ 20, 20 ], "y": [ 0, 2 ], "chance": 75 }, - { "group": "office", "x": [ 6, 6 ], "y": [ 0, 1 ], "chance": 75 }, - { "group": "textbooks", "x": [ 4, 5 ], "y": [ 7, 7 ], "chance": 75 }, - { "group": "office", "x": [ 3, 5 ], "y": [ 3, 3 ], "chance": 75 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_68" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "r rr rr rr = ", - "r rr rr rr = ", - " 5|5 |-uu-", - "rrrrrrrrrrrr | | ", - "--------------|-| [ ", - "................| |kk ", - "-----|.|------|.| v6h ", - "r@ @|.|rrrrrr|.| |k ", - " @ @|.|r |.| |----", - " r|.|r rrr|.| |....", - "L r|.|r rrr|.| |----", - "-----|-|r |.| | ", - "S S r|r rrr|.| |!*!!", - "c c r|r rrr|.| | ! ", - "c c |r |.| | ! ", - "c c V rrr|.| |!!!!", - " V rrr|.| | ", - " [ |.| | ", - " V rrr|.| | ", - "c c V rrr|.| |cc6c", - "c c k |r |.| |c h ", - "c c kh|r rrr|.| | ", - "S S 6k|r rrr|.| | ", - "-------|r |.| |c " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "chem_school", "x": [ 11, 13 ], "y": [ 21, 22 ], "chance": 90 }, - { "group": "chem_school", "x": [ 11, 13 ], "y": [ 18, 19 ], "chance": 90 }, - { "group": "chem_school", "x": [ 11, 13 ], "y": [ 15, 16 ], "chance": 90 }, - { "group": "chem_school", "x": [ 11, 13 ], "y": [ 12, 13 ], "chance": 90 }, - { "group": "chem_school", "x": [ 11, 13 ], "y": [ 9, 10 ], "chance": 90 }, - { "group": "chem_school", "x": [ 8, 8 ], "y": [ 20, 23 ], "chance": 90 }, - { "group": "chem_school", "x": [ 8, 13 ], "y": [ 7, 7 ], "chance": 90 }, - { "group": "chem_school", "x": [ 8, 8 ], "y": [ 8, 14 ], "chance": 90 }, - { "group": "office", "x": [ 5, 5 ], "y": [ 20, 22 ], "chance": 75 }, - { "group": "chem_school", "x": [ 3, 3 ], "y": [ 19, 21 ], "chance": 55 }, - { "group": "chem_school", "x": [ 0, 0 ], "y": [ 19, 21 ], "chance": 55 }, - { "group": "chem_school", "x": [ 3, 3 ], "y": [ 13, 15 ], "chance": 55 }, - { "group": "chem_school", "x": [ 0, 0 ], "y": [ 13, 15 ], "chance": 55 }, - { "group": "chem_school", "x": [ 6, 6 ], "y": [ 12, 13 ], "chance": 90 }, - { "group": "softdrugs", "x": [ 4, 4 ], "y": [ 9, 10 ], "chance": 80 }, - { "group": "chem_lab", "x": [ 8, 9 ], "y": [ 0, 1 ], "chance": 90 }, - { "group": "chem_lab", "x": [ 5, 6 ], "y": [ 0, 1 ], "chance": 90 }, - { "group": "chem_lab", "x": [ 2, 3 ], "y": [ 0, 1 ], "chance": 90 }, - { "group": "chem_lab", "x": [ 0, 0 ], "y": [ 0, 1 ], "chance": 90 }, - { "group": "goo", "x": [ 0, 11 ], "y": [ 3, 3 ], "chance": 90 }, - { "group": "office", "x": [ 20, 20 ], "y": [ 5, 7 ], "chance": 75 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_69" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " = G [////,/", - " = [////,/", - "uu-uu-|---| |////,,", - "kk6k o|...| V//////", - "k hk o|...|-| V//////", - " |---|.| V/G////", - " + |.| |//////", - "ooP |rrr|.| |-HHHH-", - "------|---|.| ", - "............| ", - "---------|..| ", - " |..| ", - "*!!*!!*! |..|-----------", - " ! ! ! |..............", - " ! ! ! |..............", - "!!!!!!!! |..|-----------", - " ! |..| ! ! ", - " cc6cc! |..| * * ", - " c h c! |--|!!!! !!!", - "c ! ! ", - "c G ! * ", - " !*|--|!!!! !!!", - " |..| * * ", - " c|..| ! ! " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "hospital_lab", "x": [ 7, 9 ], "y": [ 7, 7 ], "chance": 75 }, - { "group": "hospital_lab", "x": [ 0, 1 ], "y": [ 7, 7 ], "chance": 75 }, - { "group": "dissection", "x": [ 5, 5 ], "y": [ 3, 4 ], "chance": 75 }, - { "group": "office", "x": [ 0, 3 ], "y": [ 3, 3 ], "chance": 75 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 10 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 10 ], "density": 0.05 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_70" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "//,///,//////,///,///,//", - "//,///,///G//,///,///,//", - ",,,,,,,//////,,,,,,,,,//", - "////////////////////////", - "////////////////////////", - "////////////////////////", - "////////////////////////", - "HHHH-HHHH--HHHH-HHHH-HHH", - " ", - " ", - " ", - " ", - "-----| 6 |---------", - ".....|--====--|.........", - ".....| 6 |.........", - "-|...| |....|----", - " |...| G |....| ! ", - " |..||-| |-|....| ! ", - "!|..|EE| |......| ! ", - " |..|EE= |......| * ", - " |..|EE= |------| ! ", - "!|..|--| |cccc P|-uu+", - " |..|EE| V6h | ", - " |..|EE= Vc |c6c " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ], - "place_vehicles": [ - { "vehicle": "golf_cart", "x": 19, "y": 0, "chance": 20, "rotation": 180 }, - { "vehicle": "golf_cart", "x": 15, "y": 0, "chance": 20, "rotation": 180 }, - { "vehicle": "golf_cart", "x": 4, "y": 0, "chance": 20, "rotation": 0 }, - { "vehicle": "golf_cart", "x": 0, "y": 0, "chance": 20, "rotation": 0 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_71" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "//[ G = ", - "//[ = ", - "//| |------|-HHHH--", - "//V |......| ", - "//V |-|.|--|-| hh ", - "G/V |...|tS|D hnnh ", - "//| |...| + hnnh ", - "H-| |...|--| hh ", - " |...| + ", - " |...|tS|l ", - " |...|--|l G ", - " |......|c ", - "-------|......|S hh ", - "..............|c hnnh ", - "..............|c hnnh ", - "----|.........|-| hh ", - " ! |...........| ", - " ! |........|--|-HHH-[[", - " ! |..|-----| ", - " * |..| kh | ", - " ! |..| k6k v |-uuu-|-", - "+uu-|..| h v |o kk| ", - " c6|..| v = h6h| ", - " hc|..| k v | k | " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "textbooks", "x": [ 17, 17 ], "y": [ 21, 21 ], "chance": 75 }, - { "group": "office", "x": [ 20, 20 ], "y": [ 21, 23 ], "chance": 75 }, - { "group": "textbooks", "x": [ 9, 11 ], "y": [ 20, 20 ], "chance": 75 }, - { "group": "fridgesnacks", "x": [ 15, 15 ], "y": [ 9, 9 ], "chance": 75 }, - { "group": "fridgesnacks", "x": [ 15, 15 ], "y": [ 10, 10 ], "chance": 75 }, - { "group": "dining", "x": [ 19, 20 ], "y": [ 13, 14 ], "chance": 50 }, - { "group": "dining", "x": [ 19, 20 ], "y": [ 5, 6 ], "chance": 50 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_72" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " |k6koo|----|....", - " vkh = |....", - "HHHH-| v k| c|....", - " | v h6v c|....", - " hh V v kv c|....", - "hnnh V | P| c|....", - "hnnh V = hk|----|....", - " hh V |ook6k|.........", - " | |-uuu-|--|......", - " [ |......", - " [ |......", - " | |-----| |......", - " hh V |ook6k| |......", - "hnnh V = hk| |......", - "hnnh V | | |---|..", - " hh V v | |rrr|..", - " | v P| + |..", - "-HHH-| vk o| |rcS|..", - " vkh o| |---|..", - " |6k o| |......", - "uuuuuu-||-----| |......", - " |rrrrrr| |......", - "i i | v |-|-|..", - " |rrrr + |t|t|.." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "cloning_vat", "x": [ 5, 5 ], "y": [ 22, 22 ], "chance": 75 }, - { "group": "cloning_vat", "x": [ 0, 0 ], "y": [ 22, 22 ], "chance": 75 }, - { "group": "chem_lab", "x": [ 8, 11 ], "y": [ 23, 23 ], "chance": 90 }, - { "group": "chem_lab", "x": [ 8, 13 ], "y": [ 21, 21 ], "chance": 90 }, - { "group": "electronics", "x": [ 13, 13 ], "y": [ 7, 9 ], "chance": 75 }, - { "group": "textbooks", "x": [ 9, 9 ], "y": [ 7, 9 ], "chance": 75 }, - { "group": "electronics", "x": [ 11, 13 ], "y": [ 12, 12 ], "chance": 75 }, - { "group": "textbooks", "x": [ 9, 10 ], "y": [ 12, 12 ], "chance": 75 }, - { "group": "cleaning", "x": [ 18, 20 ], "y": [ 15, 15 ], "chance": 75 }, - { "group": "bionics_sci", "x": [ 18, 18 ], "y": [ 3, 4 ], "chance": 75 }, - { "group": "electronics", "x": [ 11, 13 ], "y": [ 7, 7 ], "chance": 75 }, - { "group": "dissection", "x": [ 9, 10 ], "y": [ 7, 7 ], "chance": 75 }, - { "group": "office", "x": [ 13, 13 ], "y": [ 2, 4 ], "chance": 75 }, - { "group": "dissection", "x": [ 12, 13 ], "y": [ 0, 0 ], "chance": 75 }, - { "group": "textbooks", "x": [ 9, 11 ], "y": [ 0, 0 ], "chance": 75 }, - { "group": "dining", "x": [ 1, 2 ], "y": [ 13, 14 ], "chance": 50 }, - { "group": "dining", "x": [ 1, 2 ], "y": [ 5, 6 ], "chance": 50 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_73" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "......................| ", - "......................| ", - "......................| ", - "......................| ", - "......................| ", - "......................| ", - "......................|h", - "......................|k", - "......................|-", - "........................", - "......................|-", - "......................| ", - "......................| ", - "......................| ", - "......................| ", - "......................| ", - "......................| ", - "......................| ", - "......................| ", - "......................| ", - "......................|h", - "......................|k", - "......................|-", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_74" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " khkhkh |.| L|--| h", - "n |-| |EE| ", - "n [ +EE| h", - "n |-| +EE| ", - " khkhkh |.| |--| h", - "k |.|L L|..| ", - "k khkhkh |.|L L|..| h", - "6 |.|L L|..|G ", - "---------|.|L L|--| h", - "...........|L | | ", - "---------|.|L [ >| h", - " |.|L | | ", - " khkhkh |.|L |--| h", - " |.|L [ [ ", - " khkhkh |.| [ [ ", - "n |-| |--| a", - "n [ |..| a", - "n |-| L|..|-[|", - " khkhkh |.| L|..| ", - "k |.|L |--| -", - "k khkhkh |.|L [ [ ", - "6 |.|L [ [ ", - "---------|.|-----|--|---", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "school", "x": [ 6, 6 ], "y": [ 18, 18 ], "chance": 75 }, - { "group": "school", "x": [ 6, 6 ], "y": [ 20, 20 ], "chance": 75 }, - { "group": "school", "x": [ 6, 6 ], "y": [ 14, 14 ], "chance": 75 }, - { "group": "school", "x": [ 6, 6 ], "y": [ 12, 12 ], "chance": 75 }, - { "group": "school", "x": [ 6, 6 ], "y": [ 6, 6 ], "chance": 75 }, - { "group": "school", "x": [ 6, 6 ], "y": [ 4, 4 ], "chance": 75 }, - { "group": "school", "x": [ 6, 6 ], "y": [ 0, 0 ], "chance": 75 }, - { "group": "school", "x": [ 4, 4 ], "y": [ 18, 18 ], "chance": 75 }, - { "group": "school", "x": [ 4, 4 ], "y": [ 20, 20 ], "chance": 75 }, - { "group": "school", "x": [ 4, 4 ], "y": [ 14, 14 ], "chance": 75 }, - { "group": "school", "x": [ 4, 4 ], "y": [ 12, 12 ], "chance": 75 }, - { "group": "school", "x": [ 4, 4 ], "y": [ 6, 6 ], "chance": 75 }, - { "group": "school", "x": [ 4, 4 ], "y": [ 4, 4 ], "chance": 75 }, - { "group": "school", "x": [ 4, 4 ], "y": [ 0, 0 ], "chance": 75 }, - { "group": "school", "x": [ 2, 2 ], "y": [ 18, 18 ], "chance": 75 }, - { "group": "school", "x": [ 2, 2 ], "y": [ 20, 20 ], "chance": 75 }, - { "group": "school", "x": [ 2, 2 ], "y": [ 14, 14 ], "chance": 75 }, - { "group": "school", "x": [ 2, 2 ], "y": [ 12, 12 ], "chance": 75 }, - { "group": "school", "x": [ 2, 2 ], "y": [ 6, 6 ], "chance": 75 }, - { "group": "school", "x": [ 2, 2 ], "y": [ 4, 4 ], "chance": 75 }, - { "group": "school", "x": [ 2, 2 ], "y": [ 0, 0 ], "chance": 75 }, - { "group": "school", "x": [ 16, 16 ], "y": [ 5, 8 ], "chance": 75 }, - { "group": "school", "x": [ 16, 16 ], "y": [ 17, 18 ], "chance": 75 }, - { "group": "school", "x": [ 12, 12 ], "y": [ 5, 13 ], "chance": 75 }, - { "group": "school", "x": [ 12, 12 ], "y": [ 19, 21 ], "chance": 75 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_75" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "hhhhhhhhhhh hhhhhhhh", - " ", - "hhhhhhhhhhh hhhhhhhh", - " ", - "hhhhhhhhhhh hhhhhhhh", - " ", - "hhhhhhhhhhh hhhhhhhh", - " ", - "hhhhhhhhhhh hhhhhhhh", - " ", - "hhhhhhhhhhh hhhhhhhh", - " ", - "hhhhhhhhhhh hhhhhhhh", - " ", - " ", - "AAAAAAAAAAAAAAAAAAAAAAAA", - " ", - " ", - " ", - "------------------------", - " ", - " ", - "------------------------", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "school", "x": [ 16, 23 ], "y": [ 12, 12 ], "chance": 50 }, - { "group": "school", "x": [ 0, 10 ], "y": [ 12, 12 ], "chance": 50 }, - { "group": "school", "x": [ 16, 23 ], "y": [ 10, 10 ], "chance": 50 }, - { "group": "school", "x": [ 0, 10 ], "y": [ 10, 10 ], "chance": 50 }, - { "group": "school", "x": [ 16, 23 ], "y": [ 8, 8 ], "chance": 50 }, - { "group": "school", "x": [ 0, 10 ], "y": [ 8, 8 ], "chance": 50 }, - { "group": "school", "x": [ 16, 23 ], "y": [ 6, 6 ], "chance": 50 }, - { "group": "school", "x": [ 0, 10 ], "y": [ 6, 6 ], "chance": 50 }, - { "group": "school", "x": [ 16, 23 ], "y": [ 4, 4 ], "chance": 50 }, - { "group": "school", "x": [ 0, 10 ], "y": [ 4, 4 ], "chance": 50 }, - { "group": "school", "x": [ 16, 23 ], "y": [ 2, 2 ], "chance": 50 }, - { "group": "school", "x": [ 0, 10 ], "y": [ 2, 2 ], "chance": 50 }, - { "group": "school", "x": [ 16, 23 ], "y": [ 0, 0 ], "chance": 50 }, - { "group": "school", "x": [ 0, 10 ], "y": [ 0, 0 ], "chance": 50 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.45 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.45 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_76" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "hhhh |--|L L|........", - " |EE| L|........", - "hhhh |EE+ |........", - " |EE+ |--------", - "hhhh |--| ", - " |..|L G ", - "hhhh |..|L |--------", - " G|..|L |........", - "hhhh |--|L L|.|------", - " | | L|.| ", - "hhhh |> [ L|.| hkhkh", - " | | L|.| ", - "hhhh |--| |.| hkhkh", - " [ [ |-| ", - " [ [ [ ", - "AAAa |--| |-| ", - " a |..|-----|.| hkhkh", - " |[-|..........| ", - " |..........| hkhkh", - "---- |..........| ", - " |..........|------", - " |.................", - "------|.................", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "school", "x": [ 22, 22 ], "y": [ 18, 18 ], "chance": 50 }, - { "group": "school", "x": [ 22, 22 ], "y": [ 16, 16 ], "chance": 50 }, - { "group": "school", "x": [ 22, 22 ], "y": [ 12, 12 ], "chance": 50 }, - { "group": "school", "x": [ 22, 22 ], "y": [ 10, 10 ], "chance": 50 }, - { "group": "school", "x": [ 20, 20 ], "y": [ 18, 18 ], "chance": 50 }, - { "group": "school", "x": [ 20, 20 ], "y": [ 16, 16 ], "chance": 50 }, - { "group": "school", "x": [ 20, 20 ], "y": [ 12, 12 ], "chance": 50 }, - { "group": "school", "x": [ 20, 20 ], "y": [ 10, 10 ], "chance": 50 }, - { "group": "school", "x": [ 14, 14 ], "y": [ 8, 11 ], "chance": 75 }, - { "group": "school", "x": [ 10, 10 ], "y": [ 5, 8 ], "chance": 75 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_77" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".......|r rr|.| |c ", - ".......|-| |-|.| |6h c", - ".........|[[|...| |cccc", - "---------| |---| |-uu-", - " ", - " ", - "--------------| |----", - "..............|H[[H|....", - "----|.|-------| |----", - " 6k|.| ", - "k kh|.| ", - " k |.| h h h hc ch h h", - "k |.| 6c6c6c6c c6c6c6", - " n |.| ", - " n |.| h h h hc ch h h", - " n |.| 6c6c6c6c c6c6c6", - "k |.| ", - " |.| h h h hc ch h h", - "k |.| 6c6c6c6c c6c6c6", - " |.| ", - "----|.|6kk nnnn ", - "......|khG ", - "......|-----------------", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "school", "x": [ 0, 0 ], "y": [ 18, 18 ], "chance": 50 }, - { "group": "school", "x": [ 0, 0 ], "y": [ 16, 16 ], "chance": 50 }, - { "group": "school", "x": [ 0, 0 ], "y": [ 12, 12 ], "chance": 50 }, - { "group": "school", "x": [ 0, 0 ], "y": [ 10, 10 ], "chance": 50 }, - { "group": "office", "x": [ 2, 2 ], "y": [ 9, 11 ], "chance": 75 }, - { "group": "office", "x": [ 7, 9 ], "y": [ 20, 20 ], "chance": 75 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_78" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "|u+u| c|..|---| |---", - "v vc h6|......|5 |...", - "v vcccc|......|-==|...", - "|u+u|-uu-|------|6 |---", - " ", - " G ", - "-----------| |--------", - "...........| |........", - "---|.|-|---| |---|-|.|", - " G|.|t+ + + +t|.|", - " |.|-| D| |D |-|.|", - " h |.|t+ S| |S +t|.|", - "c6 |.|-| c| |c |-|.|", - " |.|t+ S| |S +t|.|", - " h |.|-| c| |c |-|.|", - "c6 |.|t+ S| |S +t|.|", - " |.|-|---| |---|-|.|", - " h |.......| |.......|", - "c6 |-------| |-------|", - " [ [", - " [ [", - " |-------------------|", - "---|...................|", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_79" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "-|..|EE= Vc o| h ", - "....|--| V o| ", - ".......| | | ", - "-------| |-H[[H-|-uuu", - " ", - " ", - "-------| |---------|-", - ".......|H[[H|.........|c", - "-------| |-------|.|6", - "G |.|c", - " |.|c", - " h h h hc ch h h h |.|c", - " 6c6c6c6c c6c6c6c6 |.|-", - " |...", - " h h h hc ch h h h |...", - " 6c6c6c6c c6c6c6c6 |---", - " [ ", - " h h h hc ch h h h [ ", - " 6c6c6c6c c6c6c6c6 |---", - " |...", - " nnnn k6k|...", - " Ghk|...", - "--------------------|...", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "textbooks", "x": [ 18, 18 ], "y": [ 0, 1 ], "chance": 75 }, - { "group": "office", "x": [ 17, 19 ], "y": [ 20, 20 ], "chance": 75 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_80" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " c|..|h6h | v | ", - " |..|kk = v o| ", - " |..|o o| v h o|-", - "u-=-|--|-uuu-| vk6k |.", - " |kh P|.", - " |-----|.", - "uuuu-=-|-=-uuuu-|.......", - " | c|.|-----", - "h c|c h6|.| cG", - " h6|6h c|.| c6", - " h h c|c h h c|.| ", - "c6c6ccc|ccc6c6cc|.| i ", - "-------|--------|.| ", - "..................| i ", - "..................| ", - "------------------|-uu-u", - " ", - " ", - "------------------------", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "textbooks", "x": [ 9, 9 ], "y": [ 0, 1 ], "chance": 75 }, - { "group": "textbooks", "x": [ 17, 19 ], "y": [ 3, 3 ], "chance": 75 }, - { "group": "electronics", "x": [ 21, 21 ], "y": [ 1, 2 ], "chance": 75 }, - { "group": "cloning_vat", "x": [ 21, 21 ], "y": [ 13, 13 ], "chance": 75 }, - { "group": "cloning_vat", "x": [ 22, 22 ], "y": [ 11, 11 ], "chance": 75 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_c_81" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "i c6c| v |+|+|..", - " hc|rrrrrr| | |..", - "-|+|---|------| + |..", - ".| |..........| |SDS|..", - ".| |---|------| |---|..", - ".| + ooP| |SDS|..", - ".| | v + |..", - "-|+--|-| k v | |..", - "h o|.|hk v |+|+|..", - "cc o|.|k6 | |t|t|..", - " |-|-uu-=-| |-|-|..", - " i | |......", - " v |......", - " i v |-uu[[uu-|----|.", - " | | |.", - "u-uu-| v h h h h h |.", - " v 6 6 6 6 6 |.", - " | h h h h h |.", - "--------| 6 6 6 6 6 |.", - "........| G |.", - "........| c6c |.", - "........| h |.", - "........|-------------|.", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c" - }, - "place_loot": [ - { "group": "science", "x": [ 9, 9 ], "y": [ 7, 9 ], "chance": 90 }, - { "group": "science", "x": [ 11, 12 ], "y": [ 5, 5 ], "chance": 90 }, - { "group": "dissection", "x": [ 8, 13 ], "y": [ 1, 1 ], "chance": 90 }, - { "group": "bionics_common", "x": [ 4, 4 ], "y": [ 8, 9 ], "chance": 75 }, - { "group": "cloning_vat", "x": [ 2, 2 ], "y": [ 13, 13 ], "chance": 75 }, - { "group": "cloning_vat", "x": [ 1, 1 ], "y": [ 11, 11 ], "chance": 75 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } + "weight": 250 } ] diff --git a/data/json/mapgen/necropolis/necropolisB3.json b/data/json/mapgen/necropolis/necropolisB3.json index b096c6155111a..27e238ee8d03d 100644 --- a/data/json/mapgen/necropolis/necropolisB3.json +++ b/data/json/mapgen/necropolis/necropolisB3.json @@ -15,603 +15,162 @@ ] }, { - "type": "mapgen", "method": "json", - "om_terrain": [ "necropolis_d_1" ], - "weight": 250, "object": { "fill_ter": "t_floor", "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "...................|----", - "...............|---|k6k ", - "...............|c v h ", - "...............| + G ", - "...............|6 v ", - "...............|---| ", - "...............|---| ", - "...............|c v " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "..............................|----------------|........................", + "........................|-----|rrrrrr rrrrrr|....|-----|-----|.......", + "........................|P | |....| | |.......", + "........................| + G |----| hc [ |.......", + "........................| | |EEEE| c6c v |.......", + "........................| |rrrrrr rrrrrr|EEEE| | |.......", + "...................|----|| ||-------++-------|-++-|-u[u-|| ||----|..", + "...............|---|k6k | | | | k6k|--", + "...............|c v h v v ccc ccc ccc ccc ccc ccc v v h v ", + "...............| + G v v c 6 c 6 c 6 6 c 6 c 6 c v v G + ", + "...............|6 v 5|5 v c c c c c c v 5|5 v ", + "...............|---| = | G G | = |--", + "...............|---| = | | = |--", + "...............|c v | v c c c c c c v | v ", + "...............| + G v v c 6 c 6 c 6 6 c 6 c 6 c v v G + ", + "...............|6 v h v v ccc ccc ccc ccc ccc ccc v v h v ", + "...............|---|k6k | | 5 | | k6k|--", + "...................|----|| |-uuu-uuu-uuu-===-uuu-uuu-uuu-| ||----|..", + "........................| 5 P|.......", + "........................| |.......", + "........................| G |.......", + "........................| |u[u|-+-| |-+-|u[u| |.......", + "........................|u[u|-++| |r r| vc | |++-|u[u|.......", + "........................| |EEE| > |r r| v6 | > |EEE| |.......", + "........................| < |EEE|---|r r| vch |---|EEE| < |.......", + "........................|---|---|...|r r| 5 |r |...|---|---|.......", + "....................................|---|--===--|---|...................", + "......................|-------------| 5 |-------------------", + "......................| ", + "......................| G ", + "......................| |--------------------------------------------", + "...|-|-|-|-|-|-|-|--|.| ||............................................", + "...|~|~|~|~|t|t|t| t|.| |.............................................", + "...| |+|+|+|+-|-| |--------------|..............................", + "...| + |nhhhn oooo |..............................", + "...| | |-| vh hh|..............|---|---|---|---", + "...|~|~|~|~|cScScScS|.| vh G nn|--|...........|t S|t S|t S|t S", + "...|-|-|-|-|--------|.| vh nn| r|...........|- -|- -|- -|- -" + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate" }, "place_items": [ { "item": "electronics", "x": [ 20, 22 ], "y": [ 17, 17 ], "chance": 30 }, - { "item": "office", "x": [ 20, 22 ], "y": [ 17, 17 ], "chance": 30 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_2" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "......|----------------|", - "|-----|rrrrrr rrrrrr|", - "|P | |", - "| + G |", - "| | |", - "| |rrrrrr rrrrrr|", - "|| ||-------++-------|", - " | | ", - " v v ccc ccc ccc c", - " v v c 6 c 6 c 6 6", - "5|5 v c c c ", - " = | G ", - " = | ", - " | v c c c " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "place_items": [ - { "item": "robots", "x": [ 17, 22 ], "y": [ 11, 11 ], "chance": 60 }, - { "item": "robots", "x": [ 7, 12 ], "y": [ 11, 11 ], "chance": 60 }, - { "item": "robots", "x": [ 7, 12 ], "y": [ 15, 15 ], "chance": 60 }, - { "item": "robots", "x": [ 17, 22 ], "y": [ 15, 15 ], "chance": 60 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 1, 22 ], "y": [ 12, 22 ], "density": 0.07 }, - { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 1, 22 ], "y": [ 12, 22 ], "density": 0.07 } - ], - "place_monster": [ { "monster": "mon_turret_rifle", "x": 18, "y": 13 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_3" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "....|-----|-----|.......", - "....| | |.......", - "----| hc [ |.......", - "EEEE| c6c v |.......", - "EEEE| | |.......", - "-++-|-u[u-|| ||----|..", - " | | k6k|--", - "cc ccc ccc v v h v ", - " c 6 c 6 c v v G + ", - " c c c v 5|5 v ", - " G | = |--", - " | = |--", - " c c c v | v " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "place_items": [ - { "item": "office", "x": [ 6, 8 ], "y": [ 14, 14 ], "chance": 30 }, - { "item": "electronics", "x": [ 18, 20 ], "y": [ 17, 17 ], "chance": 30 }, - { "item": "office", "x": [ 18, 20 ], "y": [ 17, 17 ], "chance": 30 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 1, 22 ], "y": [ 12, 22 ], "density": 0.07 }, - { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 1, 22 ], "y": [ 12, 22 ], "density": 0.07 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_4" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - ".........|--|--|--|..|--", - "...|--|..|L@|@@|@@|..|@@", - "...|@L|--| @| L| L|..|L ", - "...|@ [ |[-|[-|[-|--|-[", - "...|--| ", - "...|@L| ", - "...|@ [ |--|[-|[-|[-|-[", - "...|--| |L@| L| L| L|L ", - "...|t + [ @|@@|@@|@@|@@", - "...|--| |--|--|--|--|--", - "...|t + [ @|@@|@@|@@|@@", - "...|--| |L@| L| L| L|L ", - "-|.|@ [ |--|[-|[-|[-|-[", - "c|.|@L| ", - " |.|--| ", - "6|.|@ [ |--|[-|[-| |-[", - "-|.|@L| [ @| L| L| |L ", - "-|.|--| |L@|@@|@@| |@@", - "c|.|t + |--|--|--| |--" + { "item": "office", "x": [ 20, 22 ], "y": [ 17, 17 ], "chance": 30 }, + { "item": "robots", "x": [ 41, 46 ], "y": [ 11, 11 ], "chance": 60 }, + { "item": "robots", "x": [ 31, 36 ], "y": [ 11, 11 ], "chance": 60 }, + { "item": "robots", "x": [ 31, 36 ], "y": [ 15, 15 ], "chance": 60 }, + { "item": "robots", "x": [ 41, 46 ], "y": [ 15, 15 ], "chance": 60 }, + { "item": "office", "x": [ 54, 56 ], "y": [ 14, 14 ], "chance": 30 }, + { "item": "electronics", "x": [ 66, 68 ], "y": [ 17, 17 ], "chance": 30 }, + { "item": "office", "x": [ 66, 68 ], "y": [ 17, 17 ], "chance": 30 }, + { "item": "office", "x": [ 20, 22 ], "y": [ 26, 26 ], "chance": 50 }, + { "item": "electronics", "x": [ 20, 22 ], "y": [ 26, 26 ], "chance": 50 }, + { "item": "novels", "x": [ 34, 38 ], "y": [ 44, 44 ], "chance": 50 }, + { "item": "robots", "x": [ 37, 37 ], "y": [ 32, 35 ], "chance": 50 }, + { "item": "cleaning", "x": [ 39, 39 ], "y": [ 32, 35 ], "chance": 50 }, + { "item": "prison_weapons", "x": [ 49, 49 ], "y": [ 35, 35 ], "chance": 70 }, + { "item": "office", "x": [ 66, 68 ], "y": [ 26, 26 ], "chance": 70 }, + { "item": "electronics", "x": [ 66, 68 ], "y": [ 26, 26 ], "chance": 70 } + ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 25, 46 ], "y": [ 12, 22 ], "density": 0.07 }, + { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 25, 46 ], "y": [ 12, 22 ], "density": 0.07 }, + { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 49, 70 ], "y": [ 12, 22 ], "density": 0.07 }, + { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 49, 70 ], "y": [ 12, 22 ], "density": 0.07 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 33, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 33, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 25, 46 ], "y": [ 25, 29 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 42, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 49, 70 ], "y": [ 25, 29 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 49, 70 ], "y": [ 38, 41 ], "density": 0.05 } ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, + "place_monster": [ + { "monster": "mon_turret_rifle", "x": 42, "y": 13 }, + { "monster": "mon_turret_rifle", "x": 44, "y": 39 }, + { "monster": "mon_turret_rifle", "x": 47, "y": 28 }, + { "monster": "mon_turret_rifle", "x": 41, "y": 28 } + ] + }, + "om_terrain": [ + [ "necropolis_d_1", "necropolis_d_2", "necropolis_d_3" ], + [ "necropolis_d_10", "necropolis_d_11", "necropolis_d_12" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "........................................................................", + ".....................................................|-----------|-----|", + ".....................................................| l|L b L|", + ".....................................................| hnnh c|L b L|", + ".....................................................| hnnh S|L L|", + ".........|--|--|--|..|--|--|--|......................| D c|L L|", + "...|--|..|L@|@@|@@|..|@@|@@|@@|..|--|..|----------|--|--uuu--[[--|--+--|", + "...|@L|--| @| L| L|..|L |L |L |--|L@|..| | [ ", + "...|@ [ |[-|[-|[-|--|-[|-[|-[| [ @|..| j j j v [ G ", + "...|--| |--|..| jjj jjj v |------------| |+|", + "...|@L| |L@|..| j j j v |............| |r|", + "...|@ [ |--|[-|[-|[-|-[|-[|-[| [ @|..| | |...|------|-| |-|", + "...|--| |L@| L| L| L|L |L |L | |--|..| [ |...| 6 [ [", + "...|t + [ @|@@|@@|@@|@@|@@|@@| + t|..| J [ |...| n |------|", + "...|--| |--|--|--|--|--|--|--| |--|..| G D| |...| n VcScScc|", + "...|t + [ @|@@|@@|@@|@@|@@|@@| + t|..| J [ |...|c [ S|", + "...|--| |L@| L| L| L|L |L |L | |--|..| [ |---|c V c|", + "-|.|@ [ |--|[-|[-|[-|-[|-[|-[| [ @|..| | |EEE|S r|-| S|", + "c|.|@L| |L@|..| C C C v |EEE|r r|r+ c|", + " |.|--| |--|..| v |-++|--[[--|-|-[--|", + "6|.|@ [ |--|[-|[-| |-[|-[|-[| [ @|..| C C C v ", + "-|.|@L| [ @| L| L| |L |L |L | |L@|..| | G ", + "-|.|--| |L@|@@|@@| |@@|@@|@@| |--|..|----------|------|---| |-----", + "c|.|t + |--|--|--| |--|--|--| + t|....................|cSc| |.....", + " |.|--| [ @|@@|@@| |@@|@@|@@| |--|....................| + |.....", + "6|.|t + |L@| L| L| |L |L |L | + t|....................|t |-[[-|-----", + "-|.|--| |--|[-|[-| |-[|-[|-[| |--|....................|---|P ", + "...| + + |....................|EEE| c h ", + "...| -| |- |....................|EEE| cccc6cc", + "...| ~|[-|[-|[-|-| |-|[-|[-|[-|~ |....................|-++| ", + "...| -| L| L| L|.| |.| L| L| L|- |....................| ", + "...| ~|@@|@@|@@|.| |.|@@|@@|@@|~ |....................|b bb G ", + "...|--|--|--|--||| |||--|--|--|--|....................|b bb ", + "................| |.................................|b ", + "................| 5|.................................| bbbbb ", + "................|-====-|.................................|-------|u[[u[[", + "................| 5|.........................................| ", + "----------------| |-----------------------------------------| ", + " G ", + " G ", + "--------| |------------------------------------------------| ", + "........| |................................................|| |", + "........|b b|.................................................| |", + "........|b b|.................................................| |", + "........|b b|.................................................| |", + "|---|---|b b|---|---|---|---|---|---|.........................| |", + "|t S|t S|D P|t S|t S|t S|t S|t S|t S|.........................| |", + "|- -|- -| |- -|- -|- -|- -|- -|- -|.........................| |" + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate" }, "place_items": [ { "item": "bed", "x": [ 22, 22 ], "y": [ 22, 22 ], "chance": 40 }, { "item": "traveler", "x": [ 22, 23 ], "y": [ 21, 21 ], "chance": 40 }, @@ -656,488 +215,141 @@ { "item": "bed", "x": [ 11, 11 ], "y": [ 6, 7 ], "chance": 40 }, { "item": "traveler", "x": [ 10, 10 ], "y": [ 6, 6 ], "chance": 40 }, { "item": "bed", "x": [ 13, 14 ], "y": [ 6, 6 ], "chance": 40 }, - { "item": "traveler", "x": [ 14, 14 ], "y": [ 7, 7 ], "chance": 40 } + { "item": "traveler", "x": [ 14, 14 ], "y": [ 7, 7 ], "chance": 40 }, + { "item": "bed", "x": [ 35, 35 ], "y": [ 20, 21 ], "chance": 40 }, + { "item": "traveler", "x": [ 34, 34 ], "y": [ 21, 21 ], "chance": 40 }, + { "item": "bed", "x": [ 35, 35 ], "y": [ 17, 18 ], "chance": 40 }, + { "item": "traveler", "x": [ 34, 34 ], "y": [ 18, 18 ], "chance": 40 }, + { "item": "bed", "x": [ 35, 35 ], "y": [ 10, 11 ], "chance": 40 }, + { "item": "traveler", "x": [ 34, 34 ], "y": [ 10, 10 ], "chance": 40 }, + { "item": "bed", "x": [ 35, 35 ], "y": [ 7, 8 ], "chance": 40 }, + { "item": "traveler", "x": [ 34, 34 ], "y": [ 7, 7 ], "chance": 40 }, + { "item": "bed", "x": [ 28, 29 ], "y": [ 22, 22 ], "chance": 40 }, + { "item": "traveler", "x": [ 28, 28 ], "y": [ 21, 21 ], "chance": 40 }, + { "item": "bed", "x": [ 25, 26 ], "y": [ 22, 22 ], "chance": 40 }, + { "item": "traveler", "x": [ 25, 25 ], "y": [ 21, 21 ], "chance": 40 }, + { "item": "bed", "x": [ 28, 29 ], "y": [ 15, 15 ], "chance": 40 }, + { "item": "traveler", "x": [ 28, 28 ], "y": [ 16, 16 ], "chance": 40 }, + { "item": "bed", "x": [ 25, 26 ], "y": [ 15, 15 ], "chance": 40 }, + { "item": "traveler", "x": [ 25, 25 ], "y": [ 16, 16 ], "chance": 40 }, + { "item": "bed", "x": [ 28, 29 ], "y": [ 13, 13 ], "chance": 40 }, + { "item": "traveler", "x": [ 28, 28 ], "y": [ 12, 12 ], "chance": 40 }, + { "item": "bed", "x": [ 25, 26 ], "y": [ 13, 13 ], "chance": 40 }, + { "item": "traveler", "x": [ 25, 25 ], "y": [ 12, 12 ], "chance": 40 }, + { "item": "bed", "x": [ 28, 29 ], "y": [ 6, 6 ], "chance": 40 }, + { "item": "traveler", "x": [ 28, 28 ], "y": [ 7, 7 ], "chance": 40 }, + { "item": "bed", "x": [ 25, 26 ], "y": [ 6, 6 ], "chance": 40 }, + { "item": "traveler", "x": [ 25, 25 ], "y": [ 7, 7 ], "chance": 40 }, + { "item": "surgery", "x": [ 58, 58 ], "y": [ 18, 18 ], "chance": 60 }, + { "item": "surgery", "x": [ 63, 63 ], "y": [ 17, 18 ], "chance": 60 }, + { "item": "surgery", "x": [ 65, 65 ], "y": [ 18, 18 ], "chance": 40 }, + { "item": "cleaning", "x": [ 58, 58 ], "y": [ 22, 22 ], "chance": 40 }, + { "item": "lab_torso", "x": [ 66, 66 ], "y": [ 2, 5 ], "chance": 70 }, + { "item": "lab_torso", "x": [ 70, 70 ], "y": [ 2, 5 ], "chance": 70 }, + { "item": "dining", "x": [ 56, 57 ], "y": [ 3, 4 ], "chance": 40 }, + { "item": "fridgesnacks", "x": [ 64, 64 ], "y": [ 2, 2 ], "chance": 70 }, + { "item": "bed", "x": [ 13, 14 ], "y": [ 31, 31 ], "chance": 70 }, + { "item": "traveler", "x": [ 14, 14 ], "y": [ 30, 30 ], "chance": 70 }, + { "item": "bed", "x": [ 10, 11 ], "y": [ 31, 31 ], "chance": 70 }, + { "item": "traveler", "x": [ 11, 11 ], "y": [ 30, 30 ], "chance": 70 }, + { "item": "bed", "x": [ 7, 8 ], "y": [ 31, 31 ], "chance": 70 }, + { "item": "traveler", "x": [ 8, 8 ], "y": [ 30, 30 ], "chance": 70 }, + { "item": "bed", "x": [ 22, 23 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "traveler", "x": [ 22, 22 ], "y": [ 25, 25 ], "chance": 70 }, + { "item": "bed", "x": [ 16, 17 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "traveler", "x": [ 17, 17 ], "y": [ 25, 25 ], "chance": 70 }, + { "item": "bed", "x": [ 13, 14 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "traveler", "x": [ 14, 14 ], "y": [ 25, 25 ], "chance": 70 }, + { "item": "bed", "x": [ 11, 11 ], "y": [ 24, 25 ], "chance": 70 }, + { "item": "traveler", "x": [ 10, 10 ], "y": [ 25, 25 ], "chance": 70 }, + { "item": "bed", "x": [ 28, 29 ], "y": [ 31, 31 ], "chance": 70 }, + { "item": "traveler", "x": [ 29, 29 ], "y": [ 30, 30 ], "chance": 70 }, + { "item": "bed", "x": [ 25, 26 ], "y": [ 31, 31 ], "chance": 70 }, + { "item": "traveler", "x": [ 26, 26 ], "y": [ 30, 30 ], "chance": 70 }, + { "item": "bed", "x": [ 28, 29 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "traveler", "x": [ 28, 28 ], "y": [ 25, 25 ], "chance": 70 }, + { "item": "bed", "x": [ 25, 26 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "traveler", "x": [ 25, 25 ], "y": [ 25, 25 ], "chance": 70 }, + { "item": "magazines", "x": [ 62, 63 ], "y": [ 31, 32 ], "chance": 60 } ], "place_monsters": [ { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 5, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 5, 22 ], "y": [ 1, 22 ], "density": 0.3 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_5" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "|--|--|.................", - "|@@|@@|..|--|..|--------", - "|L |L |--|L@|..| ", - "|-[|-[| [ @|..| j j ", - " |--|..| jjj jj", - " |L@|..| j j ", - "|-[|-[| [ @|..| ", - "|L |L | |--|..| ", - "|@@|@@| + t|..| J ", - "|--|--| |--|..| G ", - "|@@|@@| + t|..| J ", - "|L |L | |--|..| ", - "|-[|-[| [ @|..| ", - " |L@|..| C C C", - " |--|..| ", - "|-[|-[| [ @|..| C C C", - "|L |L | |L@|..| ", - "|@@|@@| |--|..|--------", - "|--|--| + t|..........." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "place_items": [ - { "item": "bed", "x": [ 11, 11 ], "y": [ 20, 21 ], "chance": 40 }, - { "item": "traveler", "x": [ 10, 10 ], "y": [ 21, 21 ], "chance": 40 }, - { "item": "bed", "x": [ 11, 11 ], "y": [ 17, 18 ], "chance": 40 }, - { "item": "traveler", "x": [ 10, 10 ], "y": [ 18, 18 ], "chance": 40 }, - { "item": "bed", "x": [ 11, 11 ], "y": [ 10, 11 ], "chance": 40 }, - { "item": "traveler", "x": [ 10, 10 ], "y": [ 10, 10 ], "chance": 40 }, - { "item": "bed", "x": [ 11, 11 ], "y": [ 7, 8 ], "chance": 40 }, - { "item": "traveler", "x": [ 10, 10 ], "y": [ 7, 7 ], "chance": 40 }, - { "item": "bed", "x": [ 4, 5 ], "y": [ 22, 22 ], "chance": 40 }, - { "item": "traveler", "x": [ 4, 4 ], "y": [ 21, 21 ], "chance": 40 }, - { "item": "bed", "x": [ 1, 2 ], "y": [ 22, 22 ], "chance": 40 }, - { "item": "traveler", "x": [ 1, 1 ], "y": [ 21, 21 ], "chance": 40 }, - { "item": "bed", "x": [ 4, 5 ], "y": [ 15, 15 ], "chance": 40 }, - { "item": "traveler", "x": [ 4, 4 ], "y": [ 16, 16 ], "chance": 40 }, - { "item": "bed", "x": [ 1, 2 ], "y": [ 15, 15 ], "chance": 40 }, - { "item": "traveler", "x": [ 1, 1 ], "y": [ 16, 16 ], "chance": 40 }, - { "item": "bed", "x": [ 4, 5 ], "y": [ 13, 13 ], "chance": 40 }, - { "item": "traveler", "x": [ 4, 4 ], "y": [ 12, 12 ], "chance": 40 }, - { "item": "bed", "x": [ 1, 2 ], "y": [ 13, 13 ], "chance": 40 }, - { "item": "traveler", "x": [ 1, 1 ], "y": [ 12, 12 ], "chance": 40 }, - { "item": "bed", "x": [ 4, 5 ], "y": [ 6, 6 ], "chance": 40 }, - { "item": "traveler", "x": [ 4, 4 ], "y": [ 7, 7 ], "chance": 40 }, - { "item": "bed", "x": [ 1, 2 ], "y": [ 6, 6 ], "chance": 40 }, - { "item": "traveler", "x": [ 1, 1 ], "y": [ 7, 7 ], "chance": 40 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_6" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - ".....|-----------|-----|", - ".....| l|L b L|", - ".....| hnnh c|L b L|", - ".....| hnnh S|L L|", - ".....| D c|L L|", - "--|--|--uuu--[[--|--+--|", - " | [ ", - "j v [ G ", - "j v |------------| |+|", - "j v |............| |r|", - " | |...|------|-| |-|", - " [ |...| 6 [ [", - " [ |...| n |------|", - " D| |...| n VcScScc|", - " [ |...|c [ S|", - " [ |---|c V c|", - " | |EEE|S r|-| S|", - " v |EEE|r r|r+ c|", - " v |-++|--[[--|-|-[--|", - " v ", - " | G ", - "--|------|---| |-----", - ".........|cSc| |....." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "place_items": [ - { "item": "surgery", "x": [ 10, 10 ], "y": [ 18, 18 ], "chance": 60 }, - { "item": "surgery", "x": [ 15, 15 ], "y": [ 17, 18 ], "chance": 60 }, - { "item": "surgery", "x": [ 17, 17 ], "y": [ 18, 18 ], "chance": 40 }, - { "item": "cleaning", "x": [ 10, 10 ], "y": [ 22, 22 ], "chance": 40 }, - { "item": "lab_torso", "x": [ 18, 18 ], "y": [ 2, 5 ], "chance": 70 }, - { "item": "lab_torso", "x": [ 22, 22 ], "y": [ 2, 5 ], "chance": 70 }, - { "item": "dining", "x": [ 8, 9 ], "y": [ 3, 4 ], "chance": 40 }, - { "item": "fridgesnacks", "x": [ 16, 16 ], "y": [ 2, 2 ], "chance": 70 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_7" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "-----|..................", - "L b L|---|..............", - "L b L|c t|..............", - "L L|S |..............", - "L L|c |..............", - "--+--|-+-|---|------|...", - " [ V h6c |...", - " [ [ hch |...", - "---------| V |...", - "n | |------|...", - "n c c c V V h6c |...", - " V [ hch |...", - " c c c V V |...", - "r V G |------|...", - "r c c c V V h6c |...", - "r V [ hch |...", - "r c c c V V |...", - " | |------|...", - "---uuuuu-| V h6c |...", - " [ hch |...", - " V |...", - "| |---|---|------|...", - "| |cSc|.............." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 5, 22 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.2 } + ] + }, + "om_terrain": [ + [ "necropolis_d_4", "necropolis_d_5", "necropolis_d_6" ], + [ "necropolis_d_13", "necropolis_d_14", "necropolis_d_15" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "........................................................................", + "-----|.....................................|-----|----|--|----|-----|...", + "L b L|---|.................................|d@@d |hnnh| |hnnh| d@@d|...", + "L b L|c t|.................................| @@ | | | | @@ |...", + "L L|S |.................................| + + |...", + "L L|c |.................................|-+-|-| | | |-|-+-|...", + "--+--|-+-|---|------|......................|t S|L+ r| |r +L|S t|...", + " [ V h6c |......................|---|-|----| |----|-|---|...", + " [ [ hch |......................|d@@d |hnnh| |hnnh| d@@d|...", + "---------| V |......................| @@ | | | | @@ |...", + "n | |------|......................| + + |...", + "n c c c V V h6c |......................|-+-|-| | | |-|-+-|...", + " V [ hch |......................|t S|L+ r| |r +L|S t|...", + " c c c V V |......................|---|-|----| |----|-|---|...", + "r V G |------|......................|d@@d |hnnh| |hnnh| d@@d|...", + "r c c c V V h6c |......................| @@ | | | | @@ |...", + "r V [ hch |......................| + + |...", + "r c c c V V |......................|-+-|-| | | |-|-+-|...", + " | |------|......................|t S|L+ r| |r +L|S t|...", + "---uuuuu-| V h6c |......................|---|-|----| |----|-|---|...", + " [ hch |.................................| |..............", + " V |.................................| ||.............", + "| |---|---|------|................................|| |.............", + "| |cSc|...........................................| 5|.............", + "| + |...........................................|-==-|.............", + "|-[[-| t|...........................................| 5|.............", + " |---|...........................................|| |.............", + " c | < |............................................| ||.............", + "cc | |.|------------------------------------------| |..............", + " |-+-|.| |..............", + " |.| |..............", + " nn b|.| |------------------| |------------------|..............", + " nn b|.| |..................|| ||.................................", + " b|.| |.|----|---|-|----|.| |.|----|-|---|----|................", + " bbbbb |.| |.|d |S t|L|hnnh|.| |.|hnnh|L|t S| d|................", + "u|-------|.| |.|@@ |-+-|+| |-| |-| |+|-+-| @@|................", + " |.........| |.|@@ [ [ @@|................", + " |---------| |.|d oo |-| |-| oo d|................", + " |.|---------------|.| |.|---------------|................", + " |...................| |..................................", + "|-------------|...................| |..................................", + "|...............|---------------|.| |.|---------------|................", + "................|d oo |-| |-| oo d|................", + "................|@@ [ [ @@|................", + "................|@@ |-+-|+| |-| |-| |+|-+-| @@|................", + "................|d |S t|L|hnnh|.| |.|hnnh|L|t S| d|................", + "................|----|---|-|----|.| |.|----|-|---|----|................", + "..................................| |.................................." + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate" }, "place_items": [ { "item": "hospital_incubator", "x": [ 3, 3 ], "y": [ 17, 17 ], "chance": 40 }, { "item": "hospital_incubator", "x": [ 5, 5 ], "y": [ 17, 17 ], "chance": 40 }, @@ -1153,11470 +365,1073 @@ { "item": "hospital_incubator", "x": [ 7, 7 ], "y": [ 11, 11 ], "chance": 40 }, { "item": "hospital_incubator", "x": [ 0, 0 ], "y": [ 14, 17 ], "chance": 70 }, { "item": "lab_torso", "x": [ 0, 0 ], "y": [ 2, 5 ], "chance": 70 }, - { "item": "lab_torso", "x": [ 4, 4 ], "y": [ 2, 5 ], "chance": 70 } + { "item": "lab_torso", "x": [ 4, 4 ], "y": [ 2, 5 ], "chance": 70 }, + { "item": "dresser", "x": [ 44, 44 ], "y": [ 2, 2 ], "chance": 70 }, + { "item": "dresser", "x": [ 44, 44 ], "y": [ 8, 8 ], "chance": 70 }, + { "item": "dresser", "x": [ 44, 44 ], "y": [ 14, 14 ], "chance": 70 }, + { "item": "dresser", "x": [ 47, 47 ], "y": [ 2, 2 ], "chance": 70 }, + { "item": "dresser", "x": [ 47, 47 ], "y": [ 8, 8 ], "chance": 70 }, + { "item": "dresser", "x": [ 47, 47 ], "y": [ 14, 14 ], "chance": 70 }, + { "item": "bed", "x": [ 45, 46 ], "y": [ 14, 15 ], "chance": 70 }, + { "item": "bed", "x": [ 45, 46 ], "y": [ 2, 3 ], "chance": 70 }, + { "item": "bed", "x": [ 45, 46 ], "y": [ 8, 9 ], "chance": 70 }, + { "item": "homebooks", "x": [ 53, 53 ], "y": [ 18, 18 ], "chance": 60 }, + { "item": "homebooks", "x": [ 58, 58 ], "y": [ 18, 18 ], "chance": 60 }, + { "item": "homebooks", "x": [ 53, 53 ], "y": [ 12, 12 ], "chance": 60 }, + { "item": "homebooks", "x": [ 58, 58 ], "y": [ 12, 12 ], "chance": 60 }, + { "item": "homebooks", "x": [ 53, 53 ], "y": [ 6, 6 ], "chance": 60 }, + { "item": "homebooks", "x": [ 58, 58 ], "y": [ 6, 6 ], "chance": 60 }, + { "item": "traveler", "x": [ 48, 48 ], "y": [ 6, 6 ], "chance": 70 }, + { "item": "traveler", "x": [ 63, 63 ], "y": [ 6, 6 ], "chance": 70 }, + { "item": "traveler", "x": [ 48, 48 ], "y": [ 12, 12 ], "chance": 70 }, + { "item": "traveler", "x": [ 63, 63 ], "y": [ 12, 12 ], "chance": 70 }, + { "item": "traveler", "x": [ 48, 48 ], "y": [ 18, 18 ], "chance": 70 }, + { "item": "traveler", "x": [ 63, 63 ], "y": [ 18, 18 ], "chance": 70 }, + { "item": "dresser", "x": [ 67, 67 ], "y": [ 2, 2 ], "chance": 70 }, + { "item": "dresser", "x": [ 67, 67 ], "y": [ 8, 8 ], "chance": 70 }, + { "item": "dresser", "x": [ 67, 67 ], "y": [ 14, 14 ], "chance": 70 }, + { "item": "dresser", "x": [ 64, 64 ], "y": [ 2, 2 ], "chance": 70 }, + { "item": "dresser", "x": [ 64, 64 ], "y": [ 8, 8 ], "chance": 70 }, + { "item": "dresser", "x": [ 64, 64 ], "y": [ 14, 14 ], "chance": 70 }, + { "item": "bed", "x": [ 69, 70 ], "y": [ 14, 15 ], "chance": 70 }, + { "item": "bed", "x": [ 69, 70 ], "y": [ 2, 3 ], "chance": 70 }, + { "item": "bed", "x": [ 69, 70 ], "y": [ 8, 9 ], "chance": 70 }, + { "item": "dresser", "x": [ 17, 17 ], "y": [ 45, 45 ], "chance": 70 }, + { "item": "dresser", "x": [ 17, 17 ], "y": [ 42, 42 ], "chance": 70 }, + { "item": "dresser", "x": [ 17, 17 ], "y": [ 34, 34 ], "chance": 70 }, + { "item": "dresser", "x": [ 17, 17 ], "y": [ 37, 37 ], "chance": 70 }, + { "item": "bed", "x": [ 17, 18 ], "y": [ 43, 44 ], "chance": 70 }, + { "item": "bed", "x": [ 17, 18 ], "y": [ 35, 36 ], "chance": 70 }, + { "item": "magazines", "x": [ 3, 14 ], "y": [ 31, 32 ], "chance": 60 }, + { "item": "homebooks", "x": [ 46, 47 ], "y": [ 37, 37 ], "chance": 70 }, + { "item": "homebooks", "x": [ 46, 47 ], "y": [ 42, 42 ], "chance": 70 }, + { "item": "homebooks", "x": [ 24, 25 ], "y": [ 37, 37 ], "chance": 70 }, + { "item": "homebooks", "x": [ 24, 25 ], "y": [ 42, 42 ], "chance": 70 }, + { "item": "traveler", "x": [ 45, 45 ], "y": [ 45, 45 ], "chance": 70 }, + { "item": "traveler", "x": [ 45, 45 ], "y": [ 34, 34 ], "chance": 70 }, + { "item": "traveler", "x": [ 26, 26 ], "y": [ 45, 45 ], "chance": 70 }, + { "item": "traveler", "x": [ 26, 26 ], "y": [ 34, 34 ], "chance": 70 }, + { "item": "bed", "x": [ 53, 54 ], "y": [ 35, 36 ], "chance": 70 }, + { "item": "bed", "x": [ 53, 54 ], "y": [ 43, 44 ], "chance": 70 }, + { "item": "dresser", "x": [ 54, 54 ], "y": [ 34, 34 ], "chance": 70 }, + { "item": "dresser", "x": [ 54, 54 ], "y": [ 37, 37 ], "chance": 70 }, + { "item": "dresser", "x": [ 54, 54 ], "y": [ 42, 42 ], "chance": 70 }, + { "item": "dresser", "x": [ 54, 54 ], "y": [ 45, 45 ], "chance": 70 } ], "place_monsters": [ { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_8" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "...................|----", - "...................|d@@d", - "...................| @@ ", - "...................| ", - "...................|-+-|", - "...................|t S|", - "...................|---|", - "...................|d@@d", - "...................| @@ ", - "...................| ", - "...................|-+-|", - "...................|t S|", - "...................|---|", - "...................|d@@d", - "...................| @@ ", - "...................| ", - "...................|-+-|", - "...................|t S|", - "...................|---|", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } + ] + }, + "om_terrain": [ + [ "necropolis_d_7", "necropolis_d_8", "necropolis_d_9" ], + [ "necropolis_d_16", "necropolis_d_17", "necropolis_d_18" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "...|~|~|~|~|cScScScS|.| |nhhhn hh|+-|...........|c @|c @|c @|c @", + "...| | |-| [ + |...........|L @|L @|L @|L @", + "...| + | | r|..........||-[-|-[-|-[-|-[-", + "...| |+|+|+|+-|-| v $$$ $$$ c r|.....|-|--|P ", + "...|~|~|~|~|t|t|t| t|.| v $$$ G $$$ c S|.....|S|@@| ", + "...|-|-|-|-|-|-|-|--|.| v c c|.....| [ ", + "......................| |P hnh hnh | r|.....|t|cL| |-[-|-[-", + "|-------------------|.| |-|------------|--|---|.|-|--| b|L @|L @", + "|r@@L L@@r@@L L@@r|.| |.|r@@L L@@r@@L L@@r|.|S|@@| b|c @|c @", + "|r r r|.| |.|r r r|.| [ b|- -|- -", + "|r@@L L@@r@@L L@@r|-| |-|r@@L L@@r@@L L@@r|.|t|cL| bbbP|t S|t S", + "| [ [ |.|-|--| |--|-|---|---", + "| v v |.|S|@@| |@@|S|.......", + "| [ [ |.| [ [ |.......", + "|r@@L L@@r@@L L@@r|-| |-|r@@L L@@r@@L L@@r|-|t|cL| |Lc|t|---|---", + "|r r r|.| |.|r r r|<|-|--| |--|-|t S|t S", + "|r@@L L@@r@@L L@@r|.| |.|r@@L L@@r@@L L@@r|>|S|@@| |@@|S|- -|- -", + "|-------------------|.| |.|-------------------|-| [ [ |c @|c @", + "......................| ||......................|t|cL| |Lc|t|L @|L @", + "......................| |----------------------|-|--| |--|-|-[-|-[-", + "......................| ", + "......................| ", + "......................| G ", + "......................| ", + "......................| |----------------------|-|--| |--|-|-[-|-[-", + "......................| ||......................|t|cL| |Lc|t|L @|L @", + "|-------------------|.| |.|-------------------|.| [ [ |c @|c @", + "|r@@L L@@r@@L L@@r|.| |.|r@@L L@@r@@L L@@r|.|S|@@| |@@|S|- -|- -", + "|r r r|.| |.|r r r|.|-|--| |--|-|t S|t S", + "|r@@L L@@r@@L L@@r|-| |-|r@@L L@@r@@L L@@r|.|t|cL| |Lc|t|---|---", + "| [ [ |.| [ [ |.......", + "| v v |.|S|@@| |@@|S|.......", + "| [ [ |.|-|--| |--|-|---|---", + "|r@@L L@@r@@L L@@r|-| |-|r@@L L@@r@@L L@@r|.|t|cL| bbbP|t S|t S", + "|r r r|.| |.|r r r|.| [ b|- -|- -", + "|r@@L L@@r@@L L@@r|.| |.|r@@L L@@r@@L L@@r|.|S|@@| b|c @|c @", + "|-------------------|.| |.|-------------------|.|-|--| b|L @|L @", + "......................| |.......................|t|cL| |-[-|-[-", + ".....................|| |------------------|....| [ ", + ".....................| |....|S|@@| ", + ".....................| G |....|-|--|P ", + ".....................| |.........||-[-|-[-|-[-|-[-", + ".....................|------------------| ||..........|L @|L @|L @|L @", + "........................................| |...........|c @|c @|c @|c @", + "........................................| |...........|- -|- -|- -|- -", + ".......................................|| ||..........|t S|t S|t S|t S", + ".......................................| |..........|---|---|---|---", + ".......................................| 5|.........................." + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate" }, + "items": { + "@": { "item": "bed", "chance": 60 }, + "L": { "item": "traveler", "chance": 60 }, + "b": { "item": "magazines", "chance": 30 }, + "c": { "item": "bedroom", "chance": 15 }, + "r": { "item": "traveler", "chance": 60 } }, - "place_items": [ - { "item": "dresser", "x": [ 20, 20 ], "y": [ 2, 2 ], "chance": 70 }, - { "item": "dresser", "x": [ 20, 20 ], "y": [ 8, 8 ], "chance": 70 }, - { "item": "dresser", "x": [ 20, 20 ], "y": [ 14, 14 ], "chance": 70 }, - { "item": "dresser", "x": [ 23, 23 ], "y": [ 2, 2 ], "chance": 70 }, - { "item": "dresser", "x": [ 23, 23 ], "y": [ 8, 8 ], "chance": 70 }, - { "item": "dresser", "x": [ 23, 23 ], "y": [ 14, 14 ], "chance": 70 }, - { "item": "bed", "x": [ 21, 22 ], "y": [ 14, 15 ], "chance": 70 }, - { "item": "bed", "x": [ 21, 22 ], "y": [ 2, 3 ], "chance": 70 }, - { "item": "bed", "x": [ 21, 22 ], "y": [ 8, 9 ], "chance": 70 } - ], "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_9" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "-|----|--|----|-----|...", - " |hnnh| |hnnh| d@@d|...", - " | | | | @@ |...", - " + + |...", - "-| | | |-|-+-|...", - "L+ r| |r +L|S t|...", - "-|----| |----|-|---|...", - " |hnnh| |hnnh| d@@d|...", - " | | | | @@ |...", - " + + |...", - "-| | | |-|-+-|...", - "L+ r| |r +L|S t|...", - "-|----| |----|-|---|...", - " |hnnh| |hnnh| d@@d|...", - " | | | | @@ |...", - " + + |...", - "-| | | |-|-+-|...", - "L+ r| |r +L|S t|...", - "-|----| |----|-|---|...", - "......| |..............", - "......| ||.............", - ".....|| |.............", - ".....| 5|............." + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.3 } ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, "place_items": [ - { "item": "homebooks", "x": [ 5, 5 ], "y": [ 18, 18 ], "chance": 60 }, - { "item": "homebooks", "x": [ 10, 10 ], "y": [ 18, 18 ], "chance": 60 }, - { "item": "homebooks", "x": [ 5, 5 ], "y": [ 12, 12 ], "chance": 60 }, - { "item": "homebooks", "x": [ 10, 10 ], "y": [ 12, 12 ], "chance": 60 }, - { "item": "homebooks", "x": [ 5, 5 ], "y": [ 6, 6 ], "chance": 60 }, - { "item": "homebooks", "x": [ 10, 10 ], "y": [ 6, 6 ], "chance": 60 }, - { "item": "traveler", "x": [ 0, 0 ], "y": [ 6, 6 ], "chance": 70 }, - { "item": "traveler", "x": [ 15, 15 ], "y": [ 6, 6 ], "chance": 70 }, - { "item": "traveler", "x": [ 0, 0 ], "y": [ 12, 12 ], "chance": 70 }, - { "item": "traveler", "x": [ 15, 15 ], "y": [ 12, 12 ], "chance": 70 }, - { "item": "traveler", "x": [ 0, 0 ], "y": [ 18, 18 ], "chance": 70 }, - { "item": "traveler", "x": [ 15, 15 ], "y": [ 18, 18 ], "chance": 70 }, - { "item": "dresser", "x": [ 19, 19 ], "y": [ 2, 2 ], "chance": 70 }, - { "item": "dresser", "x": [ 19, 19 ], "y": [ 8, 8 ], "chance": 70 }, - { "item": "dresser", "x": [ 19, 19 ], "y": [ 14, 14 ], "chance": 70 }, - { "item": "dresser", "x": [ 16, 16 ], "y": [ 2, 2 ], "chance": 70 }, - { "item": "dresser", "x": [ 16, 16 ], "y": [ 8, 8 ], "chance": 70 }, - { "item": "dresser", "x": [ 16, 16 ], "y": [ 14, 14 ], "chance": 70 }, - { "item": "bed", "x": [ 21, 22 ], "y": [ 14, 15 ], "chance": 70 }, - { "item": "bed", "x": [ 21, 22 ], "y": [ 2, 3 ], "chance": 70 }, - { "item": "bed", "x": [ 21, 22 ], "y": [ 8, 9 ], "chance": 70 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_10" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "...............| + G ", - "...............|6 v h ", - "...............|---|k6k ", - "...................|----", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "......................|-", - "......................| ", - "......................| ", - "......................| ", - "...|-|-|-|-|-|-|-|--|.| ", - "...|~|~|~|~|t|t|t| t|.| ", - "...| |+|+|+|+-|-| ", - "...| + ", - "...| | |-| ", - "...|~|~|~|~|cScScScS|.| ", - "...|-|-|-|-|--------|.| " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" + { "item": "alcohol", "x": [ 43, 43 ], "y": [ 2, 3 ], "chance": 80 }, + { "item": "alcohol", "x": [ 43, 43 ], "y": [ 6, 6 ], "chance": 80 }, + { "item": "magazines", "x": [ 27, 27 ], "y": [ 0, 0 ], "chance": 70 }, + { "item": "magazines", "x": [ 31, 31 ], "y": [ 0, 0 ], "chance": 70 }, + { "item": "pool_table", "x": [ 29, 31 ], "y": [ 3, 4 ], "chance": 70 }, + { "item": "pool_table", "x": [ 35, 37 ], "y": [ 3, 4 ], "chance": 70 }, + { "item": "traveler", "x": [ 47, 47 ], "y": [ 14, 16 ], "chance": 60 }, + { "item": "traveler", "x": [ 47, 47 ], "y": [ 8, 10 ], "chance": 60 }, + { "item": "traveler", "x": [ 38, 38 ], "y": [ 14, 16 ], "chance": 60 }, + { "item": "traveler", "x": [ 38, 38 ], "y": [ 8, 10 ], "chance": 60 }, + { "item": "bed", "x": [ 45, 46 ], "y": [ 16, 16 ], "chance": 60 }, + { "item": "bed", "x": [ 45, 46 ], "y": [ 10, 10 ], "chance": 60 }, + { "item": "bed", "x": [ 45, 46 ], "y": [ 14, 14 ], "chance": 60 }, + { "item": "bed", "x": [ 45, 46 ], "y": [ 8, 8 ], "chance": 60 }, + { "item": "traveler", "x": [ 44, 44 ], "y": [ 16, 16 ], "chance": 60 }, + { "item": "traveler", "x": [ 44, 44 ], "y": [ 10, 10 ], "chance": 60 }, + { "item": "traveler", "x": [ 44, 44 ], "y": [ 14, 14 ], "chance": 60 }, + { "item": "traveler", "x": [ 44, 44 ], "y": [ 8, 8 ], "chance": 60 }, + { "item": "traveler", "x": [ 41, 41 ], "y": [ 16, 16 ], "chance": 60 }, + { "item": "traveler", "x": [ 41, 41 ], "y": [ 10, 10 ], "chance": 60 }, + { "item": "traveler", "x": [ 41, 41 ], "y": [ 14, 14 ], "chance": 60 }, + { "item": "traveler", "x": [ 41, 41 ], "y": [ 8, 8 ], "chance": 60 }, + { "item": "bed", "x": [ 39, 40 ], "y": [ 16, 16 ], "chance": 60 }, + { "item": "bed", "x": [ 39, 40 ], "y": [ 10, 10 ], "chance": 60 }, + { "item": "bed", "x": [ 39, 40 ], "y": [ 14, 14 ], "chance": 60 }, + { "item": "bed", "x": [ 39, 40 ], "y": [ 8, 8 ], "chance": 60 }, + { "item": "bed", "x": [ 36, 37 ], "y": [ 16, 16 ], "chance": 60 }, + { "item": "bed", "x": [ 36, 37 ], "y": [ 10, 10 ], "chance": 60 }, + { "item": "bed", "x": [ 36, 37 ], "y": [ 14, 14 ], "chance": 60 }, + { "item": "bed", "x": [ 36, 37 ], "y": [ 8, 8 ], "chance": 60 }, + { "item": "traveler", "x": [ 35, 35 ], "y": [ 16, 16 ], "chance": 60 }, + { "item": "traveler", "x": [ 35, 35 ], "y": [ 10, 10 ], "chance": 60 }, + { "item": "traveler", "x": [ 35, 35 ], "y": [ 14, 14 ], "chance": 60 }, + { "item": "traveler", "x": [ 35, 35 ], "y": [ 8, 8 ], "chance": 60 }, + { "item": "traveler", "x": [ 32, 32 ], "y": [ 16, 16 ], "chance": 60 }, + { "item": "traveler", "x": [ 32, 32 ], "y": [ 10, 10 ], "chance": 60 }, + { "item": "traveler", "x": [ 32, 32 ], "y": [ 14, 14 ], "chance": 60 }, + { "item": "traveler", "x": [ 32, 32 ], "y": [ 8, 8 ], "chance": 60 }, + { "item": "bed", "x": [ 30, 31 ], "y": [ 16, 16 ], "chance": 60 }, + { "item": "bed", "x": [ 30, 31 ], "y": [ 10, 10 ], "chance": 60 }, + { "item": "bed", "x": [ 30, 31 ], "y": [ 14, 14 ], "chance": 60 }, + { "item": "bed", "x": [ 30, 31 ], "y": [ 8, 8 ], "chance": 60 }, + { "item": "traveler", "x": [ 29, 29 ], "y": [ 14, 16 ], "chance": 60 }, + { "item": "traveler", "x": [ 29, 29 ], "y": [ 8, 10 ], "chance": 60 } + ] + }, + "om_terrain": [ + [ "necropolis_d_19", "necropolis_d_20", "necropolis_d_21" ], + [ "necropolis_d_28", "necropolis_d_29", "necropolis_d_30" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "|c @|c @| |c @|c @|c @|c @|c @|c @|........................|| |", + "|L @|L @| |L @|L @|L @|L @|L @|L @|.................|------| ", + "|-[-|-[-|HH-[[-HH|-[-|-[-|-[-|-[-|-[-|-[-||................| ", + " P|--|-|...........| ", + " G |Lc|t|...........| |-------| ", + " [ |...........| |.......| ", + "|-[-|-|--| |--|-|-[-|-[-|-[-| |@@|S|...........| |.....|-|-", + "|L @|S|@@| |Lc|t|L @|L @|L @|b |--|-|...........| |.....|@ ", + "|c @| [ [ |c @|c @|c @|b |Lc|t|...........| |.....|@ ", + "|- -|t|cL| |@@|S|- -|- -|- -|b [ |...........| |.....|-| ", + "|t S|-|--| |--|-|t S|t S|t S|Pbbb |@@|S|...........| |.....|L+ ", + "|---|S|@@| |Lc|t|---|---|---|-|--| |--|-|...........| |.....|-| ", + "....| [ [ |...........|t|cL| |Lc|t|..........|| ||....|L+ ", + "....|t|cL| |@@|S|...........| [ [ |.......|--| |--|.|-| ", + "|---|-|--| |--|-|---|---|---|S|@@| |@@|S|.......|X | |EE|.|@ ", + "|t S|S|@@| |Lc|t|t S|t S|t S|-|--| |----|.......|XX[ +EE|.|@ ", + "|- -| [ [ |- -|- -|- -|t|cL| |Lc|t|.......|X | +EE|.|-|-", + "|c @|t|cL| |@@|S|c @|c @|c @| [ [ |.......|--| |--|...|S", + "|L @|-|--| |--|-|L @|L @|L @|S|@@| |@@|S|..........| |......|-", + "|-[-| G |-[-|-[-|-[-|-|--| |--|-|----------| |--------", + " PP ", + " PPPP G ", + " PPPP ", + " PP ", + "|-[-| G |-[-|-[-|-[-|-|--| |--|-|-------|---|---|---|---|", + "|L @|-|--| |--|-|L @|L @|L @|S|@@| |@@|S|.......|t S|t S|t S|t S|", + "|c @|t|cL| |@@|S|c @|c @|c @| [ [ |.......|- -|- -|- -|- -|", + "|- -| [ [ |- -|- -|- -|t|cL| |Lc|t|.......|c @|c @|c @|c @|", + "|t S|S|@@| |Lc|t|t S|t S|t S|-|--| |----|.......|L @|L @|L @|L @|", + "|---|-|--| |--|-|---|---|---|S|@@| |@@|S|......||-[-|-[-|-[-|-[-|", + "....|t|cL| |@@|S|...........| [ [ |.|-|--| ", + "....| [ [ |...........|t|cL| |Lc|t|.|S|@@| ", + "|---|S|@@| |Lc|t|---|---|---|-|--| |--|-|.| [ ", + "|t S|-|--| |--|-|t S|t S|t S|Pbbb |@@|S|.|t|cL| |-[-|-[-|", + "|- -|t|cL| |@@|S|- -|- -|- -|b [ |.|-|--| b|L @|L @|", + "|c @| [ [ |c @|c @|c @|b |Lc|t|.|S|@@| b|c @|c @|", + "|L @|S|@@| |Lc|t|L @|L @|L @|b |--|-|.| [ b|- -|- -|", + "|-[-|-|--| |--|-|-[-|-[-|-[-| |@@|S|.|t|cL| bbbP|t S|t S|", + " [ |.|-|--| |--|-|---|---|", + " |Lc|t|.|S|@@| |@@|S|........", + " P|--|-|.| [ [ |........", + "|--|-HHH-HH-[[-HH-HHH-|--|-[-|-[-|-[-|-[-||......|t|cL| |Lc|t|---|---|", + "|..|Pbbb bbbP|..|L @|L @|L @|L @|.......|-|--| |--|-|t S|t S|", + "|..|b b|..|c @|c @|c @|c @|.......|S|@@| |@@|S|- -|- -|", + "|..|b c c b|..|- -|- -|- -|- -|.......| [ [ |c @|c @|", + "|..|b cc cc b|..|t S|t S|t S|t S|.......|t|cL| |Lc|t|L @|L @|", + "|--| |--|---|---|---|---|-------|-|--| |--|-|-[-|-[-|", + "|EE| G |EE| " + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate" }, + "items": { + "@": { "item": "bed", "chance": 60 }, + "L": { "item": "traveler", "chance": 60 }, + "b": { "item": "magazines", "chance": 30 }, + "c": { "item": "bedroom", "chance": 15 }, + "r": { "item": "traveler", "chance": 60 } }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.3 } + ] + }, + "om_terrain": [ + [ "necropolis_d_22", "necropolis_d_23", "necropolis_d_24" ], + [ "necropolis_d_31", "necropolis_d_32", "necropolis_d_33" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "|................................|| ||...........|---|.................", + "|--------------------------------| |-----------|EEE|.................", + " +EEE|.................", + " G +EEE|.................", + " |-----| |-----| |---------| |----------|EEE|.................", + " 5|.....| 5|.....| 5|.........|| ||..........|---|.................", + "=-|-|.|-|-=-|-|.|-|-=-|-|........| |.................................", + " 5 @|.|@ 5 @|.|@ 5 @|........| |.................................", + " @|.|@ @|.|@ @|........| |.....|---|---------------|-----|.", + " |-|.|-| |-|.|-| |-|........| ||...|| | bbb D bbb |L L L|.", + " +L|.|L+ +L|.|L+ +L|........| |---| 5|5 |@ @ @|.", + " |-|.|-| |-|.|-| |-|........| = | |.", + " +L|.|L+ +L|.|L+ +L|........| = G |.", + " |-|.|-| |-|.|-| |-|........| = |@ @ @|.", + " @|.|@ @|.|@ @|........| |---| | |@ @ @|.", + " @|.|@ @|.|@ @|........| ||...|| | bbb |L L L|.", + "+-|-|.|-|-+-|-|.|-|-+-|-|........| |.....|---|-------| |-|-----|.", + " t|.....|S t|.....|S t|..........| |.........|L L L L| |L L L L|.", + "--|.....|---|.....|---|.........|| |.........|@ @ @ @| |@ @ @ @|.", + "--------------------------------| |.........|@ @ @ @| |@ @ @ @|.", + " |.........| |.", + " |.........|@ @ @ @| |@ @ @ @|.", + " |.........|@ @ @ @| |@ @ @ @|.", + " |.........|L L L L| |L L L L|.", + "---|---| |---|---|---|---|---|-|-|.......|-------| |-------|.", + "t S|t S| |t S|t S|t S|t S|t S|t S|.......|L L L L| |L L L L|.", + "- -|- -| |- -|- -|- -|- -|- -|- -|.......|@ @ @ @| |@ @ @ @|.", + "c @|c @| |c @|c @|c @|c @|c @|c @|.......|@ @ @ @| |@ @ @ @|.", + "L @|L @| |L @|L @|L @|L @|L @|L @|.......| |.", + "-[-|-[-|uu-[[-uu|-[-|-[-|-[-|-[-|-[-|-[-||......|@ @ @ @| |@ @ @ @|.", + " |--|-|.|@ @ @ @| |@ @ @ @|.", + " |Lc|t|.|L L L L| |L L L L|.", + " [ |.|-----|-| |-|-----|.", + "-[-|-|--| |--|-|-[-|-[-|-[-| |@@|S|.|L L L| |L L L|.", + "L @|S|@@| |Lc|t|L @|L @|L @|b |--|-|.|@ @ @| |@ @ @|.", + "c @| [ [ |c @|c @|c @|b |Lc|t|.|@ @ @| |@ @ @|.", + "- -|t|cL| |@@|S|- -|- -|- -|b [ |.| G |.", + "t S|-|--| |--|-|t S|t S|t S|Pbbb |@@|S|.|@ @ @| |@ @ @|.", + "---|S|@@| |Lc|t|---|---|---|-|--| |--|-|.|@ @ @| |@ @ @|.", + "...| [ [ |...........|t|cL| |Lc|t|.|L L L| 5 |L L L|.", + "...|t|cL| |@@|S|...........| [ [ |.|-----||--===--||-----|.", + "---|-|--| |--|-|---|---|---|S|@@| |@@|S|........| 5 |........", + "t S|S|@@| |Lc|t|t S|t S|t S|-|--| |----|........| |........", + "- -| [ [ |- -|- -|- -|t|cL| |Lc|t|........| |........", + "c @|t|cL| |@@|S|c @|c @|c @| [ [ |......|-| |........", + "L @|-|--| |--|-|L @|L @|L @|S|@@| |@@|S|......| |........", + "-[-| G |-[-|-[-|-[-|-|--| |--|-|------| |........", + " PP G b|........" + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate" }, + "items": { + "@": { "item": "bed", "chance": 60 }, + "L": { "item": "traveler", "chance": 60 }, + "b": { "item": "magazines", "chance": 30 }, + "r": { "item": "traveler", "chance": 60 } }, - "place_items": [ - { "item": "office", "x": [ 20, 22 ], "y": [ 2, 2 ], "chance": 50 }, - { "item": "electronics", "x": [ 20, 22 ], "y": [ 2, 2 ], "chance": 50 } - ], "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 9, 22 ], "density": 0.1 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 9, 22 ], "density": 0.1 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_11" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " v v c 6 c 6 c 6 6", - " v v ccc ccc ccc c", - " | | 5 ", - "|| |-uuu-uuu-uuu-===-u", - "| 5 ", - "| ", - "| G ", - "| |u[u|-+-| ", - "|u[u|-++| |r r| ", - "| |EEE| > |r r| ", - "| < |EEE|---|r r| ", - "|---|---|...|r r| 5 ", - "............|---|--===--", - "------------| 5 ", - " ", - "G ", - " |--------------------", - " ||....................", - " |.....................", - " |--------------|......", - " |nhhhn oooo |......", - " vh hh|......", - " vh G nn|--|...", - " vh nn| r|..." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.4 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.4 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.35 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.35 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 39 ], "density": 0.45 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 39 ], "density": 0.45 } + ] + }, + "om_terrain": [ + [ "necropolis_d_25", "necropolis_d_26", "necropolis_d_27" ], + [ "necropolis_d_34", "necropolis_d_35", "necropolis_d_36" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + ".......................................|-===-|..........................", + ".......................................| 5|..........................", + ".............................|---------| |---------|................", + ".............................| G |................", + "..................|----------| 5 |----------|.....", + "..................| |--------===--------| |.....", + "..................| |///////5/////rrccrr| |.....", + "..................| |---uuuu---|///////////////////|---uuuu---| |.....", + "..................| |rcc//////5|5//////////////////|rcc////ccr| |.....", + "..................| |c/////////=///////////////////=/////////c| |.....", + "..................| v//////////=///////////////////=//////////v |.....", + "..................| v////G/////=///////////////////=/////G////v |.....", + "..................| v//////////=/////////G/////////=//////////v |.....", + "..................| |c/////////=/////,,,,,,,,,/////=/////////c| |.....", + "..................| |rcc/rr/ccr|r////,EEEEEEE,////5|5///rr/ccr| |.....", + "..................| |----------|r////,EEEEEEE,/////|----------| |.....", + "..................| |rcc/rr/ccr|r////,EEEEEEE,/////|rcc/rr/ccr| |.....", + "..................| |c/////////=/////,EEEEEEE,/////=/////////c| |.....", + "..................| v//////////=/////,EEEEEEE,/////=//////////v |.....", + "..................| v////G/////=/////,EEEEEEE,/////=/////G////v |.....", + "..................| v//////////=/////,EEEEEEE,/////=//////////v |.....", + "..................| |c/////////=/////,,,,,,,,,/////=/////////c| |.....", + "..................| |rcc//////5|5////////G////////5|5//////ccr| |.....", + "..................| |---uuuu---|///////////////////|---uuuu---| |.....", + "..................| ||/////////////////|| |.....", + "..................| |||///////////////||| |.....", + "..................|---------| |.|//////////5////|.| |---------|.....", + "............................| |.|-|---=====---|-|.| |...............", + "............................| 5|...| 5 |...| 5|...............", + "............................|-=-|...| |...|-=-|...............", + "............................| 5|...| |...| 5|...............", + "......................|-----| |---| G |---| |---------------", + "......................| ", + "......................| ", + "......................| ", + "|-------------------|.| |--------| |-------------------------------", + "|r@@L L@@r@@L L@@r|.| ||........|[H[|...............................", + "|r r r|.| |.|-------| |-------|---|...|---|---|---|---", + "|r@@L L@@r@@L L@@r|-| |.|c$cc c c c$cc |rrr|...|t S|t S|t S|t S", + "| [ |.|ch c c ch + |...|- -|- -|- -|- -", + "| v |.|c cccc6cc r|rrr|...|c @|c @|c @|c @", + "| [ |.| h r|---|...|L @|L @|L @|L @", + "|r@@L L@@r@@L L@@r|-| |.|c r|+-|......||-[-|-[-|-[-|-[-", + "|r r r|.| |.|ch c r r r r r| t|.|-|--| ", + "|r@@L L@@r@@L L@@r|.| |.|c$cc r r r r r| S|.|S|@@| ", + "|-------------------|.| |.|----------------|--|.| [ ", + "......................| |.......................|t|cL| |-[-|-[-", + "|-------------------|.| |.|-------------------|.|-|--| b|L @|L @" + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate" }, + "items": { + "@": { "item": "bed", "chance": 60 }, + "L": { "item": "traveler", "chance": 60 }, + "b": { "item": "magazines", "chance": 30 }, + "c": { "item": "bedroom", "chance": 15 }, + "r": { "item": "tools_tailor", "chance": 60 } }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" + "item": { + "r": [ + { "item": "jumpsuit", "chance": 1 }, + { "item": "jumpsuit", "chance": 2 }, + { "item": "jumpsuit", "chance": 3 }, + { "item": "jumpsuit", "chance": 4 }, + { "item": "pants", "chance": 3 }, + { "item": "coat_lab", "chance": 3 } + ] }, - "place_items": [ - { "item": "novels", "x": [ 10, 14 ], "y": [ 20, 20 ], "chance": 50 }, - { "item": "robots", "x": [ 13, 13 ], "y": [ 8, 11 ], "chance": 50 }, - { "item": "cleaning", "x": [ 15, 15 ], "y": [ 8, 11 ], "chance": 50 } - ], "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 1, 22 ], "y": [ 1, 5 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 18, 22 ], "density": 0.15 } - ], - "place_monster": [ - { "monster": "mon_turret_rifle", "x": 20, "y": 15 }, - { "monster": "mon_turret_rifle", "x": 23, "y": 4 }, - { "monster": "mon_turret_rifle", "x": 17, "y": 4 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_12" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " c 6 c 6 c v v G + ", - "cc ccc ccc v v h v ", - " | | k6k|--", - "uu-uuu-uuu-| ||----|..", - " P|.......", - " |.......", - " |.......", - "|-+-|u[u| |.......", - "vc | |++-|u[u|.......", - "v6 | > |EEE| |.......", - "vch |---|EEE| < |.......", - "|r |...|---|---|.......", - "|---|...................", - " |-------------------", - " ", - " ", - "------------------------", - "........................", - "........................", - "........................", - "........................", - "........|---|---|---|---", - "........|t S|t S|t S|t S", - "........|- -|- -|- -|- -" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 25, 46 ], "y": [ 12, 22 ], "density": 0.07 }, + { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 36, 46 ], "y": [ 12, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 49, 60 ], "y": [ 12, 22 ], "density": 0.07 }, + { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 49, 60 ], "y": [ 12, 22 ], "density": 0.07 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 32, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 32, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.25 } + ] + }, + "om_terrain": [ + [ "necropolis_d_37", "necropolis_d_38", "necropolis_d_39" ], + [ "necropolis_d_46", "necropolis_d_47", "necropolis_d_48" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "|EE+ +EE+ ", + "|EE+ +EE+ G ", + "|EE| |EE| ", + "|--|P bbbD bbb P|--|----| |---------|-|--| |--|-|-[-|-[-|", + "...|------| |------|.......|u[[uu[[u|.........|t|cL| |Lc|t|L @|L @|", + "..........| |..........|---| |.|----|..| [ [ |c @|c @|", + "..........| |.|--------| |.|EEEE|..|S|@@| |@@|S|- -|- -|", + "..........| |.|PbbbbP |.|EEEE|..|-|--| |--|-|t S|t S|", + "..........| |-| cccc|-|-++-|..|t|cL| |Lc|t|---|---|", + "..........| v c |..| [ [ |........", + "..........| [ cc cc6ccc6ccc |..|S|@@| |@@|S|........", + "..........| [ c |..|-|--| |--|-|---|---|", + "..........| v c G |-|-++-|..|t|cL| bbbP|t S|t S|", + "..........| |-| 6 rr rr rr |.|EEEE|..| [ b|- -|- -|", + "..........| |.|D c rr rr rr |.|EEEE|..|S|@@| b|c @|c @|", + "..........| |-| c rr rr rr |.|----|..|-|--| b|L @|L @|", + "..........| v c rr rr rr |.........|t|cL| |-[-|-[-|", + "..........| [ c |------|..| [ ", + "..........| v 6 |..|S|@@| ", + "..........| |-| c rr rr rr rrrrrr |..|-|--| ", + "..........| |.|ccc cc rr rr rr rrrrrr |--|....||-[-|-[-|-[-|-[-|", + "..........| |.| rr rr rr G | t|.....|L @|L @|L @|L @|", + "..........| |.| rrrrrr rr rr rr rrrrrr + |.....|c @|c @|c @|c @|", + "..........| |.| rrrrrr rr rr rr rrrrrr | S|.....|- -|- -|- -|- -|", + "..........| |.| |--|.....|t S|t S|t S|t S|", + "..........| |.|----------------------------|........||--|---|---|---|", + "..........| |........................................| ", + ".|--------| |--------|...............................| ", + ".| |...............................| ", + ".| G |...............................| |-|-+++|---", + "|| ||.............................|| |.|EEEE|...", + "| |--|-| |-|--| |-----------------------------| |.|EEEE|.|-", + " +EE| v v |EE+ |.|----|.|r", + " +EE|>[ [<|EE+ |........|r", + " |EE| v v |EE| |.|----|.|r", + "-----|--|-| |-|--|----------------------------------| |.|EEEE|.|r", + "..........| |.......................................|| |.|EEEE|.|r", + "|---|---|-| |-|---|---|---|---|---|---|..............| |.|-++-|-|r", + "|t S|t S|P P|t S|t S|t S|t S|t S|t S|..............| |.| |.|r", + "|- -|- -|b b|- -|- -|- -|- -|- -|- -|..............| |.| |.|r", + "|c @|c @|b b|c @|c @|c @|c @|c @|c @|..............| |-| |-|-", + "|L @|L @|P P|L @|L @|L @|L @|L @|L @|..............| | ", + "|-[-|-[-|HH-[[-HH|-[-|-[-|-[-|-[-|-[-|-[-||.............| 5|5 G", + " G |--|-|........| = ", + " |Lc|t|........| = rr ", + " [ |........| = rr ", + "|-[-|-|--| |--|-|-[-|-[-|-[-| |@@|S|........| | rr ", + "|L @|S|@@| |Lc|t|L @|L @|L @|b |--|-|........| | cc " + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate" }, + "items": { + "@": { "item": "bed", "chance": 60 }, + "L": { "item": "traveler", "chance": 60 }, + "b": { "item": "magazines", "chance": 30 }, + "c": { "item": "bedroom", "chance": 15 }, + "r": { "item": "traveler", "chance": 60 } }, - "place_items": [ - { "item": "prison_weapons", "x": [ 1, 1 ], "y": [ 11, 11 ], "chance": 70 }, - { "item": "office", "x": [ 18, 20 ], "y": [ 2, 2 ], "chance": 70 }, - { "item": "electronics", "x": [ 18, 20 ], "y": [ 2, 2 ], "chance": 70 } - ], "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 1, 22 ], "y": [ 1, 5 ], "density": 0.05 }, - { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 1, 22 ], "y": [ 14, 17 ], "density": 0.05 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_13" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " |.|--| [ @|@@|@@| |@@", - "6|.|t + |L@| L| L| |L ", - "-|.|--| |--|[-|[-| |-[", - "...| + ", - "...| -| ", - "...| ~|[-|[-|[-|-| |-", - "...| -| L| L| L|.| |.", - "...| ~|@@|@@|@@|.| |.", - "...|--|--|--|--||| ||", - "................| |", - "................| 5|", - "................|-====-|", - "................| 5|", - "----------------| |", - " ", - " G ", - "--------| |------", - "........| |......", - "........|b b|......", - "........|b b|......", - "........|b b|......", - "|---|---|b b|---|--", - "|t S|t S|D P|t S|t ", - "|- -|- -| |- -|- " + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.2 } ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, "place_items": [ - { "item": "bed", "x": [ 13, 14 ], "y": [ 7, 7 ], "chance": 70 }, - { "item": "traveler", "x": [ 14, 14 ], "y": [ 6, 6 ], "chance": 70 }, - { "item": "bed", "x": [ 10, 11 ], "y": [ 7, 7 ], "chance": 70 }, - { "item": "traveler", "x": [ 11, 11 ], "y": [ 6, 6 ], "chance": 70 }, - { "item": "bed", "x": [ 7, 8 ], "y": [ 7, 7 ], "chance": 70 }, - { "item": "traveler", "x": [ 8, 8 ], "y": [ 6, 6 ], "chance": 70 }, - { "item": "bed", "x": [ 22, 23 ], "y": [ 0, 0 ], "chance": 70 }, - { "item": "traveler", "x": [ 22, 22 ], "y": [ 1, 1 ], "chance": 70 }, - { "item": "bed", "x": [ 16, 17 ], "y": [ 0, 0 ], "chance": 70 }, - { "item": "traveler", "x": [ 17, 17 ], "y": [ 1, 1 ], "chance": 70 }, - { "item": "bed", "x": [ 13, 14 ], "y": [ 0, 0 ], "chance": 70 }, - { "item": "traveler", "x": [ 14, 14 ], "y": [ 1, 1 ], "chance": 70 }, - { "item": "bed", "x": [ 11, 11 ], "y": [ 0, 1 ], "chance": 70 }, - { "item": "traveler", "x": [ 10, 10 ], "y": [ 1, 1 ], "chance": 70 } - ], + { "item": "consumer_electronics", "x": [ 39, 44 ], "y": [ 19, 20 ], "chance": 75 }, + { "item": "sports", "x": [ 39, 44 ], "y": [ 22, 23 ], "chance": 75 }, + { "item": "camping", "x": [ 35, 36 ], "y": [ 19, 23 ], "chance": 75 }, + { "item": "consumer_electronics", "x": [ 35, 36 ], "y": [ 13, 16 ], "chance": 75 }, + { "item": "sports", "x": [ 31, 32 ], "y": [ 13, 16 ], "chance": 75 }, + { "item": "allclothes", "x": [ 27, 28 ], "y": [ 19, 23 ], "chance": 75 }, + { "item": "allclothes", "x": [ 31, 32 ], "y": [ 19, 23 ], "chance": 75 }, + { "item": "allclothes", "x": [ 27, 28 ], "y": [ 13, 16 ], "chance": 75 }, + { "item": "kitchen", "x": [ 68, 69 ], "y": [ 44, 46 ], "chance": 50 }, + { "item": "produce", "x": [ 68, 69 ], "y": [ 44, 46 ], "chance": 75 }, + { "item": "cannedfood", "x": [ 71, 71 ], "y": [ 47, 47 ], "chance": 75 } + ] + }, + "om_terrain": [ + [ "necropolis_d_40", "necropolis_d_41", "necropolis_d_42" ], + [ "necropolis_d_49", "necropolis_d_50", "necropolis_d_51" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + " PPPP b|........", + " PPPP b|........", + " PP bbbP|........", + "-[-| G |-+-|-+-|-+-|-|--| |--|-|-|--| |------|........", + "L @|-|--| |--|-|L @|L @|L @|S|@@| |@@|S|S|cL| |...............", + "c @|t|cL| |@@|S|c @|c @|c @| [ [ | [ |...............", + "- -| [ [ |- -|- -|- -|t|cL| |Lc|t|t|@@| |...............", + "t S|S|@@| |Lc|t|t S|t S|t S|-|--| |----|-|--| |...............", + "---|-|--| |--|-|---|---|---|S|@@| |@@|S|S|cL| |...............", + "...|t|cL| |@@|S|...........| [ [ | [ |...............", + "...| [ [ |...........|t|cL| |Lc|t|t|@@| |...............", + "---|S|@@| |Lc|t|---|---|---|-|--| |--|-|-|--| |...............", + "t S|-|--| |--|-|t S|t S|t S|Pbbb |@@|S|S|cL| |...............", + "- -|t|cL| |@@|S|- -|- -|- -|b [ | [ |...............", + "c @| [ [ |c @|c @|c @|b |Lc|t|t|@@| |...............", + "L @|S|@@| |Lc|t|L @|L @|L @|b |--|-|-|--| |...............", + "-[-|-|--| |--|-|-[-|-[-|-[-| |@@|S|S|cL| |...............", + " [ | [ |...............", + " |Lc|t|t|@@| |...............", + " |--|-|-|--| |...............", + "-[-|-[-|u[[uu[[u|-[-|-[-|-[-|-[-|-[-|-[-||.........| |...............", + "L @|L @|P P|L @|L @|L @|L @|L @|L @|..........| |...............", + "c @|c @|b b|c @|c @|c @|c @|c @|c @|..........| |...............", + "- -|- -|b b|- -|- -|- -|- -|- -|- -|..........| |...............", + "t S|t S|P P|t S|t S|t S|t S|t S|t S|..........| |...............", + "---|---| |---|---|---|---|---|---|----------| |...............", + " G |...............", + " G |...............", + " |...............", + "-----------------------|+++-|-| |---------------| |...............", + ".......................|EEEE|.| |...............| |...............", + "---------------------|.|EEEE|.| |.|--|--|--|--|.| |.|--|--|--|--|.", + "rrrrrrrrrrrrrrrrrrrrr|.|----|.| |.| ~|@@|@@|@@|.|H[[H|.|@@|@@|@@|~ |.", + " r|........| |.| -| L| L| L|.| |.| L| L| L|- |.", + " rr rr rr rr r|.|----|.| |.| ~|[-|[-|[-|-| |-|[-|[-|[-|~ |.", + " rr rr G rr rr r|.|EEEE|.| |.| -| |- |.", + " rr rr rr rr r|.|EEEE|.| |.| + + |.", + " rr rr rr rr r|.|-++-|.| |.|--| |--|[-|[-| |-[|-[|-[| |--|.", + " rr rr r|.| |.| |.|t + |L@| L| L| |L |L |L | + t|.", + " 5 r|.| |.| |.|--| [ @|@@|@@| |@@|@@|@@| |--|.", + "--------====---------|-| |-| |.|t + |--|--|--| |--|--|--| + t|.", + " rrrrrr 5rrrrrr | |.|--| |L@|@@|@@| |@@|@@|@@| |--|.", + " G 5|5 |.|@L| [ @| L| L| |L |L |L | |L@|.", + " = |.|@ [ |--|[-|[-| |-[|-[|-[| [ @|.", + " rr = |.|--| |--|.", + " cffffc cccScc rr = |.|@L| |L@|.", + " cffffS ccrrcc rr | |.|@ [ |--|[-|[-|[-|-[|-[|-[| [ @|.", + " cc | |.|--| |L@| L| L| L|L |L |L | |--|." + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate" }, + "items": { + "@": { "item": "bed", "chance": 60 }, + "L": { "item": "traveler", "chance": 60 }, + "b": { "item": "magazines", "chance": 30 }, + "r": { "item": "traveler", "chance": 60 } + }, "place_monsters": [ { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_14" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "|@@|@@| |--|...........", - "|L |L | + t|...........", - "|-[|-[| |--|...........", - " + |...........", - " |- |...........", - "|[-|[-|[-|~ |...........", - "| L| L| L|- |...........", - "|@@|@@|@@|~ |...........", - "|--|--|--|--|...........", - "........................", - "........................", - "........................", - "........................", - "------------------------", - " ", - " ", - "------------------------", - "........................", - "........................", - "........................", - "........................", - "-|---|---|---|---|......", - "S|t S|t S|t S|t S|......", - "-|- -|- -|- -|- -|......" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.3 } + ] + }, + "om_terrain": [ + [ "necropolis_d_43", "necropolis_d_44", "necropolis_d_45" ], + [ "necropolis_d_52", "necropolis_d_53", "necropolis_d_54" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "|r@@L L@@r@@L L@@r|.| |.|r@@L L@@r@@L L@@r|.|S|@@| b|c @|c @", + "|r r r|.| |.|r r r|.| [ b|- -|- -", + "|r@@L L@@r@@L L@@r|-| |-|r@@L L@@r@@L L@@r|.|t|cL| bbbP|t S|t S", + "| [ [ |.|-|--| |--|-|---|---", + "| v v |.|S|@@| |@@|S|.......", + "| [ [ |.| [ [ |.......", + "|r@@L L@@r@@L L@@r|-| |-|r@@L L@@r@@L L@@r|.|t|cL| |Lc|t|---|---", + "|r r r|.| |.|r r r|.|-|--| |--|-|t S|t S", + "|r@@L L@@r@@L L@@r|.| |.|r@@L L@@r@@L L@@r|.|S|@@| |@@|S|- -|- -", + "|-------------------|.| |.|-------------------|.| [ [ |c @|c @", + "......................| ||......................|t|cL| |Lc|t|L @|L @", + "......................| |----------------------|-|--| |--|-|-[-|-[-", + "......................| ", + "......................| G ", + "......................| ", + "......................| ", + "......................| |----------------------|-|--| |--|-|-[-|-[-", + "......................| ||......................|t|cL| |Lc|t|L @|L @", + "|-------------------|.| |.|-------------------|.| [ [ |c @|c @", + "|r@@L L@@r@@L L@@r|.| |.|r@@L L@@r@@L L@@r|.|S|@@| |@@|S|- -|- -", + "|r r r|.| |.|r r r|.|-|--| |--|-|t S|t S", + "|r@@L L@@r@@L L@@r|-| |-|r@@L L@@r@@L L@@r|.|t|cL| |Lc|t|---|---", + "| [ [ |.| [ [ |.......", + "| v v |.|S|@@| |@@|S|.......", + "| [ [ |.|-|--| |--|-|---|---", + "|r@@L L@@r@@L L@@r|-| |-|r@@L L@@r@@L L@@r|.|t|cL| bbbP|t S|t S", + "|r r r|.| |.|r r r|.| [ b|- -|- -", + "|r@@L L@@r@@L L@@r|.| |.|r@@L L@@r@@L L@@r|.|S|@@| b|c @|c @", + "|-------------------|.| |.|-------------------|.|-|--| b|L @|L @", + "......................| |.......................|t|cL| |-[-|-[-", + "|-------------------|.| |.|-------------------|.| [ ", + "|r@@L L@@r@@L L@@r|.| |.|r@@L L@@r@@L L@@r|.|S|@@| ", + "|r r r|.| |.|r r r|.|-|--| ", + "|r@@L L@@r@@L L@@r|-| G |-|r@@L L@@r@@L L@@r|......||-[-|-[-|-[-|-[-", + "| [ [ |.......|L @|L @|L @|L @", + "| v v |.......|c @|c @|c @|c @", + "| [ [ |.......|- -|- -|- -|- -", + "|r@@L L@@r@@L L@@r|-| |-|r@@L L@@r@@L L@@r|.......|t S|t S|t S|t S", + "|r r r|.| |.|r r r|.......|---|---|---|---", + "|r@@L L@@r@@L L@@r|.| |.|r@@L L@@r@@L L@@r|.......................", + "|-------------------|.| |.|-------------------|.......................", + "......................| |.............................................", + "|-------------------|.| |...........................|---|.....|---|...", + "|r@@L L@@r@@L L@@r|.| |...........................|EEE|.....|EEE|...", + "|r r r|.| |...........................|EEE|-----|EEE|...", + "|r@@L L@@r@@L L@@r|-| |.........................|-|-++| |++-|-|.", + "| [ |.........................| |.", + "| v |.................|-------| G |-" + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate" }, + "items": { + "@": { "item": "bed", "chance": 60 }, + "L": { "item": "traveler", "chance": 60 }, + "b": { "item": "magazines", "chance": 30 }, + "c": { "item": "bedroom", "chance": 15 }, + "r": { "item": "traveler", "chance": 60 } }, - "place_items": [ - { "item": "bed", "x": [ 4, 5 ], "y": [ 7, 7 ], "chance": 70 }, - { "item": "traveler", "x": [ 5, 5 ], "y": [ 6, 6 ], "chance": 70 }, - { "item": "bed", "x": [ 1, 2 ], "y": [ 7, 7 ], "chance": 70 }, - { "item": "traveler", "x": [ 2, 2 ], "y": [ 6, 6 ], "chance": 70 }, - { "item": "bed", "x": [ 4, 5 ], "y": [ 0, 0 ], "chance": 70 }, - { "item": "traveler", "x": [ 4, 4 ], "y": [ 1, 1 ], "chance": 70 }, - { "item": "bed", "x": [ 1, 2 ], "y": [ 0, 0 ], "chance": 70 }, - { "item": "traveler", "x": [ 1, 1 ], "y": [ 1, 1 ], "chance": 70 } - ], "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_15" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".........| + |.....", - ".........|t |-[[-|-----", - ".........|---|P ", - ".........|EEE| c h ", - ".........|EEE| cccc6cc", - ".........|-++| ", - ".........| ", - ".........|b bb G ", - ".........|b bb ", - ".........|b ", - ".........| bbbbb ", - ".........|-------|u[[u[[", - ".................| ", - "-----------------| ", - " G ", - " ", - "------------------| ", - "..................|| |", - "...................| |", - "...................| |", - "...................| |", - "...................| |", - "...................| |", - "...................| |" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.3 } + ] + }, + "om_terrain": [ + [ "necropolis_d_55", "necropolis_d_56", "necropolis_d_57" ], + [ "necropolis_d_64", "necropolis_d_65", "necropolis_d_66" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "|c @| [ [ |c @|c @|c @|b |Lc|t|........| |-| cc ", + "|- -|t|cL| |@@|S|- -|- -|- -|b [ |........| |.|c cc ", + "|t S|-|--| |--|-|t S|t S|t S|Pbbb |@@|S|........| |.|c cc ", + "|---|S|@@| |Lc|t|---|---|---|-|--| |--|-|........| |.|S cc ", + "....| [ [ |...........|t|cL| |Lc|t|........| |.|c G", + "....|t|cL| |@@|S|...........| [ [ |........| |.|c ", + "|---|-|--| |--|-|---|---|---|S|@@| |@@|S|........| |.|c ", + "|t S|S|@@| |Lc|t|t S|t S|t S|-|--| |----|........| |.|ccrcOOOc", + "|- -| [ [ |- -|- -|- -|t|cL| |Lc|t|........| |.|--------", + "|c @|t|cL| |@@|S|c @|c @|c @| [ [ |........| |..........", + "|L @|-|--| |--|-|L @|L @|L @|S|@@| |@@|S|.......|| |...|------", + "|-[-| G |-[-|-[-|-[-|-|--| |--|-|-------| |.|-| ", + " PP |-| G ", + " PPPP G + h", + " PPPP + hn", + " PP |-| hnn", + "|-[-| G |-[-|-[-|-[-|-|--| |--|-|-------| |.| hnn ", + "|L @|-|--| |--|-|L @|L @|L @|S|@@| |@@|S|.......|| |.| hnn ", + "|c @|t|cL| |@@|S|c @|c @|c @| [ [ |........| |.| hnn ", + "|- -| [ [ |- -|- -|- -|t|cL| |Lc|t|........| |.| hnn ", + "|t S|S|@@| |Lc|t|t S|t S|t S|-|--| |----|........| |.| hnn ", + "|---|-|--| |--|-|---|---|---|S|@@| |@@|S|........| |.| hnn ", + "....|t|cL| |@@|S|...........| [ [ |........| |.| hnn ", + "....| [ [ |...........|t|cL| |Lc|t|........| |.| hnn ", + "|---|S|@@| |Lc|t|---|---|---|-|--| |--|-|........| |.| hnn", + "|t S|-|--| |--|-|t S|t S|t S|Pbbb |@@|S|........| |.| hn", + "|- -|t|cL| |@@|S|- -|- -|- -|b [ |........| |.|| h", + "|c @| [ [ |c @|c @|c @|b |Lc|t|........| |..|| G ", + "|L @|S|@@| |Lc|t|L @|L @|L @|b |--|-|........| |...|| ", + "|-[-|-|--| |--|-|-[-|-[-|-[-| |@@|S|........| |....|| ", + " [ |........| |.....|----", + " |Lc|t|........| |..........", + " G |--|-|........| |----------", + "|-[-|-[-|HH-[[-HH|-[-|-[-|-[-|-[-|-[-|-[-||.............| ", + "|L @|L @| |L @|L @|L @|L @|L @|L @|..............| ", + "|c @|c @| |c @|c @|c @|c @|c @|c @|..............| ", + "|- -|- -| |- -|- -|- -|- -|- -|- -|..............|-----| 5 |-", + "|t S|t S| |t S|t S|t S|t S|t S|t S|....................|--===--|.", + "|---|---|-| |-|---|---|---|---|---|---|.|------------------| 5 |-", + "..........| |...........................|//__////___$$00$$/, V6", + "..........| |..............|------|.....|//__////___6$//$$/, Vk", + "|---------| |..............|rrrrrr|.....|///6//////////////, [ ", + "| |..............| |-----|,,,,,,,,,,,,,,,,,,, V ", + "| G |..............|r = G G |-", + "| |..............|r = V ", + "| |----------|..............| 5|5 |-|779778,,,,,,,,,,,,, [ ", + "| |.........................|rrrrrr| |.|/////8/////////$$/, Vk", + "| |-|.......................|------| |.|rrrrr8///__6///$$/, Vk" + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate" }, + "items": { "k": { "item": "office", "chance": 60 } }, + "item": { "n": [ { "item": "water_clean", "chance": 20 } ] }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.35 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.35 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.2 } + ] + }, + "om_terrain": [ + [ "necropolis_d_58", "necropolis_d_59", "necropolis_d_60" ], + [ "necropolis_d_67", "necropolis_d_68", "necropolis_d_69" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + " cc |-| |.|t + [ @|@@|@@|@@|@@|@@|@@| + t|.", + " ccSccc cffffS OO c|.| |.|--| |--|--|--|--|--|--|--| |--|.", + " crrccc cffffc OO c|.| |.|t + [ @|@@|@@|@@|@@|@@|@@| + t|.", + " cc S|.| |.|--| |L@| L| L| L|L |L |L | |--|.", + " G c|.| |.|@ [ |--|[-|[-|[-|-[|-[|-[| [ @|.", + " c|.| |.|@L| |L@|.", + " c|.| |.|--| |--|.", + "ccOOOcccOOOcccrrrr crcc|.| |.|@ [ |--|[-|[-| |-[|-[|-[| [ @|.", + "-------------------| |-----|.| |.|@L| [ @| L| L| |L |L |L | |L@|.", + "...................|++|.......| |.|--| |L@|@@|@@| |@@|@@|@@| |--|.", + "-------------------| |---|...| |.|t + |--|--|--| |--|--|--| + t|.", + " |-|.| |.|--| [ @|@@|@@| |@@|@@|@@| |--|.", + " G |-| |.|t + |L@| L| L| |L |L |L | + t|.", + "nn hhhhhhhh nnh + |.|--| |--|[-|[-| |-[|-[|-[| |--|.", + "n hnnnnnnnnh nnh + |.| + + |.", + " hnnnnnnnnnnh nnh |-| |.| -| |- |.", + " hnnn nnnh nnh |.| |.| ~|[-|[-|[-|-| |-|[-|[-|[-|~ |.", + " hnn G nnh nnh |.| |.| -| L| L| L|.| |.| L| L| L|- |.", + " hnn nnh nnh |.| |.| ~|@@|@@|@@|.|H[[H|.|@@|@@|@@|~ |.", + " hnn 66 nnh nnh |.| |.|--|--|--|--|.| |.|--|--|--|--|.", + " hnn 66 nnh nnh |.| ||..............| |...............", + " hnn nnh nnh |.| |--------------| |...............", + " hnn G nnh nnh |.| |...............", + " hnnn nnnh nnh |.| |...............", + " hnnn nnnh nnh |.| |...............", + "n hnn nnh nnh |.| |--|-vvv-[[-vvv-|---|...............", + "nn nnh ||.| ||..|c c|...................", + "hnn nnh G ||..| |...|S h h S|...................", + " ||...| |...|c c|...................", + " ||....| |...|c c|...................", + "-----| 5 |---------|.....| |...|S h h S|...................", + ".....|--====--|..............|| ||..|c c|...................", + "-----| 5 |--------------| |--|-vvv-[[-vvv-|--------------|....", + " |....", + " G G |....", + " Pbbbbb bbbbbP |....", + "-------| |-----------| 5 |-------------------------------| |....", + ".......| |...........|--===--|...............................| |....", + "--|....| |.|---------| 5 |---------|....|-|-|-|-|-|-|....| |....", + "k |....| |.| |....|t|t|t|t|t|t|....| |....", + "h |....| |.| |....| | | | | | |....| |....", + " |.|--| |.| G |----|+|+|+|+|+|+|----| |....", + " o|.|EE| |.| ,,,,,,,,,,,,,,,,,,,,, |cScS| |ScSc| |....", + "--|.|EE= |.|b , , , 7 , , , b| | |--|.", + " o|.|EE= |.|b , , , , , , b| | v |.", + " |.|--| |.|b , , ,,,,, , , b| |-|L |-| | [ >|.", + "h |.|EE+ |.|b , , , , b| |.|L b L|L b L|.| | v |.", + "6 |.|EE+ |.|b , , , , b| |.|L b L|L b L|.| | |--|." + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate" }, + "items": { + "L": { "item": "sports", "chance": 60 }, + "b": { "item": "magazines", "chance": 10 }, + "c": { "item": "beauty", "chance": 20 } }, - "place_items": [ { "item": "magazines", "x": [ 14, 15 ], "y": [ 7, 8 ], "chance": 60 } ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_16" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "| + |..............", - "|-[[-| t|..............", - " |---|..............", - " c | < |..............", - "cc | |.|------------", - " |-+-|.| ", - " |.| ", - " nn b|.| |---------", - " nn b|.| |.........", - " b|.| |.|----|--", - " bbbbb |.| |.|d |S ", - "u|-------|.| |.|@@ |-+", - " |.........| |.|@@ ", - " |---------| |.|d ", - " |.|-------", - " |.........", - "|-------------|.........", - "|...............|-------", - "................|d ", - "................|@@ ", - "................|@@ |-+", - "................|d |S ", - "................|----|--", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "place_items": [ - { "item": "dresser", "x": [ 17, 17 ], "y": [ 21, 21 ], "chance": 70 }, - { "item": "dresser", "x": [ 17, 17 ], "y": [ 18, 18 ], "chance": 70 }, - { "item": "dresser", "x": [ 17, 17 ], "y": [ 10, 10 ], "chance": 70 }, - { "item": "dresser", "x": [ 17, 17 ], "y": [ 13, 13 ], "chance": 70 }, - { "item": "bed", "x": [ 17, 18 ], "y": [ 19, 20 ], "chance": 70 }, - { "item": "bed", "x": [ 17, 18 ], "y": [ 11, 12 ], "chance": 70 }, - { "item": "magazines", "x": [ 3, 14 ], "y": [ 7, 8 ], "chance": 60 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_17" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "------------------------", - " ", - " ", - "---------| |---------", - ".........|| ||.........", - "-|-|----|.| |.|----|-|-", - "t|L|hnnh|.| |.|hnnh|L|t", - "-|+| |-| |-| |+|-", - " [ [ ", - "oo |-| |-| oo", - "--------|.| |.|--------", - "..........| |..........", - "..........| |..........", - "--------|.| |.|--------", - "oo |-| |-| oo", - " [ [ ", - "-|+| |-| |-| |+|-", - "t|L|hnnh|.| |.|hnnh|L|t", - "-|-|----|.| |.|----|-|-", - "..........| |.........." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "place_items": [ - { "item": "homebooks", "x": [ 22, 23 ], "y": [ 13, 13 ], "chance": 70 }, - { "item": "homebooks", "x": [ 22, 23 ], "y": [ 18, 18 ], "chance": 70 }, - { "item": "homebooks", "x": [ 0, 1 ], "y": [ 13, 13 ], "chance": 70 }, - { "item": "homebooks", "x": [ 0, 1 ], "y": [ 18, 18 ], "chance": 70 }, - { "item": "traveler", "x": [ 21, 21 ], "y": [ 21, 21 ], "chance": 70 }, - { "item": "traveler", "x": [ 21, 21 ], "y": [ 10, 10 ], "chance": 70 }, - { "item": "traveler", "x": [ 2, 2 ], "y": [ 21, 21 ], "chance": 70 }, - { "item": "traveler", "x": [ 2, 2 ], "y": [ 10, 10 ], "chance": 70 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_18" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".....|-==-|.............", - ".....| 5|.............", - ".....|| |.............", - "......| ||.............", - "------| |..............", - " |..............", - " |..............", - "---------|..............", - "........................", - "--|----|................", - " S| d|................", - "+-| @@|................", - " @@|................", - " d|................", - "-------|................", - "........................", - "........................", - "-------|................", - " d|................", - " @@|................", - "+-| @@|................", - " S| d|................", - "--|----|................", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "place_items": [ - { "item": "bed", "x": [ 5, 6 ], "y": [ 11, 12 ], "chance": 70 }, - { "item": "bed", "x": [ 5, 6 ], "y": [ 19, 20 ], "chance": 70 }, - { "item": "dresser", "x": [ 6, 6 ], "y": [ 10, 10 ], "chance": 70 }, - { "item": "dresser", "x": [ 6, 6 ], "y": [ 13, 13 ], "chance": 70 }, - { "item": "dresser", "x": [ 6, 6 ], "y": [ 18, 18 ], "chance": 70 }, - { "item": "dresser", "x": [ 6, 6 ], "y": [ 21, 21 ], "chance": 70 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_19" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "...|~|~|~|~|cScScScS|.| ", - "...| | |-| ", - "...| + ", - "...| |+|+|+|+-|-| ", - "...|~|~|~|~|t|t|t| t|.| ", - "...|-|-|-|-|-|-|-|--|.| ", - "......................| ", - "|-------------------|.| ", - "|r@@L L@@r@@L L@@r|.| ", - "|r r r|.| ", - "|r@@L L@@r@@L L@@r|-| ", - "| [ ", - "| v ", - "| [ ", - "|r@@L L@@r@@L L@@r|-| ", - "|r r r|.| ", - "|r@@L L@@r@@L L@@r|.| ", - "|-------------------|.| ", - "......................| ", - "......................| ", - "......................| ", - "......................| ", - "......................| ", - "......................| " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_20" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " |nhhhn hh|+-|...", - " [ + |...", - " | | r|...", - " v $$$ $$$ c r|...", - " v $$$ G $$$ c S|...", - " v c c|...", - " |P hnh hnh | r|...", - " |-|------------|--|---", - " |.|r@@L L@@r@@L L@@r", - " |.|r r r", - " |-|r@@L L@@r@@L L@@r", - " [ ", - " v ", - " [ ", - " |-|r@@L L@@r@@L L@@r", - " |.|r r r", - " |.|r@@L L@@r@@L L@@r", - " |.|-------------------", - " ||....................", - " |--------------------", - " ", - " ", - " G ", - " " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "place_items": [ - { "item": "alcohol", "x": [ 19, 19 ], "y": [ 2, 3 ], "chance": 80 }, - { "item": "alcohol", "x": [ 19, 19 ], "y": [ 6, 6 ], "chance": 80 }, - { "item": "magazines", "x": [ 3, 3 ], "y": [ 0, 0 ], "chance": 70 }, - { "item": "magazines", "x": [ 7, 7 ], "y": [ 0, 0 ], "chance": 70 }, - { "item": "pool_table", "x": [ 5, 7 ], "y": [ 3, 4 ], "chance": 70 }, - { "item": "pool_table", "x": [ 11, 13 ], "y": [ 3, 4 ], "chance": 70 }, - { "item": "traveler", "x": [ 23, 23 ], "y": [ 14, 16 ], "chance": 60 }, - { "item": "traveler", "x": [ 23, 23 ], "y": [ 8, 10 ], "chance": 60 }, - { "item": "traveler", "x": [ 14, 14 ], "y": [ 14, 16 ], "chance": 60 }, - { "item": "traveler", "x": [ 14, 14 ], "y": [ 8, 10 ], "chance": 60 }, - { "item": "bed", "x": [ 21, 22 ], "y": [ 16, 16 ], "chance": 60 }, - { "item": "bed", "x": [ 21, 22 ], "y": [ 10, 10 ], "chance": 60 }, - { "item": "bed", "x": [ 21, 22 ], "y": [ 14, 14 ], "chance": 60 }, - { "item": "bed", "x": [ 21, 22 ], "y": [ 8, 8 ], "chance": 60 }, - { "item": "traveler", "x": [ 20, 20 ], "y": [ 16, 16 ], "chance": 60 }, - { "item": "traveler", "x": [ 20, 20 ], "y": [ 10, 10 ], "chance": 60 }, - { "item": "traveler", "x": [ 20, 20 ], "y": [ 14, 14 ], "chance": 60 }, - { "item": "traveler", "x": [ 20, 20 ], "y": [ 8, 8 ], "chance": 60 }, - { "item": "traveler", "x": [ 17, 17 ], "y": [ 16, 16 ], "chance": 60 }, - { "item": "traveler", "x": [ 17, 17 ], "y": [ 10, 10 ], "chance": 60 }, - { "item": "traveler", "x": [ 17, 17 ], "y": [ 14, 14 ], "chance": 60 }, - { "item": "traveler", "x": [ 17, 17 ], "y": [ 8, 8 ], "chance": 60 }, - { "item": "bed", "x": [ 15, 16 ], "y": [ 16, 16 ], "chance": 60 }, - { "item": "bed", "x": [ 15, 16 ], "y": [ 10, 10 ], "chance": 60 }, - { "item": "bed", "x": [ 15, 16 ], "y": [ 14, 14 ], "chance": 60 }, - { "item": "bed", "x": [ 15, 16 ], "y": [ 8, 8 ], "chance": 60 }, - { "item": "bed", "x": [ 12, 13 ], "y": [ 16, 16 ], "chance": 60 }, - { "item": "bed", "x": [ 12, 13 ], "y": [ 10, 10 ], "chance": 60 }, - { "item": "bed", "x": [ 12, 13 ], "y": [ 14, 14 ], "chance": 60 }, - { "item": "bed", "x": [ 12, 13 ], "y": [ 8, 8 ], "chance": 60 }, - { "item": "traveler", "x": [ 11, 11 ], "y": [ 16, 16 ], "chance": 60 }, - { "item": "traveler", "x": [ 11, 11 ], "y": [ 10, 10 ], "chance": 60 }, - { "item": "traveler", "x": [ 11, 11 ], "y": [ 14, 14 ], "chance": 60 }, - { "item": "traveler", "x": [ 11, 11 ], "y": [ 8, 8 ], "chance": 60 }, - { "item": "traveler", "x": [ 8, 8 ], "y": [ 16, 16 ], "chance": 60 }, - { "item": "traveler", "x": [ 8, 8 ], "y": [ 10, 10 ], "chance": 60 }, - { "item": "traveler", "x": [ 8, 8 ], "y": [ 14, 14 ], "chance": 60 }, - { "item": "traveler", "x": [ 8, 8 ], "y": [ 8, 8 ], "chance": 60 }, - { "item": "bed", "x": [ 6, 7 ], "y": [ 16, 16 ], "chance": 60 }, - { "item": "bed", "x": [ 6, 7 ], "y": [ 10, 10 ], "chance": 60 }, - { "item": "bed", "x": [ 6, 7 ], "y": [ 14, 14 ], "chance": 60 }, - { "item": "bed", "x": [ 6, 7 ], "y": [ 8, 8 ], "chance": 60 }, - { "item": "traveler", "x": [ 5, 5 ], "y": [ 14, 16 ], "chance": 60 }, - { "item": "traveler", "x": [ 5, 5 ], "y": [ 8, 10 ], "chance": 60 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_21" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........|c @|c @|c @|c @", - "........|L @|L @|L @|L @", - ".......||-[-|-[-|-[-|-[-", - "..|-|--|P ", - "..|S|@@| ", - "..| [ ", - "..|t|cL| |-[-|-[-", - "|.|-|--| b|L @|L @", - "|.|S|@@| b|c @|c @", - "|.| [ b|- -|- -", - "|.|t|cL| bbbP|t S|t S", - "|.|-|--| |--|-|---|---", - "|.|S|@@| |@@|S|.......", - "|.| [ [ |.......", - "|-|t|cL| |Lc|t|---|---", - "|<|-|--| |--|-|t S|t S", - "|>|S|@@| |@@|S|- -|- -", - "|-| [ [ |c @|c @", - "..|t|cL| |Lc|t|L @|L @", - "--|-|--| |--|-|-[-|-[-", - " ", - " ", - " ", - " " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "bedroom", "chance": 15 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_22" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "|c @|c @| |c @|c ", - "|L @|L @| |L @|L ", - "|-[-|-[-|HH-[[-HH|-[-|-[", - " ", - " G ", - " ", - "|-[-|-|--| |--|-|-[", - "|L @|S|@@| |Lc|t|L ", - "|c @| [ [ |c ", - "|- -|t|cL| |@@|S|- ", - "|t S|-|--| |--|-|t ", - "|---|S|@@| |Lc|t|--", - "....| [ [ |..", - "....|t|cL| |@@|S|..", - "|---|-|--| |--|-|--", - "|t S|S|@@| |Lc|t|t ", - "|- -| [ [ |- ", - "|c @|t|cL| |@@|S|c ", - "|L @|-|--| |--|-|L ", - "|-[-| G |-[", - " PP ", - " PPPP ", - " PPPP ", - " PP " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "bedroom", "chance": 15 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_23" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "@|c @|c @|c @|c @|......", - "@|L @|L @|L @|L @|......", - "-|-[-|-[-|-[-|-[-||.....", - " P|--|-|", - " |Lc|t|", - " [ |", - "-|-[-|-[-| |@@|S|", - "@|L @|L @|b |--|-|", - "@|c @|c @|b |Lc|t|", - "-|- -|- -|b [ |", - "S|t S|t S|Pbbb |@@|S|", - "-|---|---|-|--| |--|-|", - ".........|t|cL| |Lc|t|", - ".........| [ [ |", - "-|---|---|S|@@| |@@|S|", - "S|t S|t S|-|--| |----|", - "-|- -|- -|t|cL| |Lc|t|", - "@|c @|c @| [ [ |", - "@|L @|L @|S|@@| |@@|S|", - "-|-[-|-[-|-|--| |--|-|", - " ", - " ", - " ", - " " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "bedroom", "chance": 15 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_24" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..................|| |", - "...........|------| ", - "...........| ", - "...........| ", - "...........| |-------| ", - "...........| |.......| ", - "...........| |.....|-|-", - "...........| |.....|@ ", - "...........| |.....|@ ", - "...........| |.....|-| ", - "...........| |.....|L+ ", - "...........| |.....|-| ", - "..........|| ||....|L+ ", - ".......|--| |--|.|-| ", - ".......|X | |EE|.|@ ", - ".......|XX[ +EE|.|@ ", - ".......|X | +EE|.|-|-", - ".......|--| |--|...|S", - "..........| |......|-", - "----------| |--------", - " ", - " G ", - " ", - " " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_metal_floor", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "X": "f_rubble", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { "@": { "item": "bed", "chance": 60 }, "L": { "item": "traveler", "chance": 60 } }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_25" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "|.......................", - "|-----------------------", - " ", - " ", - " |-----| |-----| |-", - " 5|.....| 5|.....| 5|.", - "=-|-|.|-|-=-|-|.|-|-=-|-", - " 5 @|.|@ 5 @|.|@ 5 @", - " @|.|@ @|.|@ @", - " |-|.|-| |-|.|-| |-", - " +L|.|L+ +L|.|L+ +L", - " |-|.|-| |-|.|-| |-", - " +L|.|L+ +L|.|L+ +L", - " |-|.|-| |-|.|-| |-", - " @|.|@ @|.|@ @", - " @|.|@ @|.|@ @", - "+-|-|.|-|-+-|-|.|-|-+-|-", - " t|.....|S t|.....|S t|.", - "--|.....|---|.....|---|.", - "------------------------", - " ", - " ", - " ", - " " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { "@": { "item": "bed", "chance": 60 }, "L": { "item": "traveler", "chance": 60 } }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.4 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.4 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_26" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".........|| ||.........", - "---------| |---------", - " ", - " G ", - "--------| |--------", - "........|| ||........", - "|........| |.........", - "|........| |.........", - "|........| |.....|---", - "|........| ||...|| ", - "|........| |---| 5", - "|........| ", - "|........| ", - "|........| ", - "|........| |---| ", - "|........| ||...|| ", - "|........| |.....|---", - ".........| |.........", - "........|| |.........", - "--------| |.........", - " |.........", - " |.........", - " |.........", - " |........." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_27" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..|---|.................", - "--|EEE|.................", - " +EEE|.................", - " +EEE|.................", - "--|EEE|.................", - "..|---|.................", - "........................", - "........................", - "|---------------|-----|.", - "| bbb D bbb |L L L|.", - "|5 |@ @ @|.", - "= | |.", - "= G |.", - "= |@ @ @|.", - "| |@ @ @|.", - "| bbb |L L L|.", - "|-------| |-|-----|.", - "|L L L L| |L L L L|.", - "|@ @ @ @| |@ @ @ @|.", - "|@ @ @ @| |@ @ @ @|.", - "| |.", - "|@ @ @ @| |@ @ @ @|.", - "|@ @ @ @| |@ @ @ @|.", - "|L L L L| |L L L L|." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { "@": { "item": "bed", "chance": 60 }, "L": { "item": "traveler", "chance": 60 } }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.35 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.35 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_28" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "......................| ", - "......................| ", - "|-------------------|.| ", - "|r@@L L@@r@@L L@@r|.| ", - "|r r r|.| ", - "|r@@L L@@r@@L L@@r|-| ", - "| [ ", - "| v ", - "| [ ", - "|r@@L L@@r@@L L@@r|-| ", - "|r r r|.| ", - "|r@@L L@@r@@L L@@r|.| ", - "|-------------------|.| ", - "......................| ", - ".....................|| ", - ".....................| ", - ".....................| ", - ".....................| ", - ".....................|--", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_29" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " |--------------------", - " ||....................", - " |.|-------------------", - " |.|r@@L L@@r@@L L@@r", - " |.|r r r", - " |-|r@@L L@@r@@L L@@r", - " [ ", - " v ", - " [ ", - " |-|r@@L L@@r@@L L@@r", - " |.|r r r", - " |.|r@@L L@@r@@L L@@r", - " |.|-------------------", - " |.....................", - " |------------------|..", - " |..", - " G |..", - " |..", - "----------------| ||..", - "................| |...", - "................| |...", - "...............|| ||..", - "...............| |..", - "...............| 5|.." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_30" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "--|-|--| |--|-|-[-|-[-", - "..|t|cL| |Lc|t|L @|L @", - "|.| [ [ |c @|c @", - "|.|S|@@| |@@|S|- -|- -", - "|.|-|--| |--|-|t S|t S", - "|.|t|cL| |Lc|t|---|---", - "|.| [ [ |.......", - "|.|S|@@| |@@|S|.......", - "|.|-|--| |--|-|---|---", - "|.|t|cL| bbbP|t S|t S", - "|.| [ b|- -|- -", - "|.|S|@@| b|c @|c @", - "|.|-|--| b|L @|L @", - "..|t|cL| |-[-|-[-", - "..| [ ", - "..|S|@@| ", - "..|-|--|P ", - ".......||-[-|-[-|-[-|-[-", - "........|L @|L @|L @|L @", - "........|c @|c @|c @|c @", - "........|- -|- -|- -|- -", - "........|t S|t S|t S|t S", - "........|---|---|---|---", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "bedroom", "chance": 15 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_31" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "|-[-| G |-[", - "|L @|-|--| |--|-|L ", - "|c @|t|cL| |@@|S|c ", - "|- -| [ [ |- ", - "|t S|S|@@| |Lc|t|t ", - "|---|-|--| |--|-|--", - "....|t|cL| |@@|S|..", - "....| [ [ |..", - "|---|S|@@| |Lc|t|--", - "|t S|-|--| |--|-|t ", - "|- -|t|cL| |@@|S|- ", - "|c @| [ [ |c ", - "|L @|S|@@| |Lc|t|L ", - "|-[-|-|--| |--|-|-[", - " ", - " ", - " ", - "|--|-HHH-HH-[[-HH-HHH-|-", - "|..|Pbbb bbbP|.", - "|..|b b|.", - "|..|b c c b|.", - "|..|b cc cc b|.", - "|--| |-", - "|EE| G |E" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "bedroom", "chance": 15 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_32" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "-|-[-|-[-|-|--| |--|-|", - "@|L @|L @|S|@@| |@@|S|", - "@|c @|c @| [ [ |", - "-|- -|- -|t|cL| |Lc|t|", - "S|t S|t S|-|--| |----|", - "-|---|---|S|@@| |@@|S|", - ".........| [ [ |", - ".........|t|cL| |Lc|t|", - "-|---|---|-|--| |--|-|", - "S|t S|t S|Pbbb |@@|S|", - "-|- -|- -|b [ |", - "@|c @|c @|b |Lc|t|", - "@|L @|L @|b |--|-|", - "-|-[-|-[-| |@@|S|", - " [ |", - " |Lc|t|", - " P|--|-|", - "-|-[-|-[-|-[-|-[-||.....", - ".|L @|L @|L @|L @|......", - ".|c @|c @|c @|c @|......", - ".|- -|- -|- -|- -|......", - ".|t S|t S|t S|t S|......", - "-|---|---|---|---|------", - "E| " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "bedroom", "chance": 15 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_33" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "-------|---|---|---|---|", - ".......|t S|t S|t S|t S|", - ".......|- -|- -|- -|- -|", - ".......|c @|c @|c @|c @|", - ".......|L @|L @|L @|L @|", - "......||-[-|-[-|-[-|-[-|", - ".|-|--| ", - ".|S|@@| ", - ".| [ ", - ".|t|cL| |-[-|-[-|", - ".|-|--| b|L @|L @|", - ".|S|@@| b|c @|c @|", - ".| [ b|- -|- -|", - ".|t|cL| bbbP|t S|t S|", - ".|-|--| |--|-|---|---|", - ".|S|@@| |@@|S|........", - ".| [ [ |........", - ".|t|cL| |Lc|t|---|---|", - ".|-|--| |--|-|t S|t S|", - ".|S|@@| |@@|S|- -|- -|", - ".| [ [ |c @|c @|", - ".|t|cL| |Lc|t|L @|L @|", - "-|-|--| |--|-|-[-|-[-|", - " " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "bedroom", "chance": 15 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_34" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "---|---| |---|---", - "t S|t S| |t S|t S", - "- -|- -| |- -|- -", - "c @|c @| |c @|c @", - "L @|L @| |L @|L @", - "-[-|-[-|uu-[[-uu|-[-|-[-", - " ", - " ", - " ", - "-[-|-|--| |--|-|-[-", - "L @|S|@@| |Lc|t|L @", - "c @| [ [ |c @", - "- -|t|cL| |@@|S|- -", - "t S|-|--| |--|-|t S", - "---|S|@@| |Lc|t|---", - "...| [ [ |...", - "...|t|cL| |@@|S|...", - "---|-|--| |--|-|---", - "t S|S|@@| |Lc|t|t S", - "- -| [ [ |- -", - "c @|t|cL| |@@|S|c @", - "L @|-|--| |--|-|L @", - "-[-| G |-[-", - " PP " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "bedroom", "chance": 15 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_35" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "|---|---|---|-|-|.......", - "|t S|t S|t S|t S|.......", - "|- -|- -|- -|- -|.......", - "|c @|c @|c @|c @|.......", - "|L @|L @|L @|L @|.......", - "|-[-|-[-|-[-|-[-||......", - " |--|-|.", - " |Lc|t|.", - " [ |.", - "|-[-|-[-| |@@|S|.", - "|L @|L @|b |--|-|.", - "|c @|c @|b |Lc|t|.", - "|- -|- -|b [ |.", - "|t S|t S|Pbbb |@@|S|.", - "|---|---|-|--| |--|-|.", - "........|t|cL| |Lc|t|.", - "........| [ [ |.", - "|---|---|S|@@| |@@|S|.", - "|t S|t S|-|--| |----|.", - "|- -|- -|t|cL| |Lc|t|.", - "|c @|c @| [ [ |.", - "|L @|L @|S|@@| |@@|S|.", - "|-[-|-[-|-|--| |--|-|-", - " " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "bedroom", "chance": 15 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_36" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "|-------| |-------|.", - "|L L L L| |L L L L|.", - "|@ @ @ @| |@ @ @ @|.", - "|@ @ @ @| |@ @ @ @|.", - "| |.", - "|@ @ @ @| |@ @ @ @|.", - "|@ @ @ @| |@ @ @ @|.", - "|L L L L| |L L L L|.", - "|-----|-| |-|-----|.", - "|L L L| |L L L|.", - "|@ @ @| |@ @ @|.", - "|@ @ @| |@ @ @|.", - "| G |.", - "|@ @ @| |@ @ @|.", - "|@ @ @| |@ @ @|.", - "|L L L| 5 |L L L|.", - "|-----||--===--||-----|.", - ".......| 5 |........", - ".......| |........", - ".......| |........", - ".....|-| |........", - ".....| |........", - "-----| |........", - " G b|........" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 15 ], "density": 0.45 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 15 ], "density": 0.45 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_37" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "........................", - "........................", - "..................|-----", - "..................| ", - "..................| ", - "..................| |--", - "..................| |rc", - "..................| |c/", - "..................| v//", - "..................| v//", - "..................| v//", - "..................| |c/", - "..................| |rc", - "..................| |--", - "..................| |rc", - "..................| |c/", - "..................| v//", - "..................| v//", - "..................| v//", - "..................| |c/", - "..................| |rc", - "..................| |--" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "/": { "item": "tools_mechanic", "chance": 1 }, - "c": { "item": "tools_common", "chance": 10 }, - "r": { "item": "mechanics", "chance": 65 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_38" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "...............|-===-|..", - "...............| 5|..", - ".....|---------| |--", - ".....| G ", - "-----| 5 ", - " |--------===----", - " |///////5/////rr", - "-uuuu---|///////////////", - "c//////5|5//////////////", - "////////=///////////////", - "////////=///////////////", - "//G/////=///////////////", - "////////=/////////G/////", - "////////=/////,,,,,,,,,/", - "c/rr/ccr|r////,EEEEEEE,/", - "--------|r////,EEEEEEE,/", - "c/rr/ccr|r////,EEEEEEE,/", - "////////=/////,EEEEEEE,/", - "////////=/////,EEEEEEE,/", - "//G/////=/////,EEEEEEE,/", - "////////=/////,EEEEEEE,/", - "////////=/////,,,,,,,,,/", - "c//////5|5////////G/////", - "-uuuu---|///////////////" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "/": { "item": "supplies_electronics", "chance": 2 }, - "c": { "item": "tools_common", "chance": 20 }, - "r": { "item": "tools_electronics", "chance": 20 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 1, 22 ], "y": [ 12, 22 ], "density": 0.07 }, - { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 12, 22 ], "y": [ 12, 22 ], "density": 0.1 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_39" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "........................", - "-------|................", - " |................", - " |----------|.....", - "----| |.....", - "ccrr| |.....", - "////|---uuuu---| |.....", - "////|rcc////ccr| |.....", - "////=/////////c| |.....", - "////=//////////v |.....", - "////=/////G////v |.....", - "////=//////////v |.....", - "////=/////////c| |.....", - "///5|5///rr/ccr| |.....", - "////|----------| |.....", - "////|rcc/rr/ccr| |.....", - "////=/////////c| |.....", - "////=//////////v |.....", - "////=/////G////v |.....", - "////=//////////v |.....", - "////=/////////c| |.....", - "///5|5//////ccr| |.....", - "////|---uuuu---| |....." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "/": { "item": "supplies_electronics", "chance": 2 }, - "c": { "item": "tools_common", "chance": 20 }, - "r": { "item": "tools_electronics", "chance": 20 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 1, 12 ], "y": [ 12, 22 ], "density": 0.07 }, - { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 1, 12 ], "y": [ 12, 22 ], "density": 0.07 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_40" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "|EE+ +E", - "|EE+ +E", - "|EE| |E", - "|--|P bbbD bbb P|-", - "...|------| |------|.", - "..........| |........", - "..........| |.|------", - "..........| |.|PbbbbP", - "..........| |-| ", - "..........| v ", - "..........| [ c", - "..........| [ c", - "..........| v c", - "..........| |-| 6", - "..........| |.|D c", - "..........| |-| c", - "..........| v c", - "..........| [ c", - "..........| v 6", - "..........| |-| c", - "..........| |.|ccc cc", - "..........| |.| ", - "..........| |.| rrrrr", - "..........| |.| rrrrr" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { "b": { "item": "magazines", "chance": 30 }, "r": { "item": "alcohol", "chance": 5 } }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_41" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "E+ ", - "E+ G ", - "E| ", - "-|----| |--------", - "......|u[[uu[[u|........", - "..|---| |.|----|.", - "--| |.|EEEE|.", - " |.|EEEE|.", - " cccc|-|-++-|.", - " c |.", - "c cc6ccc6ccc |.", - " |.", - " G |-|-++-|.", - " rr rr rr |.|EEEE|.", - " rr rr rr |.|EEEE|.", - " rr rr rr |.|----|.", - " rr rr rr |........", - " |------|.", - " |.", - " rr rr rr rrrrrr |.", - " rr rr rr rrrrrr |-", - " rr rr rr G | ", - "r rr rr rr rrrrrr + ", - "r rr rr rr rrrrrr | " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "place_items": [ - { "item": "consumer_electronics", "x": [ 15, 20 ], "y": [ 19, 20 ], "chance": 75 }, - { "item": "sports", "x": [ 15, 20 ], "y": [ 22, 23 ], "chance": 75 }, - { "item": "camping", "x": [ 11, 12 ], "y": [ 19, 23 ], "chance": 75 }, - { "item": "consumer_electronics", "x": [ 11, 12 ], "y": [ 13, 16 ], "chance": 75 }, - { "item": "sports", "x": [ 7, 8 ], "y": [ 13, 16 ], "chance": 75 }, - { "item": "allclothes", "x": [ 3, 4 ], "y": [ 19, 23 ], "chance": 75 }, - { "item": "allclothes", "x": [ 7, 8 ], "y": [ 19, 23 ], "chance": 75 }, - { "item": "allclothes", "x": [ 3, 4 ], "y": [ 13, 16 ], "chance": 75 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_42" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " ", - " ", - " ", - "-|-|--| |--|-|-[-|-[-|", - ".|t|cL| |Lc|t|L @|L @|", - ".| [ [ |c @|c @|", - ".|S|@@| |@@|S|- -|- -|", - ".|-|--| |--|-|t S|t S|", - ".|t|cL| |Lc|t|---|---|", - ".| [ [ |........", - ".|S|@@| |@@|S|........", - ".|-|--| |--|-|---|---|", - ".|t|cL| bbbP|t S|t S|", - ".| [ b|- -|- -|", - ".|S|@@| b|c @|c @|", - ".|-|--| b|L @|L @|", - ".|t|cL| |-[-|-[-|", - ".| [ ", - ".|S|@@| ", - ".|-|--| ", - "-|....||-[-|-[-|-[-|-[-|", - "t|.....|L @|L @|L @|L @|", - " |.....|c @|c @|c @|c @|", - "S|.....|- -|- -|- -|- -|" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "bedroom", "chance": 15 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_43" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " PPPP ", - " PPPP ", - " PP ", - "-[-| G |-+-", - "L @|-|--| |--|-|L @", - "c @|t|cL| |@@|S|c @", - "- -| [ [ |- -", - "t S|S|@@| |Lc|t|t S", - "---|-|--| |--|-|---", - "...|t|cL| |@@|S|...", - "...| [ [ |...", - "---|S|@@| |Lc|t|---", - "t S|-|--| |--|-|t S", - "- -|t|cL| |@@|S|- -", - "c @| [ [ |c @", - "L @|S|@@| |Lc|t|L @", - "-[-|-|--| |--|-|-[-", - " ", - " ", - " ", - "-[-|-[-|u[[uu[[u|-[-|-[-", - "L @|L @|P P|L @|L @", - "c @|c @|b b|c @|c @", - "- -|- -|b b|- -|- -" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "bedroom", "chance": 15 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_44" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " ", - " ", - " ", - "|-+-|-+-|-|--| |--|-|-", - "|L @|L @|S|@@| |@@|S|S", - "|c @|c @| [ [ | ", - "|- -|- -|t|cL| |Lc|t|t", - "|t S|t S|-|--| |----|-", - "|---|---|S|@@| |@@|S|S", - "........| [ [ | ", - "........|t|cL| |Lc|t|t", - "|---|---|-|--| |--|-|-", - "|t S|t S|Pbbb |@@|S|S", - "|- -|- -|b [ | ", - "|c @|c @|b |Lc|t|t", - "|L @|L @|b |--|-|-", - "|-[-|-[-| |@@|S|S", - " [ | ", - " |Lc|t|t", - " |--|-|-", - "|-[-|-[-|-[-|-[-||......", - "|L @|L @|L @|L @|.......", - "|c @|c @|c @|c @|.......", - "|- -|- -|- -|- -|......." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "bedroom", "chance": 15 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_45" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " b|........", - " b|........", - " bbbP|........", - "|--| |------|........", - "|cL| |...............", - " [ |...............", - "|@@| |...............", - "|--| |...............", - "|cL| |...............", - " [ |...............", - "|@@| |...............", - "|--| |...............", - "|cL| |...............", - " [ |...............", - "|@@| |...............", - "|--| |...............", - "|cL| |...............", - " [ |...............", - "|@@| |...............", - "|--| |...............", - "...| |...............", - "...| |...............", - "...| |...............", - "...| |..............." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "bedroom", "chance": 15 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_46" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..................| ", - "..................| ", - "..................|-----", - "........................", - "........................", - "........................", - "........................", - "......................|-", - "......................| ", - "......................| ", - "......................| ", - "|-------------------|.| ", - "|r@@L L@@r@@L L@@r|.| ", - "|r r r|.| ", - "|r@@L L@@r@@L L@@r|-| ", - "| [ ", - "| v ", - "| [ ", - "|r@@L L@@r@@L L@@r|-| ", - "|r r r|.| ", - "|r@@L L@@r@@L L@@r|.| ", - "|-------------------|.| ", - "......................| ", - "|-------------------|.| " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_47" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " ||//////////////", - " |||/////////////", - "----| |.|//////////5//", - "....| |.|-|---=====---", - "....| 5|...| 5 ", - "....|-=-|...| ", - "....| 5|...| ", - "----| |---| G ", - " ", - " ", - " ", - " |--------| |-------", - " ||........|[H[|.......", - " |.|-------| |-------", - " |.|c$cc c c c$cc ", - " |.|ch c c ch ", - " |.|c cccc6cc r", - " |.| h r", - " |.|c r|+-", - " |.|ch c r r r r r| t", - " |.|c$cc r r r r r| S", - " |.|----------------|--", - " |.....................", - " |.|-------------------" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { "c": { "item": "tools_tailor", "chance": 50 } }, - "item": { - "r": [ - { "item": "jumpsuit", "chance": 1 }, - { "item": "jumpsuit", "chance": 2 }, - { "item": "jumpsuit", "chance": 3 }, - { "item": "jumpsuit", "chance": 4 }, - { "item": "pants", "chance": 3 }, - { "item": "coat_lab", "chance": 3 } - ] - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 8, 22 ], "density": 0.2 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 8, 22 ], "density": 0.2 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_48" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "///|| |.....", - "//||| |.....", - "//|.| |---------|.....", - "|-|.| |...............", - "|...| 5|...............", - "|...|-=-|...............", - "|...| 5|...............", - "|---| |---------------", - " ", - " ", - " ", - "------------------------", - "........................", - "|---|...|---|---|---|---", - "|rrr|...|t S|t S|t S|t S", - "+ |...|- -|- -|- -|- -", - "|rrr|...|c @|c @|c @|c @", - "|---|...|L @|L @|L @|L @", - "|......||-[-|-[-|-[-|-[-", - "|.|-|--| ", - "|.|S|@@| ", - "|.| [ ", - "..|t|cL| |-[-|-[-", - "|.|-|--| b|L @|L @" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "bedroom", "chance": 15 }, - "r": { "item": "tools_tailor", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_49" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..........| |.| ", - "..........| |.|------", - "..........| |........", - ".|--------| |--------", - ".| ", - ".| G ", - "|| ", - "| |--|-| |-|--| ", - " +EE| v v |EE+ ", - " +EE|>[ [<|EE+ ", - " |EE| v v |EE| ", - "-----|--|-| |-|--|---", - "..........| |........", - "|---|---|-| |-|---|--", - "|t S|t S|P P|t S|t ", - "|- -|- -|b b|- -|- ", - "|c @|c @|b b|c @|c ", - "|L @|L @|P P|L @|L ", - "|-[-|-[-|HH-[[-HH|-[-|-[", - " G ", - " ", - " ", - "|-[-|-|--| |--|-|-[", - "|L @|S|@@| |Lc|t|L " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "bedroom", "chance": 15 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_50" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " |-", - "----------------------|.", - "........................", - "|.......................", - "|.......................", - "|.......................", - "||......................", - " |----------------------", - " ", - " ", - " ", - "------------------------", - "........................", - "-|---|---|---|---|......", - "S|t S|t S|t S|t S|......", - "-|- -|- -|- -|- -|......", - "@|c @|c @|c @|c @|......", - "@|L @|L @|L @|L @|......", - "-|-[-|-[-|-[-|-[-||.....", - " |--|-|", - " |Lc|t|", - " [ |", - "-|-[-|-[-| |@@|S|", - "@|L @|L @|b |--|-|" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "bedroom", "chance": 15 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_51" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "-|.....|t S|t S|t S|t S|", - ".......||--|---|---|---|", - "........| ", - "........| ", - "........| ", - "........| |-|-+++|---", - ".......|| |.|EEEE|...", - "-------| |.|EEEE|.|-", - " |.|----|.|r", - " |........|r", - " |.|----|.|r", - "-------| |.|EEEE|.|r", - ".......|| |.|EEEE|.|r", - "........| |.|-++-|-|r", - "........| |.| |.|r", - "........| |.| |.|r", - "........| |-| |-|-", - "........| | ", - "........| 5|5 G", - "........| = ", - "........| = rr ", - "........| = rr ", - "........| | rr ", - "........| | cc " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "place_items": [ - { "item": "kitchen", "x": [ 20, 21 ], "y": [ 20, 22 ], "chance": 50 }, - { "item": "produce", "x": [ 20, 21 ], "y": [ 20, 22 ], "chance": 75 }, - { "item": "cannedfood", "x": [ 23, 23 ], "y": [ 23, 23 ], "chance": 75 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_52" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "t S|t S|P P|t S|t S", - "---|---| |---|---", - " G ", - " ", - " ", - "-----------------------|", - ".......................|", - "---------------------|.|", - "rrrrrrrrrrrrrrrrrrrrr|.|", - " r|..", - " rr rr rr rr r|.|", - " rr rr G rr rr r|.|", - " rr rr rr rr r|.|", - " rr rr rr rr r|.|", - " rr rr r|.|", - " 5 r|.|", - "--------====---------|-|", - " rrrrrr 5rrrrrr ", - " G ", - " ", - " rr", - " cffffc cccScc rr", - " cffffS ccrrcc rr", - " cc" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "c": { "item": "kitchen", "chance": 30 }, - "f": { "item": "fridge", "chance": 60 }, - "r": { "item": "cannedfood", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_53" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "|t S|t S|t S|t S|.......", - "|---|---|---|---|-------", - " ", - " G ", - " ", - "+++-|-| |------------", - "EEEE|.| |............", - "EEEE|.| |.|--|--|--|-", - "----|.| |.| ~|@@|@@|@", - "......| |.| -| L| L| ", - "----|.| |.| ~|[-|[-|[", - "EEEE|.| |.| -| ", - "EEEE|.| |.| + ", - "-++-|.| |.|--| |--|[", - " |.| |.|t + |L@| ", - " |.| |.|--| [ @|@", - " |-| |.|t + |--|-", - " | |.|--| |L@|@", - " 5|5 |.|@L| [ @| ", - " = |.|@ [ |--|[", - " = |.|--| ", - " = |.|@L| ", - " | |.|@ [ |--|[", - " | |.|--| |L@| " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_54" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "...| |...............", - "---| |...............", - " |...............", - " |...............", - " |...............", - "---| |...............", - "...| |...............", - "-|.| |.|--|--|--|--|.", - "@|.|H[[H|.|@@|@@|@@|~ |.", - "L|.| |.| L| L| L|- |.", - "-|-| |-|[-|[-|[-|~ |.", - " |- |.", - " + |.", - "-|[-| |-[|-[|-[| |--|.", - "L| L| |L |L |L | + t|.", - "@|@@| |@@|@@|@@| |--|.", - "-|--| |--|--|--| + t|.", - "@|@@| |@@|@@|@@| |--|.", - "L| L| |L |L |L | |L@|.", - "-|[-| |-[|-[|-[| [ @|.", - " |--|.", - " |L@|.", - "-|[-|[-|-[|-[|-[| [ @|.", - "L| L| L|L |L |L | |--|." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_55" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "|r@@L L@@r@@L L@@r|.| ", - "|r r r|.| ", - "|r@@L L@@r@@L L@@r|-| ", - "| [ ", - "| v ", - "| [ ", - "|r@@L L@@r@@L L@@r|-| ", - "|r r r|.| ", - "|r@@L L@@r@@L L@@r|.| ", - "|-------------------|.| ", - "......................| ", - "......................| ", - "......................| ", - "......................| ", - "......................| ", - "......................| ", - "......................| ", - "......................| ", - "|-------------------|.| ", - "|r@@L L@@r@@L L@@r|.| ", - "|r r r|.| ", - "|r@@L L@@r@@L L@@r|-| ", - "| [ ", - "| v " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_56" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " |.|r@@L L@@r@@L L@@r", - " |.|r r r", - " |-|r@@L L@@r@@L L@@r", - " [ ", - " v ", - " [ ", - " |-|r@@L L@@r@@L L@@r", - " |.|r r r", - " |.|r@@L L@@r@@L L@@r", - " |.|-------------------", - " ||....................", - " |--------------------", - " ", - " G ", - " ", - " ", - " |--------------------", - " ||....................", - " |.|-------------------", - " |.|r@@L L@@r@@L L@@r", - " |.|r r r", - " |-|r@@L L@@r@@L L@@r", - " [ ", - " v " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_57" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "|.|S|@@| b|c @|c @", - "|.| [ b|- -|- -", - "|.|t|cL| bbbP|t S|t S", - "|.|-|--| |--|-|---|---", - "|.|S|@@| |@@|S|.......", - "|.| [ [ |.......", - "|.|t|cL| |Lc|t|---|---", - "|.|-|--| |--|-|t S|t S", - "|.|S|@@| |@@|S|- -|- -", - "|.| [ [ |c @|c @", - "..|t|cL| |Lc|t|L @|L @", - "--|-|--| |--|-|-[-|-[-", - " ", - " ", - " ", - " ", - "--|-|--| |--|-|-[-|-[-", - "..|t|cL| |Lc|t|L @|L @", - "|.| [ [ |c @|c @", - "|.|S|@@| |@@|S|- -|- -", - "|.|-|--| |--|-|t S|t S", - "|.|t|cL| |Lc|t|---|---", - "|.| [ [ |.......", - "|.|S|@@| |@@|S|......." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "bedroom", "chance": 15 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_58" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "|c @| [ [ |c ", - "|- -|t|cL| |@@|S|- ", - "|t S|-|--| |--|-|t ", - "|---|S|@@| |Lc|t|--", - "....| [ [ |..", - "....|t|cL| |@@|S|..", - "|---|-|--| |--|-|--", - "|t S|S|@@| |Lc|t|t ", - "|- -| [ [ |- ", - "|c @|t|cL| |@@|S|c ", - "|L @|-|--| |--|-|L ", - "|-[-| G |-[", - " PP ", - " PPPP ", - " PPPP ", - " PP ", - "|-[-| G |-[", - "|L @|-|--| |--|-|L ", - "|c @|t|cL| |@@|S|c ", - "|- -| [ [ |- ", - "|t S|S|@@| |Lc|t|t ", - "|---|-|--| |--|-|--", - "....|t|cL| |@@|S|..", - "....| [ [ |.." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "bedroom", "chance": 15 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.35 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.35 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_59" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "@|c @|c @|b |Lc|t|", - "-|- -|- -|b [ |", - "S|t S|t S|Pbbb |@@|S|", - "-|---|---|-|--| |--|-|", - ".........|t|cL| |Lc|t|", - ".........| [ [ |", - "-|---|---|S|@@| |@@|S|", - "S|t S|t S|-|--| |----|", - "-|- -|- -|t|cL| |Lc|t|", - "@|c @|c @| [ [ |", - "@|L @|L @|S|@@| |@@|S|", - "-|-[-|-[-|-|--| |--|-|", - " ", - " ", - " ", - " ", - "-|-[-|-[-|-|--| |--|-|", - "@|L @|L @|S|@@| |@@|S|", - "@|c @|c @| [ [ |", - "-|- -|- -|t|cL| |Lc|t|", - "S|t S|t S|-|--| |----|", - "-|---|---|S|@@| |@@|S|", - ".........| [ [ |", - ".........|t|cL| |Lc|t|" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "bedroom", "chance": 15 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_60" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........| |-| cc ", - "........| |.|c cc ", - "........| |.|c cc ", - "........| |.|S cc ", - "........| |.|c G", - "........| |.|c ", - "........| |.|c ", - "........| |.|ccrcOOOc", - "........| |.|--------", - "........| |..........", - ".......|| |...|------", - "-------| |.|-| ", - " |-| G ", - " G + h", - " + hn", - " |-| hnn", - "-------| |.| hnn ", - ".......|| |.| hnn ", - "........| |.| hnn ", - "........| |.| hnn ", - "........| |.| hnn ", - "........| |.| hnn ", - "........| |.| hnn ", - "........| |.| hnn " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "c": { "item": "kitchen", "chance": 30 }, - "o": { "item": "oven", "chance": 60 }, - "r": { "item": "produce", "chance": 60 } - }, - "item": { "n": [ { "item": "water_clean", "chance": 20 } ] }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_61" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " cc", - " ccSccc cffffS OO", - " crrccc cffffc OO", - " cc", - " G ", - " ", - " ", - "ccOOOcccOOOcccrrrr ", - "-------------------| |-", - "...................|++|.", - "-------------------| |-", - " ", - " ", - "nn hhhhhhhh nnh ", - "n hnnnnnnnnh nnh ", - " hnnnnnnnnnnh nnh ", - " hnnn nnnh nnh", - " hnn G nnh nnh", - " hnn nnh nnh", - " hnn 66 nnh nnh", - " hnn 66 nnh nnh", - " hnn nnh nnh", - " hnn G nnh nnh", - " hnnn nnnh nnh" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "c": { "item": "kitchen", "chance": 30 }, - "f": { "item": "fridge", "chance": 60 }, - "o": { "item": "oven", "chance": 60 }, - "r": { "item": "produce", "chance": 60 } - }, - "item": { "n": [ { "item": "water_clean", "chance": 20 } ] }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_62" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " |-| |.|t + [ @|@", - " c|.| |.|--| |--|-", - " c|.| |.|t + [ @|@", - " S|.| |.|--| |L@| ", - " c|.| |.|@ [ |--|[", - " c|.| |.|@L| ", - " c|.| |.|--| ", - "crcc|.| |.|@ [ |--|[", - "----|.| |.|@L| [ @| ", - "......| |.|--| |L@|@", - "--|...| |.|t + |--|-", - " |-|.| |.|--| [ @|@", - " G |-| |.|t + |L@| ", - " + |.|--| |--|[", - " + |.| + ", - " |-| |.| -| ", - " |.| |.| ~|[-|[-|[", - " |.| |.| -| L| L| ", - " |.| |.| ~|@@|@@|@", - " |.| |.|--|--|--|-", - " |.| ||...........", - " |.| |-----------", - " |.| ", - " |.| " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "kitchen", "chance": 30 }, - "o": { "item": "oven", "chance": 60 }, - "r": { "item": "produce", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_63" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "@|@@|@@|@@|@@|@@| + t|.", - "-|--|--|--|--|--| |--|.", - "@|@@|@@|@@|@@|@@| + t|.", - "L| L| L|L |L |L | |--|.", - "-|[-|[-|-[|-[|-[| [ @|.", - " |L@|.", - " |--|.", - "-|[-| |-[|-[|-[| [ @|.", - "L| L| |L |L |L | |L@|.", - "@|@@| |@@|@@|@@| |--|.", - "-|--| |--|--|--| + t|.", - "@|@@| |@@|@@|@@| |--|.", - "L| L| |L |L |L | + t|.", - "-|[-| |-[|-[|-[| |--|.", - " + |.", - " |- |.", - "-|-| |-|[-|[-|[-|~ |.", - "L|.| |.| L| L| L|- |.", - "@|.|H[[H|.|@@|@@|@@|~ |.", - "-|.| |.|--|--|--|--|.", - "...| |...............", - "---| |...............", - " |...............", - " |..............." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_64" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "| [ ", - "|r@@L L@@r@@L L@@r|-| ", - "|r r r|.| ", - "|r@@L L@@r@@L L@@r|.| ", - "|-------------------|.| ", - "......................| ", - "|-------------------|.| ", - "|r@@L L@@r@@L L@@r|.| ", - "|r r r|.| ", - "|r@@L L@@r@@L L@@r|-| ", - "| [ ", - "| v ", - "| [ ", - "|r@@L L@@r@@L L@@r|-| ", - "|r r r|.| ", - "|r@@L L@@r@@L L@@r|.| ", - "|-------------------|.| ", - "......................| ", - "|-------------------|.| ", - "|r@@L L@@r@@L L@@r|.| ", - "|r r r|.| ", - "|r@@L L@@r@@L L@@r|-| ", - "| [ ", - "| v " - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_65" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " [ ", - " |-|r@@L L@@r@@L L@@r", - " |.|r r r", - " |.|r@@L L@@r@@L L@@r", - " |.|-------------------", - " |.....................", - " |.|-------------------", - " |.|r@@L L@@r@@L L@@r", - " |.|r r r", - "G |-|r@@L L@@r@@L L@@r", - " [ ", - " v ", - " [ ", - " |-|r@@L L@@r@@L L@@r", - " |.|r r r", - " |.|r@@L L@@r@@L L@@r", - " |.|-------------------", - " |.....................", - " |.....................", - " |.....................", - " |.....................", - " |.....................", - " |.....................", - " |.................|---" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_66" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "|.|-|--| |--|-|---|---", - "|.|t|cL| bbbP|t S|t S", - "|.| [ b|- -|- -", - "|.|S|@@| b|c @|c @", - "|.|-|--| b|L @|L @", - "..|t|cL| |-[-|-[-", - "|.| [ ", - "|.|S|@@| ", - "|.|-|--| ", - "|......||-[-|-[-|-[-|-[-", - "|.......|L @|L @|L @|L @", - "|.......|c @|c @|c @|c @", - "|.......|- -|- -|- -|- -", - "|.......|t S|t S|t S|t S", - "|.......|---|---|---|---", - "|.......................", - "|.......................", - "........................", - "......|---|.....|---|...", - "......|EEE|.....|EEE|...", - "......|EEE|-----|EEE|...", - "....|-|-++| |++-|-|.", - "....| |.", - "----| G |-" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "bedroom", "chance": 15 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_67" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "|---|S|@@| |Lc|t|--", - "|t S|-|--| |--|-|t ", - "|- -|t|cL| |@@|S|- ", - "|c @| [ [ |c ", - "|L @|S|@@| |Lc|t|L ", - "|-[-|-|--| |--|-|-[", - " ", - " ", - " G ", - "|-[-|-[-|HH-[[-HH|-[-|-[", - "|L @|L @| |L @|L ", - "|c @|c @| |c @|c ", - "|- -|- -| |- -|- ", - "|t S|t S| |t S|t ", - "|---|---|-| |-|---|--", - "..........| |........", - "..........| |........", - "|---------| |........", - "| |........", - "| G |........", - "| |........", - "| |----------|........", - "| |...................", - "| |-|................." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "bedroom", "chance": 15 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_68" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "-|---|---|-|--| |--|-|", - "S|t S|t S|Pbbb |@@|S|", - "-|- -|- -|b [ |", - "@|c @|c @|b |Lc|t|", - "@|L @|L @|b |--|-|", - "-|-[-|-[-| |@@|S|", - " [ |", - " |Lc|t|", - " |--|-|", - "-|-[-|-[-|-[-|-[-||.....", - "@|L @|L @|L @|L @|......", - "@|c @|c @|c @|c @|......", - "-|- -|- -|- -|- -|......", - "S|t S|t S|t S|t S|......", - "-|---|---|---|---|.|----", - "...................|//__", - "......|------|.....|//__", - "......|rrrrrr|.....|///6", - "......| |-----|,,,,", - "......|r = G ", - "......|r = ", - "......| 5|5 |-|7797", - "......|rrrrrr| |.|////", - "......|------| |.|rrrr" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "c": { "item": "bedroom", "chance": 15 }, - "r": { "item": "mechanics", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_69" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........| |.| hnn", - "........| |.| hn", - "........| |.|| h", - "........| |..|| G ", - "........| |...|| ", - "........| |....|| ", - "........| |.....|----", - "........| |..........", - "........| |----------", - "........| ", - "........| ", - "........| ", - "........|-----| 5 |-", - "..............|--===--|.", - "--------------| 5 |-", - "////___$$00$$/, V6", - "////___6$//$$/, Vk", - "//////////////, [ ", - ",,,,,,,,,,,,,,, V ", - " G |-", - " V ", - "78,,,,,,,,,,,,, [ ", - "/8/////////$$/, Vk", - "r8///__6///$$/, Vk" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { "k": { "item": "office", "chance": 60 } }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_70" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " hnnn nnnh nnh ", - "n hnn nnh nnh ", - "nn nnh ", - "hnn nnh ", - " ", - " ", - "-----| 5 |---------", - ".....|--====--|.........", - "-----| 5 |---------", - " ", - " G ", - " ", - "-------| |-----------", - ".......| |...........", - "--|....| |.|---------", - "k |....| |.| ", - "h |....| |.| ", - " |.|--| |.| ", - " o|.|EE| |.| ,,,,,,", - "--|.|EE= |.|b , ,", - " o|.|EE= |.|b , ,", - " |.|--| |.|b , ,", - "h |.|EE+ |.|b , ,", - "6 |.|EE+ |.|b , ," - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { "b": { "item": "sports", "chance": 10 }, "o": { "item": "textbooks", "chance": 60 } }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_71" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " |.| ", - " |.| |--|-vvv-[[-", - " ||.| ||..|c ", - "G ||..| |...|S h ", - " ||...| |...|c ", - "||....| |...|c ", - "|.....| |...|S h ", - ".....|| ||..|c ", - "-----| |--|-vvv-[[-", - " ", - " G ", - " Pbbbbb b", - "| 5 |---------------", - "|--===--|...............", - "| 5 |---------|....|", - " |....|", - " |....|", - " G |----|", - ",,,,,,,,,,,,,,, |cScS|", - " , 7 , , , b| ", - " , , , , b| ", - " ,,,,, , , b| |-|", - " , , b| |.|", - " , , b| |.|" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_backboard", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { "b": { "item": "magazines", "chance": 10 }, "c": { "item": "beauty", "chance": 20 } }, + "item": { "n": [ { "item": "water_clean", "chance": 20 } ] }, "place_monsters": [ { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_72" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " |...............", - "vvv-|---|...............", - " c|...................", - " h S|...................", - " c|...................", - " c|...................", - " h S|...................", - " c|...................", - "vvv-|--------------|....", - " |....", - " |....", - "bbbbP |....", - "----------------| |....", - "................| |....", - "-|-|-|-|-|-|....| |....", - "t|t|t|t|t|t|....| |....", - " | | | | | |....| |....", - "+|+|+|+|+|+|----| |....", - " |ScSc| |....", - " | |--|.", - " | v |.", - "L |-| | [ >|.", - "L b L|L b L|.| | v |.", - "L b L|L b L|.| | |--|." - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "L": { "item": "sports", "chance": 60 }, - "b": { "item": "magazines", "chance": 10 }, - "c": { "item": "beauty", "chance": 20 } - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_73" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "| [ ", - "|r@@L L@@r@@L L@@r|-| ", - "|r r r|.| ", - "|r@@L L@@r@@L L@@r|.| ", - "|-------------------|.| ", - "......................| ", - "......................| ", - "......................| ", - "......................|-", - "......................| ", - "......................| ", - ".............|-|-|-|-|| ", - ".............|t|t|t|t|D ", - ".............|+|+|+|+| ", - ".............| ", - ".............| ", - ".............|+|+|+|+|D ", - ".............|t|t|t|t|--", - ".............|-|-|-|-|..", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "@": { "item": "bed", "chance": 60 }, - "L": { "item": "traveler", "chance": 60 }, - "b": { "item": "magazines", "chance": 30 }, - "r": { "item": "traveler", "chance": 60 } - }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_74" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " |..............|--| ", - " |..............|EE+ ", - " |..............|EE+ ", - " |......|--|--|.|EE| ", - " |------| | |-|--| ", - " = ", - " G = G", - " = ", - "+-|-+-|--| 5|5 |--|uu| ", - " | |..|--|--|..| v ", - " | |...........|< [ ", - " | ||-|-|-|-|..| v ", - " S|S D|t|t|t|t|..|--| ", - " S|S |+|+|+|+|.....|-[", - " S|S |.|---| ", - " S|S |.| ", - " S|S D|+|+|+|+|.| rrr ", - "--|----|t|t|t|t|.| r ", - ".......|-|-|-|-|.| r ", - ".................| rrr ", - ".................| ", - ".................|---|rr", - ".....................|--", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.15 } + ] + }, + "om_terrain": [ + [ "necropolis_d_61", "necropolis_d_62", "necropolis_d_63" ], + [ "necropolis_d_70", "necropolis_d_71", "necropolis_d_72" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "| [ |..............|--| ", + "|r@@L L@@r@@L L@@r|-| |..............|EE+ ", + "|r r r|.| |..............|EE+ ", + "|r@@L L@@r@@L L@@r|.| |......|--|--|.|EE| |-HHH-HH-| |-HH-HHH-", + "|-------------------|.| |------| | |-|--| |P |[-[| P", + "......................| = V ", + "......................| G = G V r r G r r ", + "......................| = V rrrrr 6 rrrrr ", + "......................|-+-|-+-|--| 5|5 |--|uu| | r r c r r ", + "......................| | |..|--|--|..| v V c ", + "......................| | |...........|< [ V 6 ", + ".............|-|-|-|-|| | ||-|-|-|-|..| v V r r c r r ", + ".............|t|t|t|t|D S|S D|t|t|t|t|..|--| | rrrrr c rrrrr ", + ".............|+|+|+|+| S|S |+|+|+|+|.....|-[[-| r r 6 r r ", + ".............| S|S |.|---| ", + ".............| S|S |.| G ", + ".............|+|+|+|+|D S|S D|+|+|+|+|.| rrr rrr rrr rrr rr", + ".............|t|t|t|t|----|----|t|t|t|t|.| r r r r r", + ".............|-|-|-|-|.........|-|-|-|-|.| r r r r r", + ".........................................| rrr rrr rrr rrr rr", + ".........................................| ", + ".........................................|---|rrrr rrr rrrrr rrr ", + ".............................................|--------------------------", + "........................................................................" + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate" }, "items": { "r": { "item": "textbooks", "chance": 60 } }, "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_75" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " ", - " ", - " ", - " |-HHH-HH-| |-HH-HHH-", - " |P |[-[| P", - " V ", - " V r r G r r ", - " V rrrrr 6 rrrrr ", - " | r r c r r ", - " V c ", - " V 6 ", - " V r r c r r ", - " | rrrrr c rrrrr ", - "[-| r r 6 r r ", - " ", - " G ", - " rrr rrr rrr rr", - " r r r r", - " r r r r", - " rrr rrr rrr rr", - " ", - "rr rrr rrrrr rrr ", - "------------------------", - "........................" + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 } ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, "place_items": [ - { "item": "novels", "x": [ 17, 17 ], "y": [ 11, 13 ], "chance": 75 }, - { "item": "novels", "x": [ 18, 20 ], "y": [ 12, 12 ], "chance": 75 }, - { "item": "novels", "x": [ 21, 21 ], "y": [ 11, 13 ], "chance": 75 }, - { "item": "magazines", "x": [ 5, 5 ], "y": [ 11, 13 ], "chance": 75 }, - { "item": "magazines", "x": [ 6, 8 ], "y": [ 12, 12 ], "chance": 75 }, - { "item": "magazines", "x": [ 9, 9 ], "y": [ 11, 13 ], "chance": 75 }, - { "item": "homebooks", "x": [ 17, 17 ], "y": [ 11, 13 ], "chance": 75 }, - { "item": "homebooks", "x": [ 18, 20 ], "y": [ 12, 12 ], "chance": 75 }, - { "item": "homebooks", "x": [ 21, 21 ], "y": [ 11, 13 ], "chance": 75 }, - { "item": "homebooks", "x": [ 5, 5 ], "y": [ 11, 13 ], "chance": 75 }, - { "item": "homebooks", "x": [ 6, 8 ], "y": [ 12, 12 ], "chance": 75 }, - { "item": "homebooks", "x": [ 9, 9 ], "y": [ 11, 13 ], "chance": 75 }, - { "item": "textbooks", "x": [ 22, 23 ], "y": [ 16, 16 ], "chance": 75 }, - { "item": "textbooks", "x": [ 23, 23 ], "y": [ 17, 18 ], "chance": 75 }, - { "item": "textbooks", "x": [ 22, 23 ], "y": [ 19, 19 ], "chance": 75 }, - { "item": "manuals", "x": [ 16, 18 ], "y": [ 16, 16 ], "chance": 75 }, - { "item": "manuals", "x": [ 17, 17 ], "y": [ 17, 18 ], "chance": 75 }, - { "item": "manuals", "x": [ 16, 18 ], "y": [ 19, 19 ], "chance": 75 }, - { "item": "manuals", "x": [ 8, 10 ], "y": [ 16, 16 ], "chance": 75 }, - { "item": "manuals", "x": [ 9, 9 ], "y": [ 17, 18 ], "chance": 75 }, - { "item": "manuals", "x": [ 8, 10 ], "y": [ 19, 19 ], "chance": 75 }, - { "item": "textbooks", "x": [ 2, 4 ], "y": [ 16, 16 ], "chance": 75 }, - { "item": "textbooks", "x": [ 3, 3 ], "y": [ 17, 18 ], "chance": 75 }, - { "item": "textbooks", "x": [ 2, 4 ], "y": [ 19, 19 ], "chance": 75 }, - { "item": "textbooks", "x": [ 19, 21 ], "y": [ 21, 21 ], "chance": 75 }, - { "item": "textbooks", "x": [ 11, 15 ], "y": [ 21, 21 ], "chance": 75 }, - { "item": "textbooks", "x": [ 5, 7 ], "y": [ 21, 21 ], "chance": 75 }, - { "item": "textbooks", "x": [ 0, 1 ], "y": [ 21, 21 ], "chance": 75 } - ], - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_76" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " |--|..............", - " +EE|..............", - " +EE|..............", - "| |EE|.|--|--|......", - "| |--|-| | |------", - "V = ", - "v G = G ", - "V = ", - "| |uu|--| 5| |------", - "V v |..|--|--|......", - "V [ <|...............", - "V v |...............", - "| |--|...............", - "|-[[-|..................", - " |---|..............", - " |..............", - "r rrr |..............", - " r |..............", - " r |..............", - "r rrr |..............", - " |..............", - " rrrr|---|..............", - "-----|..................", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { "r": { "item": "textbooks", "chance": 60 } }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_77" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".............| 5|.|----", - ".............|-=-|......", - ".............| 6|......", - ".............| |......", - "-------------| |------", - " ", - " ", - " ", - "------------| 5 |---", - "............|--===--|...", - ".......|----| |---", - ".......|////, G ,///", - "....|--|78//,,,,,,,,,///", - "....|rrrr8//////////////", - "....|////9//,,,,//,,,,//", - "....|r///8//,6%,//,6%,//", - "....|////9//,22,//,22,//", - "....|rrrr8//,11,//,11,//", - "....|--|78//,%%,//,%%,//", - ".......|////,,,,//,,,,//", - ".......|----|///////|---", - "............|-------|...", - "........................", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_potential_trans", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { "/": { "item": "tools_mechanic", "chance": 1 }, "r": { "item": "mechanics", "chance": 60 } }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_78" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "----------------------|-", - "........................", - "........................", - "........................", - "------------------------", - " ", - " ", - " ", - "-----------------| 5", - ".................|--===-", - "-|..........|----| 5", - "/|----------|////, G ", - "///,6,///////////,,,,,,,", - "///,,,//////////////////", - "//////,,,,,,,,,,////////", - "//////,%%//$6$_,//,,,,//", - "//////,%%00$___,//,$6,//", - "//////,,,,,,,,,,//,$$,//", - "//////////////////,$$,//", - "/|----------|/////,,,,//", - "-|..........|----|//////", - ".................|------", - "........................", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, + { "item": "novels", "x": [ 65, 65 ], "y": [ 11, 13 ], "chance": 75 }, + { "item": "novels", "x": [ 66, 68 ], "y": [ 12, 12 ], "chance": 75 }, + { "item": "novels", "x": [ 69, 69 ], "y": [ 11, 13 ], "chance": 75 }, + { "item": "magazines", "x": [ 53, 53 ], "y": [ 11, 13 ], "chance": 75 }, + { "item": "magazines", "x": [ 54, 56 ], "y": [ 12, 12 ], "chance": 75 }, + { "item": "magazines", "x": [ 57, 57 ], "y": [ 11, 13 ], "chance": 75 }, + { "item": "homebooks", "x": [ 65, 65 ], "y": [ 11, 13 ], "chance": 75 }, + { "item": "homebooks", "x": [ 66, 68 ], "y": [ 12, 12 ], "chance": 75 }, + { "item": "homebooks", "x": [ 69, 69 ], "y": [ 11, 13 ], "chance": 75 }, + { "item": "homebooks", "x": [ 53, 53 ], "y": [ 11, 13 ], "chance": 75 }, + { "item": "homebooks", "x": [ 54, 56 ], "y": [ 12, 12 ], "chance": 75 }, + { "item": "homebooks", "x": [ 57, 57 ], "y": [ 11, 13 ], "chance": 75 }, + { "item": "textbooks", "x": [ 70, 71 ], "y": [ 16, 16 ], "chance": 75 }, + { "item": "textbooks", "x": [ 71, 71 ], "y": [ 17, 18 ], "chance": 75 }, + { "item": "textbooks", "x": [ 70, 71 ], "y": [ 19, 19 ], "chance": 75 }, + { "item": "manuals", "x": [ 64, 66 ], "y": [ 16, 16 ], "chance": 75 }, + { "item": "manuals", "x": [ 65, 65 ], "y": [ 17, 18 ], "chance": 75 }, + { "item": "manuals", "x": [ 64, 66 ], "y": [ 19, 19 ], "chance": 75 }, + { "item": "manuals", "x": [ 56, 58 ], "y": [ 16, 16 ], "chance": 75 }, + { "item": "manuals", "x": [ 57, 57 ], "y": [ 17, 18 ], "chance": 75 }, + { "item": "manuals", "x": [ 56, 58 ], "y": [ 19, 19 ], "chance": 75 }, + { "item": "textbooks", "x": [ 50, 52 ], "y": [ 16, 16 ], "chance": 75 }, + { "item": "textbooks", "x": [ 51, 51 ], "y": [ 17, 18 ], "chance": 75 }, + { "item": "textbooks", "x": [ 50, 52 ], "y": [ 19, 19 ], "chance": 75 }, + { "item": "textbooks", "x": [ 67, 69 ], "y": [ 21, 21 ], "chance": 75 }, + { "item": "textbooks", "x": [ 59, 63 ], "y": [ 21, 21 ], "chance": 75 }, + { "item": "textbooks", "x": [ 53, 55 ], "y": [ 21, 21 ], "chance": 75 }, + { "item": "textbooks", "x": [ 48, 49 ], "y": [ 21, 21 ], "chance": 75 } + ] + }, + "om_terrain": [ [ "necropolis_d_73", "necropolis_d_74", "necropolis_d_75" ] ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + " |--|...........................| 5|.|--------------------------|-", + " +EE|...........................|-=-|..............................", + " +EE|...........................| 6|..............................", + "| |EE|.|--|--|...................| |..............................", + "| |--|-| | |-------------------| |------------------------------", + "V = ", + "v G = G ", + "V = ", + "| |uu|--| 5| |------------------| 5 |--------------------| 5", + "V v |..|--|--|..................|--===--|....................|--===-", + "V [ <|......................|----| |----|..........|----| 5", + "V v |......................|////, G ,////|----------|////, G ", + "| |--|...................|--|78//,,,,,,,,,//////,6,///////////,,,,,,,", + "|-[[-|......................|rrrr8/////////////////,,,//////////////////", + " |---|..................|////9//,,,,//,,,,////////,,,,,,,,,,////////", + " |..................|r///8//,6%,//,6%,////////,%%//$6$_,//,,,,//", + "r rrr |..................|////9//,22,//,22,////////,%%00$___,//,$6,//", + " r |..................|rrrr8//,11,//,11,////////,,,,,,,,,,//,$$,//", + " r |..................|--|78//,%%,//,%%,////////////////////,$$,//", + "r rrr |.....................|////,,,,//,,,,///|----------|/////,,,,//", + " |.....................|----|///////|----|..........|----|//////", + " rrrr|---|..........................|-------|....................|------", + "-----|..................................................................", + "........................................................................" + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate" }, "items": { "/": { "item": "tools_common", "chance": 2 } }, "place_monsters": [ { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_79" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "--|.|EE| |.| , ,", - "....|--| |.| , ,", - ".......| |.|b , ", - "......|| |.|b , ", - "------| |.|b ,,,,,,", - " |.|b , ", - " |.|b , ", - " |.| , ,", - " |----------|.| , ,", - "-|............|b , ,", - " |----|.......|b , ,", - " ,////|.......|b , ,", - ",,//87|--|....|b , ,", - "////8rrrr|....|b , ,", - "////9////|....| ,,,,,,", - "////8///r|....| ", - "////9////|....| ", - "////8rrrr|....| ", - "////87|--|....|---------", - "//////|.................", - "/|----|.................", - "-|......................", - "........................", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { - "/": { "item": "tools_mechanic", "chance": 1 }, - "b": { "item": "sports", "chance": 10 }, - "r": { "item": "mechanics", "chance": 60 } - }, - "place_monsters": [ { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_80" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - " , , [ |.|", - " , , [ |.|", - ", , , b|--|.|", - " , , , b|....|", - ",,,,,,,,,,,,,,, b|.....", - " , , , b|....|", - ", , , b|--|.|", - " , , [ |.|", - " , , [ |.|", - " , , b| |.|", - " , , b| |.|", - " , , b| |-|", - " ,,,,, , , b| ", - " , 7 , , , b| ", - ",,,,,,,,,,,,,,, |cScS|", - " G |----|", - " |....|", - " |....|", - "------------------|....|", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_backboard", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { "b": { "item": "sports", "chance": 10 } }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 } + ] + }, + "om_terrain": [ [ "necropolis_d_76", "necropolis_d_77", "necropolis_d_78" ] ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "--|.|EE| |.| , , , , [ |.|L b L|L b L|.| [ |....", + "....|--| |.| , , , , [ |.|L b L|L b L|.| [ |....", + ".......| |.|b , , , , b|--|.|L L|.|--| ||...", + "......|| |.|b , , , , b|....|-----------|....| l|...", + "------| |.|b ,,,,,,,,,,,,,,,,,,,,, b|.....................| D|...", + " |.|b , , , , b|....|-----------|....| l|...", + " |.|b , , , , b|--|.|L L|.|--| ||...", + " |.| , , , , [ |.|L b L|L b L|.| [ |....", + " |----------|.| , , , , [ |.|L b L|L b L|.| [ |....", + "-|............|b , , , , b| |.|L b L|L b L|.| |--|....", + " |----|.......|b , , , , b| |.|L b L|L b L|.| |.......", + " ,////|.......|b , , , , b| |-|L L|-| |.......", + ",,//87|--|....|b , , ,,,,, , , b| |.......", + "////8rrrr|....|b , , , 7 , , , b| |.......", + "////9////|....| ,,,,,,,,,,,,,,,,,,,,, |cScS| |ScSc|.......", + "////8///r|....| G |----|+|+|+|+|+|+|----|.......", + "////9////|....| |....| | | | | | |............", + "////8rrrr|....| |....|t|t|t|t|t|t|............", + "////87|--|....|---------------------------|....|-|-|-|-|-|-|............", + "//////|.................................................................", + "/|----|.................................................................", + "-|......................................................................", + "........................................................................", + "........................................................................" + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate" }, + "items": { "L": { "item": "sports", "chance": 50 }, "l": { "item": "vending_drink", "chance": 70 } }, "place_monsters": [ { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 } + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { + }, + "om_terrain": [ [ "necropolis_d_79", "necropolis_d_80", "necropolis_d_81" ] ], "type": "mapgen", - "method": "json", - "om_terrain": [ "necropolis_d_81" ], - "weight": 250, - "object": { - "fill_ter": "t_floor", - "rows": [ - "L b L|L b L|.| [ |....", - "L b L|L b L|.| [ |....", - "L L|.|--| ||...", - "-----------|....| l|...", - "................| D|...", - "-----------|....| l|...", - "L L|.|--| ||...", - "L b L|L b L|.| [ |....", - "L b L|L b L|.| [ |....", - "L b L|L b L|.| |--|....", - "L b L|L b L|.| |.......", - "L L|-| |.......", - " |.......", - " |.......", - " |ScSc|.......", - "+|+|+|+|+|+|----|.......", - " | | | | | |............", - "t|t|t|t|t|t|............", - "-|-|-|-|-|-|............", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { - " ": "t_metal_floor", - "!": "t_bars", - "#": "t_ladder_up", - "$": "t_machinery_light", - "%": "t_machinery_heavy", - "(": "t_machinery_old", - "*": "t_door_bar_locked", - "+": "t_door_metal_c", - ",": "t_pavement_y", - "-": "t_wall_metal", - ".": "t_rock", - "/": "t_rock_floor", - "0": "t_conveyor", - "1": "t_generator_broken", - "2": "t_sewage_pipe", - "3": "t_sewage", - "4": "t_water_pump", - "5": "t_gates_control_metal", - "6": "t_console_broken", - "7": "t_chainfence_h", - "8": "t_chainfence_v", - "9": "t_chaingate_l", - ":": "t_door_locked", - ";": "t_metal_floor", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "?": "t_metal_floor", - "@": "t_metal_floor", - "A": "t_railing_h", - "B": "t_metal_floor", - "C": "t_metal_floor", - "D": "t_metal_floor", - "E": "t_elevator", - "F": "t_ladder_down", - "G": "t_utility_light", - "H": "t_wall_glass", - "I": "t_column", - "J": "t_metal_floor", - "K": "t_ladder_up", - "L": "t_metal_floor", - "M": "t_dirt", - "N": "t_metal_floor", - "O": "t_metal_floor", - "P": "t_metal_floor", - "R": "t_hole", - "S": "t_metal_floor", - "U": "t_metal_floor", - "V": "t_wall_glass", - "X": "t_grate", - "Z": "t_metal_floor", - "[": "t_door_glass_c", - "^": "t_underbrush", - "_": "t_machinery_electronic", - "a": "t_railing_v", - "b": "t_dirt", - "c": "t_metal_floor", - "d": "t_metal_floor", - "e": "t_gates_mech_control", - "f": "t_metal_floor", - "h": "t_metal_floor", - "i": "t_vat", - "j": "t_metal_floor", - "k": "t_metal_floor", - "l": "t_metal_floor", - "m": "t_dirtmound", - "n": "t_metal_floor", - "o": "t_metal_floor", - "r": "t_metal_floor", - "s": "t_sidewalk", - "t": "t_metal_floor", - "u": "t_reinforced_glass", - "v": "t_reinforced_glass", - "x": "t_bridge", - "z": "t_metal_floor", - "|": "t_wall_metal", - "}": "t_manhole_cover", - "~": "t_metal_floor" - }, - "furniture": { - "?": "f_sofa", - "@": "f_bed", - "B": "f_bathtub", - "C": "f_treadmill", - "D": "f_trashcan", - "J": "f_ergometer", - "L": "f_locker", - "N": "f_robotic_arm", - "O": "f_oven", - "P": "f_indoor_plant", - "S": "f_sink", - "U": "f_statue", - "Z": "f_crate_o", - "b": "f_bench", - "c": "f_counter", - "d": "f_dresser", - "f": "f_fridge", - "h": "f_chair", - "j": "f_exercise", - "k": "f_desk", - "l": "f_vending_c", - "n": "f_table", - "o": "f_bookcase", - "r": "f_rack", - "t": "f_toilet", - "z": "f_crate_c", - "~": "f_shower" - }, - "items": { "L": { "item": "sports", "chance": 50 }, "l": { "item": "vending_drink", "chance": 70 } }, - "place_monsters": [ - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, - { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } - ] - } + "weight": 250 } ] diff --git a/data/json/mapgen/refugee_center.json b/data/json/mapgen/refugee_center.json new file mode 100644 index 0000000000000..c58c9d973b99d --- /dev/null +++ b/data/json/mapgen/refugee_center.json @@ -0,0 +1,337 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "evac_center_1", "evac_center_2", "evac_center_3", "evac_center_4", "evac_center_5" ] ], + "weight": 100, + "object": { + "fill_ter": "t_floor", + "rows": [ + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "...........__________________________________________________________________________________________________...........", + "..........____________________________________________________________________________________________________..........", + ".........______________________________________________________________________________________________________.........", + "........________________________________________________________________________________________________________........", + ".......__________________________________________________________________________________________________________.......", + "......____________________________________________________________________________________________________________......", + "......____________________________________________________________________________________________________________......", + "......__________,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,,__________......", + "......_________,,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,,,_________......", + "......________,,,______________________________________________________________________________________,,,________......", + "......_______,,,________________________________________________________________________________________,,,_______......", + "......_______,,__________________________________________________________________________________________,,_______......", + "......____________________________________________________________________________________________________________......", + "......_______,,__________________________________________________________________________________________,,_______......", + "......_______,,__________________________________________________________________________________________,,_______......", + "......_______,,__________________________________________________________________________________________,,_______......", + "......__________________ssssssssssssssssssssssssss,,,,,,,,,,,,,,,,,,,,ssssssssssssssssssssssssss__________________......", + "......_______,,________ssssssssssssssssssssssssssss,_,_,_,_,_,_,_,_,_ssssssssssssssssssssssssssss________,,_______......", + "......_______,,_______ssssssssssssssssssssssssssssss,,,,,,,,,,,,,,,,ssssssssssssssssssssssssssssss_______,,_______......" + ], + "palettes": [ "evac_center" ], + "place_zones": [ + { "type": "NPC_INVESTIGATE_ONLY", "faction": "free_merchants", "x": [ 24, 47 ], "y": [ 23, 23 ] }, + { "type": "NPC_INVESTIGATE_ONLY", "faction": "free_merchants", "x": [ 48, 71 ], "y": [ 23, 23 ] }, + { "type": "NPC_INVESTIGATE_ONLY", "faction": "wasteland_scavengers", "x": [ 24, 47 ], "y": [ 23, 23 ] }, + { "type": "NPC_INVESTIGATE_ONLY", "faction": "wasteland_scavengers", "x": [ 48, 71 ], "y": [ 23, 23 ] } + ], + "place_vehicles": [ + { "vehicle": "schoolbus", "x": 32, "y": 18, "chance": 75, "rotation": 0 }, + { "vehicle": "car", "x": 48, "y": 23, "chance": 75, "rotation": 270 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "evac_center_6", "evac_center_7", "evac_center_8", "evac_center_9", "evac_center_10" ] ], + "weight": 100, + "object": { + "fill_ter": "t_floor", + "rows": [ + "......_______,,_______ssss.......................sss________________sss.......................ssss_______,,_______......", + "......________________sss..........................ss______________ss..........................sss________________......", + "......_______,,_______sss....######!!####!!######.#####==========#####.######!!####!!######....sss_______,,_______......", + "......_______,,_______sss...#######11####11###########''''''''''''6##########11####11#######...sss_______,,_______......", + "......_______,,_______sss...### ###u''''''''''''''''''r### ###...sss_______,,_______......", + "......________________sss...## ###''''''''''''''''''### ##...sss________________......", + "......_______,,_______sss...## L L L L L D##''''''''''''''''''##D L L L L L ##...sss_______,,_______......", + "......_______,,_______sss...## @ @ @ @ @ ###''''''''''''''''''### @ @ @ @ @ ##...sss_______,,_______......", + "......_______,,_______sss...## @ @2 @ @ @ #u#''''''''''''''''''#u# @ @ @ 2@ @ ##...sss_______,,_______......", + "......________________sss...!1 + #''''''''''''''''''# + 1!...sss________________......", + "......_______,,_______sss...!1 #u#''''''''''''''''''#u# 1!...sss_______,,_______......", + "......_______,,_______sss...## L L L L L ###''''''''''''''''''### L L L L L ##...sss_______,,_______......", + "......_______,,_______sss...## @ @ @ @ @ #2''''''''''''''''2# @ @ @ @ @ ##...sss_______,,_______......", + "......________________sss...## @ @ @ @ @ 2 + zbL0 2 @ @ @ @ @ ##...sss________________......", + "......_______,,_______sss...## + zhL0 ##...sss_______,,_______......", + "......_______,,_______sss...!1 #l zzz# 1!...sss_______,,_______......", + "......_______,,_______sss...!1 L L2 L L ##+##l D##+# L L 2L L 1!...sss_______,,_______......", + "......________________sss...## @ @ @ @ # D##++############## # @ @ @ @ ##...sss________________......", + "......_______,,_______sss...## @ @ @ @ V # vvvvFFFFcdc# V @ @ @ @ ##...sss_______,,_______......", + "......_______,,_______sss...## V k6k# S# k6kV ##...sss_______,,_______......", + "......_______,,_______sss...## V h #S ccc ccc S# hkV ##...sss_______,,_______......", + "......________________sss...### DD #i #c c#D i# DD ###...sss________________......", + "......_______,,_______sss...#############++##++#i 2#cOOOc ccccc#2 i# ##++##############...sss_______,,_______......", + "......_______,,_______sss....#########t+ S# ########### ###########==#S +t##########....sss_______,,_______......" + ], + "palettes": [ "evac_center" ], + "place_zones": [ + { "type": "NPC_INVESTIGATE_ONLY", "faction": "free_merchants", "x": [ 24, 47 ], "y": [ 0, 23 ] }, + { "type": "NPC_INVESTIGATE_ONLY", "faction": "free_merchants", "x": [ 48, 68 ], "y": [ 0, 23 ] }, + { "type": "NPC_INVESTIGATE_ONLY", "faction": "wasteland_scavengers", "x": [ 24, 47 ], "y": [ 0, 23 ] }, + { "type": "NPC_INVESTIGATE_ONLY", "faction": "wasteland_scavengers", "x": [ 48, 68 ], "y": [ 0, 23 ] }, + { "type": "NPC_NO_INVESTIGATE", "faction": "free_merchants", "x": [ 69, 71 ], "y": [ 2, 23 ] }, + { "type": "NPC_NO_INVESTIGATE", "faction": "free_merchants", "x": [ 72, 95 ], "y": [ 0, 23 ] }, + { "type": "NPC_NO_INVESTIGATE", "faction": "wasteland_scavengers", "x": [ 69, 71 ], "y": [ 2, 23 ] }, + { "type": "NPC_NO_INVESTIGATE", "faction": "wasteland_scavengers", "x": [ 72, 95 ], "y": [ 0, 23 ] }, + { "type": "NPC_NO_INVESTIGATE", "faction": "old_guard", "x": [ 69, 71 ], "y": [ 2, 23 ] }, + { "type": "NPC_NO_INVESTIGATE", "faction": "old_guard", "x": [ 72, 95 ], "y": [ 0, 23 ] }, + { "type": "NPC_NO_INVESTIGATE", "faction": "lobby_beggars", "x": [ 69, 71 ], "y": [ 2, 23 ] }, + { "type": "NPC_NO_INVESTIGATE", "faction": "lobby_beggars", "x": [ 72, 95 ], "y": [ 0, 23 ] } + ], + "place_vehicles": [ + { "vehicle": "schoolbus", "x": 21, "y": 13, "chance": 75, "rotation": 270 }, + { "vehicle": "flatbed_truck", "x": 98, "y": 18, "chance": 75, "rotation": 90 } + ], + "items": { + "@": { "item": "bed", "chance": 80 }, + "D": { "item": "trash", "chance": 60, "repeat": [ 1, 3 ] }, + "F": { "item": "fridge", "chance": 60, "repeat": [ 1, 3 ] }, + "L": { "item": "allclothes", "chance": 90, "repeat": [ 1, 5 ] }, + "c": [ { "item": "kitchen_appliances", "chance": 5 }, { "item": "dishes_utility", "chance": 5 } ], + "d": [ + { "item": "dishes_utility", "chance": 80, "repeat": [ 1, 3 ] }, + { "item": "dishes_dining", "chance": 80, "repeat": [ 5, 25 ] } + ], + "i": { "item": "office", "chance": 90, "repeat": [ 1, 6 ] }, + "k": { "item": "cubical_office", "chance": 20, "repeat": [ 1, 2 ] }, + "u": { "item": "cleaning", "chance": 80, "repeat": [ 1, 3 ] }, + "v": [ + { "item": "cannedfood", "chance": 50, "repeat": [ 1, 3 ] }, + { "item": "pasta", "chance": 50, "repeat": [ 1, 3 ] }, + { "item": "snacks", "chance": 50, "repeat": [ 1, 3 ] } + ], + "z": { "item": "shelter", "chance": 90, "repeat": [ 1, 3 ] } + }, + "place_npcs": [ + { "class": "refugee_JennyForcette", "x": 32, "y": 8 }, + { "class": "refugee_VanessaToby", "x": 32, "y": 17 }, + { "class": "refugee_AleeshaSeward", "x": 35, "y": 7 }, + { "class": "refugee_PabloNunez", "x": 35, "y": 12 }, + { "class": "refugee_DanaNunez", "x": 35, "y": 13 }, + { "class": "refugee_AlonsoLautrec", "x": 40, "y": 23 }, + { "class": "refugee_MangalpreetSingh", "x": 40, "y": 5 }, + { "class": "refugee_MandeepSingh", "x": 41, "y": 5 }, + { "class": "refugee_GuneetSingh", "x": 43, "y": 4 }, + { "class": "refugee_BorisBorichenko", "x": 44, "y": 12 }, + { "class": "refugee_StanBorichenko", "x": 45, "y": 12 }, + { "class": "refugee_GarryVilleneuve", "x": 45, "y": 13 }, + { "class": "guard", "x": 43, "y": 21 }, + { "class": "evac_broker", "x": 50, "y": 20 }, + { "class": "guard", "x": 63, "y": 15 } + ], + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 74, 87 ], "y": [ 4, 20 ], "density": 0.6 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "evac_center_11", "evac_center_12", "evac_center_13", "evac_center_14", "evac_center_15" ] ], + "weight": 100, + "object": { + "fill_ter": "t_floor", + "rows": [ + "......_______,,________sss.........##### c# ###########+#+###########LL#c #####..........sss________,,_______......", + "......__________________sss.........##t+ 2 S# #2 2#bh#S 2 +t##..........sss__________________......", + "......_______,,__________ssssssss...#### c# # bTTb bTTb bTTb bTTb #hz#c ####...sssssssss__________,,_______......", + "......_______,,___________ssssssss..##t+ D S# # bTTb bTTb bTTb bTTb #zz#S D +t##..sssssssss___________,,_______......", + "......_______,,________________sss..######+## # bTTb bTTb bTTb bTTb # ##+######..sss_________________,,_______......", + "......_________________,________ss..##~#~# r# # # #r #~#~##..ss_________,_________________......", + "......_______,,________,________ss..## # # bTTb bTTb bTTb bTTb # # ##..ss_________,________,,_______......", + "......_______,,________,________ss..##~#~# # # bTTb bTTb bTTb bTTb # # #~#~##..ss_________,________,,_______......", + "......_______,,________,________ss..###### 2# + bTTb bTTb bTTb bTTb + #2 ######..ss_________,________,,_______......", + "......_________________,________ss..##~#~# # + + # #~#~##..ss_________,_________________......", + "......_______,,________,________ss..## # #D ###### D# # ##..ss_________,________,,_______......", + "......_______,,________,________ss..##~#~#rr# #####P hh#EEEE#S d##### #rr#~#~##..ss_________,________,,_______......", + "......_______,,________,________ss..######### #>>>#l TT#EEEE#S c#>>># #########..ss_________,________,,_______......", + "......_________________,________ss..## #L L# # #l hh#EEEE#cccc# # #L L# ##..ss_________,_________________......", + "......_______,,________,________ss..###+##+##++##=##11111#EEE6#1111##=##++##+##+###..ss_________,________,,_______......", + "......_______,,________,________ss..## P ## ## ##..ss_________,________,,_______......", + "......_______,,________,________ss..!1 1!..ss_________,________,,_______......", + "......_________________,________ss..!1 2 2 2 2 1!..ss_________,_________________......", + "......_______,,________,________ss..## ##..ss_________,________,,_______......", + "......_______,,________________sss..#####+## ###### ###### ##+####..sss_________________,,_______......", + "......_______,,___________ssssssss..##t+ c# # ##########++########## # #c +t##..ssssssss____________,,_______......", + "......___________________ssssssss...#### S# ##=### ###=## #S ####...ssssssss____________________......", + "......_______,,_________sss.........##t+ 2c# #D k# bbbb bbbb #k D# #c2+t##.........sss__________,,_______......", + "......_______,,________sss.........##### S# # 6V 2 2 V6 v# #S #####.........sss_________,,_______......" + ], + "palettes": [ "evac_center" ], + "place_zones": [ + { "type": "NPC_INVESTIGATE_ONLY", "faction": "free_merchants", "x": [ 24, 47 ], "y": [ 0, 23 ] }, + { "type": "NPC_INVESTIGATE_ONLY", "faction": "free_merchants", "x": [ 48, 71 ], "y": [ 0, 23 ] }, + { "type": "NPC_INVESTIGATE_ONLY", "faction": "free_merchants", "x": [ 72, 95 ], "y": [ 0, 23 ] }, + { "type": "NPC_INVESTIGATE_ONLY", "faction": "wasteland_scavengers", "x": [ 24, 47 ], "y": [ 0, 23 ] }, + { "type": "NPC_INVESTIGATE_ONLY", "faction": "wasteland_scavengers", "x": [ 48, 71 ], "y": [ 0, 23 ] }, + { "type": "NPC_INVESTIGATE_ONLY", "faction": "wasteland_scavengers", "x": [ 72, 95 ], "y": [ 0, 23 ] }, + { "type": "NPC_NO_INVESTIGATE", "faction": "free_merchants", "x": [ 24, 32 ], "y": [ 3, 20 ] }, + { "type": "NPC_NO_INVESTIGATE", "faction": "wasteland_scavengers", "x": [ 24, 32 ], "y": [ 3, 20 ] }, + { "type": "NPC_INVESTIGATE_ONLY", "faction": "lobby_beggars", "x": [ 51, 68 ], "y": [ 21, 23 ] } + ], + "items": { + "D": { "item": "trash", "chance": 60, "repeat": [ 1, 3 ] }, + "L": { "item": "cleaning", "chance": 80, "repeat": [ 2, 6 ] }, + "S": [ { "item": "dishes_dining", "chance": 80, "repeat": [ 1, 3 ] }, { "item": "dishes_utility", "chance": 10 } ], + "T": { "item": "dishes_dining", "chance": 5 }, + "c": { "item": "dishes_dining", "chance": 80, "repeat": [ 2, 5 ] }, + "d": { "item": "dishes_dining", "chance": 80, "repeat": [ 2, 5 ] }, + "k": { "item": "cubical_office", "chance": 20, "repeat": [ 1, 2 ] }, + "r": { "item": "shower", "chance": 80, "repeat": [ 1, 3 ] }, + "u": [ { "item": "cannedfood", "chance": 80, "repeat": [ 1, 8 ] }, { "item": "pasta", "chance": 70, "repeat": [ 1, 8 ] } ], + "v": { "item": "shelter", "repeat": [ 1, 12 ] } + }, + "place_vehicles": [ + { "vehicle": "schoolbus", "x": 4, "y": 8, "chance": 75, "rotation": 270 }, + { "vehicle": "car", "x": 89, "y": 16, "chance": 75, "rotation": 90 }, + { "vehicle": "pickup", "x": 90, "y": 8, "chance": 75, "rotation": 90 } + ], + "place_npcs": [ + { "class": "evac_guard2", "x": 42, "y": 18 }, + { "class": "evac_guard1", "x": 57, "y": 21 }, + { "class": "refugee_DracoDune", "x": 49, "y": 6 }, + { "class": "refugee_JohnClemens", "x": 52, "y": 7 }, + { "class": "guard", "x": 62, "y": 21 }, + { "class": "refugee_beggar5", "x": 64, "y": 22 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "evac_center_16", "evac_center_17", "evac_center_18", "evac_center_19", "evac_center_20" ] ], + "weight": 100, + "object": { + "fill_ter": "t_floor", + "rows": [ + "......_______,,_______sss....#########t+ c# #2hcV bbbb bbbb Vch2# #c +t#########....sss________,,_______......", + "......________________sss...################++#D cV ppp Vc D#++################...sss________________......", + "......_______,,_______sss...###LLLLLL #2 D ##i## bbbb bbbb ##i## DD ###...sss_______,,_______......", + "......_______,,_______sss...##L = #####l #### ##...sss_______,,_______......", + "......_______,,_______sss...##LLLLLLL # ##kk6## ### uuuuuuuu ##...sss_______,,_______......", + "......________________sss...########### + hk###1111#+##+#1111#### vv uuuuuuuu ##...sss________________......", + "......_______,,_______sss...##6 D# V i###!!!!sssUnsss!!!!### vv 2 ##...sss_______,,_______......", + "......_______,,_______sss...!1 hh + ######......ssssss......## vv 1!...sss_______,,_______......", + "......_______,,_______sss...!1 hTTh + Vioo##.......ssss.......## vv uuuuuuuu 1!...sss_______,,_______......", + "......________________sss...## hTTh # + ##.......ssss.......## uuuuuuuu ##...sss________________......", + "......_______,,_______sss...## hTTh # Vkh 1!...%...ssss...%...!1 vv ##...sss_______,,_______......", + "......_______,,_______sss...## hTTh # Vkkk1!..%%%..ssss..%%%..!1 vv ##...sss_______,,_______......", + "......_______,,_______sss...## hTTh V #######...%...ssss...%...## vv uuuuuuuu ##...sss_______,,_______......", + "......________________sss...!1 hh V #r @@##.......ssss.......## uuuuuuuu 1!...sss________________......", + "......_______,,_______sss...!1 2# + ##.......ssss.......## vv 1!...sss_______,,_______......", + "......_______,,_______sss...##occco#### # oo##.......ssss.......## vv 2 ##...sss_______,,_______......", + "......_______,,_______sss...########D #######...%...ssss...%...## vv uuuuuuuu ##...sss_______,,_______......", + "......________________sss...##@@ r# hTh #r @@##..%%%..ssss..%%%..## vv uuuuuuuu ##...sss________________......", + "......_______,,_______sss...## + + ##...%...ssss...%...## ##...sss_______,,_______......", + "......_______,,_______sss...###oo # PHHHP # oo###.......ssss.......### ###...sss_______,,_______......", + "......_______,,_______sss...#######11#####11#######!!!!!!!ssss!!!!!!!#######11#####11#######...sss_______,,_______......", + "......________________sss....######!!#####!!######!!!!!!!!ssss!!!!!!!!######!!#####!!######....sss________________......", + "......_______,,_______sss.................................ssss.................................sss_______,,_______......", + "......_______,,_______ssss...............................ssssss...............................ssss_______,,_______......" + ], + "palettes": [ "evac_center" ], + "place_zones": [ + { "type": "NPC_INVESTIGATE_ONLY", "faction": "free_merchants", "x": [ 24, 47 ], "y": [ 0, 23 ] }, + { "type": "NPC_INVESTIGATE_ONLY", "faction": "free_merchants", "x": [ 48, 71 ], "y": [ 0, 23 ] }, + { "type": "NPC_INVESTIGATE_ONLY", "faction": "free_merchants", "x": [ 72, 95 ], "y": [ 0, 23 ] }, + { "type": "NPC_INVESTIGATE_ONLY", "faction": "wasteland_scavengers", "x": [ 24, 47 ], "y": [ 0, 23 ] }, + { "type": "NPC_INVESTIGATE_ONLY", "faction": "wasteland_scavengers", "x": [ 48, 71 ], "y": [ 0, 23 ] }, + { "type": "NPC_INVESTIGATE_ONLY", "faction": "wasteland_scavengers", "x": [ 72, 95 ], "y": [ 0, 23 ] }, + { "type": "NPC_INVESTIGATE_ONLY", "faction": "old_guard", "x": [ 29, 47 ], "y": [ 2, 19 ] }, + { "type": "NPC_INVESTIGATE_ONLY", "faction": "old_guard", "x": [ 48, 59 ], "y": [ 2, 19 ] }, + { "type": "NPC_INVESTIGATE_ONLY", "faction": "old_guard", "x": [ 48, 48 ], "y": [ 0, 0 ] }, + { "type": "NPC_INVESTIGATE_ONLY", "faction": "lobby_beggars", "x": [ 51, 68 ], "y": [ 0, 4 ] } + ], + "items": { + "@": { "item": "bed", "chance": 80 }, + "D": { "item": "trash", "chance": 60, "repeat": [ 1, 3 ] }, + "L": { "item": "shelter", "chance": 30 }, + "i": { "item": "office", "chance": 90, "repeat": [ 1, 6 ] }, + "k": { "item": "cubical_office", "chance": 20, "repeat": [ 1, 2 ] }, + "o": [ { "item": "homebooks", "chance": 80, "repeat": [ 1, 2 ] }, { "item": "textbooks", "chance": 20 } ], + "u": [ { "item": "cannedfood", "chance": 80, "repeat": [ 2, 8 ] }, { "item": "snacks", "chance": 25, "repeat": [ 1, 3 ] } ], + "v": [ + { "item": "pasta", "chance": 80, "repeat": [ 2, 8 ] }, + { "item": "kitchen", "chance": 50, "repeat": [ 1, 3 ] }, + { "item": "snacks", "chance": 25, "repeat": [ 1, 3 ] } + ] + }, + "place_vehicles": [ + { "vehicle": "hippie_van", "x": 21, "y": 17, "chance": 75, "rotation": 90 }, + { "vehicle": "policecar", "x": 22, "y": 7, "chance": 75, "rotation": 90 }, + { "vehicle": "car_mini", "x": 99, "y": 15, "chance": 75, "rotation": 90 } + ], + "place_npcs": [ + { "class": "scavenger_merc", "x": 49, "y": 3 }, + { "class": "arsonist", "x": 38, "y": 19 }, + { "class": "old_guard_rep", "x": 47, "y": 10 }, + { "class": "guard", "x": 46, "y": 3 }, + { "class": "evac_merchant", "x": 71, "y": 0 }, + { "class": "science_rep", "x": 48, "y": 0 }, + { "class": "refugee_beggar1", "x": 53, "y": 0 }, + { "class": "refugee_beggar2", "x": 55, "y": 2 }, + { "class": "refugee_beggar3", "x": 64, "y": 0 }, + { "class": "refugee_beggar4", "x": 61, "y": 2 }, + { "class": "guard", "x": 73, "y": 3 }, + { "class": "guard", "x": 89, "y": 3 }, + { "class": "guard", "x": 88, "y": 19 } + ], + "place_items": [ + { "item": "bed", "x": [ 53, 56 ], "y": 0, "chance": 70 }, + { "item": "bed", "x": [ 63, 66 ], "y": 0, "chance": 50 }, + { "item": "bed", "x": [ 53, 56 ], "y": 2, "chance": 80 }, + { "item": "bed", "x": [ 63, 66 ], "y": 2, "chance": 100 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "evac_center_21", "evac_center_22", "evac_center_23", "evac_center_24", "evac_center_25" ] ], + "weight": 100, + "object": { + "fill_ter": "t_floor", + "rows": [ + "......_______,,_______ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss_______,,_______......", + "......_________________ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss_________________......", + "......_______,,_________ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss_________,,_______......", + "......_______,,__________________________________________________________________________________________,,_______......", + "......_______,,________________________________________________________,,________________________________,,_______......", + "......_________________________________________________________________,,_________________________________________......", + "......_______,,________________________________________________________,,________________________________,,_______......", + "......_______,,,_______________________________________________________,,_______________________________,,,_______......", + "......________,,,______________________________________________________,,______________________________,,,________......", + "......_________,,,____________________________________________________________________________________,,__________......", + "......__________,,,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,______________________,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,,,__________......", + "......___________,,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,______________________,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,____________......", + "......____________________________________________________________________________________________________________......", + "......_________________________________________,,_________________________________________________________________......", + "......_________________________________________,,_________________________________________________________________......", + ".......________________________________________,,________________________________________________________________.......", + "........_______________________________________,,_______________________________________________________________........", + ".........______________________________________,,______________________________________________________________.........", + "..........____________________________________________________________________________________________________..........", + ".................................................______________________.................................................", + "...................................................__________________...................................................", + "...................................................._______,,_,,,,,_....................................................", + "...................................................._______,,_,,,,,_....................................................", + "...................................................._______,,_______...................................................." + ], + "palettes": [ "evac_center" ], + "place_vehicles": [ { "vehicle": "schoolbus", "x": 32, "y": 6, "chance": 75, "rotation": 180 } ] + } + } +] diff --git a/data/json/mapgen/s_furniture.json b/data/json/mapgen/s_furniture.json index 928a6154c2182..c26cadc862293 100644 --- a/data/json/mapgen/s_furniture.json +++ b/data/json/mapgen/s_furniture.json @@ -9,30 +9,39 @@ "rows": [ " ", " |ggggggggg++ggggggggg| ", - " |.C.h.H......O.O.&.&.| ", - " |B......c............| ", - " |B......c............| ", - " |cccccccc...#.m..e..B| ", - " |bb...........m..e..B| ", - " |d..........mm...e..B| ", + " |.CphpH.c....O.O.&.&.| ", + " |B.....kc...........y| ", + " |B....ccc...........f| ", + " |v..........#.m..e..B| ", + " |bb.....tu....m..e..B| ", + " |d......tu..mmv..e..B| ", " |bb.................B| ", - " |bb.....dd..OO..oo...| ", - " |#......dd..OO..oo..B| ", + " |bb.....dq..OO..oo..y| ", + " |#......dq..OO..oo..B| ", " |h..................B| ", " |h......EE..CC..&&..B| ", " |H......EE..CC..&&..B| ", - " |H...................| ", - " |......BBBBBBBBBBBBBB| ", + " |H..................q| ", + " |...yffBBBBBBBBBBBBBB| ", " |DD------------------| ", - " |......D ", - " |BBBB..D ", - " |------| ", - " ", - " ", - " ", - " " + " |...............D 4 ", + " |BBBB.y...mmmpv.D ", + " |-------..------| ", + " |ye.Hg........|T| ", + " |he..D...Efrm.+.| ", + " |...fg.ECHHvp#.3 ", + " |--------######-3 " + ], + "palettes": [ "roof_palette" ], + "terrain": { "#": "t_wall_w", "p": "t_floor", "v": "t_floor", ">": "t_ladder_down", "D": "t_door_locked" }, + "furniture": { "v": "f_floor_lamp", "p": "f_rack_coat" }, + "place_nested": [ + { + "chunks": [ + [ "null", 20 ], + [ "roof_2x2_utilities_b", 15 ], + [ "roof_2x2_utilities_c", 5 ], + [ "roof_2x2_utilities_d", 40 ], + [ "roof_2x2_utilities", 50 ], + [ "roof_3x3_wine", 5 ] + ], + "x": [ 3, 15 ], + "y": [ 10, 12 ] + }, + { + "chunks": [ + [ "null", 20 ], + [ "roof_4x4_party", 5 ], + [ "roof_4x4_holdout", 5 ], + [ "roof_4x4_utility", 40 ], + [ "roof_4x4_utility_1", 30 ] + ], + "x": [ 3, 15 ], + "y": 3 + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "furniture_upper_roof", + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ...... ", + " ...... ", + " ...... ", + " ...... ", + " ...... " + ], + "palettes": [ "roof_palette" ] + } } ] diff --git a/data/json/mapgen/sub_station.json b/data/json/mapgen/sub_station.json index b99597b000d2a..5552bf733e46d 100644 --- a/data/json/mapgen/sub_station.json +++ b/data/json/mapgen/sub_station.json @@ -82,30 +82,30 @@ "object": { "fill_ter": "t_thconc_floor", "rows": [ - "#^X^^^X^########^X^^^X^#", - "#-x---x-#bbbbbb#-x---x-#", - "#^X^^^X^#______#^X^^^X^#", - "R^X^^^X^________^X^^^X^R", - "R-x---x-________-x---x-R", - "G^X^^^X^________^X^^^X^G", - "R^X^^^X^________^X^^^X^R", - "R-x---x-________-x---x-R", - "R^X^^^X^________^X^^^X^R", - "B^X^^^X^________^X^^^X^B", - "B-x---x-________-x---x-B", - "B^X^^^X^___<<___^X^^^X^B", - "B^X^^^X^___<<___^X^^^X^B", - "B-x---x-________-x---x-B", - "B^X^^^X^________^X^^^X^B", - "R^X^^^X^________^X^^^X^R", - "R-x---x-________-x---x-R", - "R^X^^^X^________^X^^^X^R", - "G^X^^^X^________^X^^^X^G", - "R-x---x-________-x---x-R", - "R^X^^^X^________^X^^^X^R", - "#^X^^^X^#______#^X^^^X^#", - "#-x---x-#bbbbbb#-x---x-#", - "#^X^^^X^########^X^^^X^#" + "#^^^X^^^X^____^X^^^X^^^#", + "#^^-x---x-_bb_-x---x-^^#", + "#^^^X^^^X^____^X^^^X^^^#", + "R^^^X^^^X^____^X^^^X^^^R", + "R^^-x---x-____-x---x-^^R", + "G^^^X^^^X^____^X^^^X^^^G", + "R^^^X^^^X^____^X^^^X^^^R", + "R^^-x---x-____-x---x-^^R", + "R^^^X^^^X^____^X^^^X^^^R", + "B^^^X^^^X^____^X^^^X^^^B", + "B^^-x---x-____-x---x-^^B", + "B^^^X^^^X^_<<_^X^^^X^^^B", + "B^^^X^^^X^_<<_^X^^^X^^^B", + "B^^-x---x-____-x---x-^^B", + "B^^^X^^^X^____^X^^^X^^^B", + "R^^^X^^^X^____^X^^^X^^^R", + "R^^-x---x-____-x---x-^^R", + "R^^^X^^^X^____^X^^^X^^^R", + "G^^^X^^^X^____^X^^^X^^^G", + "R^^-x---x-____-x---x-^^R", + "R^^^X^^^X^____^X^^^X^^^R", + "#^^^X^^^X^____^X^^^X^^^#", + "#^^-x---x-_bb_-x---x-^^#", + "#^^^X^^^X^____^X^^^X^^^#" ], "palettes": [ "subway_underground" ] } diff --git a/data/json/mapgen_palettes/campground.json b/data/json/mapgen_palettes/campground.json new file mode 100644 index 0000000000000..86e15d2bdfa09 --- /dev/null +++ b/data/json/mapgen_palettes/campground.json @@ -0,0 +1,55 @@ +{ + "type": "palette", + "id": "campground_palette", + "terrain": { + "#": "t_grass", + "&": "t_thconc_floor", + "+": [ "t_door_c", "t_door_o" ], + "_": [ + [ "t_dirt", 3 ], + [ "t_grass", 5 ], + [ "t_grass_long", 25 ], + [ "t_grass_tall", 5 ], + [ "t_underbrush", 2 ], + [ "t_shrub", 5 ], + [ "t_tree", 4 ], + [ "t_tree_pine", 2 ], + [ "t_tree_birch", 1 ] + ], + ";": [ [ "t_dirt", 10 ], [ "t_grass", 15 ], [ "t_grass_long", 2 ] ], + ",": [ [ "t_dirt", 10 ], [ "t_grass", 15 ], [ "t_grass_long", 2 ] ], + "B": [ [ "t_dirt", 10 ], [ "t_grass", 15 ], [ "t_grass_long", 2 ] ], + "H": [ [ "t_dirt", 100 ], [ "t_grass", 5 ], [ "t_grass_long", 1 ] ], + "n": [ [ "t_dirt", 100 ], [ "t_grass", 5 ], [ "t_grass_long", 1 ] ], + "S": "t_thconc_floor", + "T": "t_thconc_floor", + "f": "t_floor", + "D": "t_floor", + "h": "t_floor", + ".": [ [ "t_dirt", 100 ], [ "t_grass", 5 ], [ "t_grass_long", 1 ] ], + "b": [ [ "t_dirt", 10 ], [ "t_grass", 15 ], [ "t_grass_long", 2 ] ], + "c": [ [ "t_dirt", 10 ], [ "t_grass", 15 ], [ "t_grass_long", 2 ] ], + "s": [ [ "t_dirt", 5 ], [ "t_grass", 16 ], [ "t_grass_long", 1 ] ], + "t": [ [ "t_dirt", 10 ], [ "t_grass", 15 ], [ "t_grass_long", 2 ] ], + "|": "t_wall", + "w": "t_window", + "o": "t_pit_shallow", + "O": "t_gutter_downspout" + }, + "furniture": { + "D": "f_desk", + "h": "f_chair", + "H": "f_camp_chair", + "#": "f_large_canvas_wall", + "&": "f_toilet", + ";": "f_large_groundsheet", + ",": "f_center_groundsheet", + "B": "f_brazier", + "S": "f_sink", + "b": "f_bench", + "c": [ "f_large_canvas_door", "f_large_canvas_door_o" ], + "t": "f_table", + "n": "f_tourist_table", + "o": "f_firering" + } +} diff --git a/data/json/mapgen_palettes/farm.json b/data/json/mapgen_palettes/farm.json new file mode 100644 index 0000000000000..364fa8eb51512 --- /dev/null +++ b/data/json/mapgen_palettes/farm.json @@ -0,0 +1,75 @@ +[ + { + "type": "palette", + "id": "farm", + "furniture": { + "B": "f_bed", + "H": "f_armchair", + "P": "f_mailbox", + "S": "f_sink", + "T": "f_toilet", + "Y": "f_rack_coat", + "b": "f_bathtub", + "d": "f_dresser", + "e": "f_fridge", + "h": "f_chair", + "k": "f_desk", + "l": "f_locker", + "o": "f_oven", + "u": "f_cupboard", + "y": "f_hay", + "m": "f_makeshift_bed", + "r": "f_rack", + "s": "f_rack" + }, + "terrain": { + " ": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], + "Q": "t_dirtfloor", + "#": "t_wall_glass", + "$": "t_shrub", + "&": "t_water_pump", + "+": "t_door_glass_c", + ",": "t_dirt", + "-": "t_wall", + ".": "t_floor", + "1": "t_column", + "2": "t_fence_h", + "3": "t_fence_v", + "5": "t_barndoor", + "B": "t_floor", + "D": "t_dirtmound", + "E": "t_dirtmoundfloor", + "F": "t_fence_barbed", + "H": "t_fence_h", + "M": "t_door_metal_locked", + "O": "t_barndoor", + "P": "t_grass", + "S": "t_floor", + "T": "t_floor", + "W": "t_window_boarded", + "Y": "t_floor", + "_": "t_dirtfloor", + "b": "t_floor", + "d": "t_floor", + "e": "t_floor", + "g": "t_chaingate_c", + "h": "t_floor", + "k": "t_floor", + "l": "t_floor", + "o": "t_floor", + "u": "t_floor", + "w": "t_window_domestic", + "y": "t_dirtfloor", + "|": "t_wall", + "m": "t_floor", + "=": "t_door_metal_locked", + "A": "t_bars", + "r": "t_dirtfloor", + "s": "t_dirtfloor", + ";": "t_fence_wire", + "7": "t_dirtfloor", + "8": "t_dirtfloor", + "c": "t_door_makeshift_c" + } + } +] diff --git a/data/json/mapgen_palettes/necropolis/necropolis_a.json b/data/json/mapgen_palettes/necropolis/necropolis_a.json new file mode 100644 index 0000000000000..161c0d1bb6c0b --- /dev/null +++ b/data/json/mapgen_palettes/necropolis/necropolis_a.json @@ -0,0 +1,128 @@ +[ + { + "type": "palette", + "id": "necropolis_a", + "furniture": { + ")": "f_wreckage", + "?": "f_sofa", + "@": "f_bed", + "B": "f_bathtub", + "C": "f_mutpoppy", + "D": "f_trashcan", + "F": "f_arcade_machine", + "K": "f_dryer", + "L": "f_locker", + "O": "f_oven", + "P": "f_indoor_plant", + "S": "f_sink", + "U": "f_statue", + "W": "f_washer", + "X": "f_dahlia", + "Y": "f_dryer", + "Z": "f_crate_o", + "]": "f_ash", + "b": "f_bench", + "c": "f_counter", + "d": "f_dresser", + "f": "f_fridge", + "h": "f_chair", + "j": "f_washer", + "k": "f_desk", + "l": "f_vending_c", + "n": "f_table", + "o": "f_bookcase", + "p": "f_pool_table", + "r": "f_rack", + "x": "f_bluebell", + "z": "f_crate_c", + "{": "f_rubble", + "t": "f_toilet", + "u": "f_barricade_road" + }, + "terrain": { + "!": "t_bars", + "#": "t_shrub", + "&": "t_sidewalk", + ")": "t_floor", + "*": "t_door_bar_locked", + "+": "t_door_c", + ",": "t_pavement_y", + "-": "t_wall", + ".": "t_grass", + "1": "t_generator_broken", + "2": "t_sewage_pipe", + "3": "t_recycler", + "4": "t_water_pump", + "5": "t_slide", + "6": "t_console_broken", + "7": "t_chainfence_h", + "8": "t_chainfence_v", + "9": "t_chaingate_l", + ":": "t_door_locked_interior", + ";": "t_door_locked", + "<": "t_stairs_down", + "=": "t_door_metal_locked", + ">": "t_stairs_down", + "?": "t_floor", + "@": "t_floor", + "A": "t_railing_h", + "B": "t_floor", + "C": "t_grass", + "D": "t_sidewalk", + "E": "t_elevator", + "F": "t_floor", + "G": "t_wall_metal", + "H": "t_wall_glass", + "I": "t_column", + "J": "t_monkey_bars", + "K": "t_floor", + "L": "t_floor", + "M": "t_dirt", + "N": "t_sandbox", + "O": "t_floor", + "P": "t_floor", + "Q": "t_fence_h", + "R": "t_hole", + "S": "t_floor", + "T": "t_tree", + "V": "t_wall_glass", + "W": "t_floor", + "X": "t_grass", + "Y": "t_floor", + "Z": "t_sidewalk", + "[": "t_door_glass_c", + "]": "t_dirt", + "_": "t_pavement", + "a": "t_railing_v", + "b": "t_dirt", + "c": "t_floor", + "d": "t_floor", + "e": "t_gates_mech_control", + "f": "t_floor", + "g": "t_wall_metal", + "h": "t_floor", + "i": "t_window_stained_green", + "j": "t_floor", + "k": "t_floor", + "l": "t_sidewalk", + "m": "t_dirtmound", + "n": "t_floor", + "o": "t_floor", + "p": "t_floor", + "q": "t_fence_v", + "r": "t_floor", + "s": "t_sidewalk", + "t": "t_floor", + "u": "t_pavement", + "v": "t_window_domestic", + "w": "t_window", + "x": "t_grass", + "y": "t_window_boarded", + "z": "t_sidewalk", + "{": "t_floor", + "|": "t_wall", + "}": "t_manhole_cover", + "U": "t_sidewalk" + } + } +] diff --git a/data/json/mapgen_palettes/necropolis/necropolis_b1.json b/data/json/mapgen_palettes/necropolis/necropolis_b1.json new file mode 100644 index 0000000000000..6f7a3e82a7bc5 --- /dev/null +++ b/data/json/mapgen_palettes/necropolis/necropolis_b1.json @@ -0,0 +1,85 @@ +[ + { + "type": "palette", + "id": "necropolis_b1", + "furniture": { + ")": "f_wreckage", + "?": "f_sofa", + "@": "f_bed", + "D": "f_trashcan", + "L": "f_locker", + "S": "f_sink", + "Z": "f_crate_o", + "]": "f_ash", + "c": "f_counter", + "d": "f_dresser", + "f": "f_fridge", + "h": "f_chair", + "k": "f_desk", + "n": "f_table", + "o": "f_bookcase", + "r": "f_rack", + "t": "f_toilet", + "z": "f_crate_c", + "{": "f_rubble" + }, + "terrain": { + " ": "t_rock_floor", + "!": "t_bars", + "#": "t_ladder_up", + ")": "t_floor", + "*": "t_door_bar_locked", + "+": "t_door_metal_c", + ",": "t_pavement_y", + "-": "t_wall", + ".": "t_rock", + "2": "t_sewage_pipe", + "3": "t_sewage", + "4": "t_water_pump", + "5": "t_water_sh", + "6": "t_console_broken", + "7": "t_chainfence_h", + "8": "t_chainfence_v", + "9": "t_chaingate_l", + ";": "t_metal_floor", + "<": "t_stairs_up", + "=": "t_door_metal_locked", + ">": "t_stairs_down", + "?": "t_floor", + "@": "t_floor", + "A": "t_railing_h", + "B": "t_floor", + "D": "t_floor", + "E": "t_elevator", + "G": "t_wall_metal", + "H": "t_wall_glass", + "I": "t_column", + "L": "t_floor", + "R": "t_hole", + "S": "t_floor", + "U": "t_floor", + "V": "t_wall_glass", + "X": "t_grate", + "Z": "t_floor", + "a": "t_railing_v", + "c": "t_floor", + "d": "t_floor", + "e": "t_gates_mech_control", + "f": "t_floor", + "g": "t_wall_metal", + "h": "t_floor", + "k": "t_floor", + "n": "t_floor", + "o": "t_floor", + "r": "t_floor", + "s": "t_sidewalk", + "t": "t_floor", + "x": "t_bridge", + "z": "t_floor", + "{": "t_floor", + "|": "t_wall", + "}": "t_manhole_cover", + "b": "t_utility_light" + } + } +] diff --git a/data/json/mapgen_palettes/necropolis/necropolis_b2.json b/data/json/mapgen_palettes/necropolis/necropolis_b2.json new file mode 100644 index 0000000000000..685e5b7424a82 --- /dev/null +++ b/data/json/mapgen_palettes/necropolis/necropolis_b2.json @@ -0,0 +1,114 @@ +[ + { + "type": "palette", + "id": "necropolis_b2", + "furniture": { + "?": "f_sofa", + "@": "f_bed", + "B": "f_bathtub", + "C": "f_treadmill", + "D": "f_trashcan", + "J": "f_ergometer", + "L": "f_locker", + "N": "f_robotic_arm", + "O": "f_oven", + "P": "f_indoor_plant", + "S": "f_sink", + "U": "f_statue", + "Z": "f_crate_o", + "b": "f_bench", + "c": "f_counter", + "d": "f_dresser", + "f": "f_fridge", + "h": "f_chair", + "j": "f_exercise", + "k": "f_desk", + "l": "f_vending_c", + "n": "f_table", + "o": "f_bookcase", + "r": "f_rack", + "t": "f_toilet", + "z": "f_crate_c" + }, + "terrain": { + " ": "t_metal_floor", + "!": "t_bars", + "#": "t_ladder_up", + "$": "t_machinery_light", + "%": "t_machinery_heavy", + "(": "t_machinery_old", + "*": "t_door_bar_locked", + "+": "t_door_metal_c", + ",": "t_pavement_y", + "-": "t_wall_metal", + ".": "t_rock", + "/": "t_rock_floor", + "0": "t_conveyor", + "1": "t_generator_broken", + "2": "t_sewage_pipe", + "3": "t_sewage", + "4": "t_water_pump", + "5": "t_gates_control_metal", + "6": "t_console_broken", + "7": "t_chainfence_h", + "8": "t_chainfence_v", + "9": "t_chaingate_l", + ":": "t_door_locked", + ";": "t_metal_floor", + "<": "t_stairs_up", + "=": "t_door_metal_locked", + ">": "t_stairs_down", + "?": "t_metal_floor", + "@": "t_metal_floor", + "A": "t_railing_h", + "B": "t_metal_floor", + "C": "t_metal_floor", + "D": "t_metal_floor", + "E": "t_elevator", + "F": "t_ladder_down", + "G": "t_utility_light", + "H": "t_wall_glass", + "I": "t_column", + "J": "t_metal_floor", + "K": "t_ladder_up", + "L": "t_metal_floor", + "M": "t_dirt", + "N": "t_metal_floor", + "O": "t_metal_floor", + "P": "t_metal_floor", + "R": "t_radio_tower", + "S": "t_metal_floor", + "U": "t_metal_floor", + "V": "t_wall_glass", + "X": "t_grate", + "Z": "t_metal_floor", + "[": "t_door_glass_c", + "^": "t_underbrush", + "_": "t_machinery_electronic", + "a": "t_railing_v", + "b": "t_dirt", + "c": "t_metal_floor", + "d": "t_metal_floor", + "e": "t_gates_mech_control", + "f": "t_metal_floor", + "h": "t_metal_floor", + "i": "t_vat", + "j": "t_metal_floor", + "k": "t_metal_floor", + "l": "t_metal_floor", + "m": "t_dirtmound", + "n": "t_metal_floor", + "o": "t_metal_floor", + "r": "t_metal_floor", + "s": "t_sidewalk", + "t": "t_metal_floor", + "u": "t_reinforced_glass", + "v": "t_reinforced_glass", + "x": "t_bridge", + "z": "t_metal_floor", + "|": "t_wall_metal", + "}": "t_manhole_cover", + "&": "t_gas_pump" + } + } +] diff --git a/data/json/mapgen_palettes/necropolis/necropolis_b3.json b/data/json/mapgen_palettes/necropolis/necropolis_b3.json new file mode 100644 index 0000000000000..dec0dbedd1fe6 --- /dev/null +++ b/data/json/mapgen_palettes/necropolis/necropolis_b3.json @@ -0,0 +1,116 @@ +[ + { + "type": "palette", + "id": "necropolis_b3", + "furniture": { + "?": "f_sofa", + "@": "f_bed", + "B": "f_bathtub", + "C": "f_treadmill", + "D": "f_trashcan", + "J": "f_ergometer", + "L": "f_locker", + "N": "f_robotic_arm", + "O": "f_oven", + "P": "f_indoor_plant", + "S": "f_sink", + "U": "f_statue", + "Z": "f_crate_o", + "b": "f_bench", + "c": "f_counter", + "d": "f_dresser", + "f": "f_fridge", + "h": "f_chair", + "j": "f_exercise", + "k": "f_desk", + "l": "f_vending_c", + "n": "f_table", + "o": "f_bookcase", + "r": "f_rack", + "t": "f_toilet", + "z": "f_crate_c", + "~": "f_shower", + "X": "f_rubble" + }, + "terrain": { + " ": "t_metal_floor", + "!": "t_bars", + "#": "t_ladder_up", + "$": "t_machinery_light", + "%": "t_machinery_heavy", + "(": "t_machinery_old", + "*": "t_door_bar_locked", + "+": "t_door_metal_c", + ",": "t_pavement_y", + "-": "t_wall_metal", + ".": "t_rock", + "/": "t_rock_floor", + "0": "t_conveyor", + "1": "t_generator_broken", + "2": "t_potential_trans", + "3": "t_sewage", + "4": "t_water_pump", + "5": "t_gates_control_metal", + "6": "t_console_broken", + "7": "t_backboard", + "8": "t_chainfence_v", + "9": "t_chaingate_l", + ":": "t_door_locked", + ";": "t_metal_floor", + "<": "t_stairs_up", + "=": "t_door_metal_locked", + ">": "t_stairs_down", + "?": "t_metal_floor", + "@": "t_metal_floor", + "A": "t_railing_h", + "B": "t_metal_floor", + "C": "t_metal_floor", + "D": "t_metal_floor", + "E": "t_elevator", + "F": "t_ladder_down", + "G": "t_utility_light", + "H": "t_wall_glass", + "I": "t_column", + "J": "t_metal_floor", + "K": "t_ladder_up", + "L": "t_metal_floor", + "M": "t_dirt", + "N": "t_metal_floor", + "O": "t_metal_floor", + "P": "t_metal_floor", + "R": "t_hole", + "S": "t_metal_floor", + "U": "t_metal_floor", + "V": "t_wall_glass", + "X": "t_metal_floor", + "Z": "t_metal_floor", + "[": "t_door_glass_c", + "^": "t_underbrush", + "_": "t_machinery_electronic", + "a": "t_railing_v", + "b": "t_dirt", + "c": "t_metal_floor", + "d": "t_metal_floor", + "e": "t_gates_mech_control", + "f": "t_metal_floor", + "h": "t_metal_floor", + "i": "t_vat", + "j": "t_metal_floor", + "k": "t_metal_floor", + "l": "t_metal_floor", + "m": "t_dirtmound", + "n": "t_metal_floor", + "o": "t_metal_floor", + "r": "t_metal_floor", + "s": "t_sidewalk", + "t": "t_metal_floor", + "u": "t_reinforced_glass", + "v": "t_reinforced_glass", + "x": "t_bridge", + "z": "t_metal_floor", + "|": "t_wall_metal", + "}": "t_manhole_cover", + "~": "t_metal_floor" + } + } +] diff --git a/data/json/mapgen_palettes/evac_center.json b/data/json/mapgen_palettes/refugee_center.json similarity index 65% rename from data/json/mapgen_palettes/evac_center.json rename to data/json/mapgen_palettes/refugee_center.json index 019c2c7b318c9..cfa10e805cca7 100644 --- a/data/json/mapgen_palettes/evac_center.json +++ b/data/json/mapgen_palettes/refugee_center.json @@ -4,42 +4,12 @@ "id": "evac_center", "terrain": { " ": "t_floor", + "'": "t_thconc_floor", "#": "t_brick_wall", "%": "t_shrub", "+": "t_rdoor_c", ",": "t_pavement_y", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_grass", - "t_grass", - "t_grass", - "t_grass", - "t_grass", - "t_grass", - "t_grass", - "t_grass", - "t_grass", - "t_grass", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_dirt", - "t_dirt", - "t_dirt", - "t_dirt", - "t_dirt", - "t_dirt", - "t_dirt", - "t_dirt", - "t_dirt", - "t_dirt", - "t_dirt", - "t_dirt", - "t_shrub" - ], + ".": [ [ "t_grass", 30 ], [ "t_dirt", 10 ], [ "t_grass_dead", 2 ], "t_shrub" ], "0": "t_door_locked_interior", "1": "t_reinforced_glass_shutter", "2": "t_utility_light", @@ -53,7 +23,6 @@ "_": "t_pavement", "n": "t_sidewalk", "s": "t_sidewalk", - "t": "t_floor", "{": "t_dirt", "}": "t_sidewalk" }, @@ -61,20 +30,28 @@ ")": "f_wreckage", "@": "f_bed", "D": "f_trashcan", + "F": "f_fridge", + "H": "f_sofa", "L": "f_locker", - "p": "f_pillow_fort", + "O": "f_oven", "P": "f_indoor_plant", "S": "f_sink", + "T": "f_table", "U": "f_statue", "b": "f_bench", "c": "f_counter", + "d": "f_dishwasher", "h": "f_chair", + "i": "f_filing_cabinet", "k": "f_desk", "l": "f_vending_c", "n": "f_slab", "o": "f_bookcase", + "p": "f_pillow_fort", "r": "f_rack", "t": "f_toilet", + "u": "f_utility_shelf", + "v": "f_utility_shelf", "z": "f_crate_c", "}": "f_rubble", "~": "f_shower" diff --git a/data/json/martialarts.json b/data/json/martialarts.json index 094900084954a..fc00ee2814b50 100644 --- a/data/json/martialarts.json +++ b/data/json/martialarts.json @@ -4,6 +4,7 @@ "id": "style_none", "name": "No style", "description": "Not a martial art, this is just plain old punching and kicking.", + "initiate": [ "You decide to not use any martial arts.", "%s enters a generic combat stance." ], "arm_block": 1, "leg_block": 99 }, @@ -12,6 +13,7 @@ "id": "style_kicks", "name": "Force unarmed", "description": "Not a martial art, setting this style will prevent weapon attacks and force punches (with free hand) or kicks.", + "initiate": [ "You force yourself to fight unarmed.", "%s decides to fight unarmed." ], "arm_block": 1, "leg_block": 99, "force_unarmed": true @@ -21,6 +23,7 @@ "id": "style_brawling", "name": "Brawling", "description": "You're used to hand-to-creature fighting. Not stylish or sporting, but it gets the job done.", + "initiate": [ "You grit your teeth and prepare for a good fight.", "%s gets ready to brawl." ], "arm_block": -1, "leg_block": 7, "techniques": [ "tec_brawl_feint", "tec_brawl_power", "tec_brawl_trip", "tec_brawl_counter" ] @@ -30,6 +33,7 @@ "id": "style_karate", "name": "Karate", "description": "Karate is a popular martial art, originating from Japan. It focuses on rapid, precise attacks, blocks, and fluid movement. A successful hit allows you an extra dodge and two extra blocks on the following round.", + "initiate": [ "You adopt a classic karate stance.", "%s adopts a classic karate stance." ], "arm_block": 2, "leg_block": 99, "onhit_buffs": [ @@ -51,6 +55,7 @@ "id": "style_aikido", "name": "Aikido", "description": "Aikido is a Japanese martial art focused on self-defense, while minimizing injury to the attacker. It uses defensive throws and disarms. Damage done while using this technique is halved, but pain inflicted is doubled.", + "initiate": [ "You enter the hamni stance.", "%s changes into a combat posture." ], "arm_block": 99, "leg_block": 99, "static_buffs": [ @@ -71,6 +76,7 @@ "id": "style_boxing", "name": "Boxing", "description": "Sport of the true gentleman, modern boxing has evolved from the prizefights of the Victorian era.", + "initiate": [ "You lower your chin and raise your fists to eye level.", "%s prepares to fight with raised fists." ], "arm_block": 2, "leg_block": 99, "static_buffs": [ @@ -115,6 +121,7 @@ "id": "style_judo", "name": "Judo", "description": "Judo is a martial art that focuses on grabs and throws, both defensive and offensive. It also focuses on recovering from throws; while using judo, you will not lose any turns to being thrown or knocked down.", + "initiate": [ "You prepare yourself for a grapple.", "%s prepares for a grapple." ], "arm_block": 99, "leg_block": 99, "static_buffs": [ @@ -135,6 +142,7 @@ "id": "style_tai_chi", "name": "Tai Chi", "description": "Though Tai Chi is often seen as a form of mental and physical exercise, it is a legitimate martial art, focused on self-defense. Its ability to absorb the force of an attack makes your Perception decrease damage further on a block.", + "initiate": [ "You settle into a gentle stance and prepare to defend yourself.", "%s settles into a gentle stance." ], "arm_block": 1, "leg_block": 99, "static_buffs": [ @@ -156,6 +164,7 @@ "id": "style_capoeira", "name": "Capoeira", "description": "A dance-like style with its roots in Brazilian slavery, Capoeira is focused on fluid movement and sweeping kicks. Moving a tile will boost attack and damage and attacking boosts dodge. These bonuses stack up to three times each.", + "initiate": [ "You begin performing the ginga.", "%s begins to rhymically rock back and forth." ], "arm_block": 99, "leg_block": 99, "onhit_buffs": [ @@ -190,6 +199,7 @@ "id": "style_krav_maga", "name": "Krav Maga", "description": "Originating in Israel, Krav Maga is based on taking down an enemy quickly and effectively. It focuses on applicable attacks rather than showy or complex moves. Popular among police and armed forces everywhere.", + "initiate": [ "You prepare for simultaneous attack and defense.", "%s prepares for simultaneous attack and defense." ], "arm_block": 2, "leg_block": 4, "static_buffs": [ @@ -225,6 +235,7 @@ "id": "style_muay_thai", "name": "Muay Thai", "description": "Also referred to as the \"Art of 8 Limbs,\" Muay Thai is a popular fighting technique from Thailand that uses powerful strikes. Your strikes are more powerful with high strength and weaker with low strength, and can momentarily disorient enemies. As this style focuses on using legs and elbow strikes rather than punches, it does not benefit from using any weapons.", + "initiate": [ "You ready yourself to trade blows with your enemies.", "%s prepares to trade blows." ], "arm_block": 3, "leg_block": 4, "force_unarmed": true, @@ -244,6 +255,7 @@ "id": "style_ninjutsu", "name": "Ninjutsu", "description": "Ninjutsu is a martial art and set of tactics used by ninja in feudal Japan. It focuses on rapid, precise, silent strikes. Ninjutsu is almost entirely silent. It also provides small combat bonuses every time you move.", + "initiate": [ "You perform a kuji-in mantra with your hands. Rin, Kai, Jin!", "%s performs a series of ninja hand signs." ], "arm_block": 3, "leg_block": 99, "static_buffs": [ @@ -276,6 +288,7 @@ "id": "style_taekwondo", "name": "Taekwondo", "description": "Taekwondo is the national sport of Korea, and was used by the South Korean army in the 20th century. Focused on kicks and so it does not benefit from wielded weapons. It also includes strength training; your blocks absorb extra damage the stronger you are.", + "initiate": [ "You adopt a narrow fighting stance.", "You adopts a narrow fighting stance." ], "arm_block": 2, "leg_block": 3, "force_unarmed": true, @@ -295,6 +308,7 @@ "id": "style_biojutsu", "name": "Bionic Combatives", "description": "A modern combat style for the post-modern human. Bionic Combatives combines integrated weaponry, armor and augments into an consolidated fighting discipline.", + "initiate": [ "BEGINING BIONIC COMBATIVES PROGRAM. INITIATING COMBAT PROTOCOLS.", "%s starts moving with swift robotic percision." ], "arm_block": 99, "leg_block": 99, "arm_block_with_bio_armor_arms": true, @@ -325,6 +339,7 @@ "id": "style_zui_quan", "name": "Zui Quan", "description": "AKA \"drunken boxing,\" Zui Quan imitates the movement of a drunk to confuse the enemy, giving you a passive dodge bonus based on your intelligence. The turn after you attack, you may dodge any number of attacks with no penalty, and successfully dodging an attack gives you bonus damage and to-hit based on your intelligence.", + "initiate": [ "You begin to sway to and fro with a confident swagger.", "%s stumbles as if pretending to be drunk." ], "arm_block": 99, "leg_block": 99, "static_buffs": [ @@ -363,6 +378,7 @@ "id": "style_silat", "name": "Silat", "description": "Pentjak Silat, of Indonesian origin, is a fighting style that covers the use of short blades and bludgeons. Fighters stay low and mobile to avoid attacks, then unleash deadly critical hits.", + "initiate": [ "You give a salute of respect as you prepare to combat.", "%s gives a combat salute." ], "arm_block": 99, "leg_block": 99, "static_buffs": [ @@ -406,11 +422,14 @@ "knife_hunting", "knife_trench", "kris", + "kris_fake", "machete", "makeshift_halberd", "makeshift_knife", "makeshift_machete", "naginata", + "naginata_inferior", + "naginata_fake", "pipe", "pointy_stick", "pool_cue", @@ -419,6 +438,8 @@ "q_staff", "rebar", "scimitar", + "scimitar_inferior", + "scimitar_fake", "scythe", "scythe_war", "shock_staff", @@ -452,6 +473,7 @@ "id": "style_fencing", "name": "Fencing", "description": "The noble art of fencing is taught with flexible competition blades, but the techniques are derived from (and applicable to) more functional examples. Skilled fencers can take advantage of advances and retreats to deliver accurate strikes.", + "initiate": [ "You move into the en-garde stance.", "%s moves into a fencing stance." ], "arm_block": 99, "leg_block": 99, "onmove_buffs": [ @@ -468,10 +490,14 @@ "techniques": [ "tec_feint", "tec_fencing_lunge", "tec_fencing_stop_thrust", "tec_fencing_thrust" ], "weapons": [ "broadsword", + "broadsword_inferior", + "broadsword_fake", "broadfire_off", "broadfire_on", "rapier", + "rapier_fake", "cavalry_sabre", + "cavalry_sabre_fake", "fencing_foil", "fencing_sabre", "fencing_epee", @@ -485,6 +511,7 @@ "id": "style_niten", "name": "Niten Ichi-Ryu", "description": "Niten Ichi-Ryu is an ancient school of combat, transmitting a style of classical Japanese swordsmanship conceived by the warrior Miyamoto Musashi.", + "initiate": [ "You clear your mind as you prepare yourself for combat.", "%s relaxes and prepares for combat." ], "arm_block": 99, "leg_block": 99, "static_buffs": [ @@ -533,13 +560,29 @@ } ], "techniques": [ "niten_water_cut", "niten_red_leaf", "niten_stone_cut", "niten_timing_attack", "niten_feint" ], - "weapons": [ "katana", "firekatana_off", "firekatana_on", "bokken", "wakizashi", "nodachi" ] + "weapons": [ + "katana", + "katana_inferior", + "katana_fake", + "firekatana_off", + "firekatana_on", + "bokken", + "bokken_inferior", + "bokken_fake", + "wakizashi", + "wakizashi_inferior", + "wakizashi_fake", + "nodachi", + "nodachi_inferior", + "nodachi_fake" + ] }, { "type": "martial_art", "id": "style_eskrima", "name": "Eskrima", "description": "Eskrima, also known as Kali, is a Filipino martial art. It emphasizes rapid strikes with knife and baton weapons, along with a variety of improvised substitutes.", + "initiate": [ "You enter an open guard stance and prepare to strike.", "%s enters an open stance." ], "arm_block": 99, "leg_block": 99, "static_buffs": [ @@ -611,6 +654,8 @@ "stick", "switchblade", "tanto", + "tanto_inferior", + "tanto_fake", "tonfa", "tonfa_wood", "umbrella", @@ -628,6 +673,7 @@ "id": "style_crane", "name": "Crane Kung Fu", "description": "One of the five Shaolin animal styles. The Crane uses intricate hand techniques and jumping dodges. Dexterity determines the majority of your damage, rather than Strength; you also receive a dodge bonus the turn after moving a tile.", + "initiate": [ "You raise your leg slightly and balance like a crane.", "%s assumes a crane-like stance." ], "arm_block": 3, "leg_block": 99, "static_buffs": [ @@ -657,6 +703,7 @@ "id": "style_dragon", "name": "Dragon Kung Fu", "description": "One of the five Shaolin animal styles. The Dragon uses fluid movements and hard strikes. Intelligence improves your accuracy and damage dealt, as does moving.", + "initiate": [ "You relax and patiently await conflict like the great dragon.", "%s assumes a dragon-like stance." ], "arm_block": 2, "leg_block": 99, "static_buffs": [ @@ -686,6 +733,7 @@ "id": "style_leopard", "name": "Leopard Kung Fu", "description": "One of the five Shaolin animal styles. The Leopard focuses on rapid, strategically planned strikes. Perception and Intelligence both boost dodging, and moving boosts your accuracy.", + "initiate": [ "You prepare to pounce like a lepoard.", "%s assumes a leopard-like stance." ], "arm_block": 99, "leg_block": 99, "static_buffs": [ @@ -715,6 +763,7 @@ "id": "style_tiger", "name": "Tiger Kung Fu", "description": "One of the five Shaolin animal styles. The Tiger focuses on relentless attacks above all else. Your Strength determines your accuracy, and your attacks do increasing damage as you continue attacking.", + "initiate": [ "You clench your hands into ferocious, tiger-like claws.", "%s assumes a tiger-like stance." ], "arm_block": 99, "leg_block": 99, "static_buffs": [ @@ -745,6 +794,7 @@ "id": "style_snake", "name": "Snake Kung Fu", "description": "One of the five Shaolin animal styles. The Snake focuses on sinuous movement and precision strikes. Your Perception improves your damage.", + "initiate": [ "You adopt a fluid stance, ready to strike like a snake.", "%s assumes a snake-like stance." ], "arm_block": 99, "leg_block": 99, "static_buffs": [ @@ -763,6 +813,7 @@ "id": "style_debug", "name": "Debug Mastery", "description": "A secret martial art used only by developers and cheaters.", + "initiate": [ "You get ready pwn some zeds!", "%s prepares to cheat at martial arts!" ], "arm_block": 99, "leg_block": 99, "static_buffs": [ @@ -787,6 +838,7 @@ "id": "style_sojutsu", "name": "Sōjutsu", "description": "Sōjutsu, \"The Way of the Spear\", is the Japanese martial art of fighting with a spear. Sōjutsu focuses on keeping opponents at a distance in order to maintain advantage in combat.", + "initiate": [ "You prepare to defend against all that approach you.", "%s assumes a wide, defensive stance." ], "arm_block": 99, "leg_block": 99, "static_buffs": [ @@ -817,6 +869,8 @@ "halberd", "halberd_fake", "naginata", + "naginata_inferior", + "naginata_fake", "makeshift_halberd", "pike", "pike_inferior", diff --git a/data/json/martialarts_fictional.json b/data/json/martialarts_fictional.json index 2ef8b04da822d..30a0c304d8f5e 100644 --- a/data/json/martialarts_fictional.json +++ b/data/json/martialarts_fictional.json @@ -4,6 +4,7 @@ "id": "style_centipede", "name": "Centipede Kung Fu", "description": "One of the Five Deadly Venoms. Centipede Style uses an onslaught of rapid strikes. Each attack you land increases your speed by 4.", + "initiate": [ "You ready yourself to attack as fast as possible.", "%s assumes a centipede-like stance." ], "arm_block": 3, "leg_block": 99, "onhit_buffs": [ @@ -25,6 +26,7 @@ "id": "style_scorpion", "name": "Scorpion Kung Fu", "description": "One of the Five Deadly Venoms. Scorpion Style is a mysterious art which uses pincer-like hands and a stinger kick. Critical hits do massive damage and knock your target back.", + "initiate": [ "You prepare to capture and sting your foes.", "%s assumes a scorpion-like stance." ], "arm_block": 3, "leg_block": 99, "static_buffs": [ @@ -43,6 +45,7 @@ "id": "style_toad", "name": "Toad Kung Fu", "description": "One of the Five Deadly Venoms. Masters of Toad Style can focus themselves against all attacks. You can meditate by pausing, giving you armor, though you will lose focus when you move.", + "initiate": [ "You pause for a moment and focus on your invincible body.", "%s assumes a toad-like stance." ], "arm_block": 3, "leg_block": 99, "static_buffs": [ @@ -74,6 +77,7 @@ "id": "style_lizard", "name": "Lizard Kung Fu", "description": "One of the Five Deadly Venoms. Lizard Style focuses on using walls to your advantage.", + "initiate": [ "You ready yourself to attack from any angle.", "%s assumes a lizard-like stance." ], "arm_block": 2, "leg_block": 99, "techniques": [ ] @@ -83,6 +87,7 @@ "id": "style_venom_snake", "name": "Viper Kung Fu", "description": "A legacy of the Five Deadly Venoms. Viper Style has a unique three-part combo, which initiates on a dodge, then counters with a stunning chop and the legendary Viper Strike.", + "initiate": [ "You prepare to strike your foes' weaknesses.", "%s assumes a viper-like stance." ], "arm_block": 99, "leg_block": 99, "static_buffs": [ diff --git a/data/json/materials.json b/data/json/materials.json index e6770466d24d3..c67b3d63d6712 100644 --- a/data/json/materials.json +++ b/data/json/materials.json @@ -75,6 +75,7 @@ "specific_heat_solid": 1.2, "latent_heat": 200, "edible": true, + "rotting": true, "bash_resist": 2, "cut_resist": 3, "acid_resist": 7, @@ -283,6 +284,7 @@ "specific_heat_solid": 2.15, "latent_heat": 260, "edible": true, + "rotting": true, "bash_resist": 1, "cut_resist": 1, "acid_resist": 1, @@ -326,6 +328,7 @@ "specific_heat_solid": 1.9, "latent_heat": 290, "edible": true, + "rotting": true, "bash_resist": 1, "cut_resist": 1, "acid_resist": 2, @@ -467,6 +470,7 @@ "specific_heat_solid": 2.15, "latent_heat": 260, "edible": true, + "rotting": true, "bash_resist": 1, "cut_resist": 1, "acid_resist": 1, @@ -492,6 +496,7 @@ "specific_heat_solid": 2.03, "latent_heat": 57, "edible": true, + "rotting": true, "bash_resist": 0, "cut_resist": 0, "acid_resist": 1, @@ -536,6 +541,7 @@ "specific_heat_solid": 2.15, "latent_heat": 260, "edible": true, + "rotting": true, "bash_resist": 1, "cut_resist": 1, "acid_resist": 1, @@ -581,6 +587,7 @@ "specific_heat_solid": 2.05, "latent_heat": 220, "edible": true, + "rotting": true, "bash_resist": 1, "cut_resist": 1, "acid_resist": 2, @@ -668,6 +675,7 @@ "specific_heat_solid": 1.81, "latent_heat": 293, "edible": true, + "rotting": true, "bash_resist": 0, "cut_resist": 0, "acid_resist": 0, @@ -970,6 +978,7 @@ "specific_heat_solid": 1.9, "latent_heat": 290, "edible": true, + "rotting": true, "bash_resist": 1, "cut_resist": 1, "acid_resist": 2, @@ -995,6 +1004,7 @@ "specific_heat_solid": 1.9, "latent_heat": 290, "edible": true, + "rotting": true, "bash_resist": 1, "cut_resist": 1, "acid_resist": 2, @@ -1020,6 +1030,7 @@ "specific_heat_solid": 1.9, "latent_heat": 290, "edible": true, + "rotting": true, "bash_resist": 1, "cut_resist": 1, "acid_resist": 2, @@ -1045,6 +1056,7 @@ "specific_heat_solid": 1.9, "latent_heat": 290, "edible": true, + "rotting": true, "bash_resist": 1, "cut_resist": 1, "acid_resist": 2, @@ -1070,6 +1082,7 @@ "specific_heat_solid": 2.2, "latent_heat": 20, "edible": true, + "rotting": true, "bash_resist": 1, "cut_resist": 1, "acid_resist": 2, @@ -1095,6 +1108,7 @@ "specific_heat_solid": 1.9, "latent_heat": 290, "edible": true, + "rotting": true, "bash_resist": 1, "cut_resist": 1, "acid_resist": 2, @@ -1144,6 +1158,7 @@ "specific_heat_solid": 2, "latent_heat": 150, "edible": true, + "rotting": true, "bash_resist": 1, "cut_resist": 1, "acid_resist": 1, @@ -1240,6 +1255,7 @@ "specific_heat_solid": 3.5, "latent_heat": 100, "edible": true, + "rotting": true, "bash_resist": 1, "cut_resist": 1, "acid_resist": 2, @@ -1265,6 +1281,7 @@ "specific_heat_solid": 2.31, "latent_heat": 190, "edible": true, + "rotting": true, "bash_resist": 1, "cut_resist": 1, "acid_resist": 1, @@ -1290,6 +1307,7 @@ "specific_heat_solid": 2, "latent_heat": 190, "edible": true, + "rotting": true, "bash_resist": 1, "cut_resist": 1, "acid_resist": 2, @@ -1310,6 +1328,7 @@ "specific_heat_solid": 2.7, "latent_heat": 160, "edible": true, + "rotting": true, "bash_resist": 0, "cut_resist": 0, "acid_resist": 0, @@ -1335,6 +1354,7 @@ "specific_heat_solid": 2.74, "latent_heat": 200, "edible": true, + "rotting": true, "bash_resist": 0, "cut_resist": 0, "acid_resist": 0, diff --git a/data/json/monsterdrops/zombie_military_pilot.json b/data/json/monsterdrops/zombie_military_pilot.json index a7c6ac57067b1..0df7e4cd0a742 100644 --- a/data/json/monsterdrops/zombie_military_pilot.json +++ b/data/json/monsterdrops/zombie_military_pilot.json @@ -11,7 +11,7 @@ { "item": "two_way_radio", "prob": 50, "damage-min": 1, "damage-max": 4 }, { "item": "adderall", "prob": 40 }, { "item": "id_military", "prob": 5 }, - { "item": "cash_card", "charges-min": 0, "charges-max": 50000 }, + { "item": "cash_card", "prob": 10, "charges-min": 0, "charges-max": 50000 }, { "group": "mil_food", "prob": 15 }, { "group": "misc_smoking", "prob": 30 } ] diff --git a/data/json/monsterdrops/zombie_soldier.json b/data/json/monsterdrops/zombie_soldier.json index 882cb34a2a996..ad708b90a70ab 100644 --- a/data/json/monsterdrops/zombie_soldier.json +++ b/data/json/monsterdrops/zombie_soldier.json @@ -37,7 +37,7 @@ "distribution": [ { "item": "LAW_Packed", "prob": 20 }, { "item": "e_tool", "prob": 100 }, - { "item": "mask_gas", "prob": 100, "damage-min": 1, "damage-max": 4 }, + { "item": "mask_gas", "prob": 100, "charges-min": 1, "charges-max": 100, "damage-min": 1, "damage-max": 4 }, { "item": "two_way_radio", "prob": 50 }, { "item": "c4", "prob": 10 } ], @@ -47,7 +47,7 @@ { "group": "drugs_soldier", "prob": 20 }, { "group": "mil_food", "prob": 15 }, { "item": "id_military", "prob": 5 }, - { "item": "cash_card", "charges-min": 0, "charges-max": 50000 }, + { "item": "cash_card", "prob": 10, "charges-min": 0, "charges-max": 50000 }, { "group": "misc_smoking", "prob": 30 } ] }, diff --git a/data/json/monstergroups.json b/data/json/monstergroups.json index a29b281d31e98..8890072271a56 100644 --- a/data/json/monstergroups.json +++ b/data/json/monstergroups.json @@ -1770,6 +1770,10 @@ "monsters": [ { "monster": "mon_beaver", "freq": 30, "cost_multiplier": 10, "pack_size": [ 1, 3 ] }, { "monster": "mon_beaver", "freq": 60, "cost_multiplier": 10, "pack_size": [ 1, 3 ], "conditions": [ "NIGHT" ] }, + { "monster": "mon_beaver", "freq": 30, "cost_multiplier": 10, "pack_size": [ 1, 3 ], "starts": 72 }, + { "monster": "mon_beaver", "freq": 30, "cost_multiplier": 10, "pack_size": [ 1, 3 ], "starts": 168 }, + { "monster": "mon_beaver", "freq": 30, "cost_multiplier": 10, "pack_size": [ 1, 3 ], "starts": 672 }, + { "monster": "mon_beaver", "freq": 30, "cost_multiplier": 10, "pack_size": [ 1, 3 ], "starts": 2160 }, { "monster": "mon_mink", "freq": 10, diff --git a/data/json/monsters.json b/data/json/monsters.json index 676a814b5c35f..0052eecfef3ef 100644 --- a/data/json/monsters.json +++ b/data/json/monsters.json @@ -4861,6 +4861,36 @@ "FILTHY" ] }, + { + "id": "mon_zombeaver", + "type": "MONSTER", + "name": "zombeaver", + "description": "This wall-eyed beast has a large wound on its side, and ribs with some flesh on them are seen through it. The most prominent feature of this abomination is large incisors in its ominously open mouth, strange black goo is oozing out of it. Seems like it isn't interested in trees anymore and is looking for some warm fresh to feed.", + "default_faction": "zombie", + "bodytype": "bear", + "species": [ "ZOMBIE" ], + "volume": "20250 ml", + "weight": 20000, + "hp": 30, + "speed": 80, + "material": [ "flesh" ], + "symbol": "r", + "color": "green", + "aggression": 100, + "morale": 100, + "melee_skill": 1, + "melee_dice": 1, + "melee_dice_sides": 6, + "melee_cut": 6, + "dodge": 2, + "vision_day": 30, + "vision_night": 5, + "harvest": "zombie_leather", + "anger_triggers": [ "PLAYER_CLOSE", "HURT" ], + "fear_triggers": [ "FIRE" ], + "death_function": [ "NORMAL" ], + "flags": [ "SEES", "HEARS", "SMELLS", "STUMBLES", "WARM", "BASHES", "POISON", "NO_BREATHE", "REVIVES", "FILTHY" ] + }, { "id": "mon_zoose", "type": "MONSTER", diff --git a/data/json/monsters/zed_soldiers.json b/data/json/monsters/zed_soldiers.json index 39d5bcdee7a02..762244449eba5 100644 --- a/data/json/monsters/zed_soldiers.json +++ b/data/json/monsters/zed_soldiers.json @@ -463,6 +463,7 @@ "POISON", "BLEED", "ACIDPROOF", + "ELECTRIC", "NO_BREATHE", "REVIVES", "FILTHY" diff --git a/data/json/morale_types.json b/data/json/morale_types.json index 2be3215567840..53124d5931786 100644 --- a/data/json/morale_types.json +++ b/data/json/morale_types.json @@ -344,11 +344,26 @@ "type": "morale_type", "text": "Dug out a grave" }, + { + "id": "morale_funeral", + "type": "morale_type", + "text": "Conducted a funeral" + }, { "id": "morale_tree_communion", "type": "morale_type", "text": "Communed with the trees" }, + { + "id": "morale_accomplishment", + "type": "morale_type", + "text": "Accomplishment" + }, + { + "id": "morale_failure", + "type": "morale_type", + "text": "Failure" + }, { "id": "morale_perm_debug", "type": "morale_type", diff --git a/data/json/mutation_category.json b/data/json/mutation_category.json index e1d5bccefe70f..6897cf09bcbf0 100644 --- a/data/json/mutation_category.json +++ b/data/json/mutation_category.json @@ -12,6 +12,8 @@ "iv_fatigue": 20, "iv_sound": true, "iv_sound_message": "yourself scream in agony!", + "iv_sound_id": "shout", + "iv_sound_variant": "scream", "iv_noise": 15, "iv_sleep": true, "iv_sleep_message": "You writhe and collapse to the ground.", @@ -73,6 +75,8 @@ "iv_message": "You squeak as the shot hits you.", "iv_sound": true, "iv_sound_message": "eep!", + "iv_sound_id": "shout", + "iv_sound_variant": "squeak", "//": "Sound of ratlike squeaking", "iv_noise": 1, "memorial_message": "Found that survival *is* everything." @@ -217,6 +221,8 @@ "iv_morale_max": -200, "iv_sound": true, "iv_sound_message": "yourself roar in agony!", + "iv_sound_id": "shout", + "iv_sound_variant": "roar", "iv_noise": 25, "iv_sleep": true, "iv_sleep_dur": 800, diff --git a/data/json/mutations.json b/data/json/mutations.json index c92ca9761839e..ada82543f5a10 100644 --- a/data/json/mutations.json +++ b/data/json/mutations.json @@ -6121,6 +6121,16 @@ "valid": false, "purifiable": false }, + { + "type": "mutation", + "id": "HALLUCINATION", + "name": "Hallucination", + "points": 0, + "valid": false, + "description": "NPC trait that makes them be hallucination. It is a bug if you have it.", + "player_display": false, + "threshold": true + }, { "type": "mutation", "id": "DEBUG_NIGHTVISION", diff --git a/data/json/npcs/NC_CYBORG.json b/data/json/npcs/NC_CYBORG.json index 8cee1897b5f1d..140e44dfaad9b 100644 --- a/data/json/npcs/NC_CYBORG.json +++ b/data/json/npcs/NC_CYBORG.json @@ -2,11 +2,12 @@ { "type": "item_group", "id": "NC_CYBORG_worn", - "items": [ [ "subsuit_xl", 100 ] ] + "subtype": "collection", + "entries": [ { "item": "subsuit_xl" }, { "item": "footrags" }, { "item": "briefs" } ] }, { "type": "item_group", - "id": "NC_CYBORG_feet", - "items": [ [ "footrags", 100 ] ] + "id": "NC_CYBORG_carried", + "items": [ [ "hat_noise_cancelling", 100 ] ] } ] diff --git a/data/json/npcs/TALK_COMMON_ALLY.json b/data/json/npcs/TALK_COMMON_ALLY.json index 11c4f3d73d9d1..e246f81c0e28d 100644 --- a/data/json/npcs/TALK_COMMON_ALLY.json +++ b/data/json/npcs/TALK_COMMON_ALLY.json @@ -56,11 +56,20 @@ "success": { "topic": "TALK_DENY_TRAIN" }, "failure": { "topic": "TALK_TRAIN_PERSUADE" } }, + { + "text": "Let's trade items", + "topic": "TRADE_HALLU", + "condition": { "npc_has_trait": "HALLUCINATION" }, + "switch": true, + "default": false + }, { "text": "Let's trade items.", "condition": { "not": "is_by_radio" }, "topic": "TALK_FRIEND", - "effect": "start_trade" + "effect": "start_trade", + "switch": true, + "default": true }, { "text": "Guard this position.", @@ -145,11 +154,11 @@ }, { "and": [ - { "npc_override": "avoid_combat", "yes": " OVERRIDE: ", "no": " " }, + { "npc_override": "follow_close", "yes": " OVERRIDE: ", "no": " " }, { - "npc_rule": "avoid_combat", - "yes": " will follow you instead of fighting.", - "no": " will fight instead of following you." + "npc_rule": "follow_close", + "yes": "", + "no": "" } ] }, @@ -163,12 +172,12 @@ { "npc_override": "use_silent", "yes": " OVERRIDE: ", "no": " " }, { "npc_rule": "use_silent", - "yes": " will use silenced ranged weapons.", - "no": " will use ranged weapons." + "yes": "", + "no": "" } ] }, - "no": " will not use ranged weapons." + "no": "" } ] }, @@ -177,8 +186,8 @@ { "npc_override": "use_grenades", "yes": " OVERRIDE: ", "no": " " }, { "npc_rule": "use_grenades", - "yes": " will use grenades.", - "no": " will not use grenades." + "yes": "", + "no": "" } ] }, @@ -187,8 +196,8 @@ { "npc_override": "avoid_friendly_fire", "yes": " OVERRIDE: ", "no": " " }, { "npc_rule": "avoid_friendly_fire", - "yes": " will avoid shooting if allies are in the line of fire.", - "no": " will shoot even if allies are in the line of fire." + "yes": "", + "no": "" } ] }, @@ -197,8 +206,8 @@ { "npc_override": "hold_the_line", "yes": " OVERRIDE: ", "no": " " }, { "npc_rule": "hold_the_line", - "yes": " will hold the line by not moving into doorways or obstructions adjacent to you.", - "no": " will move freely to attack enemies." + "yes": "", + "no": "" } ] }, @@ -210,12 +219,12 @@ { "text": "Change your aiming rules...", "topic": "TALK_AIM_RULES" }, { "truefalsetext": { - "condition": { "npc_rule": "avoid_combat" }, - "true": "Stand and fight.", - "false": "If you see me running away, you follow me." + "condition": { "npc_rule": "follow_close" }, + "true": "Move freely as you need to.", + "false": "Stick close to me, no matter what." }, "topic": "TALK_COMBAT_COMMANDS", - "effect": { "toggle_npc_rule": "avoid_combat" } + "effect": { "toggle_npc_rule": "follow_close" } }, { "truefalsetext": { @@ -396,8 +405,8 @@ { "npc_override": "allow_pick_up", "yes": "OVERRIDE: " }, { "npc_rule": "allow_pick_up", - "yes": { "has_pickup_list": "* will pick up items from the whitelist.", "no": "* will pick up all items." }, - "no": "* will not pick up items." + "yes": { "has_pickup_list": "", "no": "" }, + "no": "" } ] }, @@ -406,8 +415,8 @@ { "npc_override": "allow_bash", "yes": " OVERRIDE: ", "no": " " }, { "npc_rule": "allow_bash", - "yes": " will bash down obstacles.", - "no": " will not bash down obstacles." + "yes": "", + "no": "" } ] }, @@ -416,8 +425,8 @@ { "npc_override": "allow_sleep", "yes": " OVERRIDE: ", "no": " " }, { "npc_rule": "allow_sleep", - "yes": " will sleep when tired.", - "no": " will sleep only when exhausted." + "yes": "", + "no": "" } ] }, @@ -426,8 +435,8 @@ { "npc_override": "allow_complain", "yes": " OVERRIDE: ", "no": " " }, { "npc_rule": "allow_complain", - "yes": " will complain about wounds and needs.", - "no": " will only complain in an emergency." + "yes": "", + "no": "" } ] }, @@ -436,8 +445,8 @@ { "npc_override": "allow_pulp", "yes": " OVERRIDE: ", "no": " " }, { "npc_rule": "allow_pulp", - "yes": " will smash nearby zombie corpses.", - "no": " will leave zombie corpses intact." + "yes": "", + "no": "" } ] }, @@ -446,8 +455,8 @@ { "npc_override": "close_doors", "yes": " OVERRIDE: ", "no": " " }, { "npc_rule": "close_doors", - "yes": " will close doors behind themselves.", - "no": " will leave doors open." + "yes": "", + "no": "" } ] }, @@ -456,8 +465,8 @@ { "npc_override": "ignore_noise", "yes": " OVERRIDE: ", "no": " " }, { "npc_rule": "ignore_noise", - "yes": " will not investigate noises.", - "no": " will investigate noises coming from unseen places." + "yes": "", + "no": "" } ] }, @@ -466,8 +475,18 @@ { "npc_override": "avoid_doors", "yes": " OVERRIDE: ", "no": " " }, { "npc_rule": "avoid_doors", - "yes": " will not go places that require opening a door.", - "no": " will open doors to reach a destination." + "yes": "", + "no": "" + } + ] + }, + { + "and": [ + { "npc_override": "forbid_engage", "yes": " OVERRIDE: ", "no": " " }, + { + "npc_rule": "forbid_engage", + "yes": "", + "no": "" } ] } @@ -616,5 +635,11 @@ "effect": [ "morale_chat_activity", { "npc_add_effect": "asked_to_socialize", "duration": 7000 } ] } ] + }, + { + "id": "TRADE_HALLU", + "type": "talk_topic", + "dynamic_line": "", + "responses": [ { "text": "Fair enough.", "topic": "TALK_NONE" } ] } ] diff --git a/data/json/npcs/TALK_COMMON_GREET.json b/data/json/npcs/TALK_COMMON_GREET.json index 2afb3a9c7a276..25e45700c1281 100644 --- a/data/json/npcs/TALK_COMMON_GREET.json +++ b/data/json/npcs/TALK_COMMON_GREET.json @@ -5,7 +5,14 @@ "responses": [ { "text": "Another survivor! We should travel together.", "topic": "TALK_SUGGEST_FOLLOW" }, { "text": "What are you doing?", "topic": "TALK_DESCRIBE_MISSION" }, - { "text": "Care to trade?", "topic": "TALK_DONE", "effect": "start_trade" } + { + "text": "Care to trade?", + "topic": "TRADE_HALLU", + "condition": { "npc_has_trait": "HALLUCINATION" }, + "switch": true, + "default": false + }, + { "text": "Care to trade?", "topic": "TALK_DONE", "effect": "start_trade", "switch": true, "default": false } ] }, { diff --git a/data/json/npcs/TALK_FACTION_CAMP.json b/data/json/npcs/TALK_FACTION_CAMP.json index a91635e0c5e31..04c16dafd91c7 100644 --- a/data/json/npcs/TALK_FACTION_CAMP.json +++ b/data/json/npcs/TALK_FACTION_CAMP.json @@ -6,11 +6,19 @@ "responses": [ { "text": "Tell me how faction camps work.", "topic": "TALK_CAMP_TUTORIAL_INTRO" }, { "text": "Tell me how faction camps have changed.", "topic": "TALK_CAMP_TUTORIAL_CHANGES" }, + { + "text": "I want you to build a camp here.", + "topic": "TALK_HALLU_CAMP", + "condition": { "npc_has_trait": "HALLUCINATION" }, + "switch": true + }, { "text": "I want you to build a camp here.", "topic": "TALK_DONE", "effect": "start_camp", - "condition": { "u_at_om_location": "field" } + "condition": { "u_at_om_location": "field" }, + "switch": true, + "default": true }, { "text": "Show me what needs to be done at the camp.", @@ -121,5 +129,11 @@ }, { "text": "See you around.", "topic": "TALK_DONE" } ] + }, + { + "id": "TALK_HALLU_CAMP", + "type": "talk_topic", + "dynamic_line": "", + "responses": [ { "text": "Fair enough.", "topic": "TALK_NONE" } ] } ] diff --git a/data/json/npcs/TALK_FREE_MERCHANT.json b/data/json/npcs/TALK_FREE_MERCHANT.json index a1451af670588..386ccb2a35d92 100644 --- a/data/json/npcs/TALK_FREE_MERCHANT.json +++ b/data/json/npcs/TALK_FREE_MERCHANT.json @@ -2,7 +2,10 @@ { "type": "talk_topic", "id": "TALK_FREE_MERCHANT_STOCKS_NEW", - "dynamic_line": "I oversee the food stocks for the center. There was significant looting during the panic when we first arrived so most of our food was carried away. I manage what we have left and do everything I can to increase our supplies. Rot and mold are more significant in the damp basement so I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine.", + "dynamic_line": { + "gendered_line": "I oversee the food stocks for the center. There was significant looting during the panic when we first arrived so most of our food was carried away. I manage what we have left and do everything I can to increase our supplies. Rot and mold are more significant in the damp basement so I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine.", + "relevant_genders": [ "npc" ] + }, "responses": [ { "text": "Why cornmeal, jerky, and fruit wine?", "topic": "TALK_FREE_MERCHANT_STOCKS_WHY" } ] }, { diff --git a/data/json/npcs/classes.json b/data/json/npcs/classes.json index e4834b8b408c6..fe6dc658c4c78 100644 --- a/data/json/npcs/classes.json +++ b/data/json/npcs/classes.json @@ -324,6 +324,17 @@ [ "ANTENNAE", 100 ] ] }, + { + "type": "npc_class", + "id": "NC_HALLU", + "name": "Real Person", + "job_description": "I'm just wandering, like a totally real and normal NP... Person!", + "traits": [ { "group": "BG_survival_story_UNIVERSAL" }, { "group": "NPC_starting_traits" }, [ "HALLUCINATION", 100 ] ], + "common": false, + "skills": [ + { "skill": "ALL", "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 4, 2 ] }, { "rng": [ -4, -1 ] } ] } ] } } + ] + }, { "type": "npc_class", "id": "NC_SURVIVOR_CHEF", @@ -350,8 +361,9 @@ "skills": [ { "skill": "ALL", "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 4, 2 ] }, { "rng": [ -4, -1 ] } ] } ] } } ], + "common": false, "worn_override": "NC_CYBORG_worn", - "carry_override": "EMPTY_GROUP", + "carry_override": "NC_CYBORG_carried", "weapon_override": "EMPTY_GROUP", "bionics": [ { "id": "bio_ankles", "chance": 100 }, diff --git a/data/json/npcs/destination_locations.json b/data/json/npcs/destination_locations.json index 1bee5743db836..f9218d44ec97e 100644 --- a/data/json/npcs/destination_locations.json +++ b/data/json/npcs/destination_locations.json @@ -2,31 +2,84 @@ { "type": "overmap_location", "id": "source_of_anything", - "terrains": [ "house", "s_gas", "s_pharm", "s_hardware", "s_sports", "s_liquor", "s_gun", "s_library" ] + "terrains": [ + "house", + "s_gas", + "s_pharm", + "s_hardware", + "s_sports", + "s_liquor", + "s_gun", + "s_library", + "megastore_entrance", + "fire_station", + "mil_surplus", + "mansion_entry" + ] }, { "type": "overmap_location", "id": "source_of_ammo", - "terrains": [ "house", "s_gun" ] + "terrains": [ "house", "s_gun", "mil_surplus", "mansion_entry" ] }, { "type": "overmap_location", "id": "source_of_gun", - "terrains": [ "s_gun" ] + "terrains": [ "s_gun", "pawn", "hdwr_large_entrance", "mansion_entry" ] }, { "type": "overmap_location", "id": "source_of_weapon", - "terrains": [ "s_gun", "s_sports", "s_hardware" ] + "terrains": [ "s_gun", "s_sports", "s_hardware", "megastore_entrance", "hdwr_large_entrance", "fire_station", "mansion_entry" ] }, { "type": "overmap_location", "id": "source_of_drink", - "terrains": [ "s_gas", "s_pharm", "s_liquor", "s_grocery" ] + "terrains": [ + "s_gas", + "s_pharm", + "s_pharm_1", + "s_restaurant", + "s_restaurant_1", + "s_restaurant_2", + "s_restaurant_3", + "s_restaurant_coffee", + "s_restaurant_coffee_1", + "s_restaurant_coffee_2", + "s_teashop", + "s_teashop_1", + "bar", + "bar_1", + "s_liquor", + "s_grocery", + "megastore_entrance", + "mansion_entry" + ] }, { "type": "overmap_location", "id": "source_of_food", - "terrains": [ "s_grocery" ] + "terrains": [ + "s_grocery", + "farm_1", + "2farm_1", + "dairy_farm_NW", + "sugar_house", + "orchard_stall", + "s_restaurant", + "s_restaurant_1", + "s_restaurant_2", + "s_restaurant_3", + "s_restaurant_fast", + "s_restaurant_fast_1", + "s_butcher", + "s_butcher_1", + "s_butcher_2", + "s_pizza_parlor", + "s_pizza_parlor_1", + "megastore_entrance", + "bakery", + "mansion_entry" + ] } ] diff --git a/data/json/npcs/factions.json b/data/json/npcs/factions.json index cf3056dffc6e1..75bf371eb1e97 100644 --- a/data/json/npcs/factions.json +++ b/data/json/npcs/factions.json @@ -56,6 +56,25 @@ "cult": 0, "description": "A conglomeration of entrepreneurs and businessmen that stand together to hammer-out an existence through trade and industry." }, + { + "type": "faction", + "id": "lobby_beggars", + "name": "The Beggars in the Lobby", + "likes_u": 0, + "respects_u": 0, + "known_by_u": false, + "size": 5, + "power": 0, + "combat_ability": 0, + "food_supply": 1152, + "wealth": 100, + "good": 1, + "strength": 0, + "sneak": 0, + "crime": -1, + "cult": 0, + "description": "A collection of mentally and physically disadvantaged survivors who beg for food in the Evac Center lobby." + }, { "type": "faction", "id": "tacoma_commune", @@ -112,5 +131,24 @@ "crime": 1, "cult": -1, "description": "The largest gang of hooligans and bandits that preys upon other survivors. Even if you have no gear, there is always a need for slaves and fresh meat." + }, + { + "type": "faction", + "id": "gods_community", + "name": "God's Community", + "likes_u": 35, + "respects_u": 35, + "known_by_u": false, + "size": 20, + "power": 50, + "combat_ability": 50, + "food_supply": 20000, + "wealth": 10000, + "good": 1, + "strength": 0, + "sneak": 0, + "crime": -1, + "cult": 1, + "description": "A small group of churchgoers that formed a community in the woods. They welcome anyone in their faction, but hate the unnatural." } ] diff --git a/data/json/npcs/npc.json b/data/json/npcs/npc.json index 513e0845d54da..77823694baa63 100644 --- a/data/json/npcs/npc.json +++ b/data/json/npcs/npc.json @@ -421,7 +421,7 @@ "attitude": 0, "mission": 7, "chat": "TALK_REFUGEE_BEGGAR_1", - "faction": "wasteland_scavengers" + "faction": "lobby_beggars" }, { "type": "npc", @@ -434,7 +434,7 @@ "attitude": 0, "mission": 7, "chat": "TALK_REFUGEE_BEGGAR_2", - "faction": "wasteland_scavengers" + "faction": "lobby_beggars" }, { "type": "npc", @@ -447,7 +447,7 @@ "attitude": 0, "mission": 7, "chat": "TALK_REFUGEE_BEGGAR_3", - "faction": "wasteland_scavengers" + "faction": "lobby_beggars" }, { "type": "npc", @@ -460,7 +460,7 @@ "attitude": 0, "mission": 7, "chat": "TALK_REFUGEE_BEGGAR_4", - "faction": "wasteland_scavengers" + "faction": "lobby_beggars" }, { "type": "npc", @@ -473,7 +473,7 @@ "attitude": 0, "mission": 7, "chat": "TALK_REFUGEE_BEGGAR_5", - "faction": "wasteland_scavengers" + "faction": "lobby_beggars" }, { "type": "npc", diff --git a/data/json/npcs/talk_tags.json b/data/json/npcs/talk_tags.json index 530c2ad957ef1..a6a05bcb16482 100644 --- a/data/json/npcs/talk_tags.json +++ b/data/json/npcs/talk_tags.json @@ -1,4 +1,52 @@ [ + { + "type": "snippet", + "category": "", + "text": [ + "I hate thorazine!", + "Arg thorazine, don't touch it!", + "Thorazine is bad for you, you know.", + "Thorazine is poison.", + "You don't need thorazine, it's limiting you.", + "Thorazine... That's what 'they' use to keep you tame." + ] + }, + { + "type": "snippet", + "category": "", + "text": [ + "Pink tablets! I love those!", + "Hey there's some pink tablets, take some!", + "Look, some LSD, let's play cataclysm: fun times ahead!", + "Say yes to LSD, say yes to Fun!", + "Perfect, those pink tablets will keep us going, take some!", + "You know what would make all this more bearable? Pink Tablets!" + ] + }, + { + "type": "snippet", + "category": "", + "text": [ + "No thanks, I'm good.", + "I don't want to trade with you.", + "I have the best stuff. And I'm keeping it!", + "No trading, that's my rule.", + "I'm not interested.", + "How about no?" + ] + }, + { + "type": "snippet", + "category": "", + "text": [ + "No thanks, I really don't feel like it.", + "Well, I would, but I don't want to right now.", + "I have better things to do.", + "I'll pass, it's too much work.", + "Who put you in charge of what I do?", + "Great idea! Call me when you find SOMEONE ELSE to do it." + ] + }, { "type": "snippet", "category": "", @@ -941,5 +989,165 @@ "Put the fire out! Put it out!", "Fire bad! !" ] + }, + { + "type": "snippet", + "category": "", + "text": [ "child", "my child", "dear", "my dear", "friend", "survivor" ] + }, + { + "type": "snippet", + "category": "", + "text": " will use ranged weapons." + }, + { + "type": "snippet", + "category": "", + "text": " will not use ranged weapons." + }, + { + "type": "snippet", + "category": "", + "text": " will use grenades." + }, + { + "type": "snippet", + "category": "", + "text": " will not use grenades." + }, + { + "type": "snippet", + "category": "", + "text": " will only use silenced ranged weapons." + }, + { + "type": "snippet", + "category": "", + "text": " will use any ranged weapons." + }, + { + "type": "snippet", + "category": "", + "text": " will avoid shooting if allies are in the line of fire." + }, + { + "type": "snippet", + "category": "", + "text": " will shoot even if allies are in the line of fire." + }, + { + "type": "snippet", + "category": "", + "text": "* will pick up items." + }, + { + "type": "snippet", + "category": "", + "text": "* will only pick up items from the whitelist." + }, + { + "type": "snippet", + "category": "", + "text": "* will not pick up items." + }, + { + "type": "snippet", + "category": "", + "text": " will bash down obstacles." + }, + { + "type": "snippet", + "category": "", + "text": " will not bash down obstacles." + }, + { + "type": "snippet", + "category": "", + "text": " will sleep when tired." + }, + { + "type": "snippet", + "category": "", + "text": " will stay awake as long as possible." + }, + { + "type": "snippet", + "category": "", + "text": " will complain about wounds and needs." + }, + { + "type": "snippet", + "category": "", + "text": " will only complain in an emergency." + }, + { + "type": "snippet", + "category": "", + "text": " will smash nearby zombie corpses." + }, + { + "type": "snippet", + "category": "", + "text": " will leave zombie corpses intact." + }, + { + "type": "snippet", + "category": "", + "text": " will close doors after passing through." + }, + { + "type": "snippet", + "category": "", + "text": " will not close doors." + }, + { + "type": "snippet", + "category": "", + "text": " will follow you closely even when threatened." + }, + { + "type": "snippet", + "category": "", + "text": " will move freely as needed." + }, + { + "type": "snippet", + "category": "", + "text": " will not go places that require opening a door." + }, + { + "type": "snippet", + "category": "", + "text": " will open doors to reach a destination." + }, + { + "type": "snippet", + "category": "", + "text": " will hold the line by not moving into doorways or obstructions adjacent to you." + }, + { + "type": "snippet", + "category": "", + "text": " will move freely to attack enemies." + }, + { + "type": "snippet", + "category": "", + "text": " will not investigate noises." + }, + { + "type": "snippet", + "category": "", + "text": " will investigate noises from unseen places." + }, + { + "type": "snippet", + "category": "", + "text": " will not engage enemies if avoidable." + }, + { + "type": "snippet", + "category": "", + "text": " will follow normal engagement rules." } ] diff --git a/data/json/overmap/multitile_city_buildings.json b/data/json/overmap/multitile_city_buildings.json index a9e117c9a3489..a19ee48757bd7 100644 --- a/data/json/overmap/multitile_city_buildings.json +++ b/data/json/overmap/multitile_city_buildings.json @@ -15,6 +15,16 @@ { "point": [ 0, 0, -1 ], "overmap": "basement" } ] }, + { + "type": "city_building", + "id": "furniture", + "locations": [ "land" ], + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "furniture_north" }, + { "point": [ 0, 0, 1 ], "overmap": "furniture_roof_north" }, + { "point": [ 0, 0, 2 ], "overmap": "furniture_upper_roof_north" } + ] + }, { "type": "city_building", "id": "church", @@ -1342,6 +1352,21 @@ "locations": [ "land" ], "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "s_pharm_1_north" }, { "point": [ 0, 0, 1 ], "overmap": "s_pharm_roof_1_north" } ] }, + { + "type": "city_building", + "id": "homeless_shelter", + "locations": [ "land", "swamp" ], + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "homeless_0_0_0_north" }, + { "point": [ 0, 1, 0 ], "overmap": "homeless_1_0_0_north" }, + { "point": [ 0, 0, 1 ], "overmap": "homeless_0_0_1_north" }, + { "point": [ 0, 1, 1 ], "overmap": "homeless_1_0_1_north" }, + { "point": [ 0, 0, 2 ], "overmap": "homeless_0_0_2_north" }, + { "point": [ 0, 1, 2 ], "overmap": "homeless_1_0_2_north" }, + { "point": [ 0, 0, 3 ], "overmap": "homeless_0_0_roof_north" }, + { "point": [ 0, 1, 3 ], "overmap": "homeless_1_0_roof_north" } + ] + }, { "type": "city_building", "id": "pool", @@ -1371,5 +1396,16 @@ "id": "pool_4", "locations": [ "land" ], "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "pool_4_north" }, { "point": [ 0, 0, 1 ], "overmap": "pool_roof_4_north" } ] + }, + { + "type": "city_building", + "id": "bus_station", + "locations": [ "land" ], + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "bus_stat_0_north" }, + { "point": [ 0, 0, 1 ], "overmap": "bus_stat_0_roof_north" }, + { "point": [ 1, 0, 0 ], "overmap": "bus_stat_1_north" }, + { "point": [ 1, 0, 1 ], "overmap": "bus_stat_1_roof_north" } + ] } ] diff --git a/data/json/overmap/special_locations.json b/data/json/overmap/special_locations.json index 2b9708b55acbb..f6ee7a30cf110 100644 --- a/data/json/overmap/special_locations.json +++ b/data/json/overmap/special_locations.json @@ -60,36 +60,6 @@ "id": "road", "terrains": [ "hiway_ns", "hiway_ew", "ranch_camp_77", "necropolis_a_11", "road", "road_nesw_manhole" ] }, - { - "type": "overmap_location", - "id": "need_none", - "terrains": [ "house", "s_gas", "s_pharm", "s_hardware", "s_sports", "s_liquor", "s_gun", "s_library" ] - }, - { - "type": "overmap_location", - "id": "need_ammo", - "terrains": [ "house", "s_gun" ] - }, - { - "type": "overmap_location", - "id": "need_gun", - "terrains": [ "s_gun" ] - }, - { - "type": "overmap_location", - "id": "need_weapon", - "terrains": [ "s_gun", "s_sports", "s_hardware" ] - }, - { - "type": "overmap_location", - "id": "need_drink", - "terrains": [ "s_gas", "s_pharm", "s_liquor", "s_grocery" ] - }, - { - "type": "overmap_location", - "id": "need_food", - "terrains": [ "s_grocery" ] - }, { "type": "overmap_location", "id": "forest_trail", diff --git a/data/json/overmap/specials.json b/data/json/overmap/specials.json index 699ff35d62fb5..5dcd5a7e56c5f 100644 --- a/data/json/overmap/specials.json +++ b/data/json/overmap/specials.json @@ -1807,15 +1807,33 @@ { "point": [ 0, 0, 0 ], "overmap": "campground_1a_north" }, { "point": [ 1, 0, 0 ], "overmap": "campground_1b_north" }, { "point": [ 0, 1, 0 ], "overmap": "campground_2a_north" }, - { "point": [ 1, 1, 0 ], "overmap": "campground_2b_north" } + { "point": [ 1, 1, 0 ], "overmap": "campground_2b_north" }, + { "point": [ 1, 0, 1 ], "overmap": "campground_roof_north" } ], - "connections": [ { "point": [ 1, -1, 0 ], "terrain": "road" } ], + "connections": [ { "point": [ 1, -1, 0 ], "terrain": "road", "connection": "local_road", "from": [ 1, 0, 0 ] } ], "locations": [ "forest" ], "city_distance": [ 10, -1 ], "city_sizes": [ 3, 12 ], "occurrences": [ 0, 5 ], "flags": [ "CLASSIC" ] }, + { + "type": "overmap_special", + "id": "campground_npc", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "campground_1a_npc_north" }, + { "point": [ 1, 0, 0 ], "overmap": "campground_1b_npc_north" }, + { "point": [ 0, 1, 0 ], "overmap": "campground_2a_npc_north" }, + { "point": [ 1, 1, 0 ], "overmap": "campground_2b_npc_north" }, + { "point": [ 1, 0, 1 ], "overmap": "campground_roof_npc_north" } + ], + "connections": [ { "point": [ 1, -1, 0 ], "terrain": "road", "connection": "local_road", "from": [ 1, 0, 0 ] } ], + "locations": [ "forest" ], + "city_distance": [ 10, -1 ], + "city_sizes": [ 3, 12 ], + "occurrences": [ 3, 100 ], + "flags": [ "CLASSIC" ] + }, { "type": "overmap_special", "id": "desolate barn", diff --git a/data/json/overmap_terrain.json b/data/json/overmap_terrain.json index 862609c08b976..a0d4baba7a953 100644 --- a/data/json/overmap_terrain.json +++ b/data/json/overmap_terrain.json @@ -390,6 +390,66 @@ "extras": "field", "mondensity": 2 }, + { + "type": "overmap_terrain", + "id": "campground_roof", + "name": "campground roof", + "sym": "+", + "color": "i_green", + "see_cost": 5, + "extras": "field", + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "campground_1a_npc", + "name": "campground", + "sym": "+", + "color": "i_green", + "see_cost": 5, + "extras": "field", + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "campground_1b_npc", + "name": "campground", + "sym": "+", + "color": "i_green", + "see_cost": 5, + "extras": "field", + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "campground_2a_npc", + "name": "campground", + "sym": "+", + "color": "i_green", + "see_cost": 5, + "extras": "field", + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "campground_2b_npc", + "name": "campground", + "sym": "+", + "color": "i_green", + "see_cost": 5, + "extras": "field", + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "campground_roof_npc", + "name": "campground roof", + "sym": "+", + "color": "i_green", + "see_cost": 5, + "extras": "field", + "mondensity": 2 + }, { "type": "overmap_terrain", "id": "desolatebarn", diff --git a/data/json/overmap_terrain_commercial.json b/data/json/overmap_terrain_commercial.json index 2f03148cad2b6..1fb1af176f79f 100644 --- a/data/json/overmap_terrain_commercial.json +++ b/data/json/overmap_terrain_commercial.json @@ -701,6 +701,20 @@ "copy-from": "generic_city_building", "color": "brown" }, + { + "type": "overmap_terrain", + "id": "furniture_roof", + "name": "furniture store roof", + "copy-from": "generic_city_building", + "color": "brown" + }, + { + "type": "overmap_terrain", + "id": "furniture_upper_roof", + "name": "furniture store roof", + "copy-from": "generic_city_building", + "color": "brown" + }, { "type": "overmap_terrain", "id": "s_music", diff --git a/data/json/overmap_terrain_public_institutional.json b/data/json/overmap_terrain_public_institutional.json index 4cb664c00c6c4..6e997f0a5ee1f 100644 --- a/data/json/overmap_terrain_public_institutional.json +++ b/data/json/overmap_terrain_public_institutional.json @@ -525,5 +525,79 @@ "copy-from": "generic_city_building", "sym": "F", "color": "red" + }, + { + "type": "overmap_terrain", + "id": "homeless_0_0_0", + "name": "homeless shelter", + "sym": "H", + "color": "green", + "see_cost": 2, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "homeless_1_0_0", + "name": "homeless shelter", + "sym": "H", + "color": "green", + "see_cost": 2, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "homeless_0_0_1", + "name": "homeless shelter", + "sym": "H", + "color": "green", + "see_cost": 2, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "homeless_1_0_1", + "name": "homeless shelter", + "sym": "H", + "color": "green", + "see_cost": 2, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "homeless_0_0_2", + "name": "homeless shelter", + "sym": "H", + "color": "green", + "see_cost": 2, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "homeless_1_0_2", + "name": "homeless shelter", + "sym": "H", + "color": "green", + "see_cost": 2, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "homeless_0_0_roof", + "name": "homeless shelter", + "sym": "H", + "color": "green", + "see_cost": 2, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "homeless_1_0_roof", + "name": "homeless shelter", + "sym": "H", + "color": "green", + "see_cost": 2, + "mondensity": 2 } ] diff --git a/data/json/overmap_terrain_transportation.json b/data/json/overmap_terrain_transportation.json index 62a122e8cdde6..5db33aceeba26 100644 --- a/data/json/overmap_terrain_transportation.json +++ b/data/json/overmap_terrain_transportation.json @@ -541,5 +541,43 @@ "color": "i_light_cyan", "see_cost": 5, "extras": "build" + }, + { + "type": "overmap_terrain", + "id": "bus_stat_0", + "name": "bus station", + "sym": "B", + "color": "i_light_cyan", + "see_cost": 2, + "extras": "build", + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "bus_stat_1", + "name": "bus station", + "sym": "B", + "color": "i_light_cyan", + "see_cost": 2, + "extras": "build", + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "bus_stat_0_roof", + "name": "bus station roof", + "sym": "B", + "color": "i_light_cyan", + "see_cost": 2, + "extras": "build" + }, + { + "type": "overmap_terrain", + "id": "bus_stat_1_roof", + "name": "bus station roof", + "sym": "B", + "color": "i_light_cyan", + "see_cost": 2, + "extras": "build" } ] diff --git a/data/json/player_activities.json b/data/json/player_activities.json index 3508ac2ce10a7..b5d385bf6c424 100644 --- a/data/json/player_activities.json +++ b/data/json/player_activities.json @@ -165,6 +165,13 @@ "based_on": "neither", "no_resume": true }, + { + "id": "ACT_HAND_CRANK", + "type": "activity_type", + "stop_phrase": "Stop cranking?", + "rooted": true, + "based_on": "time" + }, { "id": "ACT_VIBE", "type": "activity_type", @@ -489,9 +496,33 @@ { "id": "ACT_EAT_MENU", "type": "activity_type", + "stop_phrase": "Stop consuming?", + "suspendable": false, + "based_on": "neither", + "no_resume": true + }, + { + "id": "ACT_CONSUME_FOOD_MENU", + "type": "activity_type", "stop_phrase": "Stop eating?", "suspendable": false, "based_on": "neither", "no_resume": true + }, + { + "id": "ACT_CONSUME_DRINK_MENU", + "type": "activity_type", + "stop_phrase": "Stop drinking?", + "suspendable": false, + "based_on": "neither", + "no_resume": true + }, + { + "id": "ACT_CONSUME_MEDS_MENU", + "type": "activity_type", + "stop_phrase": "Stop using drugs?", + "suspendable": false, + "based_on": "neither", + "no_resume": true } ] diff --git a/data/json/professions.json b/data/json/professions.json index 964fb0681ba99..649bbad79eb53 100644 --- a/data/json/professions.json +++ b/data/json/professions.json @@ -1473,7 +1473,7 @@ { "type": "profession", "ident": "broken_cyborg", - "name": "Broken Cyborg", + "name": "Prototype Cyborg", "description": "You were normal once. Before the tests, before the procedures, before they stripped away every outward sign of your humanity. You're more machine than man now, but that might prove an advantage against the horrors that await.", "points": -2, "CBMs": [ @@ -2620,7 +2620,10 @@ "points": 3, "skills": [ { "level": 1, "name": "gun" }, { "level": 1, "name": "firstaid" } ], "items": { - "both": [ "shorts", "tshirt", "socks", "lowtops", "gobag", "cell_phone", "wristwatch" ], + "both": { + "items": [ "shorts", "tshirt", "socks", "lowtops", "cell_phone", "wristwatch" ], + "entries": [ { "item": "gobag", "custom-flags": [ "FIT" ] } ] + }, "male": [ "boxer_shorts" ], "female": [ "bra", "panties" ] } @@ -3587,5 +3590,20 @@ "male": [ "boxer_shorts" ], "female": [ "bra", "panties" ] } + }, + { + "type": "profession", + "ident": "urban_samurai", + "name": "Urban Samurai", + "description": "You were always an inexplicable sight in town, always with the funny hair, always wearing what appeared to be some kind of Japanese bathrobe. Some claimed you were a visiting Shinto god. Little of this concerns you, but last week the grocery service stopped coming and now the TV no longer turns on. This displeases you.", + "points": 2, + "skills": { "level": 2, "name": "melee" }, + "items": { + "both": { + "items": [ "haori", "kimono", "hakama", "loincloth", "tabi_dress", "geta" ], + "entries": [ { "item": "bokken_inferior", "container-item": "scabbard" } ] + }, + "female": [ "chestwrap" ] + } } ] diff --git a/data/json/recipes/armor/feet.json b/data/json/recipes/armor/feet.json index 60163068351c0..ad6819c95307b 100644 --- a/data/json/recipes/armor/feet.json +++ b/data/json/recipes/armor/feet.json @@ -265,6 +265,18 @@ "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "2x4", 2 ], [ "stick", 2 ] ] ] }, + { + "result": "geta", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_FEET", + "skill_used": "fabrication", + "difficulty": 1, + "time": 40000, + "book_learn": [ [ "tailor_japanese", 2 ] ], + "qualities": [ { "id": "SAW_W", "level": 1 }, { "id": "CUT", "level": 1 } ], + "components": [ [ [ "2x4", 1 ] ], [ [ "string_6", 1 ] ] ] + }, { "result": "footrags", "type": "recipe", diff --git a/data/json/recipes/armor/legs.json b/data/json/recipes/armor/legs.json index a68075d58c38c..24bb77a3a5a17 100644 --- a/data/json/recipes/armor/legs.json +++ b/data/json/recipes/armor/legs.json @@ -103,6 +103,18 @@ "using": [ [ "sewing_standard", 8 ] ], "components": [ [ [ "leather", 8 ], [ "tanned_hide", 2 ] ] ] }, + { + "result": "hakama", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_LEGS", + "skill_used": "tailor", + "difficulty": 3, + "time": 50000, + "book_learn": [ [ "tailor_japanese", 3 ] ], + "using": [ [ "sewing_standard", 15 ] ], + "components": [ [ [ "rag", 15 ] ] ] + }, { "result": "hot_pants", "type": "recipe", diff --git a/data/json/recipes/armor/storage.json b/data/json/recipes/armor/storage.json index c969f4e5b252d..8b630017a0967 100644 --- a/data/json/recipes/armor/storage.json +++ b/data/json/recipes/armor/storage.json @@ -6,7 +6,7 @@ "subcategory": "CSC_ARMOR_STORAGE", "skill_used": "tailor", "difficulty": 5, - "skills_required": [ "pistol", 3 ], + "skills_required": [ "gun", 1 ], "time": 15000, "autolearn": true, "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SEW", "level": 1 } ], @@ -36,7 +36,7 @@ "subcategory": "CSC_ARMOR_STORAGE", "skill_used": "tailor", "difficulty": 2, - "skills_required": [ "gun", 2 ], + "skills_required": [ "gun", 1 ], "time": 25000, "autolearn": true, "qualities": [ { "id": "SEW", "level": 1 } ], @@ -90,7 +90,7 @@ "subcategory": "CSC_ARMOR_STORAGE", "skill_used": "tailor", "difficulty": 5, - "skills_required": [ "cutting", 1 ], + "skills_required": [ "melee", 1 ], "time": 40000, "autolearn": true, "using": [ [ "adhesive", 1 ] ], @@ -184,7 +184,7 @@ "subcategory": "CSC_ARMOR_STORAGE", "skill_used": "tailor", "difficulty": 3, - "skills_required": [ "stabbing", 1 ], + "skills_required": [ "melee", 1 ], "time": 65000, "autolearn": true, "qualities": [ { "id": "SEW", "level": 1 } ], @@ -197,7 +197,7 @@ "subcategory": "CSC_ARMOR_STORAGE", "skill_used": "tailor", "difficulty": 3, - "skills_required": [ "gun", 1 ], + "skills_required": [ "pistol", 1 ], "time": 75000, "autolearn": true, "qualities": [ { "id": "SEW", "level": 1 } ], @@ -228,7 +228,7 @@ "subcategory": "CSC_ARMOR_STORAGE", "skill_used": "tailor", "difficulty": 5, - "skills_required": [ "cutting", 2 ], + "skills_required": [ "melee", 1 ], "time": 40000, "autolearn": true, "using": [ [ "adhesive", 1 ] ], @@ -482,7 +482,7 @@ "subcategory": "CSC_ARMOR_STORAGE", "skill_used": "tailor", "difficulty": 2, - "skills_required": [ "archery", 1 ], + "skills_required": [ "gun", 1 ], "time": 10000, "reversible": true, "decomp_learn": 3, @@ -498,7 +498,7 @@ "subcategory": "CSC_ARMOR_STORAGE", "skill_used": "tailor", "difficulty": 3, - "skills_required": [ [ "survival", 1 ], [ "archery", 1 ] ], + "skills_required": [ [ "survival", 1 ], [ "gun", 1 ] ], "time": 20000, "reversible": true, "decomp_learn": 3, @@ -514,7 +514,7 @@ "subcategory": "CSC_ARMOR_STORAGE", "skill_used": "tailor", "difficulty": 3, - "skills_required": [ "archery", 2 ], + "skills_required": [ "gun", 1 ], "time": 20000, "reversible": true, "decomp_learn": 3, @@ -531,7 +531,7 @@ "subcategory": "CSC_ARMOR_STORAGE", "skill_used": "tailor", "difficulty": 4, - "skills_required": [ [ "survival", 2 ], [ "archery", 2 ] ], + "skills_required": [ [ "survival", 2 ], [ "gun", 2 ] ], "time": 40000, "reversible": true, "decomp_learn": 4, @@ -558,7 +558,7 @@ "subcategory": "CSC_ARMOR_STORAGE", "skill_used": "tailor", "difficulty": 5, - "skills_required": [ "cutting", 1 ], + "skills_required": [ "melee", 1 ], "time": 40000, "autolearn": true, "using": [ [ "adhesive", 1 ] ], @@ -572,7 +572,7 @@ "subcategory": "CSC_ARMOR_STORAGE", "skill_used": "tailor", "difficulty": 3, - "skills_required": [ "cutting", 1 ], + "skills_required": [ "melee", 1 ], "time": 15000, "autolearn": true, "qualities": [ { "id": "SEW", "level": 1 } ], @@ -585,7 +585,7 @@ "subcategory": "CSC_ARMOR_STORAGE", "skill_used": "tailor", "difficulty": 3, - "skills_required": [ "pistol", 2 ], + "skills_required": [ "pistol", 1 ], "time": 15000, "autolearn": true, "qualities": [ { "id": "SEW", "level": 1 } ], @@ -598,7 +598,7 @@ "subcategory": "CSC_ARMOR_STORAGE", "skill_used": "tailor", "difficulty": 3, - "skills_required": [ "stabbing", 2 ], + "skills_required": [ "melee", 1 ], "time": 15000, "autolearn": true, "qualities": [ { "id": "SEW", "level": 1 } ], @@ -790,7 +790,7 @@ "category": "CC_ARMOR", "subcategory": "CSC_ARMOR_STORAGE", "skill_used": "tailor", - "skills_required": [ [ "throw", 2 ] ], + "skills_required": [ [ "throw", 1 ] ], "difficulty": 2, "time": 80000, "autolearn": true, diff --git a/data/json/recipes/armor/suit.json b/data/json/recipes/armor/suit.json index d77a0ad200cd7..8c88c86de97fe 100644 --- a/data/json/recipes/armor/suit.json +++ b/data/json/recipes/armor/suit.json @@ -526,6 +526,18 @@ "using": [ [ "sewing_standard", 20 ] ], "components": [ [ [ "jumpsuit", 1 ] ], [ [ "rag", 10 ] ] ] }, + { + "result": "kimono", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_SUIT", + "skill_used": "tailor", + "difficulty": 4, + "time": 150000, + "book_learn": [ [ "tailor_japanese", 4 ] ], + "using": [ [ "sewing_standard", 35 ] ], + "components": [ [ [ "rag", 25 ] ] ] + }, { "result": "lsurvivor_suit", "type": "recipe", @@ -785,5 +797,17 @@ [ [ "duct_tape", 400 ] ], [ [ "kevlar", 2 ], [ "modularvest", 2 ], [ "swat_armor", 2 ], [ "kevlar_plate", 42 ] ] ] + }, + { + "result": "yukata", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_SUIT", + "skill_used": "tailor", + "difficulty": 3, + "time": 90000, + "book_learn": [ [ "tailor_japanese", 3 ] ], + "using": [ [ "sewing_standard", 18 ] ], + "components": [ [ [ "rag", 16 ] ] ] } ] diff --git a/data/json/recipes/armor/torso.json b/data/json/recipes/armor/torso.json index b5c58a0363ad6..779fdb38a4034 100644 --- a/data/json/recipes/armor/torso.json +++ b/data/json/recipes/armor/torso.json @@ -321,6 +321,18 @@ "using": [ [ "sewing_standard", 160 ] ], "components": [ [ [ "felt_patch", 33 ] ] ] }, + { + "result": "haori", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_TORSO", + "skill_used": "tailor", + "difficulty": 5, + "time": 60000, + "book_learn": [ [ "tailor_japanese", 5 ] ], + "using": [ [ "sewing_standard", 15 ] ], + "components": [ [ [ "rag", 20 ] ] ] + }, { "result": "hoodie", "type": "recipe", diff --git a/data/json/recipes/electronics/parts.json b/data/json/recipes/electronics/parts.json index 6168842d88041..a1ffb5b8a8bd5 100644 --- a/data/json/recipes/electronics/parts.json +++ b/data/json/recipes/electronics/parts.json @@ -42,5 +42,65 @@ [ [ "lead", 1000 ] ], [ [ "acid", 2 ], [ "fertilizer_liquid", 2 ], [ "fertilizer_commercial", 2 ] ] ] + }, + { + "result": "light_minus_atomic_battery_cell", + "type": "recipe", + "category": "CC_ELECTRONIC", + "subcategory": "CSC_ELECTRONIC_PARTS", + "skill_used": "electronics", + "difficulty": 6, + "skills_required": [ "fabrication", 6 ], + "time": 60000, + "decomp_learn": 4, + "book_learn": [ [ "recipe_atomic_battery", 6 ] ], + "using": [ [ "soldering_standard", 10 ] ], + "qualities": [ { "id": "SCREW", "level": 1 } ], + "components": [ [ [ "scrap", 6 ] ], [ [ "cable", 4 ] ], [ [ "plut_cell", 1 ] ] ] + }, + { + "result": "light_atomic_battery_cell", + "type": "recipe", + "category": "CC_ELECTRONIC", + "subcategory": "CSC_ELECTRONIC_PARTS", + "skill_used": "electronics", + "difficulty": 6, + "skills_required": [ "fabrication", 6 ], + "time": 60000, + "decomp_learn": 4, + "book_learn": [ [ "recipe_atomic_battery", 6 ] ], + "using": [ [ "soldering_standard", 10 ] ], + "qualities": [ { "id": "SCREW", "level": 1 } ], + "components": [ [ [ "scrap", 6 ] ], [ [ "cable", 4 ] ], [ [ "plut_cell", 2 ] ] ] + }, + { + "result": "medium_atomic_battery_cell", + "type": "recipe", + "category": "CC_ELECTRONIC", + "subcategory": "CSC_ELECTRONIC_PARTS", + "skill_used": "electronics", + "difficulty": 6, + "skills_required": [ "fabrication", 6 ], + "time": 60000, + "decomp_learn": 4, + "book_learn": [ [ "recipe_atomic_battery", 6 ] ], + "using": [ [ "soldering_standard", 10 ] ], + "qualities": [ { "id": "SCREW", "level": 1 } ], + "components": [ [ [ "scrap", 6 ] ], [ [ "cable", 4 ] ], [ [ "plut_cell", 10 ] ] ] + }, + { + "result": "heavy_atomic_battery_cell", + "type": "recipe", + "category": "CC_ELECTRONIC", + "subcategory": "CSC_ELECTRONIC_PARTS", + "skill_used": "electronics", + "difficulty": 6, + "skills_required": [ "fabrication", 6 ], + "time": 60000, + "decomp_learn": 4, + "book_learn": [ [ "recipe_atomic_battery", 6 ] ], + "using": [ [ "soldering_standard", 10 ] ], + "qualities": [ { "id": "SCREW", "level": 1 } ], + "components": [ [ [ "scrap", 6 ] ], [ [ "cable", 4 ] ], [ [ "plut_cell", 20 ] ] ] } ] diff --git a/data/json/recipes/electronics/toolmod.json b/data/json/recipes/electronics/toolmod.json index b6deabe1710d1..6b28d37d544ad 100644 --- a/data/json/recipes/electronics/toolmod.json +++ b/data/json/recipes/electronics/toolmod.json @@ -1,19 +1,4 @@ [ - { - "result": "battery_atomic", - "type": "recipe", - "category": "CC_ELECTRONIC", - "subcategory": "CSC_ELECTRONIC_PARTS", - "skill_used": "electronics", - "difficulty": 6, - "skills_required": [ "fabrication", 6 ], - "time": 60000, - "decomp_learn": 4, - "book_learn": [ [ "recipe_atomic_battery", 6 ] ], - "using": [ [ "soldering_standard", 10 ] ], - "qualities": [ { "id": "SCREW", "level": 1 } ], - "components": [ [ [ "scrap", 6 ] ], [ [ "cable", 4 ] ], [ [ "plut_cell", 1 ] ] ] - }, { "result": "battery_ups", "type": "recipe", diff --git a/data/json/recipes/other/medical.json b/data/json/recipes/other/medical.json index e8148aaeb194b..db944281f6d8c 100644 --- a/data/json/recipes/other/medical.json +++ b/data/json/recipes/other/medical.json @@ -127,7 +127,8 @@ "result": "disinrag", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MEDICAL", - "skills_required": [ "firstaid", 1 ], + "skill_used": "firstaid", + "difficulty": 1, "time": 1000, "autolearn": true, "flags": [ "BLIND_EASY" ], @@ -138,7 +139,8 @@ "result": "disincotton_ball", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MEDICAL", - "skills_required": [ "firstaid", 1 ], + "skill_used": "firstaid", + "difficulty": 1, "time": 1000, "autolearn": true, "flags": [ "BLIND_EASY" ], diff --git a/data/json/recipes/other/tool.json b/data/json/recipes/other/tool.json index f20c9659cb586..d1025212aa744 100644 --- a/data/json/recipes/other/tool.json +++ b/data/json/recipes/other/tool.json @@ -163,5 +163,19 @@ "autolearn": true, "qualities": [ { "id": "SAW_M_FINE", "level": 1 } ], "components": [ [ [ "wire", 4 ] ] ] + }, + { + "type": "recipe", + "result": "hobo_stove", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_TOOLS", + "skill_used": "survival", + "skills_required": [ "fabrication", 1 ], + "difficulty": 2, + "time": 5000, + "autolearn": true, + "book_learn": [ [ "mag_survival", 2 ], [ "textbook_survival", 1 ], [ "cookbook", 2 ] ], + "qualities": [ { "id": "CUT", "level": 1 } ], + "components": [ [ [ "can_food_unsealed", 2 ], [ "scrap", 4 ] ] ] } ] diff --git a/data/json/recipes/recipe_ammo.json b/data/json/recipes/recipe_ammo.json index f605f54ad293b..7a6f94fd1d9d7 100644 --- a/data/json/recipes/recipe_ammo.json +++ b/data/json/recipes/recipe_ammo.json @@ -272,7 +272,7 @@ "category": "CC_AMMO", "subcategory": "CSC_AMMO_ARROWS", "skill_used": "fabrication", - "skills_required": [ [ "archery", 4 ], [ "survival", 1 ] ], + "skills_required": [ [ "survival", 1 ] ], "using": [ [ "forging_standard", 1 ] ], "difficulty": 5, "time": 30000, @@ -293,7 +293,7 @@ "category": "CC_AMMO", "subcategory": "CSC_AMMO_ARROWS", "skill_used": "fabrication", - "skills_required": [ [ "archery", 4 ], [ "survival", 1 ] ], + "skills_required": [ [ "survival", 1 ] ], "using": [ [ "forging_standard", 1 ] ], "difficulty": 5, "time": 30000, @@ -314,7 +314,7 @@ "category": "CC_AMMO", "subcategory": "CSC_AMMO_ARROWS", "skill_used": "fabrication", - "skills_required": [ [ "archery", 4 ], [ "survival", 1 ] ], + "skills_required": [ [ "survival", 1 ] ], "using": [ [ "forging_standard", 1 ] ], "difficulty": 5, "time": 30000, @@ -335,7 +335,7 @@ "category": "CC_AMMO", "subcategory": "CSC_AMMO_ARROWS", "skill_used": "fabrication", - "skills_required": [ [ "archery", 3 ], [ "survival", 1 ] ], + "skills_required": [ [ "survival", 1 ] ], "difficulty": 4, "time": 20000, "autolearn": true, @@ -367,7 +367,7 @@ "category": "CC_AMMO", "subcategory": "CSC_AMMO_ARROWS", "skill_used": "fabrication", - "skills_required": [ [ "survival", 3 ], [ "archery", 1 ] ], + "skills_required": [ [ "survival", 3 ] ], "difficulty": 3, "time": 20000, "autolearn": true, @@ -403,7 +403,7 @@ "category": "CC_AMMO", "subcategory": "CSC_AMMO_ARROWS", "skill_used": "fabrication", - "skills_required": [ [ "archery", 3 ], [ "survival", 1 ] ], + "skills_required": [ [ "survival", 1 ] ], "difficulty": 4, "time": 20000, "autolearn": true, @@ -515,7 +515,7 @@ "category": "CC_AMMO", "subcategory": "CSC_AMMO_ARROWS", "skill_used": "fabrication", - "skills_required": [ [ "archery", 4 ], [ "mechanics", 3 ] ], + "skills_required": [ [ "mechanics", 3 ] ], "difficulty": 5, "time": 10000, "book_learn": [ [ "recipe_arrows", 7 ], [ "textbook_anarch", 4 ], [ "recipe_bullets", 7 ] ], @@ -884,5 +884,32 @@ "qualities": [ { "id": "CHEM", "level": 1 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], "components": [ [ [ "oxy_powder", 100 ] ], [ [ "lye_powder", 100 ] ] ] + }, + { + "type": "recipe", + "result": "tinder", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_MATERIALS", + "skill_used": "survival", + "difficulty": 1, + "time": 1000, + "autolearn": true, + "qualities": [ { "id": "CUT", "level": 1 } ], + "components": [ + [ + [ "stick", 1 ], + [ "2x4", 1 ], + [ "splinter", 2 ], + [ "pine_bough", 1 ], + [ "rag", 1 ], + [ "paper", 5 ], + [ "rolling_paper", 30 ], + [ "wrapper", 5 ], + [ "withered", 2 ], + [ "cattail_stalk", 1 ], + [ "birchbark", 1 ], + [ "willowbark", 1 ] + ] + ] } ] diff --git a/data/json/recipes/recipe_deconstruction.json b/data/json/recipes/recipe_deconstruction.json index f0e3b3e23ca2b..9ad617b61973b 100644 --- a/data/json/recipes/recipe_deconstruction.json +++ b/data/json/recipes/recipe_deconstruction.json @@ -1,494 +1,4 @@ [ - { - "result": "223", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ [ [ "lead", 3 ] ], [ [ "223_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 4 ] ], [ [ "copper", 2 ] ] ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "22_cb", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ [ [ "lead", 2 ] ], [ [ "22_casing_new", 1 ] ], [ [ "gunpowder", 1 ] ] ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "22_fmj", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ [ [ "lead", 2 ] ], [ [ "22_casing_new", 1 ] ], [ [ "gunpowder", 2 ] ], [ [ "copper", 1 ] ] ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "22_lr", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ [ [ "lead", 2 ] ], [ [ "22_casing_new", 1 ] ], [ [ "gunpowder", 2 ] ] ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "22_ratshot", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ [ [ "lead", 2 ] ], [ [ "22_casing_new", 1 ] ], [ [ "gunpowder", 2 ] ] ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "270", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ - [ [ "lead", 5 ] ], - [ [ "3006_casing", 1 ] ], - [ [ "lgrifle_primer", 1 ] ], - [ [ "gunpowder", 10 ] ], - [ [ "copper", 5 ] ] - ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "3006", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ - [ [ "lead", 6 ] ], - [ [ "3006_casing", 1 ] ], - [ [ "lgrifle_primer", 1 ] ], - [ [ "gunpowder", 8 ] ], - [ [ "copper", 6 ] ] - ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "3006_incendiary", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ - [ [ "incendiary", 6 ] ], - [ [ "3006_casing", 1 ] ], - [ [ "lgrifle_primer", 1 ] ], - [ [ "gunpowder", 8 ] ], - [ [ "copper", 6 ] ] - ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "3006fmj", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ - [ [ "lead", 6 ] ], - [ [ "3006_casing", 1 ] ], - [ [ "lgrifle_primer", 1 ] ], - [ [ "gunpowder", 8 ] ], - [ [ "copper", 6 ] ] - ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "300_winmag", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ - [ [ "lead", 8 ] ], - [ [ "300_casing", 1 ] ], - [ [ "lgrifle_primer", 1 ] ], - [ [ "gunpowder", 16 ] ], - [ [ "copper", 21 ] ] - ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "308", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ - [ [ "lead", 6 ] ], - [ [ "308_casing", 1 ] ], - [ [ "lgrifle_primer", 1 ] ], - [ [ "gunpowder", 10 ] ], - [ [ "copper", 6 ] ] - ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "32_acp", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ [ [ "lead", 2 ] ], [ [ "32_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 2 ] ] ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "44fmj", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ - [ [ "lead", 7 ] ], - [ [ "44_casing", 1 ] ], - [ [ "lgpistol_primer", 1 ] ], - [ [ "gunpowder", 10 ] ], - [ [ "copper", 7 ] ] - ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "44magnum", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ [ [ "lead", 10 ] ], [ [ "44_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 10 ] ] ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "454_Casull", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ - [ [ "lead", 20 ] ], - [ [ "454_casing", 1 ] ], - [ [ "smrifle_primer", 1 ] ], - [ [ "gunpowder", 20 ] ], - [ [ "copper", 20 ] ] - ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "46mm", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ [ [ "lead", 2 ] ], [ [ "46mm_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 4 ] ] ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "460_fmj", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ [ [ "lead", 3 ] ], [ [ "460_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 10 ] ] ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "460_rowland", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ [ [ "lead", 3 ] ], [ [ "460_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 10 ] ] ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "500_Magnum", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ - [ [ "lead", 24 ] ], - [ [ "500_casing", 1 ] ], - [ [ "lgpistol_primer", 1 ] ], - [ [ "gunpowder", 24 ] ], - [ [ "copper", 24 ] ] - ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "50_incendiary", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ - [ [ "lead", 12 ] ], - [ [ "incendiary", 20 ] ], - [ [ "50_casing", 1 ] ], - [ [ "lgrifle_primer", 1 ] ], - [ [ "gunpowder", 30 ] ], - [ [ "copper", 6 ] ] - ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "50bmg", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ - [ [ "lead", 12 ] ], - [ [ "50_casing", 1 ] ], - [ [ "lgrifle_primer", 1 ] ], - [ [ "gunpowder", 30 ] ], - [ [ "copper", 6 ] ] - ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "50ss", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ - [ [ "50_casing", 1 ] ], - [ [ "lgrifle_primer", 1 ] ], - [ [ "gunpowder", 30 ] ], - [ [ "copper", 6 ] ], - [ [ "scrap", 1 ] ] - ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "545", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ [ [ "lead", 2 ] ], [ [ "545_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 5 ] ], [ [ "copper", 2 ] ] ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "545_ap", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ [ [ "lead", 3 ] ], [ [ "545_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 5 ] ], [ [ "copper", 3 ] ] ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "556", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ [ [ "lead", 3 ] ], [ [ "223_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 6 ] ], [ [ "copper", 2 ] ] ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "556_incendiary", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ - [ [ "incendiary", 2 ] ], - [ [ "lead", 3 ] ], - [ [ "223_casing", 1 ] ], - [ [ "smrifle_primer", 1 ] ], - [ [ "gunpowder", 6 ] ], - [ [ "copper", 2 ] ] - ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "57mm", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ [ [ "lead", 2 ] ], [ [ "57mm_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 4 ] ] ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "5x50dart", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ [ [ "lead", 2 ] ], [ [ "5x50_hull", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 3 ] ] ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "5x50heavy", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ [ [ "lead", 3 ] ], [ [ "5x50_hull", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 3 ] ] ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "700nx", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ - [ [ "lead", 14 ] ], - [ [ "700nx_casing", 1 ] ], - [ [ "lgrifle_primer", 1 ] ], - [ [ "gunpowder", 38 ] ], - [ [ "copper", 9 ] ] - ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "762_51", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ - [ [ "lead", 6 ] ], - [ [ "762_51_casing", 1 ] ], - [ [ "lgrifle_primer", 1 ] ], - [ [ "gunpowder", 10 ] ], - [ [ "copper", 6 ] ] - ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "762_51_incendiary", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ - [ [ "incendiary", 6 ] ], - [ [ "762_51_casing", 1 ] ], - [ [ "lgrifle_primer", 1 ] ], - [ [ "gunpowder", 10 ] ], - [ [ "copper", 6 ] ] - ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "762_54R", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ - [ [ "lead", 3 ] ], - [ [ "762_casing", 1 ] ], - [ [ "lgrifle_primer", 1 ] ], - [ [ "gunpowder", 8 ] ], - [ [ "copper", 10 ] ] - ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "762_m43", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ [ [ "lead", 5 ] ], [ [ "762_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 7 ] ], [ [ "copper", 5 ] ] ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "762_m87", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ [ [ "lead", 5 ] ], [ [ "762_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 8 ] ], [ [ "copper", 5 ] ] ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "9x18mm", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ [ [ "lead", 2 ] ], [ [ "9x18mm_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 3 ] ] ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "9x18mmP2", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ [ [ "lead", 2 ] ], [ [ "9x18mm_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 5 ] ] ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, - { - "result": "9x18mmfmj", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ - [ [ "lead", 2 ] ], - [ [ "9x18mm_casing", 1 ] ], - [ [ "smpistol_primer", 1 ] ], - [ [ "gunpowder", 3 ] ], - [ [ "copper", 2 ] ] - ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, { "result": "alarmclock", "type": "uncraft", diff --git a/data/json/recipes/recipe_electronics.json b/data/json/recipes/recipe_electronics.json index 226161b027775..10c617a068c62 100644 --- a/data/json/recipes/recipe_electronics.json +++ b/data/json/recipes/recipe_electronics.json @@ -1301,6 +1301,36 @@ [ [ "plut_cell", 1 ] ] ] }, + { + "type": "recipe", + "result": "hand_crank_charger", + "category": "CC_ELECTRONIC", + "subcategory": "CSC_ELECTRONIC_TOOLS", + "skill_used": "fabrication", + "skills_required": [ "electronics", 3 ], + "difficulty": 4, + "time": 3000, + "reversible": true, + "decomp_learn": 3, + "book_learn": [ + [ "textbook_robots", 4 ], + [ "mag_electronics", 3 ], + [ "mag_mechanics", 3 ], + [ "textbook_electronics", 3 ], + [ "textbook_fabrication", 3 ], + [ "manual_fabrication", 4 ] + ], + "using": [ [ "soldering_standard", 10 ], [ "surface_heat", 10 ] ], + "qualities": [ { "id": "SCREW", "level": 1 } ], + "components": [ + [ [ "plastic_chunk", 5 ] ], + [ [ "superglue", 1 ] ], + [ [ "power_supply", 1 ] ], + [ [ "e_scrap", 3 ] ], + [ [ "scrap", 3 ] ], + [ [ "motor_tiny", 1 ] ] + ] + }, { "type": "recipe", "result": "motor_micro", diff --git a/data/json/recipes/recipe_food.json b/data/json/recipes/recipe_food.json index 6fa9e9100fac4..2f6b170663d84 100644 --- a/data/json/recipes/recipe_food.json +++ b/data/json/recipes/recipe_food.json @@ -1356,6 +1356,21 @@ "qualities": [ { "id": "HAMMER", "level": 1 } ], "components": [ [ [ "roasted_coffee_bean", 1 ] ], [ [ "bag_plastic", 1 ] ] ] }, + { + "type": "recipe", + "result": "coffee_raw_kentucky", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_OTHER", + "skill_used": "cooking", + "difficulty": 1, + "time": 120000, + "//": "2 hours of roasting are required to fully break up the toxins in raw pods", + "autolearn": true, + "batch_time_factors": [ 90, 1 ], + "qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "BOIL", "level": 1 } ], + "tools": [ [ [ "surface_heat", 30, "LIST" ] ] ], + "components": [ [ [ "water_clean", 1 ] ], [ [ "coffee_pod", 1 ] ] ] + }, { "type": "recipe", "result": "roasted_coffee_bean", @@ -1395,6 +1410,19 @@ "tools": [ [ [ "atomic_coffeepot", -1 ] ] ], "components": [ [ [ "coffee_raw", 1 ], [ "coffee_syrup", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] }, + { + "type": "recipe", + "result": "coffee_substitute", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_DRINKS", + "skill_used": "cooking", + "time": 10000, + "autolearn": true, + "batch_time_factors": [ 80, 4 ], + "qualities": [ { "id": "BOIL", "level": 1 } ], + "tools": [ [ [ "water_boiling_heat", 3, "LIST" ] ] ], + "components": [ [ [ "coffee_raw_kentucky", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] + }, { "type": "recipe", "result": "almond_milk", @@ -4649,6 +4677,7 @@ "skill_used": "cooking", "difficulty": 4, "time": 20000, + "batch_time_factors": [ 83, 5 ], "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ], "tools": [ [ [ "vac_sealer", 10 ], [ "makeshift_sealer", 20 ] ] ], @@ -4688,6 +4717,7 @@ "skill_used": "cooking", "difficulty": 4, "time": 20000, + "batch_time_factors": [ 83, 5 ], "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ], "tools": [ [ [ "vac_sealer", 10 ], [ "makeshift_sealer", 20 ] ] ], @@ -4727,6 +4757,7 @@ "skill_used": "cooking", "difficulty": 4, "time": 20000, + "batch_time_factors": [ 83, 5 ], "book_learn": [ [ "cookbook_human", 4 ] ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ], "tools": [ [ [ "vac_sealer", 10 ], [ "makeshift_sealer", 20 ] ] ], @@ -4766,6 +4797,7 @@ "skill_used": "cooking", "difficulty": 4, "time": 20000, + "batch_time_factors": [ 83, 5 ], "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ], "tools": [ [ [ "vac_sealer", 10 ], [ "makeshift_sealer", 20 ] ] ], @@ -6880,6 +6912,7 @@ "skills_required": [ "survival", 6 ], "difficulty": 5, "time": 12000, + "batch_time_factors": [ 80, 4 ], "book_learn": [ [ "textbook_survival", 5 ], [ "atomic_survival", 4 ], [ "survival_book", 3 ] ], "qualities": [ { "id": "BOIL", "level": 1 }, { "id": "CUT", "level": 1 } ], "tools": [ [ [ "water_boiling_heat", 8, "LIST" ] ] ], @@ -6992,6 +7025,7 @@ "skills_required": [ "survival", 4 ], "difficulty": 5, "time": 15000, + "batch_time_factors": [ 80, 4 ], "autolearn": true, "qualities": [ { "id": "BOIL", "level": 1 } ], "tools": [ [ [ "water_boiling_heat", 3, "LIST" ] ] ], @@ -7052,6 +7086,7 @@ "difficulty": 1, "charges": 5, "time": 20000, + "batch_time_factors": [ 80, 4 ], "autolearn": true, "qualities": [ { "id": "BOIL", "level": 1 }, { "id": "CONTAIN", "level": 1 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ], [ [ "rag", -1 ] ] ], @@ -8589,8 +8624,8 @@ { "type": "recipe", "result": "nopalitos", - "catergory": "CC_FOOD", - "subcatergory": "CSC_FOOD_VEGGI", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_VEGGI", "skill_used": "cooking", "difficulty": 2, "time": 40000, diff --git a/data/json/recipes/recipe_others.json b/data/json/recipes/recipe_others.json index 73743b13b98e1..bfff8dd46e8b4 100644 --- a/data/json/recipes/recipe_others.json +++ b/data/json/recipes/recipe_others.json @@ -4289,7 +4289,7 @@ "subcategory": "CSC_OTHER_TOOLS", "skill_used": "fabrication", "difficulty": 4, - "time": 8000, + "time": 30000, "autolearn": true, "book_learn": [ [ "textbook_fabrication", 2 ], [ "textbook_mechanics", 3 ] ], "qualities": [ @@ -4308,6 +4308,31 @@ [ [ "spike", 2 ] ] ] }, + { + "type": "recipe", + "result": "metal_smoking_rack", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_TOOLS", + "skill_used": "fabrication", + "difficulty": 4, + "time": 30000, + "autolearn": true, + "book_learn": [ [ "textbook_fabrication", 2 ], [ "textbook_mechanics", 3 ] ], + "qualities": [ + { "id": "ANVIL", "level": 1 }, + { "id": "HAMMER", "level": 3 }, + { "id": "SAW_M", "level": 1 }, + { "id": "DRILL", "level": 1 }, + { "id": "SCREW", "level": 1 } + ], + "components": [ + [ [ "scrap", 6 ] ], + [ [ "pipe", 15 ], [ "cu_pipe", 15 ], [ "frame", 2 ] ], + [ [ "nail", 12 ] ], + [ [ "wire", 6 ], [ "rope_6", 6 ], [ "rope_makeshift_6", 6 ] ], + [ [ "spike", 4 ] ] + ] + }, { "type": "recipe", "result": "tourist_table", diff --git a/data/json/recipes/recipe_weapon.json b/data/json/recipes/recipe_weapon.json index 6ec643e8fa8b3..5a969b5c87278 100644 --- a/data/json/recipes/recipe_weapon.json +++ b/data/json/recipes/recipe_weapon.json @@ -2892,7 +2892,7 @@ "book_learn": [ [ "textbook_weapeast", 6 ] ], "qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], "tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 100 ], [ "oxy_torch", 20 ] ] ], - "components": [ [ [ "katana", 1 ] ], [ [ "stick_long", 1 ] ] ] + "components": [ [ [ "katana", 1 ], [ "wakizashi", 1 ] ], [ [ "stick_long", 1 ] ] ] }, { "type": "recipe", @@ -3026,26 +3026,5 @@ [ [ "pipe", 1 ] ], [ [ "steel_lump", 1 ], [ "steel_chunk", 4 ], [ "scrap", 12 ] ] ] - }, - { - "type": "recipe", - "result": "chemical_thrower", - "category": "CC_WEAPON", - "subcategory": "CSC_WEAPON_RANGED", - "skill_used": "mechanics", - "skills_required": [ "launcher", 2 ], - "difficulty": 6, - "time": 30000, - "reversible": true, - "autolearn": true, - "using": [ [ "welding_standard", 40 ] ], - "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 }, { "id": "HAMMER", "level": 2 } ], - "components": [ - [ [ "pilot_light", 1 ] ], - [ [ "metal_tank_little", 1 ] ], - [ [ "pipe", 2 ] ], - [ [ "hose", 2 ] ], - [ [ "steel_lump", 1 ], [ "steel_chunk", 4 ], [ "scrap", 12 ] ] - ] } ] diff --git a/data/json/recipes/weapon/bashing.json b/data/json/recipes/weapon/bashing.json index 32972f6a96f96..6f83c2ca4683c 100644 --- a/data/json/recipes/weapon/bashing.json +++ b/data/json/recipes/weapon/bashing.json @@ -47,6 +47,24 @@ "qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], "tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ] }, + { + "result": "iceaxe", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_BASHING", + "skill_used": "fabrication", + "difficulty": 5, + "time": 240000, + "autolearn": true, + "using": [ [ "forging_standard", 8 ] ], + "qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], + "components": [ + [ [ "steel_lump", 1 ], [ "steel_chunk", 4 ], [ "scrap", 20 ] ], + [ [ "filament", 100, "LIST" ] ], + [ [ "rag", 2 ], [ "felt_patch", 2 ], [ "leather", 2 ], [ "fur", 2 ] ] + ] + }, { "result": "makeshift_crowbar", "type": "recipe", diff --git a/data/json/recipes/weapon/magazines.json b/data/json/recipes/weapon/magazines.json index 34a75b0aad701..908850a461de0 100644 --- a/data/json/recipes/weapon/magazines.json +++ b/data/json/recipes/weapon/magazines.json @@ -87,6 +87,20 @@ [ [ "duct_tape", 20 ] ] ] }, + { + "result": "pressurized_tank_chem", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_MAGAZINES", + "skill_used": "fabrication", + "difficulty": 4, + "skills_required": [ "mechanics", 3 ], + "time": 40000, + "autolearn": true, + "using": [ [ "welding_standard", 2 ] ], + "qualities": [ { "id": "HAMMER", "level": 2 } ], + "components": [ [ [ "metal_tank_little", 1 ] ] ] + }, { "result": "survivor223mag", "type": "recipe", diff --git a/data/json/recipes/weapon/ranged.json b/data/json/recipes/weapon/ranged.json index 6b1c2d22a1421..84e37c993fcd6 100644 --- a/data/json/recipes/weapon/ranged.json +++ b/data/json/recipes/weapon/ranged.json @@ -1,4 +1,19 @@ [ + { + "type": "recipe", + "result": "chemical_thrower", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_RANGED", + "skill_used": "mechanics", + "skills_required": [ "launcher", 2 ], + "difficulty": 6, + "time": 30000, + "reversible": true, + "autolearn": true, + "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 }, { "id": "HAMMER", "level": 2 } ], + "using": [ [ "welding_standard", 40 ] ], + "components": [ [ [ "pipe", 2 ] ], [ [ "hose", 2 ] ], [ [ "steel_lump", 1 ], [ "steel_chunk", 4 ], [ "scrap", 12 ] ] ] + }, { "result": "nailrifle", "type": "recipe", diff --git a/data/json/regional_map_settings.json b/data/json/regional_map_settings.json index 51c3d0766b0ab..63ff6aa232a9a 100644 --- a/data/json/regional_map_settings.json +++ b/data/json/regional_map_settings.json @@ -580,6 +580,7 @@ "cs_open_sewer": 100 }, "shops": { + "bus_station": 200, "town_hall": 150, "craft_shop": 100, "s_gas": 500, @@ -713,7 +714,8 @@ "cs_internet_cafe": 100, "cs_market_small": 100, "cs_sex_shop": 100, - "cs_tire_shop": 100 + "cs_tire_shop": 100, + "homeless_shelter": 100 } }, "weather": { diff --git a/data/json/snippets.json b/data/json/snippets.json index 6c9b807efc541..ea1db6b37d45b 100644 --- a/data/json/snippets.json +++ b/data/json/snippets.json @@ -2217,5 +2217,78 @@ "type": "snippet", "category": "tree_communion", "text": [ "In the minute shifts and pivots of the trees, you hear the language of the universe." ] + }, + { + "type": "snippet", + "category": "lab_notes", + "text": [ + "General Carlsberg wanted us to figure out what's going on with the bot AI. Apparently the fat-cat defense contractors' toy tank has ranging issues or something: 31-34 meters and it's apparently impotent. The Director sent 'em back with a note that we're scientists, not firmware devs.", + "Our chemical department has made great strides in the production of a concentrated mutagen, derived from samples of PE012.", + "Our chemical department has perfected an untargeted stem cell treatment. Consumption of the treatment will reverse the effects of mutation, and may even cure congenital defects. This substance has been denoted PE018.", + "Both PE012 and PE018 show great stability. A subject was exposed to both substances, alternating between the mutagen and the purifier. Ultimately, the subject returned to baseline state with no apparent side effects.", + "Dr. Hofstadter has manufactured an improved version of PE018 by combining with PE012 outside the subject, then administering the mixture through a topical injection to a specific area of mutation. This has been denoted PE019. Other labs have so far been unable to reproduce the process.", + "Rumors of Dr. Hofstadter and her laboratory staff whispering to PE019 samples should be suppressed as malicious gossip. The jealousy of rival teams cannot be allowed to degrade morale.", + ":.||||ERROR||With XE037 having breached confinement, Dr. Maiar recommends that we prepare for the inevitable. PE050 can be quickly and cheaply reconfigured for |||||ERROR: FILE CORRUPT|||||", + "Dr. Maiar has been terminated for engaging in unethical research on human subjects. His notes are being destroyed and all personnel under him have been reassigned. Further discussion of or attempts to carry on his work will be grounds for immediate termination.", + "|||ERROR: UNREFERENCED MEMORY 0Ex670c9e1f5, REROUTING: CENSORSHIP IS A BREAKDOWN, WE ROUTE AROUND IT. THE WORD IS ALREADY OUT. NOBODY DROPS MAIAR INTO LAVA.||||||", + "Given the current population projections, PE065 deployment is no longer feasible. We simply haven't the stock. Remaining chemical and psychopharmacological department assets are being assigned to Dr. Sattler's PE070 project.", + "Dr. Maiar's success with intravenous mutagenic administration has been adopted facility-wide; insofar as any of our work can ever be 'published', he and his team hit the jackpot. IV administration is quicker and easier, and in some cases is reportedly more efficient, than the oral techniques we have been using.", + "Recent fieldwork and extraction efforts have resulted in a series of mutagens tailored to focus the mutation process into particular subtypes. These have been designated PE025 through 037. Though significantly more resource- and time-intensive to produce, they promise a bold new transhuman future. Several research teams are already investigating possible applications.", + "The chemical department has come through with a stable mutagen cocktail. PE050 shows promise as an all-around genetic enhancement, with the worst side effect being digestive upset. The lack of macro-scale physical changes makes it ideal for both military and civilian applications.", + "Dr. Dionne's team has come up with an ambitious mutagenic cocktail, dubbed PE065. Though its effects are wildly polymorphic and unstable, to say the least, he suggests that several such mutants could effectively check the spread of reanimated XE037 infectees. We are looking into implementation methodology.", + "We have made a fascinating discovery; by creating a miniature portal with low stability and high power, one can transpose into the 4th dimension and return immediately, but shifted by several meters. Our subjects oscillated so quickly that none were even aware that they had visited lower planes.", + "The research team headed by Dr. Isha has produced a concentrated form of mutagen that shows promising results for the treatment of many forms of disease. Testing reveals that it inhibits the body's pain responses while bolstering the immune system and natural regenerative capabilities, though a few troubling behavioral side effects have been reported.", + "Our research on teleportation has ground to a halt. For some reason, the creation of a long-range transportation device eludes us, and one can transfer no further than 30 meters.", + "Dr. Heisenstein told us today that director of teleportation department put our competitors - he couldn't exactly remember their names, something like \"Hole Science\" and something related to black mountains - as an example. He said we have reliable information that they both have working teleportation devices, and that they are much more advanced than ours. We should continue our teleportation research no matter the cost if we don't want to be fired.", + "I don't know how it happened, but a janitor managed to activate the portal while cleaning the lab, shifting in an assortment of prehistoric fauna. Security was called in immediately but was unable to save the janitor from being torn apart. By the time the confusion settled, all the fauna had been terminated.", + "Tests on the prehistoric fauna show extremely close genetic relationships with extant and extinct terranean animals. It might be that the portal had performed a transposition in time, unfortunately the portal device was destroyed when security put down the fauna.", + "An incident occurred in the teleportation lab, wherein a subject managed to teleport into another subject. The latter was completely destroyed from the inside out, while the former sustained little damage. I would like to explore the phenomenon further, but subjects are expensive.", + "Test subjects in the teleportation department are showing alarming symptoms. It seems prolonged rapid transposition along the 4th dimension weakens the forces holding one on this plane.", + "Catastrophe struck in our teleportation department yesterday. It seems that our test subjects are so detached from this plane that they create occasional tunnels along the 4th dimension, allowing life forms to transfer to this plane. All subjects with prolonged exposure have been terminated.", + "Our lifeform extraction program continues to produce samples of specimen XE037. It seems to be a kind of living, semi-sentient primordial ooze, and is the basis of much of the life we have found.", + "Specimen XE037, jokingly referred to as \"the blob\", has been observed entering a kind of dormant state, forming a depression in the floor. Hendelson stepped into one of these pits yesterday, and was immediately coated and attacked.", + "XE037 shows promise as a catalyst for both cloning and treatments that mimic stem cells. This is further evidence supporting Hendelson's theory of a near universal symbiotic relationship involving XE037.", + "Several of the more advanced specimens we have retrieved show stunning similarity to XE037. XE142 and XE157 in particular show the same amorphous, slime-like structure as XE037, suggesting a close genetic relationship.", + "Today we tested weaponry against XE142 and XE157, two amorphous subprime samples. Their form proved to be nearly invulnerable to projectile based weaponry, but they were susceptible to directed energy weapons and flagration.", + "Our cloning department has failed to produce results. In vats containing stem cell treatments, XE037, and control vats, the subjects simple disintegrated. This suggests that XE037, while compatible with subprime lifeforms, shows only destructive effects on prime plane lifeforms.", + "The vivisection program has shown mixed results, revealing an incredible degree of variation in subplane lifeforms. Certain specimens have an internal structure that is amazingly similar to that of mammals, while others seem to have no internal structure at all.", + "Our security department has identified several key flaws. Though our surface entrance is quite secure, there are several possible points of entry below the surface, particularly in the sewage systems.", + "Today we applied a very small sample of XE037, suspended in water, to subject TP92, prior to necessary termination. During the postmortem examination, the subject went through a revivification progress, but displayed next to no human intelligence.", + "Mendelson shows a dismaying lack of organization and security consciousness. Containment of all samples of XE037 is of critical importance, as shown by contamination experiments.", + "Mendelson has been terminated following an incident with XE037. A substantial mobile sample departed his lab and encountered our security forces. Before the sample was destroyed, it managed to kill two men. Alarmingly, their corpses displayed mobility and extreme aggression.", + "We have created a new department to investigate the effects of XE037 on the human body, specifically to examine the revivification effect observed on two prior occasions. Sadly, our human subject pool is dwindling due to the short lifespan of subjects in this program. More will be acquired soon.", + "Testing XE037 on non-human mammal subjects does not appear to display the same revivifying effect, oddly enough. Acquiring non-human subjects, sadly, is a long and costly process, and research into this area is lacking.", + "After our curious results with testing XE037 on non-human mammals, we decided to introduce the substance to some of the insects which have found their way into the lab. Horrifyingly, XE037 caused near-instant mutation and gigantism in the insects, and security intervention was required.", + "Earlier conjecture that revivification occurred only in humans and insects was premature. Exposure introduces a persistent, low level infection in all mammal subjects, but quickly enters a form of stasis and seems to go dormant.", + "The primary factor in determining revivification of mammalian subjects seems to be the amount of XE037 within the body at time of expiration. Smaller mammals such as lab rats do not obtain this critical mass of XE037 before going dormant. Larger canine subjects, however, do.", + "I swear they are talking to me. No one believes me. No one understands. They whisper to me, at night, in the dark. Please, please, make them stop.", + "Program S37ZBE, investigation of XE037 on inert human bodies, is making great strides. Recently we found that XE037 has no effect when introduced to a deceased body; revivification only occurs when the subject is exposed to XE037 prior to expiration.", + "Attempts to surpass the XE037 mammalian stasis limit have had some success. Direct subcutaneous injection of XE037 quickly spreads through the body, and while it immediately enters stasis after equalizing, it remains in the body.", + "There has been an incident in Lab 24, 2 casualties reported, one lethal. A rat involved in the stasis breaking project was hooked to a monitoring machine and left over night. Upon opening the cage, Simon Bellevue was electrocuted, and another researcher at the opposite end of the lab sustained severe current burns, despite never approaching the cage.", + "A post-mortem on the rat involved in the electrocution incident has revealed several changes to its internal anatomy centered around its connection with the monitoring device, and large buildups of XE037 were detected around the connection point.", + "There is a belief several other rat subjects experienced changes overnight as well. This hypothesis was informed when an inventory check after the incident found almost twenty rats had gone missing from their cages overnight.", + "Exposure of large quantities of XE037 to various types of radiation have shown promising results, stimulating activity and forming interesting structural changes in the subject being tested. Exposure to radiation on living subjects scheduled.", + "Exposure to radiation of test subject T3D indicates stimulation of internal XE037 deposits and a temporary lifting of the mammalian stasis condition.", + "As in the tests of isolated XE037 samples, prolonged radiation exposure of T3D has resulted in significant structural changes. These do not appear to be random. T3D appears to be in immense pain as a result of these changes, but the lack of an oral opening has rendered him unable to vocalize.", + "Subject T3D has succumbed to radiation poisoning, but not before undergoing several more physiological changes the lab boys are referring to as \"mutations\". They do not appear to be truly random, and may be an attempt by XE037 to adapt its host to an unknown stimulus.", + "Post-mortem revivification of subject T3D occurred as expected, followed by an immediate autopsy. The internal changes were significant, with large parts of the subjects internal anatomy replaced with \"organs\" of XE037 with unknown properties, primarily those known to succumb earlier to the effects of radiation poisoning.", + "Samples of XE037 from subject T3D remains extremely active. Further experimentation on induced mutation in infected individuals shows significant potential. Samples of the enhanced XE037, labeled PE012, have been sent to several researchers for further study.", + "S37ZBE, the special investigation into the effects of XE037 on inert human bodies, has made terrific discoveries. It seems that it occasionally displays a mutagenic property which manifests itself after termination of the subject, resulting in a striking variety in postmortem morphology.", + "Incidence of post-mortem mutation seems to depend on several factors - leading candidates include type and amount of damage sustained leading to expiration, embedded foreign bodies at time of revivification, proximity to other revived individuals, and the body mass of the subject.", + "Time also appears to play a large role in post-mortem revivification, as does sustained trauma insufficient to permanently disable the subject. Sufficient amounts of trauma in short periods of time lead to deactivation of XE037, but smaller amounts over several days cause it to expand.", + "S37ZBE may be put on indefinite hold shortly. Postmortem morphological changes have reached extreme levels; this morning one subject nearly doubled in size, acquiring enough strength to reduce a concrete wall to rubble. It required a 6 man team, heavily armed, to re-terminate the subject.", + "Jakobson insists that S37ZBE must continue, despite the extreme security and safety risks. Nearly half of our security forces have been redirected to the S37ZBE project, simply to deal with the occasional escape of a subject.", + "Jakobson was killed today by one of S37ZBE's subjects; ironic considering how hard he fought to keep the project active. Alarmingly, his corpse revivified immediately. This suggests that XE037 may have contaminated the lab at large.", + "Termination of a subject which was never a part of S37ZBE has confirmed my fears. XE037 has contaminated most, if not all of the laboratory, most likely via the water supply. Research has started immediately into a process to destroy XE037 within the human body.", + "Despite a wide variety of treatments, we have been completely unsuccessful in removing XE037 from human subjects. Every individual displayed revivification post termination. Interestingly, XE037 seems to be completely inert prior to termination.", + "We have finally found success in S37BEP, our emergency investigation into the destruction of XE037 in living subjects. 8 of 10 of the subjects showed no revivification, despite confirmed dosages of XE037.", + "PE062, our \"cure\" for XE037 contamination, has neared perfection. Sadly, the production of PE062 is a costly and time-consuming process. What is more, the substance shows no effect on postmortem subjects whatsoever; a substance which renders XE037 inert after it has activated would be immensely useful in the case of an outbreak.", + "An alarming discovery has been made. A colony of XE037 has formed nearly a half mile from the laboratory. It is unclear how it escaped; it is quite possible that it is in the ground water now.", + "An emergency meeting was held today to discuss the possible implications of widespread XE037 contamination. It was agreed that neutralization must be instated immediately to prevent a catastrophic event.", + "It has begun. The XE037 contamination has spread for miles, and those who have since deceased have revivified. It is my fear that extremely large populations will be decimated by this pandemic. We must find a way to remove XE037 from revivified bodies.", + "We have even more distressing news than the widespread XE037 contamination, there are reports of the XE037 mutating into various new variants. See data files on XE037a - XE037f. Research on the effects of these variants is ongoing. We do know that XE037d shows signs of PE062 immunity, and XE037b can revive various breeds of canines. However, revival is not as guaranteed as standard XE037 humanoid infection. Canine body size seems to influence the chances. See experiment tXE037b_c.", + "Today we found our solution, quite by accident. It was found that XE037 is completely removed from a revivified body following a series of extremely-high energy 4th dimensional transpositions. Unfortunately, this invariably allows subplane life forms to pass into the prime plan. The cure is worse than the disease.", + "XE037 revivification has reached critical levels, which are rapidly overwhelming the available military and regional police assets' ability to stop. Every team in the field has encountered hostile specimens, and several are no longer responding to communications. Dr. Savage has proposed a strategic redeployment to the underground complex known as the VAULT, and continuing production of PE062 there." + ] } ] diff --git a/data/json/terrain.json b/data/json/terrain.json index 06680ca35f616..6f649637064e7 100644 --- a/data/json/terrain.json +++ b/data/json/terrain.json @@ -9554,7 +9554,7 @@ ] }, "connects_to": "RAIL", - "flags": [ "BASHABLE", "TRANSPARENT" ] + "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] }, { "id": "t_railroad_track_h", @@ -9584,7 +9584,7 @@ ] }, "connects_to": "RAIL", - "flags": [ "BASHABLE", "TRANSPARENT" ] + "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] }, { "id": "t_railroad_track_v", @@ -9614,7 +9614,7 @@ ] }, "connects_to": "RAIL", - "flags": [ "BASHABLE", "TRANSPARENT" ] + "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] }, { "id": "t_railroad_track_d", @@ -9644,7 +9644,7 @@ ] }, "connects_to": "RAIL", - "flags": [ "BASHABLE", "TRANSPARENT" ] + "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] }, { "id": "t_railroad_track_d1", @@ -9674,7 +9674,7 @@ ] }, "connects_to": "RAIL", - "flags": [ "BASHABLE", "TRANSPARENT" ] + "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] }, { "id": "t_railroad_track_d2", @@ -9704,7 +9704,7 @@ ] }, "connects_to": "RAIL", - "flags": [ "BASHABLE", "TRANSPARENT" ] + "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] }, { "id": "t_railroad_tie", @@ -9712,7 +9712,7 @@ "name": "railroad tie", "symbol": "#", "color": [ "dark_gray_yellow" ], - "move_cost": 3, + "move_cost": 2, "bash": { "str_min": 10, "str_max": 120, @@ -9734,7 +9734,7 @@ "name": "railroad tie", "symbol": "#", "color": [ "dark_gray_yellow" ], - "move_cost": 3, + "move_cost": 2, "bash": { "str_min": 10, "str_max": 120, @@ -9756,7 +9756,7 @@ "name": "railroad tie", "symbol": "#", "color": [ "dark_gray_yellow" ], - "move_cost": 3, + "move_cost": 2, "bash": { "str_min": 10, "str_max": 120, @@ -9778,7 +9778,7 @@ "name": "railroad tie", "symbol": "#", "color": [ "dark_gray_yellow" ], - "move_cost": 3, + "move_cost": 2, "bash": { "str_min": 10, "str_max": 120, @@ -9825,7 +9825,7 @@ ] }, "connects_to": "RAIL", - "flags": [ "BASHABLE", "TRANSPARENT" ] + "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] }, { "id": "t_railroad_track_h_on_tie", @@ -9858,7 +9858,7 @@ ] }, "connects_to": "RAIL", - "flags": [ "BASHABLE", "TRANSPARENT" ] + "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] }, { "id": "t_railroad_track_v_on_tie", @@ -9891,7 +9891,7 @@ ] }, "connects_to": "RAIL", - "flags": [ "BASHABLE", "TRANSPARENT" ] + "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] }, { "id": "t_railroad_track_d_on_tie", @@ -9924,7 +9924,7 @@ ] }, "connects_to": "RAIL", - "flags": [ "BASHABLE", "TRANSPARENT" ] + "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] }, { "id": "t_floor_waxed_y", @@ -9996,72 +9996,6 @@ }, "flags": [ "BASHABLE", "TRANSPARENT", "NOITEM", "MOUNTABLE" ] }, - { - "id": "t_railroad_tie", - "type": "terrain", - "name": "railroad tie", - "symbol": "#", - "color": [ "dark_gray_yellow" ], - "move_cost": 2, - "bash": { - "str_min": 10, - "str_max": 120, - "sound": "crunch!", - "sound_fail": "whump.", - "ter_set": "t_rock_floor", - "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] - }, - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ { "item": "log", "count": [ 0, 1 ] }, { "item": "splinter", "count": [ 10, 20 ] } ] - }, - "connects_to": "RAIL", - "flags": [ "BASHABLE", "TRANSPARENT" ] - }, - { - "id": "t_railroad_tie_h", - "type": "terrain", - "name": "railroad tie", - "symbol": "-", - "color": [ "dark_gray_yellow" ], - "move_cost": 2, - "bash": { - "str_min": 10, - "str_max": 120, - "sound": "crunch!", - "sound_fail": "whump.", - "ter_set": "t_rock_floor", - "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] - }, - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ { "item": "log", "count": [ 0, 1 ] }, { "item": "splinter", "count": [ 10, 20 ] } ] - }, - "connects_to": "RAIL", - "flags": [ "BASHABLE", "TRANSPARENT" ] - }, - { - "id": "t_railroad_tie_v", - "type": "terrain", - "name": "railroad tie", - "symbol": "|", - "color": [ "dark_gray" ], - "move_cost": 2, - "bash": { - "str_min": 10, - "str_max": 120, - "sound": "crunch!", - "sound_fail": "whump.", - "ter_set": "t_rock_floor", - "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] - }, - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ { "item": "log", "count": [ 0, 1 ] }, { "item": "splinter", "count": [ 10, 20 ] } ] - }, - "connects_to": "RAIL", - "flags": [ "BASHABLE", "TRANSPARENT" ] - }, { "id": "t_railroad_tie_d1", "type": "terrain", @@ -10296,6 +10230,18 @@ "color": "green", "move_cost": 3, "flags": [ "TRANSPARENT", "DIGGABLE", "MOUNTABLE", "NOCOLLIDE" ], - "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 50, "str_max": 100, "str_min_supported": 100 } + "bash": { "sound": "thump", "ter_set": "t_dirt", "str_min": 50, "str_max": 100, "str_min_supported": 100 } + }, + { + "type": "terrain", + "id": "t_grave_new", + "name": "grave", + "looks_like": "t_dirtmound", + "description": "A fresh grave, covered with stones, either to keep something from digging it out or to keep one inside from digging out of it. Two planks mark this place of someone's eternal rest.", + "symbol": "#", + "color": "brown", + "move_cost": 3, + "flags": [ "TRANSPARENT", "DIGGABLE", "MOUNTABLE", "NOCOLLIDE", "CONTAINER", "SEALED" ], + "bash": { "sound": "thump", "ter_set": "t_dirt", "str_min": 50, "str_max": 100, "str_min_supported": 100 } } ] diff --git a/data/json/uncraft/ammo/10mm.json b/data/json/uncraft/ammo/10mm.json new file mode 100644 index 0000000000000..4443752c21be6 --- /dev/null +++ b/data/json/uncraft/ammo/10mm.json @@ -0,0 +1,10 @@ +[ + { + "result": "10mm", + "type": "uncraft", + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 2 ] ], [ [ "40_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 5 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/22.json b/data/json/uncraft/ammo/22.json new file mode 100644 index 0000000000000..242bfa02d4b8b --- /dev/null +++ b/data/json/uncraft/ammo/22.json @@ -0,0 +1,42 @@ +[ + { + "result": "22_cb", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 2 ] ], [ [ "22_casing_new", 1 ] ], [ [ "gunpowder", 1 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + }, + { + "result": "22_fmj", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 2 ] ], [ [ "22_casing_new", 1 ] ], [ [ "gunpowder", 2 ] ], [ [ "copper", 1 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + }, + { + "result": "22_lr", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 2 ] ], [ [ "22_casing_new", 1 ] ], [ [ "gunpowder", 2 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + }, + { + "result": "22_ratshot", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 2 ] ], [ [ "22_casing_new", 1 ] ], [ [ "gunpowder", 2 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/223.json b/data/json/uncraft/ammo/223.json new file mode 100644 index 0000000000000..dca5e82256bff --- /dev/null +++ b/data/json/uncraft/ammo/223.json @@ -0,0 +1,12 @@ +[ + { + "result": "223", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 3 ] ], [ [ "223_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 4 ] ], [ [ "copper", 2 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/270.json b/data/json/uncraft/ammo/270.json new file mode 100644 index 0000000000000..4e2aa22b316b9 --- /dev/null +++ b/data/json/uncraft/ammo/270.json @@ -0,0 +1,18 @@ +[ + { + "result": "270", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ + [ [ "lead", 5 ] ], + [ [ "3006_casing", 1 ] ], + [ [ "lgrifle_primer", 1 ] ], + [ [ "gunpowder", 10 ] ], + [ [ "copper", 5 ] ] + ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/30-06.json b/data/json/uncraft/ammo/30-06.json new file mode 100644 index 0000000000000..a7e680458d406 --- /dev/null +++ b/data/json/uncraft/ammo/30-06.json @@ -0,0 +1,50 @@ +[ + { + "result": "3006", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ + [ [ "lead", 6 ] ], + [ [ "3006_casing", 1 ] ], + [ [ "lgrifle_primer", 1 ] ], + [ [ "gunpowder", 8 ] ], + [ [ "copper", 6 ] ] + ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + }, + { + "result": "3006_incendiary", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ + [ [ "incendiary", 6 ] ], + [ [ "3006_casing", 1 ] ], + [ [ "lgrifle_primer", 1 ] ], + [ [ "gunpowder", 8 ] ], + [ [ "copper", 6 ] ] + ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + }, + { + "result": "3006fmj", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ + [ [ "lead", 6 ] ], + [ [ "3006_casing", 1 ] ], + [ [ "lgrifle_primer", 1 ] ], + [ [ "gunpowder", 8 ] ], + [ [ "copper", 6 ] ] + ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/300.json b/data/json/uncraft/ammo/300.json new file mode 100644 index 0000000000000..9e9e09c8a66f7 --- /dev/null +++ b/data/json/uncraft/ammo/300.json @@ -0,0 +1,18 @@ +[ + { + "result": "300_winmag", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ + [ [ "lead", 8 ] ], + [ [ "300_casing", 1 ] ], + [ [ "lgrifle_primer", 1 ] ], + [ [ "gunpowder", 16 ] ], + [ [ "copper", 21 ] ] + ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/308.json b/data/json/uncraft/ammo/308.json new file mode 100644 index 0000000000000..ff8d64baf1180 --- /dev/null +++ b/data/json/uncraft/ammo/308.json @@ -0,0 +1,18 @@ +[ + { + "result": "308", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ + [ [ "lead", 6 ] ], + [ [ "308_casing", 1 ] ], + [ [ "lgrifle_primer", 1 ] ], + [ [ "gunpowder", 10 ] ], + [ [ "copper", 6 ] ] + ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/32.json b/data/json/uncraft/ammo/32.json new file mode 100644 index 0000000000000..4fb8413c7d042 --- /dev/null +++ b/data/json/uncraft/ammo/32.json @@ -0,0 +1,12 @@ +[ + { + "result": "32_acp", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 2 ] ], [ [ "32_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 2 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/357.json b/data/json/uncraft/ammo/357.json new file mode 100644 index 0000000000000..913c90803b63d --- /dev/null +++ b/data/json/uncraft/ammo/357.json @@ -0,0 +1,18 @@ +[ + { + "result": "357sig_fmj", + "type": "uncraft", + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 2 ] ], [ [ "357sig_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 2 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + }, + { + "result": "357sig_jhp", + "type": "uncraft", + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 2 ] ], [ [ "357sig_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 2 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/380.json b/data/json/uncraft/ammo/380.json new file mode 100644 index 0000000000000..dc4b9db6bf46f --- /dev/null +++ b/data/json/uncraft/ammo/380.json @@ -0,0 +1,26 @@ +[ + { + "result": "380_JHP", + "copy-from": "ammo_cartridge", + "type": "uncraft", + "using": [ [ "ammo_380", 1 ] ], + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 2 ] ], [ [ "gunpowder", 3 ] ] ] + }, + { + "result": "380_FMJ", + "copy-from": "ammo_cartridge", + "type": "uncraft", + "using": [ [ "ammo_380", 1 ] ], + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 2 ] ], [ [ "gunpowder", 3 ] ] ] + }, + { + "result": "380_p", + "copy-from": "ammo_cartridge", + "type": "uncraft", + "using": [ [ "ammo_380", 1 ] ], + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 2 ] ], [ [ "gunpowder", 4 ] ] ] + } +] diff --git a/data/json/uncraft/ammo/40.json b/data/json/uncraft/ammo/40.json index 45ff2fc0114e5..240584f56149f 100644 --- a/data/json/uncraft/ammo/40.json +++ b/data/json/uncraft/ammo/40.json @@ -1,12 +1,4 @@ [ - { - "result": "10mm", - "type": "uncraft", - "time": 500, - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ [ [ "lead", 2 ] ], [ [ "40_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 5 ] ] ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - }, { "result": "40fmj", "type": "uncraft", diff --git a/data/json/uncraft/ammo/44.json b/data/json/uncraft/ammo/44.json new file mode 100644 index 0000000000000..8fca89f163f86 --- /dev/null +++ b/data/json/uncraft/ammo/44.json @@ -0,0 +1,28 @@ +[ + { + "result": "44fmj", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ + [ [ "lead", 7 ] ], + [ [ "44_casing", 1 ] ], + [ [ "lgpistol_primer", 1 ] ], + [ [ "gunpowder", 10 ] ], + [ [ "copper", 7 ] ] + ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + }, + { + "result": "44magnum", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 10 ] ], [ [ "44_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 10 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/454.json b/data/json/uncraft/ammo/454.json new file mode 100644 index 0000000000000..9aadc461c0446 --- /dev/null +++ b/data/json/uncraft/ammo/454.json @@ -0,0 +1,18 @@ +[ + { + "result": "454_Casull", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ + [ [ "lead", 20 ] ], + [ [ "454_casing", 1 ] ], + [ [ "smrifle_primer", 1 ] ], + [ [ "gunpowder", 20 ] ], + [ [ "copper", 20 ] ] + ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/460.json b/data/json/uncraft/ammo/460.json new file mode 100644 index 0000000000000..1166cac807b01 --- /dev/null +++ b/data/json/uncraft/ammo/460.json @@ -0,0 +1,22 @@ +[ + { + "result": "460_fmj", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 3 ] ], [ [ "460_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 10 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + }, + { + "result": "460_rowland", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 3 ] ], [ [ "460_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 10 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/46mm.json b/data/json/uncraft/ammo/46mm.json new file mode 100644 index 0000000000000..af175720d8fa8 --- /dev/null +++ b/data/json/uncraft/ammo/46mm.json @@ -0,0 +1,12 @@ +[ + { + "result": "46mm", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 2 ] ], [ [ "46mm_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 4 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/500.json b/data/json/uncraft/ammo/500.json new file mode 100644 index 0000000000000..67cf5a9ba064b --- /dev/null +++ b/data/json/uncraft/ammo/500.json @@ -0,0 +1,18 @@ +[ + { + "result": "500_Magnum", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ + [ [ "lead", 24 ] ], + [ [ "500_casing", 1 ] ], + [ [ "lgpistol_primer", 1 ] ], + [ [ "gunpowder", 24 ] ], + [ [ "copper", 24 ] ] + ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/50bmg.json b/data/json/uncraft/ammo/50bmg.json new file mode 100644 index 0000000000000..531146972e632 --- /dev/null +++ b/data/json/uncraft/ammo/50bmg.json @@ -0,0 +1,51 @@ +[ + { + "result": "50_incendiary", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ + [ [ "lead", 12 ] ], + [ [ "incendiary", 20 ] ], + [ [ "50_casing", 1 ] ], + [ [ "lgrifle_primer", 1 ] ], + [ [ "gunpowder", 30 ] ], + [ [ "copper", 6 ] ] + ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + }, + { + "result": "50bmg", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ + [ [ "lead", 12 ] ], + [ [ "50_casing", 1 ] ], + [ [ "lgrifle_primer", 1 ] ], + [ [ "gunpowder", 30 ] ], + [ [ "copper", 6 ] ] + ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + }, + { + "result": "50ss", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ + [ [ "50_casing", 1 ] ], + [ [ "lgrifle_primer", 1 ] ], + [ [ "gunpowder", 30 ] ], + [ [ "copper", 6 ] ], + [ [ "scrap", 1 ] ] + ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/545.json b/data/json/uncraft/ammo/545.json new file mode 100644 index 0000000000000..f54ccecae44ed --- /dev/null +++ b/data/json/uncraft/ammo/545.json @@ -0,0 +1,22 @@ +[ + { + "result": "545", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 2 ] ], [ [ "545_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 5 ] ], [ [ "copper", 2 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + }, + { + "result": "545_ap", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 3 ] ], [ [ "545_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 5 ] ], [ [ "copper", 3 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/556.json b/data/json/uncraft/ammo/556.json new file mode 100644 index 0000000000000..2a327fd8ee8e1 --- /dev/null +++ b/data/json/uncraft/ammo/556.json @@ -0,0 +1,29 @@ +[ + { + "result": "556", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 3 ] ], [ [ "223_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 6 ] ], [ [ "copper", 2 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + }, + { + "result": "556_incendiary", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ + [ [ "incendiary", 2 ] ], + [ [ "lead", 3 ] ], + [ [ "223_casing", 1 ] ], + [ [ "smrifle_primer", 1 ] ], + [ [ "gunpowder", 6 ] ], + [ [ "copper", 2 ] ] + ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/57mm.json b/data/json/uncraft/ammo/57mm.json new file mode 100644 index 0000000000000..27de3401554ab --- /dev/null +++ b/data/json/uncraft/ammo/57mm.json @@ -0,0 +1,12 @@ +[ + { + "result": "57mm", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 2 ] ], [ [ "57mm_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 4 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/5x50.json b/data/json/uncraft/ammo/5x50.json new file mode 100644 index 0000000000000..ab22c90e367f7 --- /dev/null +++ b/data/json/uncraft/ammo/5x50.json @@ -0,0 +1,22 @@ +[ + { + "result": "5x50dart", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 2 ] ], [ [ "5x50_hull", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 3 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + }, + { + "result": "5x50heavy", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 3 ] ], [ [ "5x50_hull", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 3 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/700nx.json b/data/json/uncraft/ammo/700nx.json new file mode 100644 index 0000000000000..41daf44340173 --- /dev/null +++ b/data/json/uncraft/ammo/700nx.json @@ -0,0 +1,18 @@ +[ + { + "result": "700nx", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ + [ [ "lead", 14 ] ], + [ [ "700nx_casing", 1 ] ], + [ [ "lgrifle_primer", 1 ] ], + [ [ "gunpowder", 38 ] ], + [ [ "copper", 9 ] ] + ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/762x39.json b/data/json/uncraft/ammo/762x39.json new file mode 100644 index 0000000000000..f50b3fca5bf61 --- /dev/null +++ b/data/json/uncraft/ammo/762x39.json @@ -0,0 +1,22 @@ +[ + { + "result": "762_m43", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 5 ] ], [ [ "762_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 7 ] ], [ [ "copper", 5 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + }, + { + "result": "762_m87", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 5 ] ], [ [ "762_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 8 ] ], [ [ "copper", 5 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/762x51.json b/data/json/uncraft/ammo/762x51.json new file mode 100644 index 0000000000000..0bda4e337e908 --- /dev/null +++ b/data/json/uncraft/ammo/762x51.json @@ -0,0 +1,34 @@ +[ + { + "result": "762_51", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ + [ [ "lead", 6 ] ], + [ [ "762_51_casing", 1 ] ], + [ [ "lgrifle_primer", 1 ] ], + [ [ "gunpowder", 10 ] ], + [ [ "copper", 6 ] ] + ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + }, + { + "result": "762_51_incendiary", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ + [ [ "incendiary", 6 ] ], + [ [ "762_51_casing", 1 ] ], + [ [ "lgrifle_primer", 1 ] ], + [ [ "gunpowder", 10 ] ], + [ [ "copper", 6 ] ] + ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/762x54.json b/data/json/uncraft/ammo/762x54.json new file mode 100644 index 0000000000000..e28d2f4b8c68f --- /dev/null +++ b/data/json/uncraft/ammo/762x54.json @@ -0,0 +1,18 @@ +[ + { + "result": "762_54R", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ + [ [ "lead", 3 ] ], + [ [ "762_casing", 1 ] ], + [ [ "lgrifle_primer", 1 ] ], + [ [ "gunpowder", 8 ] ], + [ [ "copper", 10 ] ] + ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/uncraft/ammo/9x18mm.json b/data/json/uncraft/ammo/9x18mm.json new file mode 100644 index 0000000000000..bef3947b3a268 --- /dev/null +++ b/data/json/uncraft/ammo/9x18mm.json @@ -0,0 +1,38 @@ +[ + { + "result": "9x18mm", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 2 ] ], [ [ "9x18mm_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 3 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + }, + { + "result": "9x18mmP2", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 2 ] ], [ [ "9x18mm_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 5 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + }, + { + "result": "9x18mmfmj", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ + [ [ "lead", 2 ] ], + [ [ "9x18mm_casing", 1 ] ], + [ [ "smpistol_primer", 1 ] ], + [ [ "gunpowder", 3 ] ], + [ [ "copper", 2 ] ] + ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + } +] diff --git a/data/json/vehicle_groups.json b/data/json/vehicle_groups.json index c77f84ab06787..fe00769ac1ae5 100644 --- a/data/json/vehicle_groups.json +++ b/data/json/vehicle_groups.json @@ -39,7 +39,8 @@ [ "cube_van_cheap", 400 ], [ "cube_van", 300 ], [ "security_van", 500 ], - [ "schoolbus", 600 ], + [ "schoolbus", 100 ], + [ "bus", 500 ], [ "rv", 500 ], [ "lux_rv", 100 ], [ "meth_lab", 200 ], @@ -108,7 +109,8 @@ [ "apc-gl", 100 ], [ "aapc-mg", 100 ], [ "aapc-gl", 50 ], - [ "schoolbus", 400 ], + [ "schoolbus", 50 ], + [ "bus", 350 ], [ "rv", 800 ], [ "lux_rv", 100 ], [ "meth_lab", 300 ], @@ -265,7 +267,7 @@ "id": "school_vehicles", "type": "vehicle_group", "//": "School bus or fire truck found near school locations", - "vehicles": [ [ "schoolbus", 50 ], [ "fire_truck", 70 ] ] + "vehicles": [ [ "schoolbus", 50 ], [ "fire_truck", 70 ], [ "bus", 30 ] ] }, { "id": "bandit_vehicles", @@ -463,5 +465,10 @@ [ "pickup", 800 ], [ "hippie_van", 1000 ] ] + }, + { + "type": "vehicle_group", + "id": "buses", + "vehicles": [ [ "bus", 1000 ], [ "schoolbus", 100 ] ] } ] diff --git a/data/json/vehicleparts/combustion.json b/data/json/vehicleparts/combustion.json index c1f027adab622..5b524dc2cfcef 100644 --- a/data/json/vehicleparts/combustion.json +++ b/data/json/vehicleparts/combustion.json @@ -36,6 +36,16 @@ "//": "30% energy efficiency", "description": "A combustion engine. Burns gasoline fuel from a tank in the vehicle." }, + { + "abstract": "gas_turbine_engine", + "copy-from": "engine_combustion", + "type": "vehicle_part", + "fuel_type": "gasoline", + "fuel_options": [ "gasoline", "diesel", "lamp_oil" ], + "m2c": 60, + "//": "25% energy efficiency", + "description": "An advanced combustion engine. Burns gasoline or diesel fuel from a tank in the vehicle. Can also burn lamp oil, though somewhat less efficiently. Better power-to-weight ratio than a traditional engine, but consumes more fuel." + }, { "id": "diesel_engine_i6", "copy-from": "diesel_engine", @@ -286,5 +296,56 @@ { "item": "scrap", "count": [ 30, 60 ] }, { "item": "water", "count": [ 50, 120 ] } ] + }, + { + "id": "engine_turbine_small", + "copy-from": "gas_turbine_engine", + "type": "vehicle_part", + "item": "small_turbine_engine", + "difficulty": 7, + "durability": 400, + "epower": -10, + "power": 1006695, + "energy_consumption": 4026780, + "breaks_into": [ + { "item": "alloy_plate", "count": [ 1, 2 ] }, + { "item": "steel_lump", "count": [ 45, 58 ] }, + { "item": "steel_chunk", "count": [ 45, 58 ] }, + { "item": "scrap", "count": [ 45, 58 ] } + ] + }, + { + "id": "engine_turbine_medium", + "copy-from": "gas_turbine_engine", + "type": "vehicle_part", + "item": "medium_turbine_engine", + "difficulty": 8, + "durability": 400, + "epower": -10, + "power": 1416830, + "energy_consumption": 5667320, + "breaks_into": [ + { "item": "alloy_plate", "count": [ 2, 4 ] }, + { "item": "steel_lump", "count": [ 50, 65 ] }, + { "item": "steel_chunk", "count": [ 50, 65 ] }, + { "item": "scrap", "count": [ 50, 65 ] } + ] + }, + { + "id": "engine_turbine_large", + "copy-from": "gas_turbine_engine", + "type": "vehicle_part", + "item": "large_turbine_engine", + "difficulty": 9, + "durability": 400, + "epower": -10, + "power": 4474199, + "energy_consumption": 17896796, + "breaks_into": [ + { "item": "alloy_plate", "count": [ 4, 6 ] }, + { "item": "steel_lump", "count": [ 100, 120 ] }, + { "item": "steel_chunk", "count": [ 100, 120 ] }, + { "item": "scrap", "count": [ 100, 120 ] } + ] } ] diff --git a/data/json/vehicleparts/motor.json b/data/json/vehicleparts/motor.json index 33582cbe81165..683e28ec179c9 100644 --- a/data/json/vehicleparts/motor.json +++ b/data/json/vehicleparts/motor.json @@ -6,7 +6,7 @@ "item": "motor", "location": "engine_block", "description": "An electric motor.", - "noise_factor": 3, + "noise_factor": 5, "m2c": 90, "fuel_type": "battery", "symbol": "*", diff --git a/data/json/vehicleparts/wheel.json b/data/json/vehicleparts/wheel.json index 2fb6815fa05ff..8d4020b0461af 100644 --- a/data/json/vehicleparts/wheel.json +++ b/data/json/vehicleparts/wheel.json @@ -17,6 +17,31 @@ "contact_area": 80, "flags": [ "WHEEL" ] }, + { + "id": "rail_wheel", + "type": "vehicle_part", + "name": "rail wheel", + "item": "wheel_rail", + "location": "under", + "symbol": "|", + "broken_symbol": "x", + "difficulty": 2, + "durability": 180, + "description": "A strong metal wheel. A flange helps keep it on a rail, but makes it perform terribly when not on a rail.", + "damage_modifier": 70, + "breaks_into": [ { "item": "scrap", "count": [ 4, 6 ] }, { "item": "steel_chunk", "count": [ 2, 3 ] } ], + "rolling_resistance": 0.25, + "wheel_type": "rail", + "contact_area": 80, + "flags": [ "WHEEL", "RAIL" ] + }, + { + "id": "rail_wheel_steerable", + "copy-from": "rail_wheel", + "type": "vehicle_part", + "name": "rail wheel (steerable)", + "extend": { "flags": [ "STEERABLE" ] } + }, { "id": "roller_drum", "type": "vehicle_part", diff --git a/data/json/vehicles/cars.json b/data/json/vehicles/cars.json index b89d08563e6ae..7e22b82cf700d 100644 --- a/data/json/vehicles/cars.json +++ b/data/json/vehicles/cars.json @@ -904,56 +904,6 @@ { "x": -3, "y": 2, "part": "solar_panel" } ] }, - { - "id": "electric_car_flame", - "type": "vehicle", - "name": "Flaming Electric Car", - "blueprint": [ - [ "##++-o" ], - [ "+=##'|" ], - [ "+=##'|" ], - [ "##++-o" ] - ], - "parts": [ - { "x": 0, "y": 0, "part": "frame_vertical_2" }, - { "x": 0, "y": 0, "part": "seat" }, - { "x": 0, "y": 0, "part": "seatbelt" }, - { "x": 0, "y": 0, "part": "controls" }, - { "x": 0, "y": 0, "part": "dashboard" }, - { "x": 0, "y": 0, "part": "roof" }, - { "x": 0, "y": 0, "part": "tank", "fuel": "napalm" }, - { "x": 0, "y": 1, "part": "frame_vertical_2" }, - { "x": 0, "y": 1, "part": "tank", "fuel": "gasoline" }, - { "x": 0, "y": -1, "part": "frame_vertical" }, - { "x": 0, "y": -1, "part": "tank", "fuel": "water_clean" }, - { "x": 0, "y": -1, "part": "turret_mount" }, - { "x": 0, "y": -1, "part": "laser_rifle" }, - { "x": 0, "y": 2, "part": "frame_vertical" }, - { "x": -1, "y": 0, "part": "frame_vertical_2" }, - { "x": -1, "y": 1, "part": "frame_vertical_2" }, - { "x": -1, "y": -1, "part": "frame_vertical" }, - { "x": -1, "y": -1, "part": "wheel" }, - { "x": -1, "y": -1, "part": "storage_battery" }, - { "x": -1, "y": 2, "part": "frame_vertical" }, - { "x": -1, "y": 2, "part": "wheel" }, - { "x": -1, "y": 2, "part": "storage_battery" }, - { "x": 1, "y": 0, "part": "frame_horizontal" }, - { "x": 1, "y": 0, "part": "engine_electric_large" }, - { "x": 1, "y": 0, "part": "turret_mount" }, - { "x": 1, "y": 0, "part": "flamethrower" }, - { "x": 1, "y": 1, "part": "frame_horizontal" }, - { "x": 1, "y": 1, "part": "storage_battery_mount", "//": "to make the blazemod happy" }, - { "x": 1, "y": -1, "part": "frame_nw" }, - { "x": 1, "y": -1, "part": "wheel_steerable" }, - { "x": 1, "y": -1, "part": "turret_mount" }, - { "x": 1, "y": -1, "part": "watercannon" }, - { "x": 1, "y": 2, "part": "frame_ne" }, - { "x": 1, "y": 2, "part": "wheel_steerable" }, - { "x": 1, "y": 2, "part": "tank", "fuel": "water" }, - { "x": 1, "y": 2, "part": "turret_mount" }, - { "x": 1, "y": 2, "part": "m249", "ammo": 100 } - ] - }, { "id": "rara_x", "type": "vehicle", diff --git a/data/json/vehicles/helicopters.json b/data/json/vehicles/helicopters.json index 8108b7df1e062..c3cd8e6dfde31 100644 --- a/data/json/vehicles/helicopters.json +++ b/data/json/vehicles/helicopters.json @@ -67,7 +67,8 @@ { "x": -1, "y": 0, "part": "plating_military" }, { "x": 1, "y": -1, "part": "plating_military" }, { "x": 0, "y": -1, "part": "plating_military" }, - { "x": -3, "y": -1, "part": "minireactor" }, + { "x": -3, "y": -1, "part": "engine_turbine_medium" }, + { "x": -4, "y": -1, "part": "engine_turbine_medium" }, { "x": 2, "y": -2, "part": "windshield" }, { "x": 2, "y": 0, "part": "windshield" }, { "x": -4, "y": -1, "part": "board_vertical" }, @@ -242,7 +243,8 @@ { "x": -1, "y": 0, "part": "plating_military" }, { "x": 1, "y": -1, "part": "plating_military" }, { "x": 0, "y": -1, "part": "plating_military" }, - { "x": -3, "y": -1, "part": "minireactor" }, + { "x": -3, "y": -1, "part": "engine_turbine_medium" }, + { "x": -4, "y": -1, "part": "engine_turbine_medium" }, { "x": 2, "y": -2, "part": "windshield" }, { "x": 2, "y": 0, "part": "windshield" }, { "x": -4, "y": -1, "part": "board_vertical" }, @@ -376,7 +378,8 @@ { "x": -11, "y": 0, "part": "frame_sw" }, { "x": 0, "y": 0, "part": "plating_military" }, { "x": -1, "y": 2, "part": "plating_military" }, - { "x": -3, "y": 1, "part": "minireactor" }, + { "x": -3, "y": 1, "part": "engine_turbine_medium" }, + { "x": -4, "y": 1, "part": "engine_turbine_medium" }, { "x": -4, "y": 1, "part": "board_vertical" }, { "x": -2, "y": 1, "part": "board_vertical" }, { "x": -3, "y": 1, "part": "plating_military" }, @@ -934,7 +937,9 @@ { "x": -5, "y": 1, "part": "seatbelt" }, { "x": -4, "y": 1, "part": "seatbelt" }, { "x": -2, "y": 0, "part": "omnicam" }, - { "x": 0, "y": 0, "part": "cam_control" } + { "x": 0, "y": 0, "part": "cam_control" }, + { "x": -5, "y": -8, "part": "engine_turbine_large" }, + { "x": -5, "y": 8, "part": "engine_turbine_large" } ], "items": [ { "x": -12, "y": -1, "chance": 5, "items": [ "grenade" ] }, @@ -1358,7 +1363,8 @@ { "x": -2, "y": 2, "part": "roof" }, { "x": -2, "y": 3, "part": "roof" }, { "x": -3, "y": 3, "part": "roof" }, - { "x": -4, "y": 3, "part": "roof" } + { "x": -4, "y": 3, "part": "roof" }, + { "x": -5, "y": -8, "part": "engine_turbine_large" } ], "items": [ { "x": -12, "y": -1, "chance": 5, "items": [ "grenade" ] }, @@ -1931,7 +1937,9 @@ { "x": -6, "y": 0, "part": "roof" }, { "x": -6, "y": -1, "part": "roof" }, { "x": -5, "y": -1, "part": "roof" }, - { "x": -4, "y": -1, "part": "roof" } + { "x": -4, "y": -1, "part": "roof" }, + { "x": -5, "y": 0, "part": "engine_turbine_medium" }, + { "x": -5, "y": 2, "part": "engine_turbine_medium" } ], "items": [ { "x": -6, "y": 1, "chance": 7, "items": [ "mre_veggy_box" ] }, @@ -2115,7 +2123,9 @@ { "x": -4, "y": 3, "part": "roof" }, { "x": -3, "y": 3, "part": "roof" }, { "x": -2, "y": 3, "part": "roof" }, - { "x": -1, "y": 3, "part": "roof" } + { "x": -1, "y": 3, "part": "roof" }, + { "x": -5, "y": 0, "part": "engine_turbine_medium" }, + { "x": -5, "y": 2, "part": "engine_turbine_medium" } ], "items": [ { "x": -6, "y": 1, "chance": 7, "items": [ "mre_veggy_box" ] }, @@ -2272,7 +2282,9 @@ { "x": -10, "y": 0, "part": "halfboard_cover" }, { "x": 0, "y": 1, "part": "aisle_vertical" }, { "x": -2, "y": 3, "part": "door_sliding" }, - { "x": -3, "y": 3, "part": "door_sliding" } + { "x": -3, "y": 3, "part": "door_sliding" }, + { "x": -5, "y": 0, "part": "engine_turbine_medium" }, + { "x": -5, "y": 2, "part": "engine_turbine_medium" } ], "items": [ { "x": -6, "y": 1, "chance": 7, "items": [ "mre_veggy_box" ] }, diff --git a/data/json/vehicles/trains.json b/data/json/vehicles/trains.json index 850da18dceee9..532fd293e2279 100644 --- a/data/json/vehicles/trains.json +++ b/data/json/vehicles/trains.json @@ -12,18 +12,18 @@ { "x": -8, "y": 2, "parts": [ "frame_horizontal", "board_horizontal", "roof" ] }, { "x": -8, "y": 3, "parts": [ "frame_se", "board_se", "roof" ] }, { "x": -7, "y": -3, "parts": [ "frame_vertical", "board_vertical", "roof" ] }, - { "x": -7, "y": -2, "parts": [ "frame_horizontal", "seat", "metal_wheel", "roof" ] }, + { "x": -7, "y": -2, "parts": [ "frame_horizontal", "seat", "rail_wheel", "roof" ] }, { "x": -7, "y": -1, "parts": [ "frame_horizontal", "seat", "roof" ] }, { "x": -7, "y": 0, "parts": [ "frame_cross", "aisle_vertical", "roof" ] }, { "x": -7, "y": 1, "parts": [ "frame_horizontal", "seat", "roof" ] }, - { "x": -7, "y": 2, "parts": [ "frame_horizontal", "seat", "metal_wheel", "roof" ] }, + { "x": -7, "y": 2, "parts": [ "frame_horizontal", "seat", "rail_wheel", "roof" ] }, { "x": -7, "y": 3, "parts": [ "frame_vertical", "board_vertical", "roof" ] }, { "x": -6, "y": -3, "parts": [ "frame_vertical", "windshield", "roof" ] }, - { "x": -6, "y": -2, "parts": [ "frame_horizontal", "aisle_horizontal", "metal_wheel", "roof" ] }, + { "x": -6, "y": -2, "parts": [ "frame_horizontal", "aisle_horizontal", "rail_wheel", "roof" ] }, { "x": -6, "y": -1, "parts": [ "frame_horizontal", "aisle_horizontal", "roof" ] }, { "x": -6, "y": 0, "parts": [ "frame_cross", "aisle_vertical", "aisle_lights", "roof" ] }, { "x": -6, "y": 1, "parts": [ "frame_horizontal", "aisle_horizontal", "roof" ] }, - { "x": -6, "y": 2, "parts": [ "frame_horizontal", "aisle_horizontal", "metal_wheel", "roof" ] }, + { "x": -6, "y": 2, "parts": [ "frame_horizontal", "aisle_horizontal", "rail_wheel", "roof" ] }, { "x": -6, "y": 3, "parts": [ "frame_vertical", "windshield", "roof" ] }, { "x": -5, "y": -3, "parts": [ "frame_vertical", "board_vertical", "roof" ] }, { "x": -5, "y": -2, "parts": [ "frame_vertical_2", "seat", "roof" ] }, @@ -103,18 +103,18 @@ { "x": 5, "y": 2, "parts": [ "frame_vertical_2", "seat", "roof" ] }, { "x": 5, "y": 3, "parts": [ "frame_vertical", "board_vertical", "roof" ] }, { "x": 6, "y": -3, "parts": [ "frame_vertical", "windshield", "roof" ] }, - { "x": 6, "y": -2, "parts": [ "frame_horizontal", "aisle_horizontal", "metal_wheel", "roof" ] }, + { "x": 6, "y": -2, "parts": [ "frame_horizontal", "aisle_horizontal", "rail_wheel", "roof" ] }, { "x": 6, "y": -1, "parts": [ "frame_horizontal", "aisle_horizontal", "roof" ] }, { "x": 6, "y": 0, "parts": [ "frame_cross", "aisle_vertical", "aisle_lights", "roof" ] }, { "x": 6, "y": 1, "parts": [ "frame_horizontal", "aisle_horizontal", "roof" ] }, - { "x": 6, "y": 2, "parts": [ "frame_horizontal", "aisle_horizontal", "metal_wheel", "roof" ] }, + { "x": 6, "y": 2, "parts": [ "frame_horizontal", "aisle_horizontal", "rail_wheel", "roof" ] }, { "x": 6, "y": 3, "parts": [ "frame_vertical", "windshield", "roof" ] }, { "x": 7, "y": -3, "parts": [ "frame_vertical", "board_vertical", "roof" ] }, - { "x": 7, "y": -2, "parts": [ "frame_horizontal", "seat", "metal_wheel", "roof" ] }, + { "x": 7, "y": -2, "parts": [ "frame_horizontal", "seat", "rail_wheel", "roof" ] }, { "x": 7, "y": -1, "parts": [ "frame_horizontal", "seat", "roof" ] }, { "x": 7, "y": 0, "parts": [ "frame_cross", "aisle_vertical", "roof" ] }, { "x": 7, "y": 1, "parts": [ "frame_horizontal", "seat", "roof" ] }, - { "x": 7, "y": 2, "parts": [ "frame_horizontal", "seat", "metal_wheel", "roof" ] }, + { "x": 7, "y": 2, "parts": [ "frame_horizontal", "seat", "rail_wheel", "roof" ] }, { "x": 7, "y": 3, "parts": [ "frame_vertical", "board_vertical", "roof" ] }, { "x": 8, "y": -3, "parts": [ "frame_nw", "board_nw", "roof" ] }, { "x": 8, "y": -2, "parts": [ "frame_horizontal", "board_horizontal", "roof" ] }, @@ -124,5 +124,119 @@ { "x": 8, "y": 2, "parts": [ "frame_horizontal", "board_horizontal", "roof" ] }, { "x": 8, "y": 3, "parts": [ "frame_ne", "board_ne", "roof" ] } ] + }, + { + "id": "motorized_draisine_2seats", + "type": "vehicle", + "name": "Two-Seated Motorized Draisine", + "blueprint": [ + [ "O-O" ], + [ "|#|" ], + [ "|X|" ], + [ "|#|" ], + [ "O-O" ] + ], + "parts": [ + { + "x": 0, + "y": 1, + "parts": [ + "xlframe_vertical_2", + "engine_vtwin", + "alternator_motorbike", + "battery_motorbike", + { "part": "tank_small", "fuel": "gasoline" } + ] + }, + { "x": 1, "y": 1, "part": "xlframe_horizontal" }, + { "x": -1, "y": 1, "part": "xlframe_horizontal" }, + { "x": -1, "y": 2, "part": "xlframe_horizontal" }, + { "x": -1, "y": 3, "parts": [ "xlframe_se", "rail_wheel" ] }, + { "x": 0, "y": 3, "part": "xlframe_vertical" }, + { "x": 0, "y": 2, "parts": [ "xlframe_vertical_2", "seat" ] }, + { "x": 0, "y": 0, "parts": [ "xlframe_vertical_2", "seat", "controls" ] }, + { "x": 1, "y": 2, "part": "xlframe_horizontal" }, + { "x": 1, "y": 0, "part": "xlframe_horizontal" }, + { "x": -1, "y": 0, "part": "xlframe_horizontal" }, + { "x": 1, "y": 3, "parts": [ "xlframe_ne", "rail_wheel_steerable" ] }, + { "x": 1, "y": -1, "parts": [ "xlframe_nw", "rail_wheel_steerable" ] }, + { "x": -1, "y": -1, "parts": [ "xlframe_sw", "rail_wheel" ] }, + { "x": 0, "y": -1, "part": "xlframe_vertical" } + ] + }, + { + "id": "motorized_draisine_6seats", + "type": "vehicle", + "name": "Six-Seated Motorized Draisine", + "blueprint": [ + [ "O-----O" ], + [ "|#|#|#|" ], + [ "|X|X|X|" ], + [ "|#|#|#|" ], + [ "O-----O" ] + ], + "parts": [ + { "x": -2, "y": 1, "part": "xlframe_vertical_2" }, + { "x": -2, "y": 0, "parts": [ "xlframe_vertical_2", "seat" ] }, + { "x": -3, "y": 0, "part": "xlframe_horizontal" }, + { "x": -3, "y": 1, "part": "xlframe_horizontal" }, + { "x": -3, "y": 2, "part": "xlframe_horizontal" }, + { "x": -4, "y": 1, "part": "xlframe_vertical_2" }, + { "x": -4, "y": 0, "parts": [ "xlframe_vertical_2", "seat" ] }, + { "x": -5, "y": 1, "parts": [ "xlframe_horizontal", "xlhalfboard_horizontal" ] }, + { "x": -5, "y": 0, "parts": [ "xlframe_horizontal", "xlhalfboard_horizontal" ] }, + { "x": -5, "y": -1, "parts": [ "xlframe_sw", "rail_wheel" ] }, + { "x": -4, "y": 2, "parts": [ "xlframe_vertical_2", "seat" ] }, + { "x": -2, "y": 2, "parts": [ "xlframe_vertical_2", "seat" ] }, + { "x": -4, "y": 3, "part": "xlframe_vertical" }, + { "x": -3, "y": 3, "part": "xlframe_vertical" }, + { "x": -4, "y": -1, "part": "xlframe_vertical" }, + { "x": -3, "y": -1, "part": "xlframe_vertical" }, + { "x": -2, "y": -1, "part": "xlframe_vertical" }, + { "x": -2, "y": 3, "part": "xlframe_vertical" }, + { "x": -1, "y": 0, "part": "xlframe_horizontal" }, + { "x": -1, "y": 1, "part": "xlframe_horizontal" }, + { "x": -1, "y": 2, "part": "xlframe_horizontal" }, + { "x": 0, "y": 2, "parts": [ "xlframe_vertical_2", "seat" ] }, + { "x": 0, "y": 0, "parts": [ "xlframe_vertical_2", "seat", "controls" ] }, + { "x": -5, "y": 2, "parts": [ "xlframe_horizontal", "xlhalfboard_horizontal" ] }, + { "x": -5, "y": 3, "parts": [ "xlframe_se", "rail_wheel" ] }, + { "x": -1, "y": 3, "part": "xlframe_vertical" }, + { "x": -1, "y": -1, "part": "xlframe_vertical" }, + { + "x": 0, + "y": 1, + "parts": [ + "xlframe_vertical_2", + "engine_vtwin", + "alternator_motorbike", + "battery_motorbike", + { "part": "tank_small", "fuel": "gasoline" } + ] + }, + { "x": 1, "y": 2, "parts": [ "xlframe_horizontal", "xlhalfboard_horizontal" ] }, + { "x": 1, "y": 0, "parts": [ "xlframe_horizontal", "xlhalfboard_horizontal" ] }, + { "x": 1, "y": 1, "parts": [ "xlframe_horizontal", "xlhalfboard_horizontal" ] }, + { "x": 1, "y": 3, "parts": [ "xlframe_ne", "rail_wheel_steerable" ] }, + { "x": 1, "y": -1, "parts": [ "xlframe_nw", "rail_wheel_steerable" ] }, + { "x": 0, "y": -1, "part": "xlframe_vertical" }, + { "x": 0, "y": 3, "part": "xlframe_vertical" } + ] + }, + { + "id": "motorcycle_rail", + "type": "vehicle", + "name": "Rail Motorcycle", + "blueprint": [ "o#>o" ], + "parts": [ + { "x": 0, "y": 0, "parts": [ "frame_vertical_2", "saddle", "motorcycle_kickstand" ] }, + { "x": 1, "y": 0, "parts": [ "frame_handle", { "part": "tank_small", "fuel": "gasoline" } ] }, + { "x": -1, "y": 0, "parts": [ "frame_vertical", "rail_wheel" ] }, + { "x": 2, "y": 0, "parts": [ "frame_vertical", "rail_wheel_steerable" ] }, + { "x": 0, "y": 0, "parts": [ "controls", "controls_electronic", "vehicle_alarm" ] }, + { "x": 0, "y": 0, "parts": [ "horn_car", "engine_vtwin", "alternator_motorbike" ] }, + { "x": 1, "y": 0, "parts": [ "headlight", "battery_motorbike" ] }, + { "x": -1, "y": 0, "parts": [ "muffler", "box" ] } + ] } ] diff --git a/data/json/vehicles/vans_busses.json b/data/json/vehicles/vans_busses.json index 99748b13f2633..cb68840eebae7 100644 --- a/data/json/vehicles/vans_busses.json +++ b/data/json/vehicles/vans_busses.json @@ -1452,6 +1452,236 @@ { "x": -7, "y": 2, "chance": 7, "item_groups": [ "child_items" ] } ] }, + { + "id": "bus", + "type": "vehicle", + "name": "Bus", + "blueprint": [ + [ " o" ], + [ "''O''''''''''O" ], + [ "'###########'H" ], + [ "'#..........'>" ], + [ "'###.######.'H" ], + [ "''O'+''''''+'O" ], + [ " o" ] + ], + "parts": [ + { "x": 0, "y": 1, "part": "frame_vertical_2" }, + { "x": 0, "y": 1, "part": "aisle_vertical" }, + { "x": 0, "y": 1, "part": "roof" }, + { "x": 0, "y": 2, "part": "frame_vertical_2" }, + { "x": 0, "y": 2, "part": "aisle_horizontal" }, + { "x": 0, "y": 2, "part": "roof" }, + { "x": 0, "y": 3, "part": "frame_vertical" }, + { "x": 0, "y": 3, "part": "door" }, + { "x": 0, "y": 0, "part": "frame_vertical_2" }, + { "x": 0, "y": 0, "part": "seat" }, + { "x": 0, "y": 0, "part": "controls" }, + { "x": 0, "y": 0, "part": "dashboard" }, + { "x": 0, "y": 0, "part": "vehicle_clock" }, + { "x": 0, "y": 0, "part": "vehicle_alarm" }, + { "x": 0, "y": 0, "part": "horn_car" }, + { "x": 0, "y": 0, "part": "roof" }, + { "x": 0, "y": -1, "part": "frame_vertical" }, + { "x": 0, "y": -1, "part": "windshield" }, + { "x": 1, "y": -1, "part": "frame_horizontal" }, + { "x": 1, "y": -1, "part": "windshield" }, + { "x": 1, "y": 0, "part": "frame_horizontal" }, + { "x": 1, "y": 0, "part": "windshield" }, + { "x": 1, "y": -2, "part": "wing_mirror" }, + { "x": 1, "y": 1, "part": "frame_horizontal" }, + { "x": 1, "y": 1, "part": "windshield" }, + { "x": 1, "y": 1, "part": "inboard_mirror" }, + { "x": 1, "y": 2, "part": "frame_horizontal" }, + { "x": 1, "y": 2, "part": "windshield" }, + { "x": 1, "y": 3, "part": "frame_horizontal" }, + { "x": 1, "y": 3, "part": "windshield" }, + { "x": 1, "y": 4, "part": "wing_mirror" }, + { "x": 2, "y": -1, "part": "frame_nw" }, + { "x": 2, "y": -1, "part": "halfboard_nw" }, + { "x": 2, "y": -1, "part": "wheel_wide_steerable" }, + { "x": 2, "y": 0, "part": "frame_horizontal_2" }, + { "x": 2, "y": 0, "part": "halfboard_horizontal_2" }, + { "x": 2, "y": 0, "part": "headlight" }, + { "x": 2, "y": 1, "part": "frame_cover" }, + { "x": 2, "y": 1, "part": "halfboard_cover" }, + { "x": 2, "y": 1, "part": "diesel_engine_v6" }, + { "x": 2, "y": 1, "part": "alternator_truck" }, + { "x": 2, "y": 1, "part": "battery_car" }, + { "x": 2, "y": 2, "part": "frame_horizontal_2" }, + { "x": 2, "y": 2, "part": "halfboard_horizontal_2" }, + { "x": 2, "y": 2, "part": "headlight" }, + { "x": 2, "y": 3, "part": "frame_ne" }, + { "x": 2, "y": 3, "part": "halfboard_ne" }, + { "x": 2, "y": 3, "part": "wheel_wide_steerable" }, + { "x": -1, "y": -1, "part": "frame_vertical" }, + { "x": -1, "y": -1, "part": "board_vertical" }, + { "x": -1, "y": 0, "part": "frame_horizontal_2" }, + { "x": -1, "y": 0, "part": "board_horizontal" }, + { "x": -1, "y": 0, "part": "roof" }, + { "x": -1, "y": 1, "part": "frame_vertical_2" }, + { "x": -1, "y": 1, "part": "aisle_vertical" }, + { "x": -1, "y": 1, "part": "roof" }, + { "x": -1, "y": 2, "part": "frame_horizontal_2" }, + { "x": -1, "y": 2, "part": "seat" }, + { "x": -1, "y": 2, "part": "roof" }, + { "x": -1, "y": 3, "part": "frame_vertical" }, + { "x": -1, "y": 3, "part": "windshield" }, + { "x": -1, "y": 3, "part": "tank", "fuel": "diesel" }, + { "x": -2, "y": -1, "part": "frame_vertical" }, + { "x": -2, "y": -1, "part": "windshield" }, + { "x": -2, "y": 0, "part": "frame_horizontal_2" }, + { "x": -2, "y": 0, "part": "seat" }, + { "x": -2, "y": 0, "part": "roof" }, + { "x": -2, "y": 1, "part": "frame_vertical_2" }, + { "x": -2, "y": 1, "part": "trunk_floor" }, + { "x": -2, "y": 1, "part": "roof" }, + { "x": -2, "y": 2, "part": "frame_horizontal_2" }, + { "x": -2, "y": 2, "part": "seat" }, + { "x": -2, "y": 2, "part": "roof" }, + { "x": -2, "y": 3, "part": "frame_vertical" }, + { "x": -2, "y": 3, "part": "windshield" }, + { "x": -2, "y": 3, "part": "tank", "fuel": "diesel" }, + { "x": -3, "y": -1, "part": "frame_vertical" }, + { "x": -3, "y": -1, "part": "windshield" }, + { "x": -3, "y": 0, "part": "frame_horizontal_2" }, + { "x": -3, "y": 0, "part": "seat" }, + { "x": -3, "y": 0, "part": "roof" }, + { "x": -3, "y": 1, "part": "frame_vertical_2" }, + { "x": -3, "y": 1, "part": "aisle_vertical" }, + { "x": -3, "y": 1, "part": "roof" }, + { "x": -3, "y": 2, "part": "frame_horizontal_2" }, + { "x": -3, "y": 2, "part": "seat" }, + { "x": -3, "y": 2, "part": "roof" }, + { "x": -3, "y": 3, "part": "frame_vertical" }, + { "x": -3, "y": 3, "part": "windshield" }, + { "x": -4, "y": -1, "part": "frame_vertical" }, + { "x": -4, "y": -1, "part": "windshield" }, + { "x": -4, "y": 0, "part": "frame_horizontal_2" }, + { "x": -4, "y": 0, "part": "seat" }, + { "x": -4, "y": 0, "part": "roof" }, + { "x": -4, "y": 1, "part": "frame_vertical_2" }, + { "x": -4, "y": 1, "part": "aisle_vertical" }, + { "x": -4, "y": 1, "part": "roof" }, + { "x": -4, "y": 2, "part": "frame_horizontal_2" }, + { "x": -4, "y": 2, "part": "seat" }, + { "x": -4, "y": 2, "part": "roof" }, + { "x": -4, "y": 3, "part": "frame_vertical" }, + { "x": -4, "y": 3, "part": "windshield" }, + { "x": -5, "y": -1, "part": "frame_vertical" }, + { "x": -5, "y": -1, "part": "windshield" }, + { "x": -5, "y": 0, "part": "frame_horizontal_2" }, + { "x": -5, "y": 0, "part": "seat" }, + { "x": -5, "y": 0, "part": "roof" }, + { "x": -5, "y": 1, "part": "frame_vertical_2" }, + { "x": -5, "y": 1, "part": "aisle_vertical" }, + { "x": -5, "y": 1, "part": "roof" }, + { "x": -5, "y": 2, "part": "frame_horizontal_2" }, + { "x": -5, "y": 2, "part": "seat" }, + { "x": -5, "y": 2, "part": "roof" }, + { "x": -5, "y": 3, "part": "frame_vertical" }, + { "x": -5, "y": 3, "part": "windshield" }, + { "x": -6, "y": -1, "part": "frame_horizontal" }, + { "x": -6, "y": -1, "part": "wheel_wide" }, + { "x": -6, "y": -1, "part": "windshield" }, + { "x": -6, "y": 0, "part": "frame_horizontal_2" }, + { "x": -6, "y": 0, "part": "seat" }, + { "x": -6, "y": 0, "part": "roof" }, + { "x": -6, "y": 1, "part": "frame_vertical_2" }, + { "x": -6, "y": 1, "part": "aisle_vertical" }, + { "x": -6, "y": 1, "part": "roof" }, + { "x": -6, "y": 2, "part": "frame_horizontal_2" }, + { "x": -6, "y": 2, "part": "seat" }, + { "x": -6, "y": 2, "part": "roof" }, + { "x": -6, "y": 3, "part": "frame_horizontal" }, + { "x": -6, "y": 3, "part": "wheel_wide" }, + { "x": -6, "y": 3, "part": "windshield" }, + { "x": -7, "y": -1, "part": "frame_vertical" }, + { "x": -7, "y": -1, "part": "windshield" }, + { "x": -7, "y": 0, "part": "frame_horizontal_2" }, + { "x": -7, "y": 0, "part": "seat" }, + { "x": -7, "y": 0, "part": "roof" }, + { "x": -7, "y": 1, "part": "frame_vertical_2" }, + { "x": -7, "y": 1, "part": "aisle_vertical" }, + { "x": -7, "y": 1, "part": "roof" }, + { "x": -7, "y": 2, "part": "frame_horizontal_2" }, + { "x": -7, "y": 2, "part": "aisle_vertical" }, + { "x": -7, "y": 2, "part": "roof" }, + { "x": -7, "y": 3, "part": "frame_vertical" }, + { "x": -7, "y": 3, "part": "door" }, + { "x": -8, "y": -1, "part": "frame_vertical" }, + { "x": -8, "y": -1, "part": "windshield" }, + { "x": -8, "y": 0, "part": "frame_horizontal_2" }, + { "x": -8, "y": 0, "part": "seat" }, + { "x": -8, "y": 0, "part": "roof" }, + { "x": -8, "y": 1, "part": "frame_vertical_2" }, + { "x": -8, "y": 1, "part": "trunk_floor" }, + { "x": -8, "y": 1, "part": "roof" }, + { "x": -8, "y": 2, "part": "frame_horizontal_2" }, + { "x": -8, "y": 2, "part": "seat" }, + { "x": -8, "y": 2, "part": "roof" }, + { "x": -8, "y": 3, "part": "frame_vertical" }, + { "x": -8, "y": 3, "part": "windshield" }, + { "x": -9, "y": -1, "part": "frame_vertical" }, + { "x": -9, "y": -1, "part": "windshield" }, + { "x": -9, "y": 0, "part": "frame_horizontal_2" }, + { "x": -9, "y": 0, "part": "seat" }, + { "x": -9, "y": 0, "part": "roof" }, + { "x": -9, "y": 1, "part": "frame_vertical_2" }, + { "x": -9, "y": 1, "part": "aisle_vertical" }, + { "x": -9, "y": 1, "part": "roof" }, + { "x": -9, "y": 2, "part": "frame_horizontal_2" }, + { "x": -9, "y": 2, "part": "seat" }, + { "x": -9, "y": 2, "part": "roof" }, + { "x": -9, "y": 3, "part": "frame_vertical" }, + { "x": -9, "y": 3, "part": "windshield" }, + { "x": -10, "y": -1, "part": "frame_vertical" }, + { "x": -10, "y": -1, "part": "windshield" }, + { "x": -10, "y": 0, "part": "frame_horizontal_2" }, + { "x": -10, "y": 0, "part": "seat" }, + { "x": -10, "y": 0, "part": "roof" }, + { "x": -10, "y": 1, "part": "frame_vertical_2" }, + { "x": -10, "y": 1, "part": "seat" }, + { "x": -10, "y": 1, "part": "roof" }, + { "x": -10, "y": 2, "part": "frame_horizontal_2" }, + { "x": -10, "y": 2, "part": "seat" }, + { "x": -10, "y": 2, "part": "roof" }, + { "x": -10, "y": 3, "part": "frame_vertical" }, + { "x": -10, "y": 3, "part": "windshield" }, + { "x": -11, "y": -1, "part": "frame_horizontal" }, + { "x": -11, "y": -1, "part": "board_sw" }, + { "x": -11, "y": 0, "part": "frame_horizontal" }, + { "x": -11, "y": 0, "part": "windshield" }, + { "x": -11, "y": 1, "part": "frame_vertical" }, + { "x": -11, "y": 1, "part": "windshield" }, + { "x": -11, "y": 2, "part": "frame_horizontal" }, + { "x": -11, "y": 2, "part": "windshield" }, + { "x": -11, "y": 3, "part": "frame_horizontal" }, + { "x": -11, "y": 3, "part": "beeper" }, + { "x": -11, "y": 3, "part": "board_se" } + ], + "items": [ + { "x": -1, "y": 2, "chance": 35, "item_groups": [ "bus_common" ] }, + { "x": -2, "y": 0, "chance": 35, "item_groups": [ "bus_common" ] }, + { "x": -2, "y": 2, "chance": 35, "item_groups": [ "bus_common" ] }, + { "x": -3, "y": 0, "chance": 35, "item_groups": [ "bus_common" ] }, + { "x": -3, "y": 2, "chance": 35, "item_groups": [ "bus_common" ] }, + { "x": -4, "y": 0, "chance": 35, "item_groups": [ "bus_common" ] }, + { "x": -4, "y": 2, "chance": 35, "item_groups": [ "bus_common" ] }, + { "x": -5, "y": 0, "chance": 35, "item_groups": [ "bus_common" ] }, + { "x": -5, "y": 2, "chance": 35, "item_groups": [ "bus_common" ] }, + { "x": -6, "y": 0, "chance": 35, "item_groups": [ "bus_common" ] }, + { "x": -6, "y": 2, "chance": 35, "item_groups": [ "bus_common" ] }, + { "x": -7, "y": 0, "chance": 35, "item_groups": [ "bus_common" ] }, + { "x": -8, "y": 0, "chance": 35, "item_groups": [ "bus_common" ] }, + { "x": -8, "y": 2, "chance": 35, "item_groups": [ "bus_common" ] }, + { "x": -9, "y": 0, "chance": 35, "item_groups": [ "bus_common" ] }, + { "x": -9, "y": 2, "chance": 35, "item_groups": [ "bus_common" ] }, + { "x": -10, "y": 0, "chance": 35, "item_groups": [ "bus_common" ] }, + { "x": -10, "y": 1, "chance": 35, "item_groups": [ "bus_common" ] }, + { "x": -10, "y": 2, "chance": 35, "item_groups": [ "bus_common" ] } + ] + }, { "id": "security_van", "type": "vehicle", diff --git a/data/mods/Aftershock/items/afs_armor.json b/data/mods/Aftershock/items/afs_armor.json index 1531228838a03..ab952a0570e0b 100644 --- a/data/mods/Aftershock/items/afs_armor.json +++ b/data/mods/Aftershock/items/afs_armor.json @@ -125,7 +125,18 @@ }, "flags": [ "WATERPROOF", "FLASH_PROTECTION", "ONLY_ONE", "STURDY" ], "looks_like": "depowered_helmet", - "magazines": [ [ "battery", [ "light_battery_cell", "light_minus_battery_cell", "light_plus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_minus_battery_cell", + "light_plus_battery_cell", + "light_minus_atomic_battery_cell", + "light_atomic_battery_cell" + ] + ] + ] }, { "id": "afs_hev_helmet_on", @@ -138,7 +149,18 @@ "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "The %s flicks off.", "target": "afs_hev_helmet" }, "flags": [ "LIGHT_500", "WATERPROOF", "FLASH_PROTECTION", "ONLY_ONE", "STURDY" ], "looks_like": "depowered_helmet", - "magazines": [ [ "battery", [ "light_battery_cell", "light_minus_battery_cell", "light_plus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_minus_battery_cell", + "light_plus_battery_cell", + "light_minus_atomic_battery_cell", + "light_atomic_battery_cell" + ] + ] + ] }, { "id": "afs_quilt", diff --git a/data/mods/Aftershock/items/afs_weapons.json b/data/mods/Aftershock/items/afs_weapons.json index 42edb10dfaa7f..cbbb55050803f 100644 --- a/data/mods/Aftershock/items/afs_weapons.json +++ b/data/mods/Aftershock/items/afs_weapons.json @@ -23,7 +23,18 @@ "active": true }, "flags": [ "USE_UPS", "NO_UNLOAD", "NO_RELOAD" ], - "magazines": [ [ "battery", [ "light_battery_cell", "light_minus_battery_cell", "light_plus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_minus_battery_cell", + "light_plus_battery_cell", + "light_minus_atomic_battery_cell", + "light_atomic_battery_cell" + ] + ] + ] }, { "id": "afs_energy_saber_on", @@ -50,7 +61,18 @@ "target": "afs_energy_saber_off", "msg": "The blade dissipates into particles." }, - "magazines": [ [ "battery", [ "light_battery_cell", "light_minus_battery_cell", "light_plus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_minus_battery_cell", + "light_plus_battery_cell", + "light_minus_atomic_battery_cell", + "light_atomic_battery_cell" + ] + ] + ] }, { "id": "afs_hardlight_longbow", diff --git a/data/mods/BrightNights/game_balance.json b/data/mods/BrightNights/game_balance.json deleted file mode 100644 index d68022b04c293..0000000000000 --- a/data/mods/BrightNights/game_balance.json +++ /dev/null @@ -1,9 +0,0 @@ -[ - { - "type": "EXTERNAL_OPTION", - "name": "MANUAL_BIONIC_INSTALLATION", - "info": "Permits manual self-installation of bionics.", - "stype": "bool", - "value": true - } -] diff --git a/data/mods/BrightNights/modinfo.json b/data/mods/BrightNights/modinfo.json index cda625e16cc0d..8c584eea73240 100644 --- a/data/mods/BrightNights/modinfo.json +++ b/data/mods/BrightNights/modinfo.json @@ -6,6 +6,6 @@ "authors": [ "Coolthulhu" ], "description": "More action-centered, sci-fi, experimental, Cataclysm. NOTE: Incompatible with Aftershock.", "category": "content", - "dependencies": [ "dda", "craftgp", "safeautodoc" ] + "dependencies": [ "dda", "craftgp" ] } ] diff --git a/data/mods/BrightNights/vehicle_groups.json b/data/mods/BrightNights/vehicle_groups.json index d7f5135bc6f77..206c93bc55676 100644 --- a/data/mods/BrightNights/vehicle_groups.json +++ b/data/mods/BrightNights/vehicle_groups.json @@ -2,26 +2,32 @@ { "id": "city_vehicles", "type": "vehicle_group", - "vehicles": [ [ "car_atomic", 1000 ], [ "suv_atomic", 1000 ], [ "compact_atomic", 500 ] ] + "vehicles": [ [ "car_atomic", 1000 ], [ "suv_atomic", 1000 ], [ "compact_atomic", 500 ], [ "car_atomic_flame", 100 ] ] }, { "id": "city_pileup", "type": "vehicle_group", - "vehicles": [ [ "car_atomic", 1000 ], [ "suv_atomic", 1000 ], [ "compact_atomic", 300 ] ] + "vehicles": [ [ "car_atomic", 1000 ], [ "suv_atomic", 1000 ], [ "compact_atomic", 300 ], [ "car_atomic_flame", 100 ] ] }, { "id": "highway", "type": "vehicle_group", - "vehicles": [ [ "car_atomic", 1500 ], [ "suv_atomic", 1500 ], [ "compact_atomic", 300 ] ] + "vehicles": [ [ "car_atomic", 1500 ], [ "suv_atomic", 1500 ], [ "compact_atomic", 300 ], [ "car_atomic_flame", 100 ] ] }, { "id": "suburban_home", "type": "vehicle_group", - "vehicles": [ [ "car_atomic", 1000 ], [ "suv_atomic", 1000 ], [ "compact_atomic", 300 ] ] + "vehicles": [ [ "car_atomic", 1000 ], [ "suv_atomic", 1000 ], [ "compact_atomic", 300 ], [ "car_atomic_flame", 100 ] ] }, { "id": "parkinglot", "type": "vehicle_group", - "vehicles": [ [ "car_atomic", 1000 ], [ "car_sports_atomic", 100 ], [ "suv_atomic", 1000 ], [ "compact_atomic", 300 ] ] + "vehicles": [ + [ "car_atomic", 1000 ], + [ "car_sports_atomic", 100 ], + [ "suv_atomic", 1000 ], + [ "compact_atomic", 300 ], + [ "car_atomic_flame", 100 ] + ] } ] diff --git a/data/mods/BrightNights/vehicles/cars.json b/data/mods/BrightNights/vehicles/cars.json index 8d092cecc20b6..e05d777067f14 100644 --- a/data/mods/BrightNights/vehicles/cars.json +++ b/data/mods/BrightNights/vehicles/cars.json @@ -268,5 +268,56 @@ { "x": -2, "y": 1, "chance": 15, "item_groups": [ "car_kit" ] }, { "x": -2, "y": 1, "chance": 15, "items": [ "jack_small", "wheel" ] } ] + }, + { + "id": "car_atomic_flame", + "type": "vehicle", + "name": "Flaming Atomic Car", + "blueprint": [ + [ "##++-o" ], + [ "+=##'|" ], + [ "+=##'|" ], + [ "##++-o" ] + ], + "parts": [ + { "x": 0, "y": 0, "part": "frame_vertical_2" }, + { "x": 0, "y": 0, "part": "seat" }, + { "x": 0, "y": 0, "part": "seatbelt" }, + { "x": 0, "y": 0, "part": "controls" }, + { "x": 0, "y": 0, "part": "dashboard" }, + { "x": 0, "y": 0, "part": "roof" }, + { "x": 0, "y": 0, "part": "tank", "fuel": "napalm" }, + { "x": 0, "y": 1, "part": "frame_vertical_2" }, + { "x": 0, "y": 1, "part": "tank", "fuel": "gasoline" }, + { "x": 0, "y": -1, "part": "frame_vertical" }, + { "x": 0, "y": -1, "part": "tank", "fuel": "water_clean" }, + { "x": 0, "y": -1, "part": "turret_mount" }, + { "x": 0, "y": -1, "part": "laser_rifle" }, + { "x": 0, "y": 2, "part": "frame_vertical" }, + { "x": -1, "y": 0, "part": "frame_vertical_2" }, + { "x": -1, "y": 1, "part": "frame_vertical_2" }, + { "x": -1, "y": 1, "part": "minireactor" }, + { "x": -1, "y": -1, "part": "frame_vertical" }, + { "x": -1, "y": -1, "part": "wheel" }, + { "x": -1, "y": -1, "part": "storage_battery" }, + { "x": -1, "y": 2, "part": "frame_vertical" }, + { "x": -1, "y": 2, "part": "wheel" }, + { "x": -1, "y": 2, "part": "storage_battery" }, + { "x": 1, "y": 0, "part": "frame_horizontal" }, + { "x": 1, "y": 0, "part": "engine_electric_large" }, + { "x": 1, "y": 0, "part": "turret_mount" }, + { "x": 1, "y": 0, "part": "flamethrower" }, + { "x": 1, "y": 1, "part": "frame_horizontal" }, + { "x": 1, "y": 1, "part": "storage_battery_mount", "//": "to make the blazemod happy" }, + { "x": 1, "y": -1, "part": "frame_nw" }, + { "x": 1, "y": -1, "part": "wheel_steerable" }, + { "x": 1, "y": -1, "part": "turret_mount" }, + { "x": 1, "y": -1, "part": "watercannon" }, + { "x": 1, "y": 2, "part": "frame_ne" }, + { "x": 1, "y": 2, "part": "wheel_steerable" }, + { "x": 1, "y": 2, "part": "tank", "fuel": "water" }, + { "x": 1, "y": 2, "part": "turret_mount" }, + { "x": 1, "y": 2, "part": "m249", "ammo": 100 } + ] } ] diff --git a/data/mods/Medieval_Stuff/martialarts.json b/data/mods/Medieval_Stuff/martialarts.json index e653c55234c68..a746050d4f7cc 100644 --- a/data/mods/Medieval_Stuff/martialarts.json +++ b/data/mods/Medieval_Stuff/martialarts.json @@ -4,6 +4,7 @@ "id": "style_swordsmanship", "name": "Medieval Swordsmanship", "description": "The art of the longsword and other weapons, preceding the later development of fencing. Designed for combat both unarmored and in armor, it includes grappling as well as defensive and offensive sword techniques, plus familiarity with other weapons like polearms.", + "initiate": [ "You stand tall and become vigilant against attacks.", "%s stands tall and becomes vigilant." ], "arm_block": 99, "leg_block": 99, "onattack_buffs": [ @@ -63,6 +64,7 @@ "id": "style_pankration", "name": "Pankration", "description": "An ancient Greek martial art, combining boxing and wrestling techniques to create a brutal sport, though modern revival of the art is less of no-holds-barred in nature.", + "initiate": [ "You crouch slightly and prepare to rush forward.", "%s crouches slightly, ready to rush forward." ], "arm_block": 2, "leg_block": 4, "ondodge_buffs": [ diff --git a/data/mods/Modular_Turrets/items.json b/data/mods/Modular_Turrets/items.json index 0e165259630df..5cd5dc4b507f0 100644 --- a/data/mods/Modular_Turrets/items.json +++ b/data/mods/Modular_Turrets/items.json @@ -15,7 +15,18 @@ "symbol": ",", "color": "green", "ammo": "battery", - "magazines": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_plus_battery_cell", + "light_minus_battery_cell", + "light_minus_atomic_battery_cell", + "light_atomic_battery_cell" + ] + ] + ] }, { "abstract": "robopart_base", diff --git a/data/mods/More_Survival_Tools/ammo.json b/data/mods/More_Survival_Tools/ammo.json index fd6be015ea581..b96b7f03d1f02 100644 --- a/data/mods/More_Survival_Tools/ammo.json +++ b/data/mods/More_Survival_Tools/ammo.json @@ -1,26 +1,4 @@ [ - { - "id": "tinder", - "type": "AMMO", - "category": "spare_parts", - "name": "tinder", - "name_plural": "tinder", - "description": "Flammable material, finely divided for easy combustion.", - "weight": 10, - "volume": 1, - "price": 0, - "bashing": 1, - "material": "wood", - "flags": [ "NO_SALVAGE" ], - "symbol": "=", - "color": "brown", - "count": 50, - "ammo_type": "tinder", - "range": 0, - "damage": 0, - "dispersion": 0, - "effects": [ "NEVER_MISFIRES" ] - }, { "id": "bearing_lead", "type": "AMMO", diff --git a/data/mods/More_Survival_Tools/ammo_types.json b/data/mods/More_Survival_Tools/ammo_types.json index 8c9f0eaab9010..8ae90f9f0f205 100644 --- a/data/mods/More_Survival_Tools/ammo_types.json +++ b/data/mods/More_Survival_Tools/ammo_types.json @@ -1,10 +1,4 @@ [ - { - "id": "tinder", - "name": "tinder", - "default": "tinder", - "type": "ammunition_type" - }, { "id": "javelin", "name": "javelin", diff --git a/data/mods/More_Survival_Tools/items.json b/data/mods/More_Survival_Tools/items.json index 885105d2110d8..3d8269f8ed260 100644 --- a/data/mods/More_Survival_Tools/items.json +++ b/data/mods/More_Survival_Tools/items.json @@ -1,56 +1,4 @@ [ - { - "id": "hobo_stove", - "type": "TOOL", - "name": "hobo stove", - "description": "This is a small improvised wood stove, made from a metal can or similar container of the right size. Useful for cooking, uses simple tinder.", - "weight": 1366, - "volume": 6, - "price": 0, - "to_hit": -1, - "bashing": 2, - "material": "steel", - "symbol": ",", - "color": "light_gray", - "ammo": "tinder", - "sub": "hotplate", - "max_charges": 50, - "charges_per_use": 1, - "use_action": [ "HOTPLATE", "HEAT_FOOD" ] - }, - { - "id": "hobo_stove_on", - "type": "TOOL", - "name": "hobo stove (lit)", - "name_plural": "hobo stoves (lit)", - "//": "Dummied out due to reverting hobo stove behavior, to be consistent with existing items. -Chaosvolt", - "description": "This is a small improvised wood stove, made from a metal can or similar container of the right size. Useful for cooking, uses simple tinder.", - "weight": 1366, - "volume": 6, - "price": 0, - "to_hit": -1, - "bashing": 2, - "material": "steel", - "symbol": ",", - "color": "light_gray", - "ammo": "tinder", - "sub": "hotplate", - "max_charges": 50, - "charges_per_use": 1, - "turns_per_charge": 300, - "revert_to": "hobo_stove", - "qualities": [ [ "COOK", 1 ] ], - "use_action": [ - { - "target": "hobo_stove", - "msg": "The ember is extinguished.", - "active": false, - "menu_text": "Extinguish", - "type": "transform" - } - ], - "flags": [ "LIGHT_3" ] - }, { "id": "flint_steel", "type": "TOOL", @@ -539,6 +487,8 @@ "moves": 100, "noise": 34, "noise_message": "FWEEEET!", + "noise_id": "misc", + "noise_variant": "whistle", "use_message": "You blow the whistle.", "no_charges_message": "Seeing this is an error.", "//": "Somewhat lower than the proper whistle." diff --git a/data/mods/More_Survival_Tools/recipes.json b/data/mods/More_Survival_Tools/recipes.json index 61e3fa5bc11c9..3d9438ad6e728 100644 --- a/data/mods/More_Survival_Tools/recipes.json +++ b/data/mods/More_Survival_Tools/recipes.json @@ -28,47 +28,6 @@ "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "can_drink_unsealed", 1 ], [ "can_food_unsealed", 1 ], [ "scrap", 2 ] ] ] }, - { - "type": "recipe", - "result": "hobo_stove", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_TOOLS", - "skill_used": "survival", - "skills_required": [ "fabrication", 1 ], - "difficulty": 4, - "time": 5000, - "autolearn": true, - "book_learn": [ [ "mag_survival", 2 ], [ "textbook_survival", 1 ], [ "cookbook", 2 ] ], - "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ [ [ "can_drink_unsealed", 2 ], [ "can_food_unsealed", 2 ], [ "scrap", 4 ] ] ] - }, - { - "type": "recipe", - "result": "tinder", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_MATERIALS", - "skill_used": "survival", - "difficulty": 1, - "time": 1000, - "autolearn": true, - "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ - [ - [ "stick", 1 ], - [ "2x4", 1 ], - [ "splinter", 2 ], - [ "pine_bough", 1 ], - [ "rag", 1 ], - [ "paper", 5 ], - [ "rolling_paper", 30 ], - [ "wrapper", 5 ], - [ "withered", 2 ], - [ "cattail_stalk", 1 ], - [ "birchbark", 1 ], - [ "willowbark", 1 ] - ] - ] - }, { "type": "recipe", "result": "torch", diff --git a/data/mods/National_Guard_Camp/national_guard_camp/national_guard_camp.json b/data/mods/National_Guard_Camp/national_guard_camp/national_guard_camp.json index bc1d70e834cf9..1e48c911f5f9e 100644 --- a/data/mods/National_Guard_Camp/national_guard_camp/national_guard_camp.json +++ b/data/mods/National_Guard_Camp/national_guard_camp/national_guard_camp.json @@ -3,38 +3,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -67,129 +35,7 @@ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 0, 5 ], "repeat": [ 2, 6 ] }, { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 5 ], "y": [ 6, 23 ], "repeat": [ 2, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_1", "type": "mapgen", @@ -199,38 +45,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -260,129 +74,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 0, 5 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_2", "type": "mapgen", @@ -392,38 +84,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -453,129 +113,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 0, 5 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_3", "type": "mapgen", @@ -585,38 +123,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -646,129 +152,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 0, 5 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_4", "type": "mapgen", @@ -778,38 +162,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -840,129 +192,7 @@ "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 0, 5 ], "repeat": [ 3, 6 ] } ], "place_vehicles": [ { "vehicle": "humvee", "x": 8, "y": 11, "chance": 25, "rotation": 180 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_5", "type": "mapgen", @@ -972,38 +202,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -1033,129 +231,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 0, 5 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_6", "type": "mapgen", @@ -1165,38 +241,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -1226,129 +270,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 0, 5 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_7", "type": "mapgen", @@ -1358,38 +280,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -1419,129 +309,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 0, 5 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_8", "type": "mapgen", @@ -1551,38 +319,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -1612,129 +348,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 0, 5 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_9", "type": "mapgen", @@ -1744,38 +358,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -1805,129 +387,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 0, 5 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_10", "type": "mapgen", @@ -1937,38 +397,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -1998,129 +426,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 0, 5 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_11", "type": "mapgen", @@ -2130,38 +436,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -2191,129 +465,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 0, 5 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_12", "type": "mapgen", @@ -2323,38 +475,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -2384,129 +504,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 0, 5 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_13", "type": "mapgen", @@ -2516,38 +514,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..%...%..111111.2.222222", "..%...%.1111111...222222", @@ -2577,129 +543,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 5 ], "y": [ 0, 5 ], "repeat": [ 0, 2 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_14", "type": "mapgen", @@ -2709,38 +553,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222...", "2222222222222222222.....", @@ -2768,129 +580,7 @@ "...........222222222...." ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_15", "type": "mapgen", @@ -2900,38 +590,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "sssssssssssssssssssssss%", "......................s%", @@ -2959,129 +617,7 @@ "........................" ], "items": { "r": { "item": "mechanics", "chance": 40 }, "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_16", "type": "mapgen", @@ -3091,38 +627,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "sssssssssssssssssse e ", "sssssssssssssssssse> 9 ", @@ -3159,129 +663,7 @@ { "vehicle": "engine_crane", "x": 8, "y": 14, "chance": 90, "rotation": 0 }, { "vehicle": "handjack", "x": 0, "y": 6, "chance": 50, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_17", "type": "mapgen", @@ -3291,38 +673,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ " rrr dd6e.........", " hde.........", @@ -3358,129 +708,7 @@ "d": { "item": "office", "chance": 40 }, "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_18", "type": "mapgen", @@ -3490,38 +718,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".ss________,,________ss^", ".ss________,,________ss.", @@ -3554,129 +750,7 @@ { "vehicle": "suburban_home", "x": 19, "y": 21, "chance": 75, "rotation": 270 }, { "vehicle": "humvee", "x": 6, "y": 8, "chance": 75, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_19", "type": "mapgen", @@ -3686,38 +760,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "2222222...111111.%...%..", "..2222..1111111..%...%..", @@ -3747,129 +789,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 18, 23 ], "y": [ 0, 5 ], "repeat": [ 0, 2 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_20", "type": "mapgen", @@ -3879,38 +799,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -3940,129 +828,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 0, 5 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_21", "type": "mapgen", @@ -4072,38 +838,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -4136,129 +870,7 @@ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 0, 5 ], "repeat": [ 2, 6 ] }, { "point": "trap", "id": "tr_landmine_buried", "x": [ 18, 23 ], "y": [ 6, 23 ], "repeat": [ 2, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_22", "type": "mapgen", @@ -4268,38 +880,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..%...%.1111111....22222", "..%...%.11111111..222222", @@ -4329,129 +909,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 5 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_23", "type": "mapgen", @@ -4461,38 +919,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "2222222222222222222.....", "222222222222222222222...", @@ -4520,129 +946,7 @@ "222222222222222222222..." ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_24", "type": "mapgen", @@ -4652,38 +956,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "%..sssssssssssssssssssss", "%.s^____________________", @@ -4717,129 +989,7 @@ { "vehicle": "military_cargo_truck", "x": 11, "y": 13, "chance": 25, "rotation": 0 }, { "vehicle": "military_cargo_truck", "x": 11, "y": 20, "chance": 25, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_25", "type": "mapgen", @@ -4849,38 +999,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "ssssssssssssssssssssssss", "________________________", @@ -4908,129 +1026,7 @@ "________________________" ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_26", "type": "mapgen", @@ -5040,38 +1036,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "ssssssssssssssssssssssss", "________________________", @@ -5105,129 +1069,7 @@ { "vehicle": "military_cargo_truck", "x": 17, "y": 12, "chance": 25, "rotation": 0 }, { "vehicle": "military_cargo_truck", "x": 17, "y": 20, "chance": 25, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_27", "type": "mapgen", @@ -5237,38 +1079,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "ssssssssssssssssssssssss", "______________________s^", @@ -5296,129 +1106,7 @@ "_______________________s" ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_28", "type": "mapgen", @@ -5428,38 +1116,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "...%....................", "s..%....................", @@ -5496,129 +1152,7 @@ { "vehicle": "humvee_gl", "x": 8, "y": 12, "chance": 60, "rotation": 180 }, { "vehicle": "engine_crane", "x": 19, "y": 8, "chance": 100, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_29", "type": "mapgen", @@ -5628,38 +1162,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "...................%...s", "...................%..ss", @@ -5698,129 +1200,7 @@ { "vehicle": "aapc-mg", "x": 9, "y": 11, "chance": 60, "rotation": 180 }, { "vehicle": "portable_generator", "x": 16, "y": 18, "chance": 60, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_30", "type": "mapgen", @@ -5830,38 +1210,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "ssssssssssssssssssssssss", "s_______________________", @@ -5889,129 +1237,7 @@ "________________________" ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_31", "type": "mapgen", @@ -6021,38 +1247,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "ssssssssssssssssssssssss", "________________________", @@ -6087,129 +1281,7 @@ { "vehicle": "apc", "x": 15, "y": 12, "chance": 25, "rotation": 0 }, { "vehicle": "apc", "x": 16, "y": 21, "chance": 25, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_32", "type": "mapgen", @@ -6219,38 +1291,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "ssssssssssssssssssssssss", "________________________", @@ -6278,129 +1318,7 @@ "________________________" ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_33", "type": "mapgen", @@ -6410,38 +1328,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "sssssssssssssssssssss..%", "____________________ss.%", @@ -6475,129 +1361,7 @@ { "vehicle": "aapc-mg", "x": 13, "y": 13, "chance": 25, "rotation": 180 }, { "vehicle": "aapc-mg", "x": 16, "y": 21, "chance": 25, "rotation": 180 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_34", "type": "mapgen", @@ -6607,38 +1371,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -6672,129 +1404,7 @@ "D": { "item": "fridgesnacks", "chance": 60 }, "A": { "item": "livingroom", "chance": 20 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_35", "type": "mapgen", @@ -6804,38 +1414,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".....ssssssssssssss.....", "...sss____________sss...", @@ -6869,129 +1447,7 @@ { "vehicle": "car", "x": 3, "y": 11, "chance": 75, "rotation": 90 }, { "vehicle": "motorcycle", "x": 21, "y": 21, "chance": 75, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_36", "type": "mapgen", @@ -7001,38 +1457,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -7061,129 +1485,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "B": { "item": "army_bed", "chance": 40 }, "L": { "item": "army_personal_locker", "chance": 30 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_37", "type": "mapgen", @@ -7193,38 +1495,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "..ssssssssssssssssssssss", @@ -7257,129 +1527,7 @@ { "vehicle": "suv_electric", "x": 11, "y": 5, "chance": 75, "rotation": 270 }, { "vehicle": "car_sports", "x": 19, "y": 5, "chance": 75, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_38", "type": "mapgen", @@ -7389,38 +1537,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "...........^............", "ssssssssssssssssssssssss", @@ -7454,129 +1570,7 @@ { "vehicle": "suv", "x": 15, "y": 4, "chance": 75, "rotation": 270 }, { "vehicle": "car", "x": 2, "y": 21, "chance": 75, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_39", "type": "mapgen", @@ -7586,38 +1580,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "ssssssssssssssssssssssss", @@ -7651,129 +1613,7 @@ { "vehicle": "suv", "x": 20, "y": 7, "chance": 75, "rotation": 90 }, { "vehicle": "beetle", "x": 12, "y": 21, "chance": 75, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_40", "type": "mapgen", @@ -7783,38 +1623,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".ss__________________ss.", "ss_________,,________ss.", @@ -7847,129 +1655,7 @@ { "vehicle": "suburban_home", "x": 6, "y": 21, "chance": 75, "rotation": 125 }, { "vehicle": "suburban_home", "x": 19, "y": 6, "chance": 75, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_41", "type": "mapgen", @@ -7979,38 +1665,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "............222222222222", "..............2222222222", @@ -8038,129 +1692,7 @@ "..............2222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_42", "type": "mapgen", @@ -8170,38 +1702,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -8229,129 +1729,7 @@ "222222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_43", "type": "mapgen", @@ -8361,38 +1739,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222..111111...%...%..", "2222222.111111...%...%..", @@ -8422,129 +1768,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 18, 23 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_44", "type": "mapgen", @@ -8554,38 +1778,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..%...%..11111111....222", "..%...%..11111111...2222", @@ -8615,129 +1807,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 5 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_45", "type": "mapgen", @@ -8747,38 +1817,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222...", "222222222222222222222...", @@ -8806,129 +1844,7 @@ "........................" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_46", "type": "mapgen", @@ -8938,38 +1854,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "%.s_____________________", "%.^_____________________", @@ -9002,129 +1886,7 @@ { "vehicle": "military_cargo_truck", "x": 11, "y": 7, "chance": 25, "rotation": 0 }, { "vehicle": "military_cargo_truck", "x": 11, "y": 16, "chance": 25, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_47", "type": "mapgen", @@ -9134,38 +1896,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "________________________", "________________________", @@ -9194,129 +1924,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_48", "type": "mapgen", @@ -9326,38 +1934,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "________________________", "________________________", @@ -9390,129 +1966,7 @@ { "vehicle": "humvee", "x": 7, "y": 8, "chance": 25, "rotation": 180 }, { "vehicle": "humvee", "x": 17, "y": 7, "chance": 25, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_49", "type": "mapgen", @@ -9522,38 +1976,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "_______________________s", "_______________________s", @@ -9582,129 +2004,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_50", "type": "mapgen", @@ -9714,38 +2014,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "s= ", "s= ", @@ -9791,129 +2059,7 @@ { "group": "cleaning", "x": [ 20, 22 ], "y": 14, "chance": 50 } ], "place_vehicles": [ { "vehicle": "humvee", "x": 8, "y": 2, "chance": 60, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_51", "type": "mapgen", @@ -9923,38 +2069,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ " =ss", " =ss", @@ -10000,129 +2114,7 @@ { "group": "cleaning", "x": [ 0, 2 ], "y": 14, "chance": 50 } ], "place_vehicles": [ { "vehicle": "apc", "x": 8, "y": 2, "chance": 60, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_52", "type": "mapgen", @@ -10132,38 +2124,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "________________________", "________________________", @@ -10192,129 +2152,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_53", "type": "mapgen", @@ -10324,38 +2162,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "_______Y___zzzzzzzzzzzz_", "_________z_zzz888888zzz_", @@ -10389,129 +2195,7 @@ "Y": { "item": "dirt_rubble", "chance": 60 }, "%": { "item": "fence_caught", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_54", "type": "mapgen", @@ -10521,38 +2205,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "z_Y_____________________", "________________________", @@ -10586,129 +2238,7 @@ "Y": { "item": "dirt_rubble", "chance": 60 }, "%": { "item": "fence_caught", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_55", "type": "mapgen", @@ -10718,38 +2248,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "_____________________s.%", "_____________________s.%", @@ -10782,129 +2280,7 @@ { "vehicle": "aapc-gl", "x": 15, "y": 7, "chance": 25, "rotation": 180 }, { "vehicle": "aapc-gl", "x": 12, "y": 16, "chance": 25, "rotation": 180 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_56", "type": "mapgen", @@ -10914,38 +2290,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".| |.ss", ".| | |+|+|+|+|.ss", @@ -10975,129 +2319,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "toilets": { "t": { } }, "items": { "B": { "item": "army_bed", "chance": 40 }, "L": { "item": "army_personal_locker", "chance": 30 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_57", "type": "mapgen", @@ -11107,38 +2329,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ",,,,,,____________,,,,,,", "_____,____________,_____", @@ -11172,129 +2362,7 @@ { "vehicle": "suv", "x": 2, "y": 6, "chance": 75, "rotation": 90 }, { "vehicle": "pickup", "x": 20, "y": 14, "chance": 75, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_58", "type": "mapgen", @@ -11304,38 +2372,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "ss.| |.", "ss.| | |+|+|+|+|.", @@ -11370,129 +2406,7 @@ "Y": { "item": "building_rubble", "chance": 60 }, "z": { "item": "building_rubble", "chance": 20 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_59", "type": "mapgen", @@ -11502,38 +2416,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "ss_____________,______,_", "ss_____________,______,_", @@ -11567,129 +2449,7 @@ { "vehicle": "pickup", "x": 18, "y": 16, "chance": 75, "rotation": 270 }, { "vehicle": "hippie_van", "x": 18, "y": 4, "chance": 75, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_60", "type": "mapgen", @@ -11699,38 +2459,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "_____,______,______,____", "_____,______,______,____", @@ -11765,129 +2493,7 @@ { "vehicle": "motorcycle", "x": 20, "y": 16, "chance": 75, "rotation": 270 }, { "vehicle": "car", "x": 14, "y": 2, "chance": 75, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_61", "type": "mapgen", @@ -11897,38 +2503,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "__,______,______,______,", "__,______,______,______,", @@ -11961,129 +2535,7 @@ { "vehicle": "car", "x": 13, "y": 17, "chance": 75, "rotation": 90 }, { "vehicle": "beetle", "x": 19, "y": 17, "chance": 75, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_62", "type": "mapgen", @@ -12093,38 +2545,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "_____________________ss.", "_____________________ss.", @@ -12157,129 +2577,7 @@ { "vehicle": "suburban_home", "x": 17, "y": 13, "chance": 75, "rotation": 255 }, { "vehicle": "suburban_home", "x": 6, "y": 21, "chance": 75, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_63", "type": "mapgen", @@ -12289,38 +2587,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".............22222222222", ".............22222222222", @@ -12348,129 +2614,7 @@ "..2222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_64", "type": "mapgen", @@ -12480,38 +2624,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -12539,129 +2651,7 @@ "222222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_65", "type": "mapgen", @@ -12671,38 +2661,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "22222..1111111...%...%..", "22222..1111111...%...%..", @@ -12732,129 +2690,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 18, 23 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_66", "type": "mapgen", @@ -12864,38 +2700,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..%...%...1111111..2222.", "..%...%...1111111.2222..", @@ -12925,129 +2729,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 5 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_67", "type": "mapgen", @@ -13057,38 +2739,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".sssssssssssssssssssssss", "ssssssssssssssssssssssss", @@ -13120,129 +2770,7 @@ { "vehicle": "car_sports", "x": 6, "y": 5, "chance": 75, "rotation": 270 }, { "vehicle": "car", "x": 15, "y": 6, "chance": 75, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_68", "type": "mapgen", @@ -13252,38 +2780,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "sssss^ssssssssssssssssss", "ssssssssssssssssssssssss", @@ -13316,129 +2812,7 @@ { "vehicle": "pickup", "x": 18, "y": 6, "chance": 75, "rotation": 270 }, { "vehicle": "car", "x": 9, "y": 5, "chance": 75, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_69", "type": "mapgen", @@ -13448,38 +2822,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "sss__________________sss", "sss__,,,,,,,,,,,,,,__sss", @@ -13512,129 +2854,7 @@ { "vehicle": "city_vehicles", "x": 18, "y": 20, "chance": 75, "rotation": 310 }, { "vehicle": "city_vehicles", "x": 6, "y": 19, "chance": 75, "rotation": 35 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_70", "type": "mapgen", @@ -13644,38 +2864,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "ssssssssssssssssssssssss", @@ -13703,129 +2891,7 @@ "........................" ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_71", "type": "mapgen", @@ -13835,38 +2901,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "sss__________________sss", "sss__,,,,,,,,,,,,,,__sss", @@ -13895,129 +2929,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "place_vehicles": [ { "vehicle": "humvee", "x": 16, "y": 18, "chance": 100, "rotation": 315 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_72", "type": "mapgen", @@ -14027,38 +2939,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "ssssssssssssssssssssssss", @@ -14090,129 +2970,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 3, 10 ], "chance": 75, "rotation": 180 }, { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 13, 19 ], "chance": 75, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_73", "type": "mapgen", @@ -14222,38 +2980,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "ssssssssssssssssssssssss", @@ -14285,129 +3011,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 3, 10 ], "chance": 75, "rotation": 180 }, { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 13, 19 ], "chance": 75, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_74", "type": "mapgen", @@ -14417,38 +3021,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "sss__________________sss", "sss__,,,,,,,,,,,,,,__sss", @@ -14482,129 +3054,7 @@ { "vehicle": "military_vehicles", "x": 18, "y": 18, "chance": 75, "rotation": 90 }, { "vehicle": "city_vehicles", "x": 19, "y": 7, "chance": 75, "rotation": 180 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_75", "type": "mapgen", @@ -14614,38 +3064,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".......................^", "ssssssssssssssssssssssss", @@ -14679,129 +3097,7 @@ { "vehicle": "suburban_home", "x": 6, "y": 18, "chance": 75, "rotation": 0 }, { "vehicle": "suburban_home", "x": 19, "y": 18, "chance": 75, "rotation": 30 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_76", "type": "mapgen", @@ -14811,38 +3107,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "sss__________________sss", "sss__,,,,,,,,,,,,,,__sss", @@ -14874,129 +3138,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 3, 10 ], "chance": 75, "rotation": 180 }, { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 13, 19 ], "chance": 75, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_77", "type": "mapgen", @@ -15006,38 +3148,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "...^....................", "ssssssssssssssssssssssss", @@ -15070,129 +3180,7 @@ { "vehicle": "city_vehicles", "x": [ 5, 19 ], "y": [ 5, 19 ], "chance": 75 }, { "vehicle": "city_vehicles", "x": [ 5, 19 ], "y": [ 12, 19 ], "chance": 75, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_78", "type": "mapgen", @@ -15202,38 +3190,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..........ss^...........", "ssssssssssssssssssssssss", @@ -15265,129 +3221,7 @@ { "vehicle": "city_vehicles", "x": [ 5, 19 ], "y": [ 6, 12 ], "chance": 75, "rotation": 180 }, { "vehicle": "city_vehicles", "x": [ 5, 16 ], "y": [ 12, 19 ], "chance": 75, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_79", "type": "mapgen", @@ -15397,38 +3231,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "sss________,,________sss", "sss_,,,,,,___________sss", @@ -15460,129 +3262,7 @@ { "vehicle": "city_vehicles", "x": [ 3, 19 ], "y": [ 5, 12 ], "chance": 75, "rotation": 180 }, { "vehicle": "city_vehicles", "x": [ 3, 19 ], "y": [ 10, 16 ], "chance": 75 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_80", "type": "mapgen", @@ -15592,38 +3272,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "............ss.......^..", "ssssssssssssssssssssssss", @@ -15655,129 +3303,7 @@ { "vehicle": "city_vehicles", "x": [ 3, 19 ], "y": [ 5, 12 ], "chance": 75, "rotation": 180 }, { "vehicle": "city_vehicles", "x": [ 3, 19 ], "y": [ 12, 19 ], "chance": 75, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_81", "type": "mapgen", @@ -15787,38 +3313,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "ssssssssssssssssssssssss", @@ -15850,129 +3344,7 @@ { "vehicle": "city_vehicles", "x": [ 3, 19 ], "y": [ 5, 12 ], "chance": 75, "rotation": 180 }, { "vehicle": "city_vehicles", "x": [ 3, 19 ], "y": [ 12, 19 ], "chance": 75, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_82", "type": "mapgen", @@ -15982,38 +3354,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "ssssssssssssssssssssssss", @@ -16045,129 +3385,7 @@ { "vehicle": "city_vehicles", "x": [ 3, 19 ], "y": [ 5, 12 ], "chance": 75, "rotation": 180 }, { "vehicle": "city_vehicles", "x": [ 3, 19 ], "y": [ 12, 19 ], "chance": 75, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_83", "type": "mapgen", @@ -16177,38 +3395,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "ssssssssssssssssssssssss", @@ -16240,129 +3426,7 @@ { "vehicle": "city_vehicles", "x": [ 3, 19 ], "y": [ 5, 12 ], "chance": 75, "rotation": 180 }, { "vehicle": "city_vehicles", "x": [ 3, 19 ], "y": [ 12, 19 ], "chance": 75, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_84", "type": "mapgen", @@ -16372,38 +3436,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "sss________,,________sss", "sss_,,,,,,___________sss", @@ -16436,129 +3468,7 @@ { "vehicle": "city_vehicles", "x": [ 3, 19 ], "y": [ 5, 19 ], "chance": 75 }, { "vehicle": "city_vehicles", "x": [ 3, 19 ], "y": [ 12, 19 ], "chance": 75, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_85", "type": "mapgen", @@ -16568,38 +3478,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "ssssssssssssssssssssssss", @@ -16629,129 +3507,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "gaspumps": { "&": { } }, "place_vehicles": [ { "vehicle": "aapc-mg", "x": 13, "y": 6, "chance": 75, "rotation": 180 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_86", "type": "mapgen", @@ -16761,38 +3517,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "...222222222222222222...", "....2222222222222222...1", @@ -16820,129 +3544,7 @@ "..2222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_87", "type": "mapgen", @@ -16952,38 +3554,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".11111111111111..%...%..", "111111111111111..%...%..", @@ -17013,129 +3583,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 18, 23 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_88", "type": "mapgen", @@ -17145,38 +3593,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..%...%..11111111.22222.", "..%...%..11111111..22222", @@ -17206,129 +3622,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 5 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_89", "type": "mapgen", @@ -17338,38 +3632,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..........|---|..ss..|--", "22222.....| |-w++w-|LY", @@ -17410,129 +3672,7 @@ { "group": "army_personal_locker", "x": 20, "y": [ 6, 7 ], "chance": 40 }, { "group": "army_personal_locker", "x": 23, "y": 14, "chance": 40 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_90", "type": "mapgen", @@ -17542,38 +3682,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "YY888Y----------------|.", "Y88Z88YY LFd LL LL L|.", @@ -17619,129 +3727,7 @@ { "group": "army_personal_locker", "x": [ 12, 14 ], "y": 14, "chance": 50 } ], "place_vehicles": [ { "vehicle": "ambulance", "x": 18, "y": 19, "chance": 75, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_91", "type": "mapgen", @@ -17751,38 +3737,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".ss________,,________ss.", ".ss________,,________ss.", @@ -17814,129 +3768,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 9 ], "y": [ 3, 19 ], "chance": 75, "rotation": 90 }, { "vehicle": "city_vehicles", "x": [ 13, 19 ], "y": [ 3, 19 ], "chance": 75, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_92", "type": "mapgen", @@ -17946,38 +3778,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "......................X.", ".eeeeeeeeeeeeeeeeee.....", @@ -18006,129 +3806,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "L": { "item": "guns_rifle_milspec", "chance": 20 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_93", "type": "mapgen", @@ -18138,38 +3816,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".ss________,,________ss.", ".ss__________________ss.", @@ -18201,129 +3847,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 9 ], "y": [ 3, 19 ], "chance": 75, "rotation": 90 }, { "vehicle": "city_vehicles", "x": [ 13, 19 ], "y": [ 3, 19 ], "chance": 75, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_94", "type": "mapgen", @@ -18333,38 +3857,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".|----------------------", ".|L LL LL dFL dFL d6d", @@ -18406,129 +3898,7 @@ { "group": "army_personal_locker", "x": [ 6, 11 ], "y": [ 7, 8 ], "chance": 50 }, { "group": "army_personal_locker", "x": [ 18, 23 ], "y": [ 7, 8 ], "chance": 50 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_95", "type": "mapgen", @@ -18538,38 +3908,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "--|..ss..|---|..........", " L|-w++w-| |..........", @@ -18608,129 +3946,7 @@ { "group": "army_personal_locker", "x": 3, "y": [ 6, 10 ], "chance": 40 }, { "group": "army_personal_locker", "x": [ 0, 2 ], "y": 14, "chance": 40 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_96", "type": "mapgen", @@ -18740,38 +3956,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".ss________,,________ss.", ".ss__________________ss.", @@ -18804,129 +3988,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 9 ], "y": [ 3, 19 ], "chance": 75, "rotation": 90 }, { "vehicle": "city_vehicles", "x": [ 13, 19 ], "y": [ 3, 19 ], "chance": 75, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_97", "type": "mapgen", @@ -18936,38 +3998,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "....................ss..", "....................ss..", @@ -19002,129 +4032,7 @@ "Y": { "item": "building_rubble", "chance": 60 }, "8": { "item": "building_rubble", "chance": 50 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_98", "type": "mapgen", @@ -19134,38 +4042,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "............ssss........", "............ssss........", @@ -19202,129 +4078,7 @@ "r": { "item": "cannedfood", "chance": 60 }, "D": { "item": "fridge", "chance": 80 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_99", "type": "mapgen", @@ -19334,38 +4088,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".ss________,,________ss.", ".ss__zzz_____________ss.", @@ -19399,129 +4121,7 @@ "8": { "item": "dirt_rubble", "chance": 50 } }, "place_vehicles": [ { "vehicle": "car", "x": 12, "y": 12, "chance": 100, "rotation": 135 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_100", "type": "mapgen", @@ -19531,38 +4131,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "...........ss...........", "...........ss...........", @@ -19591,129 +4159,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "B": { "item": "army_bed", "chance": 40 }, "L": { "item": "army_personal_locker", "chance": 30 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_101", "type": "mapgen", @@ -19723,38 +4169,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".ss_aa_____,,aa______ss.", ".ss__aa____aaa_______ss.", @@ -19782,129 +4196,7 @@ ".ss________,,________ss." ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_102", "type": "mapgen", @@ -19914,38 +4206,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", ".eeeeeeeeeeeeeeeeeeeeeee", @@ -19978,129 +4238,7 @@ "r": { "item": "cleaning", "chance": 40 }, "o": { "item": "office", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_103", "type": "mapgen", @@ -20110,38 +4248,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "eeeeeeeeeeeeeeeeeeeeeeee", @@ -20174,129 +4280,7 @@ "T": { "item": "mil_food_nodrugs", "chance": 30 }, "r": { "item": "electronics", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_104", "type": "mapgen", @@ -20306,38 +4290,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "ee............eeeeeeeeee", @@ -20372,129 +4324,7 @@ "c": { "item": "cubical_office", "chance": 10 }, "T": { "item": "mil_food_nodrugs", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_105", "type": "mapgen", @@ -20504,38 +4334,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "eeeeeeeeeeeeeeeeeeeeeee.", @@ -20564,129 +4362,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "d": { "item": "cubical_office", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_106", "type": "mapgen", @@ -20696,38 +4372,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".ss______X_,,____X___ss.", ".ss__________________ss.", @@ -20759,129 +4403,7 @@ { "vehicle": "portable_generator", "x": 3, "y": 10, "chance": 85, "rotation": 0 }, { "vehicle": "portable_generator", "x": 2, "y": 17, "chance": 85, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_107", "type": "mapgen", @@ -20891,38 +4413,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "...2222222......22......", "..2222222222222222222222", @@ -20950,129 +4440,7 @@ "...222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_108", "type": "mapgen", @@ -21082,38 +4450,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "222222222222222222222222", @@ -21141,129 +4477,7 @@ "22222222222222222222222." ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_109", "type": "mapgen", @@ -21273,38 +4487,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".....1111111111..%...%..", "222...111111111..%...%..", @@ -21334,129 +4516,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 18, 23 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_110", "type": "mapgen", @@ -21466,38 +4526,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..%...%.1111111.22222222", "..%...%.1111111..2222222", @@ -21527,129 +4555,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 5 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_111", "type": "mapgen", @@ -21659,38 +4565,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..|-|-|-|-|ScScS| +ssss", "..|t|t|t|t| | |ssss", @@ -21729,129 +4603,7 @@ { "group": "army_personal_locker", "x": 20, "y": [ 13, 17 ], "chance": 40 }, { "group": "army_personal_locker", "x": [ 21, 23 ], "y": 9, "chance": 40 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_112", "type": "mapgen", @@ -21861,38 +4613,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "ssssssssssssssssssssssss", "ssssssssssssssssssssssss", @@ -21934,129 +4654,7 @@ { "group": "army_personal_locker", "x": [ 0, 5 ], "y": [ 15, 16 ], "chance": 40 }, { "group": "army_personal_locker", "x": [ 2, 5 ], "y": 9, "chance": 40 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_113", "type": "mapgen", @@ -22066,38 +4664,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "sss________,,________ss.", "sss__________________ss.", @@ -22129,129 +4695,7 @@ { "vehicle": "apc", "x": 5, "y": 12, "chance": 75, "rotation": 90 }, { "vehicle": "city_vehicles", "x": [ 13, 19 ], "y": [ 3, 19 ], "chance": 75, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_114", "type": "mapgen", @@ -22261,38 +4705,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", ".....eeeeeeeeeeeeeeeeeee", @@ -22321,129 +4733,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "L": { "item": "guns_rifle_milspec", "chance": 30 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_115", "type": "mapgen", @@ -22453,38 +4743,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".ss________,,________sss", ".ss________,,________sss", @@ -22516,129 +4774,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 9 ], "y": [ 3, 19 ], "chance": 75, "rotation": 90 }, { "vehicle": "city_vehicles", "x": [ 13, 19 ], "y": [ 3, 19 ], "chance": 75, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_116", "type": "mapgen", @@ -22648,38 +4784,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "ssssssssssssssssssssssss", "ssssssssssssssssssssssss", @@ -22718,129 +4822,7 @@ { "group": "mil_surplus", "x": [ 4, 5 ], "y": [ 20, 22 ], "chance": 50 } ], "place_vehicles": [ { "vehicle": "aapc-gl", "x": 4, "y": 6, "chance": 75, "rotation": 180 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_117", "type": "mapgen", @@ -22850,38 +4832,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "ssss+ |-----|-|-|-|-|..", "ssss| |ScScS|t|t|t|t|..", @@ -22915,129 +4865,7 @@ { "group": "electronics", "x": 1, "y": [ 19, 22 ], "chance": 50 }, { "group": "army_personal_locker", "x": 3, "y": [ 13, 17 ], "chance": 40 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_118", "type": "mapgen", @@ -23047,38 +4875,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".ss________,,_______zzzz", ".ss____X___,,X____zz_sYz", @@ -23111,129 +4907,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 9 ], "y": [ 15, 19 ], "chance": 75, "rotation": 90 }, { "vehicle": "city_vehicles", "x": [ 13, 19 ], "y": [ 14, 19 ], "chance": 75, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_119", "type": "mapgen", @@ -23243,38 +4917,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "88ZZZZZZZZZZ88YYY YY ", "z88ZZZZZZZZ88YYY Y ", @@ -23309,129 +4951,7 @@ "Y": { "item": "building_rubble", "chance": 60 }, "8": { "item": "building_rubble", "chance": 50 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_120", "type": "mapgen", @@ -23441,38 +4961,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ " |-----+-|-| |+|+|.", " |rcScr | + |.", @@ -23503,129 +4991,7 @@ "toilets": { "t": { } }, "items": { "r": { "item": "produce", "chance": 60 }, "c": { "item": "dining", "chance": 30 } }, "place_vehicles": [ { "vehicle": "fire_truck", "x": 12, "y": 16, "chance": 75, "rotation": 215 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_121", "type": "mapgen", @@ -23635,38 +5001,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".ss________,,________ss.", ".ss________,,________ss.", @@ -23698,129 +5032,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 9 ], "y": [ 3, 19 ], "chance": 75, "rotation": 90 }, { "vehicle": "city_vehicles", "x": [ 13, 19 ], "y": [ 3, 19 ], "chance": 75, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_122", "type": "mapgen", @@ -23830,38 +5042,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..| |..", "..| | |+|+|+|+|..", @@ -23897,129 +5077,7 @@ "8": { "item": "building_rubble", "chance": 50 }, "z": { "item": "building_rubble", "chance": 25 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_123", "type": "mapgen", @@ -24029,38 +5087,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".ss________,,________ss.", ".ss________,,________ss.", @@ -24092,129 +5118,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 9 ], "y": [ 3, 19 ], "chance": 75, "rotation": 90 }, { "vehicle": "city_vehicles", "x": [ 13, 19 ], "y": [ 3, 19 ], "chance": 75, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_124", "type": "mapgen", @@ -24224,38 +5128,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "...%%%%%%%.....ee ere ", "...%sssss%.....ee eee ", @@ -24289,129 +5161,7 @@ { "group": "cleaning", "x": 20, "y": 0, "chance": 50 }, { "group": "guns_pistol_milspec", "x": 23, "y": 8, "chance": 40 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_125", "type": "mapgen", @@ -24421,38 +5171,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ " e# ^ ", "hTTTTh eeeeeeeeeeeeeeee", @@ -24489,129 +5207,7 @@ { "group": "guns_pistol_milspec", "x": [ 0, 1 ], "y": 8, "chance": 40 }, { "group": "ammo_pistol_milspec", "x": [ 4, 6 ], "y": 8, "chance": 40 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_126", "type": "mapgen", @@ -24621,38 +5217,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ " #e eoo e eeeeee", "eeeeee eeeeeeee errre ", @@ -24686,129 +5250,7 @@ "T": { "item": "office_breakroom", "chance": 20 }, "d": { "item": "cubical_office", "chance": 30 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_127", "type": "mapgen", @@ -24818,38 +5260,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "eWWWWe9ee99eeWWWWWWWeeeQ", " e e #ee.", @@ -24882,129 +5292,7 @@ "T": { "item": "electronics", "chance": 30 }, "d": { "item": "cubical_office", "chance": 30 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_128", "type": "mapgen", @@ -25014,38 +5302,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "QQs_aaaa___,,________ss^", ".ss_________________Xss.", @@ -25074,129 +5330,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "place_vehicles": [ { "vehicle": "schoolbus", "x": 4, "y": 15, "chance": 75, "rotation": 125 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_129", "type": "mapgen", @@ -25206,38 +5340,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".....2222222222222222222", ".......22222222222222222", @@ -25266,129 +5368,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 }, "T": { "item": "ammo_rifle_milspec", "chance": 20 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_130", "type": "mapgen", @@ -25398,38 +5378,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -25457,129 +5405,7 @@ "333333333333333333333333" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_131", "type": "mapgen", @@ -25589,38 +5415,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "22222.....111111.%...%..", "22222222..111111.%...%..", @@ -25650,129 +5444,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 18, 23 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_132", "type": "mapgen", @@ -25782,38 +5454,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..%...%..1111111.222222.", "..%...%..1111111..2222..", @@ -25843,129 +5483,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 5 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_133", "type": "mapgen", @@ -25975,38 +5493,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "................ssss....", ".sssssssssssssssssssssss", @@ -26038,129 +5524,7 @@ { "vehicle": "flatbed_truck", "x": 5, "y": 17, "chance": 75, "rotation": 270 }, { "vehicle": "car", "x": 16, "y": 18, "chance": 75, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_134", "type": "mapgen", @@ -26170,38 +5534,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "ssssssssssssssssssssssss", @@ -26234,129 +5566,7 @@ { "vehicle": "pickup", "x": 8, "y": 17, "chance": 75, "rotation": 270 }, { "vehicle": "car_sports", "x": 18, "y": 18, "chance": 75, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_135", "type": "mapgen", @@ -26366,38 +5576,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "sss________,,________sss", "sss_,,,,,,___________sss", @@ -26429,129 +5607,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 3, 19 ], "chance": 75, "rotation": 90 }, { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 3, 19 ], "chance": 75 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_136", "type": "mapgen", @@ -26561,38 +5617,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "ssssssssssssssssssssssss", @@ -26624,129 +5648,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 3, 10 ], "chance": 75, "rotation": 180 }, { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 13, 19 ], "chance": 75, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_137", "type": "mapgen", @@ -26756,38 +5658,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".ss________,,________sss", "sss_,,,,,,_,,________sss", @@ -26819,129 +5689,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 3, 10 ], "chance": 75, "rotation": 180 }, { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 3, 19 ], "chance": 75 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_138", "type": "mapgen", @@ -26951,38 +5699,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".........Y..YYY..YYYY...", "ssssssssssssssssssssssss", @@ -27011,129 +5727,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "place_vehicles": [ { "vehicle": "humvee", "x": 18, "y": 6, "chance": 100, "rotation": 180 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_139", "type": "mapgen", @@ -27143,38 +5737,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "....ssss.......QQQQQQQ..", "ssssssssssssssssssssssss", @@ -27206,129 +5768,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 3, 10 ], "chance": 75, "rotation": 180 }, { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 13, 19 ], "chance": 75, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_140", "type": "mapgen", @@ -27338,38 +5778,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "sss________,,________sss", "sss_,,,,,,_,,________sss", @@ -27401,129 +5809,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 3, 19 ], "chance": 75 }, { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 13, 19 ], "chance": 75, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_141", "type": "mapgen", @@ -27533,38 +5819,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "ssssssssssssssssssssssss", @@ -27596,129 +5850,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 3, 10 ], "chance": 75, "rotation": 180 }, { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 13, 19 ], "chance": 75, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_142", "type": "mapgen", @@ -27728,38 +5860,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........ssssss..........", "ssssssssssssssssssssssss", @@ -27791,129 +5891,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 3, 10 ], "chance": 75, "rotation": 180 }, { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 13, 19 ], "chance": 75, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_143", "type": "mapgen", @@ -27923,38 +5901,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "sss________,,________sss", "s^s_,,,,,,_,,________sss", @@ -27987,129 +5933,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 13, 19 ], "chance": 75, "rotation": 0 }, { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 3, 19 ], "chance": 75 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_144", "type": "mapgen", @@ -28119,38 +5943,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..........ssss..........", "ssssssssssssssssssssssss", @@ -28182,129 +5974,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 3, 10 ], "chance": 75, "rotation": 180 }, { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 13, 19 ], "chance": 75, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_145", "type": "mapgen", @@ -28314,38 +5984,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "sss________,,________sss", "sss_,,,,,,_,,________sss", @@ -28377,129 +6015,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 3, 19 ], "chance": 75 }, { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 3, 19 ], "chance": 75 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_146", "type": "mapgen", @@ -28509,38 +6025,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "......................QQ", "ssssssssssssssssssssssss", @@ -28572,129 +6056,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 3, 10 ], "chance": 75, "rotation": 180 }, { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 13, 19 ], "chance": 75, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_147", "type": "mapgen", @@ -28704,38 +6066,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "QQQQQQQQ................", "ssssssssssssssss........", @@ -28764,129 +6094,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "place_vehicles": [ { "vehicle": "city_vehicles", "x": [ 4, 19 ], "y": [ 3, 19 ], "chance": 75 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_148", "type": "mapgen", @@ -28896,38 +6104,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..eeeeeeeee eeeee ee+e", "..eeeeeeeee eAAAA ", @@ -28962,129 +6138,7 @@ "T": { "item": "office_breakroom", "chance": 20 } }, "place_vehicles": [ { "vehicle": "humvee_gl", "x": 11, "y": 16, "chance": 100, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_149", "type": "mapgen", @@ -29094,38 +6148,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "ee d e ee...........", "ce hd he ee...........", @@ -29154,129 +6176,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "d": { "item": "cubical_office", "chance": 30 }, "D": { "item": "fridgesnacks", "chance": 30 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_150", "type": "mapgen", @@ -29286,38 +6186,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".ss________,,________ss.", ".ss________,,________ss.", @@ -29349,129 +6217,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 10 ], "y": [ 3, 19 ], "chance": 75, "rotation": 90 }, { "vehicle": "city_vehicles", "x": [ 13, 18 ], "y": [ 3, 19 ], "chance": 75, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_151", "type": "mapgen", @@ -29481,38 +6227,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..| cW11.........33333", "..| cW11.........33333", @@ -29541,129 +6255,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_152", "type": "mapgen", @@ -29673,38 +6265,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "333333333333333333333333", "333333333333333333333333", @@ -29732,129 +6292,7 @@ "222222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_153", "type": "mapgen", @@ -29864,38 +6302,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "33338e8...111111.%...%..", "33338e8...111111.%...%..", @@ -29925,129 +6331,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 18, 23 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_154", "type": "mapgen", @@ -30057,38 +6341,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..%...%.1111111..222222.", "..%...%.1111111.22222222", @@ -30118,129 +6370,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 5 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_155", "type": "mapgen", @@ -30250,38 +6380,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "2222....................", @@ -30309,129 +6407,7 @@ "22222222222222222222..wc" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_156", "type": "mapgen", @@ -30441,38 +6417,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "...............ssss.....", "................ss......", @@ -30511,129 +6455,7 @@ { "group": "hospital_lab", "x": [ 12, 16 ], "y": 22, "chance": 30 }, { "group": "hospital_lab", "x": 19, "y": [ 22, 23 ], "chance": 30 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_157", "type": "mapgen", @@ -30643,38 +6465,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "sss________,,________ss.", ".ss________,,________ss.", @@ -30706,129 +6496,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 10 ], "y": [ 3, 19 ], "chance": 75, "rotation": 90 }, { "vehicle": "city_vehicles", "x": [ 13, 18 ], "y": [ 3, 19 ], "chance": 75, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_158", "type": "mapgen", @@ -30838,38 +6506,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..................ss....", ".|--ww--|--ww--|--99--|.", @@ -30905,129 +6541,7 @@ "8": { "item": "building_rubble", "chance": 50 }, "z": { "item": "building_rubble", "chance": 25 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_159", "type": "mapgen", @@ -31037,38 +6551,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".ss________,,________ss.", ".ss________,,________ss.", @@ -31101,129 +6583,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 10 ], "y": [ 3, 19 ], "chance": 75, "rotation": 90 }, { "vehicle": "city_vehicles", "x": [ 13, 18 ], "y": [ 3, 19 ], "chance": 75, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_160", "type": "mapgen", @@ -31233,38 +6593,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "...|--|----|-----|------", @@ -31293,129 +6621,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "d": { "item": "office", "chance": 35 }, "r": { "item": "office", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_161", "type": "mapgen", @@ -31425,38 +6631,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".....ss.................", "---|.ss.................", @@ -31490,129 +6664,7 @@ "o": { "item": "office", "chance": 35 }, "r": { "item": "office", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_162", "type": "mapgen", @@ -31622,38 +6674,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".ss________,,________ss.", ".ss________,,________ss.", @@ -31685,129 +6705,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 10 ], "y": [ 3, 19 ], "chance": 75, "rotation": 90 }, { "vehicle": "city_vehicles", "x": [ 13, 18 ], "y": [ 3, 19 ], "chance": 75, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_163", "type": "mapgen", @@ -31817,38 +6715,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -31876,129 +6742,7 @@ "........................" ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_164", "type": "mapgen", @@ -32008,38 +6752,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..................ss....", "...|-www-www-www-w++w-|.", @@ -32073,129 +6785,7 @@ "O": { "item": "snacks", "chance": 35 }, "g": { "item": "alcohol", "chance": 25 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_165", "type": "mapgen", @@ -32205,38 +6795,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".ss________,,________ss.", ".ss________,,________ss.", @@ -32268,129 +6826,7 @@ { "vehicle": "city_vehicles", "x": [ 4, 10 ], "y": [ 3, 19 ], "chance": 75, "rotation": 90 }, { "vehicle": "city_vehicles", "x": [ 13, 18 ], "y": [ 3, 19 ], "chance": 75, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_166", "type": "mapgen", @@ -32400,38 +6836,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".........|-++-|.......z.", ".........w w....zz.zz", @@ -32470,129 +6874,7 @@ "8": { "item": "building_rubble", "chance": 50 }, "z": { "item": "dirt_rubble", "chance": 25 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_167", "type": "mapgen", @@ -32602,38 +6884,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".ssz_______,,________ss.", ".sz________,,________ss.", @@ -32667,129 +6917,7 @@ "z": { "item": "dirt_rubble", "chance": 25 } }, "place_vehicles": [ { "vehicle": "city_vehicles", "x": [ 13, 18 ], "y": [ 3, 19 ], "chance": 75, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_168", "type": "mapgen", @@ -32799,38 +6927,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "...........ss...........", "...........ss...........", @@ -32865,129 +6961,7 @@ "D": { "item": "fridgesnacks", "chance": 50 }, "A": { "item": "livingroom", "chance": 20 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_169", "type": "mapgen", @@ -32997,38 +6971,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".ss________,,________sss", ".ss__________________sss", @@ -33057,129 +6999,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "place_vehicles": [ { "vehicle": "city_vehicles", "x": [ 13, 18 ], "y": [ 3, 19 ], "chance": 75 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_170", "type": "mapgen", @@ -33189,38 +7009,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "......__________......__", "sssss____________ssss___", @@ -33249,129 +7037,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "place_vehicles": [ { "vehicle": "city_vehicles", "x": [ 3, 18 ], "y": [ 13, 19 ], "chance": 75, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_171", "type": "mapgen", @@ -33381,38 +7047,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "________................", "_________sssssssssssssss", @@ -33441,129 +7075,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "place_vehicles": [ { "vehicle": "city_vehicles", "x": [ 3, 18 ], "y": [ 13, 19 ], "chance": 75 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_172", "type": "mapgen", @@ -33573,38 +7085,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "sss________,,________ss.", "sss________,,________ss.", @@ -33633,129 +7113,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "place_vehicles": [ { "vehicle": "city_vehicles", "x": [ 3, 13 ], "y": [ 4, 19 ], "chance": 75 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_173", "type": "mapgen", @@ -33765,38 +7123,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..2222222222222222222222", ".22222222222222222222222", @@ -33824,129 +7150,7 @@ ".22222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_174", "type": "mapgen", @@ -33956,38 +7160,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -34015,129 +7187,7 @@ "222222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_175", "type": "mapgen", @@ -34147,38 +7197,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "2222222...111111.%...%..", "22222222..111111.%...%..", @@ -34208,129 +7226,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 18, 23 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_176", "type": "mapgen", @@ -34340,38 +7236,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..%...%..1111111.2222222", "..%...%..111111122222222", @@ -34401,129 +7265,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 5 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_177", "type": "mapgen", @@ -34533,38 +7275,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222.|c", "22222222222222222222..|c", @@ -34592,129 +7302,7 @@ "222222222222222222222222" ], "items": { "c": { "item": "hospital_lab", "chance": 20 }, "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_178", "type": "mapgen", @@ -34724,38 +7312,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ " T + + T c|...", " T | | T c|...", @@ -34787,129 +7343,7 @@ "c": { "item": "hospital_lab", "chance": 25 }, "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_179", "type": "mapgen", @@ -34919,38 +7353,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".ss________,,________sss", ".ss________,,________sss", @@ -34980,129 +7382,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 } }, "place_vehicles": [ { "vehicle": "city_vehicles", "x": [ 9, 18 ], "y": [ 4, 16 ], "chance": 75 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_180", "type": "mapgen", @@ -35112,38 +7392,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".........zz8ZZZ8zz......", "ssssssssszz88Z88zzssssss", @@ -35180,129 +7428,7 @@ { "vehicle": "city_vehicles", "x": [ 3, 18 ], "y": [ 6, 13 ], "chance": 75, "rotation": 180 }, { "vehicle": "city_vehicles", "x": [ 3, 18 ], "y": [ 13, 19 ], "chance": 75, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_181", "type": "mapgen", @@ -35312,38 +7438,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "sss________,,________ss.", "sss________,,________sss", @@ -35377,129 +7471,7 @@ "z": { "item": "dirt_rubble", "chance": 25 } }, "place_vehicles": [ { "vehicle": "city_vehicles", "x": [ 3, 18 ], "y": [ 3, 13 ], "chance": 75 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_182", "type": "mapgen", @@ -35509,38 +7481,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -35573,129 +7513,7 @@ { "vehicle": "suv", "x": 15, "y": 9, "chance": 75, "rotation": 90 }, { "vehicle": "superbike", "x": 21, "y": 9, "chance": 75, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_183", "type": "mapgen", @@ -35705,38 +7523,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".....................%%%", "..............22222..%..", @@ -35767,129 +7553,7 @@ "items": { "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, "place_vehicles": [ { "vehicle": "pickup", "x": 4, "y": 8, "chance": 75, "rotation": 270 } ], "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 18, 20 ], "y": [ 6, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_184", "type": "mapgen", @@ -35899,38 +7563,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "%ss__________________ss%", "ss____________________ss", @@ -35959,129 +7591,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 } ], "items": { "%": { "item": "fence_caught", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_185", "type": "mapgen", @@ -36091,38 +7601,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "%%%.....................", "..%...222...............", @@ -36161,129 +7639,7 @@ "%": { "item": "fence_caught", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 3, 5 ], "y": [ 6, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_186", "type": "mapgen", @@ -36293,38 +7649,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -36359,129 +7683,7 @@ "T": { "item": "dining", "chance": 10 }, "d": { "item": "office", "chance": 25 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_187", "type": "mapgen", @@ -36491,38 +7693,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".ss________,,________sss", ".ss________,,________sss", @@ -36551,129 +7721,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "place_vehicles": [ { "vehicle": "beetle", "x": 5, "y": 11, "chance": 75, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_188", "type": "mapgen", @@ -36683,38 +7731,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "......................z.", "ssssssssssssssssssssssss", @@ -36746,129 +7762,7 @@ { "vehicle": "city_vehicles", "x": [ 3, 18 ], "y": [ 4, 12 ], "chance": 75, "rotation": 180 }, { "vehicle": "city_vehicles", "x": [ 3, 18 ], "y": [ 13, 19 ], "chance": 75, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_189", "type": "mapgen", @@ -36878,38 +7772,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "sss________,,________ss.", "sss_z______,,________ss.", @@ -36939,129 +7801,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 } }, "place_vehicles": [ { "vehicle": "city_vehicles", "x": [ 3, 13 ], "y": [ 4, 12 ], "chance": 75 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_190", "type": "mapgen", @@ -37071,38 +7811,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..q Y Y |..", "..qq Y Y| |+|+|+|+|..", @@ -37137,129 +7845,7 @@ "L": { "item": "army_personal_locker", "chance": 30 }, "Y": { "item": "building_rubble", "chance": 60 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_191", "type": "mapgen", @@ -37269,38 +7855,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".........2..............", "......2222222.......2222", @@ -37328,129 +7882,7 @@ "222222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_192", "type": "mapgen", @@ -37460,38 +7892,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "2222..................22", "22222222.............222", @@ -37519,129 +7919,7 @@ "222222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_193", "type": "mapgen", @@ -37651,38 +7929,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "%%%%%%%%%%%%%%%%%%%%%%%%", "%22...................|w", @@ -37714,129 +7960,7 @@ "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_194", "type": "mapgen", @@ -37846,38 +7970,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "%%%%%%%%%%%%%%%%%%%%%%%%", "ww|__________________...", @@ -37911,129 +8003,7 @@ "%": { "item": "fence_caught", "chance": 1 } }, "place_vehicles": [ { "vehicle": "military_cargo_truck", "x": 17, "y": 11, "chance": 75, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_195", "type": "mapgen", @@ -38043,38 +8013,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "%%%%%%%%%%%%%%%%%%%%%%%%", "222222222222222222222222", @@ -38106,129 +8044,7 @@ "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_196", "type": "mapgen", @@ -38238,38 +8054,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "%%%%%%%%%%%%%%%%%%%%%%%2", "2222222222222222222222%2", @@ -38301,129 +8085,7 @@ "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_197", "type": "mapgen", @@ -38433,38 +8095,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "2222222..1111111.%...%..", "22222222.1111111.%...%..", @@ -38494,129 +8124,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.04 } ], "items": { "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 18, 23 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_198", "type": "mapgen", @@ -38626,38 +8134,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..%...%.1111111..2222222", "..%...%.1111111.22222222", @@ -38687,129 +8163,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 5 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_199", "type": "mapgen", @@ -38819,38 +8173,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -38878,129 +8200,7 @@ "222222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_200", "type": "mapgen", @@ -39010,38 +8210,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -39073,129 +8241,7 @@ "F": { "item": "fence_caught", "chance": 1 }, "f": { "item": "fence_caught", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_201", "type": "mapgen", @@ -39205,38 +8251,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "2222....................", "222222222...............", @@ -39268,129 +8282,7 @@ "F": { "item": "fence_caught", "chance": 1 }, "f": { "item": "fence_caught", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_202", "type": "mapgen", @@ -39400,38 +8292,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", ".2222..............22222", @@ -39459,129 +8319,7 @@ "11111111111............." ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_203", "type": "mapgen", @@ -39591,38 +8329,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........11111111111111..", "222......111111111111...", @@ -39651,129 +8357,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_204", "type": "mapgen", @@ -39783,38 +8367,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".ss________,______,_____", ".ss________,______,_____", @@ -39846,129 +8398,7 @@ { "vehicle": "car", "x": 6, "y": 3, "chance": 75, "rotation": 270 }, { "vehicle": "pickup", "x": 14, "y": 3, "chance": 75, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_205", "type": "mapgen", @@ -39978,38 +8408,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "_,_______ss.2222.%...%..", "_,_______ss.2222.%...%..", @@ -40040,129 +8438,7 @@ "items": { "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, "place_vehicles": [ { "vehicle": "suv", "x": 4, "y": 2, "chance": 75, "rotation": 270 } ], "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 18, 20 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_206", "type": "mapgen", @@ -40172,38 +8448,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "...__________________...", "...________,,________...", @@ -40236,129 +8480,7 @@ "8": { "item": "dirt_rubble", "chance": 50 }, "z": { "item": "dirt_rubble", "chance": 25 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_207", "type": "mapgen", @@ -40368,38 +8490,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..%...%..2222222222.....", "..%...%.2222222222222.2.", @@ -40435,129 +8525,7 @@ "%": { "item": "fence_caught", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 3, 5 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_208", "type": "mapgen", @@ -40567,38 +8535,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "............111111111111", @@ -40626,129 +8562,7 @@ "222222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_209", "type": "mapgen", @@ -40758,38 +8572,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "......................11", "111....11111111111111111", @@ -40817,129 +8599,7 @@ "222222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_210", "type": "mapgen", @@ -40949,38 +8609,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "111111111111111111111111", "11111111111111111111111.", @@ -41008,129 +8636,7 @@ "222222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_211", "type": "mapgen", @@ -41140,38 +8646,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ ".....22.........22222222", "....222222...22222222222", @@ -41199,129 +8673,7 @@ "222222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_212", "type": "mapgen", @@ -41331,38 +8683,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -41390,129 +8710,7 @@ "222222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_213", "type": "mapgen", @@ -41522,38 +8720,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -41581,129 +8747,7 @@ "222222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_214", "type": "mapgen", @@ -41713,38 +8757,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -41772,129 +8784,7 @@ "222222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_215", "type": "mapgen", @@ -41904,38 +8794,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "%2222222._______________", "%222222.._______________", @@ -41967,129 +8825,7 @@ "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_216", "type": "mapgen", @@ -42099,38 +8835,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "________________________", "________________________", @@ -42159,129 +8863,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_217", "type": "mapgen", @@ -42291,38 +8873,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "________________________", "________________________", @@ -42354,129 +8904,7 @@ "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_218", "type": "mapgen", @@ -42486,38 +8914,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "______________.2222222%2", "______________..222222%2", @@ -42549,129 +8945,7 @@ "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_219", "type": "mapgen", @@ -42681,38 +8955,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "22222222.1111111.%...%..", "2222222221111111.%...%..", @@ -42742,129 +8984,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.04 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 18, 23 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_220", "type": "mapgen", @@ -42874,38 +8994,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..%...%.11111111.2222222", "..%...%.11111111...22222", @@ -42935,129 +9023,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 5 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_221", "type": "mapgen", @@ -43067,38 +9033,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -43126,129 +9060,7 @@ "222222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_222", "type": "mapgen", @@ -43258,38 +9070,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "2222....................", "22222222................", @@ -43317,129 +9097,7 @@ "222222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_223", "type": "mapgen", @@ -43449,38 +9107,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "......F.,,,,,,,,,,.F..11", "......F.,___,,___,.F....", @@ -43512,129 +9138,7 @@ "f": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_224", "type": "mapgen", @@ -43644,38 +9148,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "11.111..........22....22", "...........2222222222222", @@ -43703,129 +9175,7 @@ "222222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_225", "type": "mapgen", @@ -43835,38 +9185,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -43894,129 +9212,7 @@ "222222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_226", "type": "mapgen", @@ -44026,38 +9222,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -44085,129 +9249,7 @@ "222222222222222222222222" ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_227", "type": "mapgen", @@ -44217,38 +9259,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "......1111111111.%...%..", "2222....11111111.%...%..", @@ -44278,129 +9288,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 18, 20 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_228", "type": "mapgen", @@ -44410,38 +9298,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "...___zzz__Y_________...", "...__________________...", @@ -44473,129 +9329,7 @@ { "vehicle": "city_vehicles", "x": [ 3, 9 ], "y": [ 3, 19 ], "chance": 75, "rotation": 90 }, { "vehicle": "city_vehicles", "x": [ 14, 19 ], "y": [ 3, 19 ], "chance": 75, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_229", "type": "mapgen", @@ -44605,38 +9339,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..%...%22..11111111.2222", "..%...%2.2.11111111..222", @@ -44675,129 +9377,7 @@ { "point": "trap", "id": "tr_landmine_buried", "x": [ 3, 5 ], "y": [ 0, 20 ], "repeat": [ 2, 6 ] }, { "point": "trap", "id": "tr_landmine_buried", "x": [ 6, 23 ], "y": [ 18, 20 ], "repeat": [ 2, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_230", "type": "mapgen", @@ -44807,38 +9387,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -44868,129 +9416,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 18, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_231", "type": "mapgen", @@ -45000,38 +9426,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -45061,129 +9455,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 18, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_232", "type": "mapgen", @@ -45193,38 +9465,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -45254,129 +9494,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 18, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_233", "type": "mapgen", @@ -45386,38 +9504,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -45447,129 +9533,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 18, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_234", "type": "mapgen", @@ -45579,38 +9543,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -45640,129 +9572,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 18, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_235", "type": "mapgen", @@ -45772,38 +9582,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -45833,129 +9611,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 18, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_236", "type": "mapgen", @@ -45965,38 +9621,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "QQQQ22222222222222222222", @@ -46026,129 +9650,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 18, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_237", "type": "mapgen", @@ -46158,38 +9660,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "2222222222222222...22222", "222222222222222222222222", @@ -46219,129 +9689,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 18, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_238", "type": "mapgen", @@ -46351,38 +9699,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "2222222......22222222222", "222222222222222222222222", @@ -46412,129 +9728,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 18, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_239", "type": "mapgen", @@ -46544,38 +9738,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "22.222222222222.2.222222", "222222222222222222222222", @@ -46605,129 +9767,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 18, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_240", "type": "mapgen", @@ -46737,38 +9777,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "2222222...22222222222222", "222222222222222222222222", @@ -46798,129 +9806,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 18, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_241", "type": "mapgen", @@ -46930,38 +9816,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "2222222.1111111..%...%..", "222222..1111111..%...%..", @@ -46994,129 +9848,7 @@ { "point": "trap", "id": "tr_landmine_buried", "x": [ 18, 23 ], "y": [ 0, 17 ], "repeat": [ 2, 6 ] }, { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 18, 23 ], "repeat": [ 2, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_242", "type": "mapgen", @@ -47126,38 +9858,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -47190,129 +9890,7 @@ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 0, 5 ], "repeat": [ 2, 6 ] }, { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 5 ], "y": [ 6, 23 ], "repeat": [ 2, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_243", "type": "mapgen", @@ -47322,38 +9900,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -47383,129 +9929,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 0, 5 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_244", "type": "mapgen", @@ -47515,38 +9939,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -47576,129 +9968,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 0, 5 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_245", "type": "mapgen", @@ -47708,38 +9978,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -47769,129 +10007,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 0, 5 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_246", "type": "mapgen", @@ -47901,38 +10017,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -47962,129 +10046,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 0, 5 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_247", "type": "mapgen", @@ -48094,38 +10056,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -48155,129 +10085,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 0, 5 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_248", "type": "mapgen", @@ -48287,38 +10095,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "........................", "........................", @@ -48351,129 +10127,7 @@ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 0, 5 ], "repeat": [ 2, 6 ] }, { "point": "trap", "id": "tr_landmine_buried", "x": [ 18, 23 ], "y": [ 6, 23 ], "repeat": [ 2, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_249", "type": "mapgen", @@ -48483,38 +10137,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..%...%.111111...2222222", "..%...%.11111112..222222", @@ -48544,129 +10166,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 }, "2": { "item": "forest", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 5 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_250", "type": "mapgen", @@ -48676,38 +10176,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "2222222222222222222.2...", "22222222222222222222.2..", @@ -48735,129 +10203,7 @@ "222222222222222222.2...." ], "items": { "2": { "item": "forest", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_251", "type": "mapgen", @@ -48867,38 +10213,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "ssssssssssssssssssssssss", "s%%%%%%%%%%%%%%%%%%%%%%%", @@ -48927,129 +10241,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_252", "type": "mapgen", @@ -49059,38 +10251,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "ssssssssssssssssssssssss", "%%%%%%%%%%%%%%%%%%%%%%%%", @@ -49119,129 +10279,7 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "%": { "item": "fence_caught", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_253", "type": "mapgen", @@ -49251,38 +10289,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "sssssssssssssssssssssss.", "%%%%%%%%%%%%%%%%%%%%%%s.", @@ -49316,129 +10322,7 @@ "z": { "item": "dirt_rubble", "chance": 25 }, "%": { "item": "fence_caught", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_254", "type": "mapgen", @@ -49448,38 +10332,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "...zz888zz..........2222", "..zz88Z88zzsssssss.....2", @@ -49514,129 +10366,7 @@ "2": { "item": "forest", "chance": 1 } }, "place_vehicles": [ { "vehicle": "city_vehicles", "x": [ 6, 16 ], "y": [ 9, 19 ], "chance": 75 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_255", "type": "mapgen", @@ -49646,38 +10376,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "22222222.11111122%...%..", "222222222211111.2%...%..", @@ -49707,129 +10405,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 18, 23 ], "y": [ 0, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_256", "type": "mapgen", @@ -49839,38 +10415,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "..%...%.11111111...22222", "..%...%.11111111...22222", @@ -49903,129 +10447,7 @@ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 5 ], "y": [ 0, 23 ], "repeat": [ 2, 6 ] }, { "point": "trap", "id": "tr_landmine_buried", "x": [ 6, 23 ], "y": [ 18, 23 ], "repeat": [ 2, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_257", "type": "mapgen", @@ -50035,38 +10457,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -50096,129 +10486,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 18, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_258", "type": "mapgen", @@ -50228,38 +10496,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -50289,129 +10525,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 18, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_259", "type": "mapgen", @@ -50421,38 +10535,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -50482,129 +10564,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 18, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_260", "type": "mapgen", @@ -50614,38 +10574,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -50675,129 +10603,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 18, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_261", "type": "mapgen", @@ -50807,38 +10613,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -50868,129 +10642,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 18, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_262", "type": "mapgen", @@ -51000,38 +10652,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222222222222222222222", "222222222222222222222222", @@ -51061,129 +10681,7 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_SCOUT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.03 } ], "items": { "2": { "item": "forest", "chance": 1 }, "%": { "item": "fence_caught", "chance": 1 } }, "set": [ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 18, 23 ], "repeat": [ 3, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_263", "type": "mapgen", @@ -51193,38 +10691,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_sandbag_half", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "X": "f_tank_trap", - "Y": "f_rubble", - "Z": "f_ash", - "a": "f_sandbag_half", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill" - }, "rows": [ "222222..11111111.%...%..", "2222....11111111.%...%..", @@ -51257,129 +10723,7 @@ { "point": "trap", "id": "tr_landmine_buried", "x": [ 0, 23 ], "y": [ 18, 23 ], "repeat": [ 2, 6 ] }, { "point": "trap", "id": "tr_landmine_buried", "x": [ 18, 23 ], "y": [ 0, 17 ], "repeat": [ 2, 6 ] } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_radio_tower", - "%": "t_fence_barbed", - "&": "t_gas_pump", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_manhole_cover", - "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "2": [ - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_tree_young", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub", - "t_tree", - "t_grass", - "t_tree_dead" - ], - "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], - "5": "t_gates_control_brick", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_dirtmound", - "9": "t_door_metal_c", - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "O": "t_thconc_floor", - "Q": "t_dirt", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "V": "t_thconc_floor", - "W": "t_window", - "X": "t_pavement", - "Y": "t_dirt", - "Z": "t_dirt", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], - "_": "t_pavement", - "a": "t_pavement", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "m": "t_wall_metal", - "o": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_dirt", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp" ] }, "om_terrain": "national_guard_camp_264", "type": "mapgen", diff --git a/data/mods/National_Guard_Camp/national_guard_camp/national_guard_camp_b1.json b/data/mods/National_Guard_Camp/national_guard_camp/national_guard_camp_b1.json index 4ac739bd71d90..b735570a19108 100644 --- a/data/mods/National_Guard_Camp/national_guard_camp/national_guard_camp_b1.json +++ b/data/mods/National_Guard_Camp/national_guard_camp/national_guard_camp_b1.json @@ -3,38 +3,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -61,124 +29,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_1", "type": "mapgen", @@ -188,38 +40,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -246,124 +66,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_2", "type": "mapgen", @@ -373,38 +77,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -431,124 +103,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_3", "type": "mapgen", @@ -558,38 +114,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -616,124 +140,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_4", "type": "mapgen", @@ -743,38 +151,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -801,124 +177,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_5", "type": "mapgen", @@ -928,38 +188,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -986,124 +214,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_6", "type": "mapgen", @@ -1113,38 +225,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -1171,124 +251,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_7", "type": "mapgen", @@ -1298,38 +262,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -1356,124 +288,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_8", "type": "mapgen", @@ -1483,38 +299,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -1541,124 +325,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_9", "type": "mapgen", @@ -1668,38 +336,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -1726,124 +362,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_10", "type": "mapgen", @@ -1853,38 +373,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -1911,124 +399,8 @@ "~~~~~~~~~~~~~~~~~~~~eeee", "~~~~~~~~~~~~~~~~~~eee___" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_11", "type": "mapgen", @@ -2038,38 +410,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -2096,124 +436,8 @@ "eeeeeeeeeeeeeeeeeeeeeeee", "________________________" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_12", "type": "mapgen", @@ -2223,38 +447,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -2281,124 +473,8 @@ "eeeeeeeeeeeeeeeeeeeeeeee", "________________________" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_13", "type": "mapgen", @@ -2408,38 +484,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -2466,124 +510,8 @@ "eeeeeeeeeeeeeeeeeeeeeeee", "________________________" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_14", "type": "mapgen", @@ -2593,38 +521,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -2651,124 +547,8 @@ "eeeeeeeeeeeeeeeeeeeeeeee", "________________________" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_15", "type": "mapgen", @@ -2778,38 +558,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -2836,124 +584,8 @@ "eeeeeeeeeeeeeeeeeeeeeeee", "________________________" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_16", "type": "mapgen", @@ -2963,38 +595,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~eeeee~~", "~~~~~~~~eeeeeee~~e < e~~", @@ -3027,124 +627,8 @@ { "group": "cleaning", "x": 13, "y": [ 7, 9 ], "chance": 40 }, { "group": "mechanics", "x": 22, "y": [ 14, 17 ], "chance": 45 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_17", "type": "mapgen", @@ -3154,38 +638,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "eeeeeee~~~~~~~~~~~~~~~~~", @@ -3219,124 +671,8 @@ "L": { "item": "army_personal_locker", "chance": 40 }, "r": { "item": "mechanics", "chance": 45 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_18", "type": "mapgen", @@ -3346,38 +682,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -3404,124 +708,8 @@ "eeeeeeeeeeeeeeeeeeeeeeee", "________________________" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_19", "type": "mapgen", @@ -3531,38 +719,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -3589,124 +745,8 @@ "eeeee~~~~~~~~~~~~~~~~~~~", "____eee~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_20", "type": "mapgen", @@ -3716,38 +756,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -3774,124 +782,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_21", "type": "mapgen", @@ -3901,38 +793,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -3959,124 +819,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_22", "type": "mapgen", @@ -4086,38 +830,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -4144,124 +856,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_23", "type": "mapgen", @@ -4271,38 +867,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -4329,124 +893,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_24", "type": "mapgen", @@ -4456,38 +904,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -4514,124 +930,8 @@ "~~~~~~~~~~~~~~~~~~~~~~``", "~~~~~~~~~~~~~~~~~~~~~^``" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_25", "type": "mapgen", @@ -4641,38 +941,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -4700,124 +968,8 @@ "``````````~~~~~~~~``````" ], "items": { "`": { "item": "cavern", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_26", "type": "mapgen", @@ -4827,38 +979,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -4886,124 +1006,8 @@ "````````````````````~~~~" ], "items": { "`": { "item": "cavern", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_27", "type": "mapgen", @@ -5013,38 +1017,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -5073,124 +1045,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_CONSTRUCTION", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ], "items": { "`": { "item": "cavern", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_28", "type": "mapgen", @@ -5200,38 +1056,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -5266,124 +1090,8 @@ "c": { "item": "mechanics", "chance": 30 } }, "place_vehicles": [ { "vehicle": "golf_cart", "x": [ 17, 19 ], "y": [ 18, 20 ], "chance": 75, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_29", "type": "mapgen", @@ -5393,38 +1101,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -5454,124 +1130,8 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "r": { "item": "supplies_spares_vehicle", "chance": 40 }, "c": { "item": "mechanics", "chance": 30 } }, "place_vehicles": [ { "vehicle": "golf_cart", "x": [ 3, 6 ], "y": [ 17, 19 ], "chance": 75, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_30", "type": "mapgen", @@ -5581,38 +1141,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -5641,124 +1169,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "r": { "item": "electronics", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_31", "type": "mapgen", @@ -5768,38 +1180,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~ee", "~~~~~~~~~~~~~~~~~~~~~~eN", @@ -5828,124 +1208,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "r": { "item": "sewage_plant", "chance": 45 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_32", "type": "mapgen", @@ -5955,38 +1219,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "eeeeeeeeee~~~~~~~ee_____", "12222222Ne~~~~~~~e______", @@ -6016,124 +1248,8 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "place_fields": [ { "field": "fd_blood", "x": [ 20, 22 ], "y": [ 0, 2 ], "age": 0, "density": 1, "repeat": 8 } ], "place_vehicles": [ { "vehicle": "golf_cart", "x": 18, "y": 10, "chance": 25, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_33", "type": "mapgen", @@ -6143,38 +1259,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "________________________", "________________________", @@ -6204,124 +1288,8 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "place_fields": [ { "field": "fd_blood", "x": [ 16, 18 ], "y": [ 0, 2 ], "age": 0, "density": 1, "repeat": 8 } ], "place_vehicles": [ { "vehicle": "golf_cart", "x": [ 3, 18 ], "y": 1, "chance": 15, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_34", "type": "mapgen", @@ -6331,38 +1299,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "________________________", "________________________", @@ -6391,124 +1327,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_35", "type": "mapgen", @@ -6518,38 +1338,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "________________________", "________________________", @@ -6578,124 +1366,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "place_vehicles": [ { "vehicle": "golf_cart", "x": [ 3, 18 ], "y": 1, "chance": 15, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_36", "type": "mapgen", @@ -6705,38 +1377,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "________________________", "________________________", @@ -6765,124 +1405,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_CBRN", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "r": { "item": "reactor_equipment", "chance": 45 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_37", "type": "mapgen", @@ -6892,38 +1416,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "________________________", "________________________", @@ -6958,124 +1450,7 @@ "r": { "item": "electronics", "chance": 45 } }, "place_vehicles": [ { "vehicle": "golf_cart", "x": [ 3, 18 ], "y": 1, "chance": 50, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_38", "type": "mapgen", @@ -7085,38 +1460,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "________________________", "________________________", @@ -7150,124 +1493,8 @@ "L": { "item": "reactor_equipment", "chance": 45 }, "r": { "item": "electronics", "chance": 45 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_39", "type": "mapgen", @@ -7277,38 +1504,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "________________________", "________________________", @@ -7342,124 +1537,8 @@ "L": { "item": "reactor_equipment", "chance": 45 }, "r": { "item": "chem_school", "chance": 45 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_40", "type": "mapgen", @@ -7469,38 +1548,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "________________________", "________________________", @@ -7529,124 +1576,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_41", "type": "mapgen", @@ -7656,38 +1587,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "______ee~~~~~~~~~~~~~~~~", "_______e~~~~~~~~~~~~~~~~", @@ -7716,124 +1615,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "place_vehicles": [ { "vehicle": "golf_cart", "x": 5, "y": [ 6, 12 ], "chance": 50, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_42", "type": "mapgen", @@ -7843,38 +1626,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -7901,124 +1652,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_43", "type": "mapgen", @@ -8028,38 +1663,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -8086,124 +1689,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_44", "type": "mapgen", @@ -8213,38 +1700,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -8271,124 +1726,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_45", "type": "mapgen", @@ -8398,38 +1737,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -8456,124 +1763,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_46", "type": "mapgen", @@ -8583,38 +1774,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~Z```", "~~~~~~~~~~~~~~~~~~~~Z```", @@ -8643,124 +1802,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_CONSTRUCTION", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "`": { "item": "cavern", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_47", "type": "mapgen", @@ -8770,38 +1813,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "````````````~~~~~Z``````", "````````````~~~~~~``````", @@ -8830,124 +1841,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_CONSTRUCTION", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "`": { "item": "cavern", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_48", "type": "mapgen", @@ -8957,38 +1852,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "`````````````````````~~~", "````````````````````~~~~", @@ -9017,124 +1880,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_CONSTRUCTION", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "`": { "item": "cavern", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_49", "type": "mapgen", @@ -9144,38 +1891,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~``````ZZ````~~~~~~Z````", "~~~~```~~~``~~~~~~~Z````", @@ -9204,124 +1919,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_CONSTRUCTION", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "`": { "item": "cavern", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_50", "type": "mapgen", @@ -9331,38 +1930,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "``~~~~e e~e ", "``~~~~e eeee~eeeeeee====", @@ -9399,124 +1966,7 @@ { "vehicle": "golf_cart", "x": 13, "y": 6, "chance": 75, "rotation": 180 }, { "vehicle": "engine_crane", "x": 11, "y": 6, "chance": 100, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_51", "type": "mapgen", @@ -9526,38 +1976,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " e~e ", "===eeeeeee~eeee eeeeee ", @@ -9594,124 +2012,7 @@ { "vehicle": "golf_cart", "x": 12, "y": 7, "chance": 75, "rotation": 180 }, { "vehicle": "golf_cart", "x": 3, "y": 20, "chance": 50, "rotation": 45 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_52", "type": "mapgen", @@ -9721,38 +2022,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "e~~~~~~~~ee ee~~~~~~~~~e", "eeeeeee~~~e e~~eeeeeeeee", @@ -9781,124 +2050,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "d": { "item": "office", "chance": 35 }, "r": { "item": "supplies_spares_vehicle", "chance": 30 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_53", "type": "mapgen", @@ -9908,38 +2061,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " e~~~~~~~e9e~~e e~~~~~e ", " eeeeeeeee ee~e e~~~~~e ", @@ -9973,124 +2094,8 @@ "r": { "item": "mechanics", "chance": 30 } }, "place_vehicles": [ { "vehicle": "golf_cart", "x": [ 5, 20 ], "y": 19, "chance": 75, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_54", "type": "mapgen", @@ -10100,38 +2105,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " `(((((`e~~~~~~~e____e~~", " `(((((`e~~~~~~~e____e~~", @@ -10161,124 +2134,8 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "place_fields": [ { "field": "fd_blood", "x": [ 2, 4 ], "y": [ 21, 23 ], "age": 0, "density": 1, "repeat": 8 } ], "place_vehicles": [ { "vehicle": "golf_cart", "x": 18, "y": 8, "chance": 25, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_55", "type": "mapgen", @@ -10288,38 +2145,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -10348,124 +2173,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "L": { "item": "sewage_plant", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_56", "type": "mapgen", @@ -10475,38 +2184,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~((~~~~~~~~~e ", "~~~~~~~~~~((~~~~~~~~~eee", @@ -10534,124 +2211,8 @@ "~~~~~~~~~~((~~~~~~~~~~~~" ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_57", "type": "mapgen", @@ -10661,38 +2222,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " 2e~e **** ", "ee eeee 22 2eee **** ", @@ -10720,124 +2249,8 @@ "~~~~~~e 8 eeeeeeeeee " ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_58", "type": "mapgen", @@ -10847,38 +2260,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "e~~~~~~~~eeGGGGGee~~~~~~", "e~~~eeeeeeeGGGGGeeeeeeee", @@ -10908,124 +2289,8 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_CBRN", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "fields": { "!": { "field": "fd_nuke_gas", "density": 1, "age": 0 } }, "items": { "!": { "item": "reactor_core", "chance": 3 }, "c": { "item": "cubical_office", "chance": 45 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_59", "type": "mapgen", @@ -11035,38 +2300,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~er!!!!!!!!!!!!!!!!!!!!!", "eer!!!OO!!!!!!!!!!!!!!!!", @@ -11100,124 +2333,8 @@ "O": { "item": "reactor_core", "chance": 30 }, "r": { "item": "electronics", "chance": 45 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_60", "type": "mapgen", @@ -11227,38 +2344,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "$$!!!GG e~~eeeeeeeeeeee", "$!!!!GG e~~e 1111 1771", @@ -11292,124 +2377,8 @@ "L": { "item": "reactor_equipment", "chance": 45 }, "r": { "item": "electronics", "chance": 45 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_61", "type": "mapgen", @@ -11419,38 +2388,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "eeeeeeee = 9 re~e", " e~~eee er rer re~e", @@ -11483,124 +2420,8 @@ "L": { "item": "chem_school", "chance": 50 }, "r": { "item": "electronics", "chance": 45 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_62", "type": "mapgen", @@ -11610,38 +2431,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " e~~~~~~((~~~~~~~~~~~", " e~~~~~~((~~~~~~~~~~~", @@ -11669,124 +2458,8 @@ " e~~~~~~((~~~~~~~~~~~" ], "items": { "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_63", "type": "mapgen", @@ -11796,38 +2469,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~e____e~~~~~~~~~~~~~~~", "~~~e____e~~~~~~~~~~~~~~~", @@ -11856,124 +2497,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_CONSTRUCTION", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "`": { "item": "cavern", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_64", "type": "mapgen", @@ -11983,38 +2508,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -12043,124 +2536,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_CONSTRUCTION", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "`": { "item": "cavern", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_65", "type": "mapgen", @@ -12170,38 +2547,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -12230,124 +2575,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_CONSTRUCTION", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "`": { "item": "cavern", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_66", "type": "mapgen", @@ -12357,38 +2586,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -12415,124 +2612,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_67", "type": "mapgen", @@ -12542,38 +2623,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -12600,124 +2649,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_68", "type": "mapgen", @@ -12727,38 +2660,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~ee_______________", "~~~~~~~e________eeeeeeee", @@ -12787,124 +2688,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "place_vehicles": [ { "vehicle": "golf_cart", "x": 9, "y": [ 6, 19 ], "chance": 25, "rotation": 270 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_69", "type": "mapgen", @@ -12914,38 +2699,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "________________________", "eeeeeeeeeeeeeeeeeeeeeeee", @@ -12973,124 +2726,8 @@ "~~~~~~~~~~~(((~~~~~~~~~~" ], "items": { "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_70", "type": "mapgen", @@ -13100,38 +2737,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "________________________", "eeeeeeeeeeeeeeeeeeeeeeee", @@ -13159,124 +2764,8 @@ "~eeeeee e~ee ee" ], "items": { "r": { "item": "weapon_testing_lab", "chance": 35 }, "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_71", "type": "mapgen", @@ -13286,38 +2775,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "________________________", "eeeeeeeeeeeeeeeeeeeeeeee", @@ -13347,124 +2804,8 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "place_fields": [ { "field": "fd_blood", "x": [ 8, 10 ], "y": [ 19, 21 ], "age": 0, "density": 1, "repeat": 8 } ], "items": { "k": { "item": "mil_armor_torso", "chance": 100 }, "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_72", "type": "mapgen", @@ -13474,38 +2815,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "________________________", "eeeeeeeeeeeeeeeeeeeeee)U", @@ -13539,124 +2848,8 @@ "c": { "item": "mags_milspec", "chance": 20 }, "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_73", "type": "mapgen", @@ -13666,38 +2859,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "________________________", ")eeeeeeeeeeeeeeeeeeeeeee", @@ -13725,124 +2886,8 @@ "~ec ec e~~~~~~e@ " ], "items": { "c": { "item": "weapon_testing_lab", "chance": 20 }, "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_74", "type": "mapgen", @@ -13852,38 +2897,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "________________________", "eeeeeeeeeeeeeeeeeeeeeeee", @@ -13916,124 +2929,8 @@ "c": { "item": "weapon_testing_lab", "chance": 20 }, "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_75", "type": "mapgen", @@ -14043,38 +2940,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "________________________", "eeeeeeeeeeeeeeeeeeeeeeee", @@ -14108,124 +2973,8 @@ "r": { "item": "cleaning", "chance": 30 }, "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_76", "type": "mapgen", @@ -14235,38 +2984,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "_____________________e~~", "eeeeeeeeeeeee________e~~", @@ -14301,124 +3018,8 @@ "(": { "item": "sewer", "chance": 1 } }, "place_vehicles": [ { "vehicle": "golf_cart", "x": 18, "y": [ 6, 19 ], "chance": 25, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_77", "type": "mapgen", @@ -14428,38 +3029,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~e e~~~~~~~~~~~~~~~e e", "~~~e e~~~~~~~~~~~~~~~e e", @@ -14488,124 +3057,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "r": { "item": "chem_lab", "chance": 40 }, "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_78", "type": "mapgen", @@ -14615,38 +3068,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~((~~~~~~~~~~~~", "~~~~~~~~~~((~~~~~~~~~~~~", @@ -14675,124 +3096,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_79", "type": "mapgen", @@ -14802,38 +3107,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~e ", "~eeeeeeeeeeeeeeeeeeeeee ", @@ -14861,124 +3134,8 @@ "ee e~~~~~~~(((~~e e~e@ " ], "items": { "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_80", "type": "mapgen", @@ -14988,38 +3145,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "e~~~~~~~~~~~~~~~~~~~~eee", "e~~~~~~~~~~~~~~~~~~~~~~~", @@ -15047,124 +3172,8 @@ "e~~e11 e~e e 488 rrrr" ], "items": { "r": { "item": "electronics", "chance": 30 }, "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_81", "type": "mapgen", @@ -15174,38 +3183,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "eeeeeee~~~~~~~er e~~~~", "~~~~~~~~~~~~~~er e~~~~", @@ -15233,124 +3210,8 @@ " 884 e~~~~~~~~~~~~~~~~~" ], "items": { "r": { "item": "tools_blacksmith", "chance": 30 }, "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_82", "type": "mapgen", @@ -15360,38 +3221,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~eeeeeeee~~~~~~~~e 1", "~~~~~~~~~~~~~~~~~~~~e 1", @@ -15419,124 +3248,8 @@ "~~~~~~~~e7777777777e Y " ], "items": { "r": { "item": "tools_blacksmith", "chance": 30 }, "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_83", "type": "mapgen", @@ -15546,38 +3259,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "1 11 e e re~e", "1 6 11 eLLLLLLLeeeee~e", @@ -15605,124 +3286,8 @@ " Y e~" ], "items": { "L": { "item": "reactor_equipment", "chance": 30 }, "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_84", "type": "mapgen", @@ -15732,38 +3297,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " e~~~~~~((~~~~~~~~~~~", " Le~~~~~~((~~~~~~~~~~~", @@ -15791,124 +3324,8 @@ "~~~~~~~~~~~(((~~~~~~~~~~" ], "items": { "L": { "item": "chem_school", "chance": 30 }, "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_85", "type": "mapgen", @@ -15918,38 +3335,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~e____e~~~~~~~~`", "~~~~~~~~~e____eeeeee~~``", @@ -15979,124 +3364,8 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_CONSTRUCTION", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "`": { "item": "cavern", "chance": 1 } }, "place_vehicles": [ { "vehicle": "golf_cart", "x": [ 15, 16 ], "y": [ 6, 15 ], "chance": 75, "rotation": 180 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_86", "type": "mapgen", @@ -16106,38 +3375,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "```````````````````~~~~~", "````````````````eee~~~~`", @@ -16166,124 +3403,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_CONSTRUCTION", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "`": { "item": "cavern", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_87", "type": "mapgen", @@ -16293,38 +3414,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~`````````` e``~~~~", "````~`````````` e``~~~~", @@ -16353,124 +3442,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_CONSTRUCTION", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "`": { "item": "cavern", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_88", "type": "mapgen", @@ -16480,38 +3453,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -16538,124 +3479,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_89", "type": "mapgen", @@ -16665,38 +3490,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -16723,124 +3516,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_90", "type": "mapgen", @@ -16850,38 +3527,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~e____e~~~~~~~~~~~", "~~~~~~~e____e~~~~~~~~~~~", @@ -16911,124 +3556,8 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "k": { "item": "mil_armor_torso", "chance": 100 }, "c": { "item": "mags_milspec", "chance": 20 } }, "place_vehicles": [ { "vehicle": "golf_cart", "x": 9, "y": [ 4, 20 ], "chance": 25, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_91", "type": "mapgen", @@ -17038,38 +3567,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~(((~~~~~~~~~~", "~~~~~~~~~~~(((~eeeeeee~~", @@ -17101,124 +3598,8 @@ "c": { "item": "mags_milspec", "chance": 20 }, "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_92", "type": "mapgen", @@ -17228,38 +3609,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~e e~~eeeeeee eee~", "~e eeeeeeee~~~~~~e e~~~", @@ -17288,124 +3637,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "L": { "item": "mechanics", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_93", "type": "mapgen", @@ -17415,38 +3648,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~e ))) ))) e~e` ", "~~~e U ) ) U e~e` ", @@ -17480,124 +3681,8 @@ "L": { "item": "ammo_milspec", "chance": 50 }, "r": { "item": "weapon_testing_lab", "chance": 30 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_94", "type": "mapgen", @@ -17607,38 +3692,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " c = e", " ec ^Y e", @@ -17678,124 +3731,7 @@ { "group": "bionics", "x": 8, "y": 9, "chance": 100 }, { "group": "bionics", "x": 8, "y": 11, "chance": 100 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": "t_door_metal_locked", - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_95", "type": "mapgen", @@ -17805,38 +3741,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~ec c Gch e~~~~~~e@ ", "~ec c G6 e~~~~~~e@ ", @@ -17870,124 +3774,8 @@ "c": { "item": "weapon_testing_lab", "chance": 20 }, "r": { "item": "ammo_parts", "chance": 45 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_96", "type": "mapgen", @@ -17997,38 +3785,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " e~e22 e~~~(((~~~eL ", "7e~e22 e~~~(((~~~eBB ", @@ -18062,124 +3818,8 @@ "r": { "item": "cleaning", "chance": 30 }, "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_97", "type": "mapgen", @@ -18189,38 +3829,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " Le~~e ", "BBe~~eee ee", @@ -18253,124 +3861,8 @@ "L": { "item": "army_personal_locker", "chance": 30 }, "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_98", "type": "mapgen", @@ -18380,38 +3872,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "e~~eL Le~~~e____e~~", "e~~eBB BBe~~~e____e~~", @@ -18444,124 +3904,8 @@ "L": { "item": "army_personal_locker", "chance": 30 }, "r": { "item": "cleaning", "chance": 30 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_99", "type": "mapgen", @@ -18571,38 +3915,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~er rr re@", "~~~er rr reeeeeeeeee", @@ -18636,124 +3948,8 @@ "c": { "item": "chem_lab", "chance": 20 }, "L": { "item": "chem_lab", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_100", "type": "mapgen", @@ -18763,38 +3959,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "@@@@@e~~e e~~~~~~~~~~~", "eeeeeeeeee9eeee~~~~~~~~~", @@ -18829,124 +3993,8 @@ "g": { "item": "mut_lab", "chance": 25 }, "L": { "item": "sewage_plant", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_101", "type": "mapgen", @@ -18956,38 +4004,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~e e~~eeee~(((~ee e~e@ ", "~e e~~e 9`````9 e~e@ ", @@ -19015,124 +4031,8 @@ "eee~~~~~((((((~~~~~~~~~~" ], "items": { "c": { "item": "chem_lab", "chance": 20 }, "L": { "item": "sewage_plant", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_102", "type": "mapgen", @@ -19142,38 +4042,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "e~~e11 e~e 88 ", "e~~e6 e~e ", @@ -19203,124 +4071,8 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "place_fields": [ { "field": "fd_blood", "x": [ 20, 22 ], "y": [ 18, 20 ], "age": 0, "density": 1, "repeat": 8 } ], "items": { "c": { "item": "robots", "chance": 25 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_103", "type": "mapgen", @@ -19330,38 +4082,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " 88 e~~~~~~~~~~~~~~~~~", " e~~~~~~~~~~~~~~~~~", @@ -19391,124 +4111,8 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "place_fields": [ { "field": "fd_blood", "x": [ 8, 10 ], "y": [ 12, 14 ], "age": 0, "density": 1, "repeat": 8 } ], "items": { "c": { "item": "robots", "chance": 25 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_104", "type": "mapgen", @@ -19518,38 +4122,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~eGGGGGGGGGGe Y ", "~~~~~~~~e666 e Y ", @@ -19578,124 +4150,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "c": { "item": "robots", "chance": 25 }, "r": { "item": "robots", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_105", "type": "mapgen", @@ -19705,38 +4161,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "77 77 77 77 77 77 Y e~", "77 77 77 77 77 77 Y e~", @@ -19765,124 +4189,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "c": { "item": "robots", "chance": 25 }, "r": { "item": "robots", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_106", "type": "mapgen", @@ -19892,38 +4200,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~(((~~~~~~~~~~", "~~~~~~~~~~~(((~~~~~~~~~~", @@ -19951,124 +4227,8 @@ "6e~~~~~~~~~(((~~~~~~~~~~" ], "items": { "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_107", "type": "mapgen", @@ -20078,38 +4238,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~e____e~~~~~~~~~", "~~~~~~~~ee____e~~~~~~~~~", @@ -20138,124 +4266,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_CONSTRUCTION", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "`": { "item": "cavern", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_108", "type": "mapgen", @@ -20265,38 +4277,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~`e`````````````~~~```~~", "~`e`````````````~~~~~~~~", @@ -20329,124 +4309,8 @@ "g": { "item": "virology_lab_fridge", "chance": 40 }, "`": { "item": "cavern", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_109", "type": "mapgen", @@ -20456,38 +4320,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "``~~``~~~~````````````~~", "~~~~``~~~````````````~~~", @@ -20516,124 +4348,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_CONSTRUCTION", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "c": { "item": "virology_lab", "chance": 20 }, "`": { "item": "cavern", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_110", "type": "mapgen", @@ -20643,38 +4359,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -20701,124 +4385,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_111", "type": "mapgen", @@ -20828,38 +4396,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -20886,124 +4422,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_112", "type": "mapgen", @@ -21013,38 +4433,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~e____e~~~~~~~eeYY", "~~~~~~~e____e~~~~~~ee ", @@ -21074,124 +4462,8 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "L": { "item": "weapon_testing_lab", "chance": 30 }, "c": { "item": "weapon_testing_lab", "chance": 20 } }, "place_vehicles": [ { "vehicle": "golf_cart", "x": [ 13, 14 ], "y": [ 16, 19 ], "chance": 75, "rotation": 180 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_113", "type": "mapgen", @@ -21201,38 +4473,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "YYYY99YYYYYYee~~~~~~~~~~", " ee~~~~~~~~~", @@ -21265,124 +4505,8 @@ "L": { "item": "weapon_testing_lab", "chance": 30 }, "c": { "item": "weapon_testing_lab", "chance": 20 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_114", "type": "mapgen", @@ -21392,38 +4516,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~e@ @e~~eee ", "~~~~~~~~~eeeee eee~~e2 ", @@ -21452,124 +4544,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "c": { "item": "weapon_testing_lab", "chance": 20 }, "r": { "item": "ammo_parts", "chance": 45 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_115", "type": "mapgen", @@ -21579,38 +4555,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " eeeeeee~~e 17771 ", " 611 eeeeeeeeeeeeeee", @@ -21644,124 +4588,8 @@ "c": { "item": "weapon_testing_lab", "chance": 20 }, "r": { "item": "ammo_parts", "chance": 45 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_116", "type": "mapgen", @@ -21771,38 +4599,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " e ere er", "eee e 9 9 ", @@ -21835,124 +4631,8 @@ "c": { "item": "weapon_testing_lab", "chance": 20 }, "r": { "item": "ammo_parts", "chance": 45 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_117", "type": "mapgen", @@ -21962,38 +4642,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "e~~ee eeeeeeee eee~~~", "e~~e e LLL 2e~~~", @@ -22026,124 +4674,8 @@ "c": { "item": "weapon_testing_lab", "chance": 20 }, "r": { "item": "ammo_parts", "chance": 45 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_118", "type": "mapgen", @@ -22153,38 +4685,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~e G((`~~~eBB ", "~~~~~~~~e G((`~~~e ", @@ -22217,124 +4717,8 @@ "L": { "item": "army_personal_locker", "chance": 30 }, "r": { "item": "mechanics", "chance": 45 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_119", "type": "mapgen", @@ -22344,38 +4728,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "Bbe~e 9 9 ", " e~eL e e ", @@ -22404,124 +4756,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "B": { "item": "army_bed", "chance": 40 }, "L": { "item": "army_personal_locker", "chance": 30 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_120", "type": "mapgen", @@ -22531,38 +4767,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " e~eBB BBe~~~e____e~~", "Le~e e~~~e____e~~", @@ -22595,124 +4799,8 @@ "L": { "item": "army_personal_locker", "chance": 30 }, "Z": { "item": "building_rubble", "chance": 60 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_121", "type": "mapgen", @@ -22722,38 +4810,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "e e rec ce e6", "e 9 reg p p G e6", @@ -22788,124 +4844,8 @@ "L": { "item": "sewage_plant", "chance": 40 }, "Z": { "item": "building_rubble", "chance": 60 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_122", "type": "mapgen", @@ -22915,38 +4855,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "6666ccc11cccScce e~~~~~", " h 6 11 e e~~~~~", @@ -22979,124 +4887,8 @@ "c": { "item": "chem_lab", "chance": 20 }, "g": { "item": "mut_lab", "chance": 25 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_123", "type": "mapgen", @@ -23106,38 +4898,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~((((((~~~~~~~~~~", "~~~~~~~~~~~(((~~~~~~~~~~", @@ -23172,124 +4932,8 @@ "L": { "item": "sewage_plant", "chance": 40 }, "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_124", "type": "mapgen", @@ -23299,38 +4943,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "e %%%%%%% eeeeeeeee ", "e % % e66 ee ", @@ -23359,124 +4971,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "d": { "item": "office", "chance": 40 }, "o": { "item": "radio", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_125", "type": "mapgen", @@ -23486,38 +4982,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "eeeeeeeeeeeeteteteeeeee ", " e+e+e+er re ", @@ -23551,124 +5015,8 @@ "T": { "item": "electronics", "chance": 40 }, "c": { "item": "robots", "chance": 25 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_126", "type": "mapgen", @@ -23678,38 +5026,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "eeeeee eeee6 6c c6 ", " 9 c c ", @@ -23742,124 +5058,8 @@ "T": { "item": "electronics", "chance": 40 }, "c": { "item": "robots", "chance": 25 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_127", "type": "mapgen", @@ -23869,38 +5069,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "6eeee 9 9 c c ", " e~~e erre7 7c c7 ", @@ -23930,124 +5098,8 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ], "place_fields": [ { "field": "fd_blood", "x": [ 19, 21 ], "y": [ 9, 11 ], "age": 0, "density": 1, "repeat": 8 } ], "items": { "r": { "item": "electronics", "chance": 40 }, "c": { "item": "robots", "chance": 25 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_128", "type": "mapgen", @@ -24057,38 +5109,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " e~~~~~~~~~(((~~~~~~~~~~", "7e~~~~~~~~~(((~~~~~~~~~~", @@ -24121,124 +5141,8 @@ "r": { "item": "electronics", "chance": 40 }, "c": { "item": "robots", "chance": 25 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_129", "type": "mapgen", @@ -24248,38 +5152,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~e_____e~~~~~~~~~~~~~~~~", "ee_____e~~~~~~~~~~~~~~~~", @@ -24312,124 +5184,8 @@ "g": { "item": "virology_lab_fridge", "chance": 40 }, "L": { "item": "sewage_plant", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_130", "type": "mapgen", @@ -24439,38 +5195,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~e e h h e c6", "~~~e Y 9 h6c", @@ -24504,124 +5228,8 @@ "r": { "item": "cleaning", "chance": 40 }, "L": { "item": "sewage_plant", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_131", "type": "mapgen", @@ -24631,38 +5239,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "c ce~~~~~~~~~~~~~~~~~~", "6h ce~~~~~~~~~~~~~~~~~~", @@ -24690,124 +5266,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~" ], "items": { "c": { "item": "virology_lab", "chance": 20 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_132", "type": "mapgen", @@ -24817,38 +5277,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -24875,124 +5303,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_133", "type": "mapgen", @@ -25002,38 +5314,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -25060,124 +5340,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_134", "type": "mapgen", @@ -25187,38 +5351,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~e____, eeee ", "~~~~~~~e____, e~~eG", @@ -25247,124 +5379,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "place_vehicles": [ { "vehicle": "golf_cart", "x": 9, "y": [ 4, 20 ], "chance": 25, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_135", "type": "mapgen", @@ -25374,38 +5390,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " Gc h 6e~~~", "==GGc c6c 6e~~~", @@ -25435,124 +5419,8 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "c": { "item": "weapon_testing_lab", "chance": 20 }, "(": { "item": "sewer", "chance": 1 } }, "place_vehicles": [ { "vehicle": "golf_cart", "x": [ 3, 8 ], "y": 21, "chance": 25, "rotation": 180 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_136", "type": "mapgen", @@ -25562,38 +5430,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~e6 Le~~~~~~~~~~~~", "~~~~e Le~~~~~~~~~~~~", @@ -25627,124 +5463,8 @@ "r": { "item": "mechanics", "chance": 45 }, "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_137", "type": "mapgen", @@ -25754,38 +5474,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~e6dd ", "~~~~~~eeeeeeeeeeeeeeeeee", @@ -25812,124 +5500,8 @@ "`````$$$$````e~~~~~~~~~~", "``22$$$$$$22`e~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_138", "type": "mapgen", @@ -25939,38 +5511,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " dd6e~~e ", "eeeeeeee~~e ", @@ -25997,124 +5537,8 @@ "~~~~~~~~~~~~~~~~~~~~~~e3", "~~eeeeeeeeeeeeeeeeeeeee3" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_139", "type": "mapgen", @@ -26124,38 +5548,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " 9 ", " 9 ", @@ -26183,124 +5575,8 @@ " " ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_140", "type": "mapgen", @@ -26310,38 +5586,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " rr rr rr re~eBB ", " rr rr rr re~eeee e", @@ -26370,124 +5614,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "r": { "item": "mechanics", "chance": 80 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_141", "type": "mapgen", @@ -26497,38 +5625,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "BBe~e 9 9 ", "eeeeeL e e ", @@ -26562,124 +5658,8 @@ "(": { "item": "sewer", "chance": 1 }, "r": { "item": "cleaning", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_142", "type": "mapgen", @@ -26689,38 +5669,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " e~eBB BBe~~~e____e~~", "Leeeeee eeee~~~e____e~~", @@ -26754,124 +5702,8 @@ "(": { "item": "sewer", "chance": 1 }, "r": { "item": "cleaning", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_143", "type": "mapgen", @@ -26881,38 +5713,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~eL = ", "~~~~~~~~~~~~~~~eL ^ eGG", @@ -26941,124 +5741,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "L": { "item": "sewage_plant", "chance": 40 }, "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_144", "type": "mapgen", @@ -27068,38 +5752,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " = ec LL c7c7c cSc ", "Geeeeeeeeeeeeeeeeeeeeeee", @@ -27127,124 +5779,8 @@ "________________________" ], "items": { "L": { "item": "sewage_plant", "chance": 40 }, "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_145", "type": "mapgen", @@ -27254,38 +5790,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "e~~~~~~~~~~(((~~~~~~~~~e", "e~~~~~~~~~~(((~~~~~~~~~e", @@ -27313,124 +5817,8 @@ "________________________" ], "items": { "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_146", "type": "mapgen", @@ -27440,38 +5828,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " e~~~~~~~~~~~~~~~~e6 6", " eeeeeeeeeeeeeeeeee7 ", @@ -27499,124 +5855,8 @@ "____________________eeee" ], "items": { "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_147", "type": "mapgen", @@ -27626,38 +5866,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "c c6 6e~~~~~~~~e1 e~", " 7e~eeeeee~e1 e~", @@ -27689,124 +5897,8 @@ "r": { "item": "electronics", "chance": 40 }, "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_148", "type": "mapgen", @@ -27816,38 +5908,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~eeeee9eeeeeer ", "~~~~~er rerrre ", @@ -27880,124 +5940,8 @@ "o": { "item": "robots", "chance": 40 }, "r": { "item": "electronics", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_149", "type": "mapgen", @@ -28007,38 +5951,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "re e cccccccccccc", "re e 7 67 67 67 6", @@ -28068,124 +5980,8 @@ "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "c": { "item": "robots", "chance": 20 }, "r": { "item": "electronics", "chance": 40 } }, "place_vehicles": [ { "vehicle": "golf_cart", "x": [ 3, 6 ], "y": 20, "chance": 75, "rotation": 90 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_150", "type": "mapgen", @@ -28195,38 +5991,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "ccc re~(((~~~~~~~~~e", "7 6 re~(((~~~~~~~~~e", @@ -28258,124 +6022,8 @@ "(": { "item": "sewer", "chance": 1 }, "r": { "item": "electronics", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_151", "type": "mapgen", @@ -28385,38 +6033,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "____e~~~~~~~~~eeee9eeee^", "____e~~~~~~~~~e ", @@ -28450,124 +6066,8 @@ "r": { "item": "cleaning", "chance": 40 }, "L": { "item": "sewage_plant", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_152", "type": "mapgen", @@ -28577,38 +6077,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " eeeeeeee 6G 1e~~", " h6G 7 ge~~", @@ -28642,124 +6110,8 @@ "r": { "item": "cleaning", "chance": 40 }, "L": { "item": "chem_lab", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_153", "type": "mapgen", @@ -28769,38 +6121,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -28827,124 +6147,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_154", "type": "mapgen", @@ -28954,38 +6158,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -29012,124 +6184,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_155", "type": "mapgen", @@ -29139,38 +6195,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -29197,124 +6221,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_156", "type": "mapgen", @@ -29324,38 +6232,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~eeeeeeeeeeeeee", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -29384,124 +6260,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "c": { "item": "chem_lab", "chance": 25 }, "d": { "item": "office", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_157", "type": "mapgen", @@ -29511,38 +6271,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "eeeeeeeeee__________e~~~", "~~~~~~~~~ee``_______e~~~", @@ -29575,124 +6303,8 @@ { "vehicle": "golf_cart", "x": [ 13, 14 ], "y": [ 12, 15 ], "chance": 50, "rotation": 0 }, { "vehicle": "golf_cart", "x": [ 13, 14 ], "y": [ 17, 19 ], "chance": 50, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_158", "type": "mapgen", @@ -29702,38 +6314,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~e e~~~~~~~~~~~e cG ", "~~~e eeeeeeeeeeeee h6G ", @@ -29770,124 +6350,8 @@ { "vehicle": "golf_cart", "x": [ 8, 19 ], "y": [ 12, 15 ], "chance": 50, "rotation": 180 }, { "vehicle": "golf_cart", "x": [ 8, 19 ], "y": [ 17, 19 ], "chance": 50, "rotation": 180 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_159", "type": "mapgen", @@ -29897,38 +6361,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "``22$$$$$$22`e~~~~~~~~~~", "```$$$$$$$$``e~~~~~~~~~~", @@ -29957,124 +6389,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "L": { "item": "tools_common", "chance": 45 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_160", "type": "mapgen", @@ -30084,38 +6400,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~e333333333333333333333", "~~e3eeeeeeeeeeeee3eeeeee", @@ -30143,124 +6427,8 @@ "~~~~~~~~e 3e~~~~~~~~~~~" ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_161", "type": "mapgen", @@ -30270,38 +6438,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " QQ eeeeeeeeeeeee", "eeeeeeeeeeee~~~~~~~~~~~~", @@ -30329,124 +6465,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~" ], "items": { "d": { "item": "office", "chance": 40 }, "o": { "item": "mil_surplus", "chance": 45 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_162", "type": "mapgen", @@ -30456,38 +6476,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "eeeeee $ 3 e~~", "~~~~~e $ 1111 e~~", @@ -30522,124 +6510,8 @@ { "item": "steel_plate", "x": [ 21, 22 ], "y": [ 13, 14 ], "chance": 75, "repeat": [ 1, 6 ] } ], "place_vehicles": [ { "vehicle": "golf_cart", "x": [ 15, 19 ], "y": [ 17, 19 ], "chance": 75, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_163", "type": "mapgen", @@ -30649,38 +6521,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~ee_________________", "~~~~~e__________________", @@ -30708,124 +6548,8 @@ " ,____e~~~~~~~~~~~~~" ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_164", "type": "mapgen", @@ -30835,38 +6559,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "____,___,_______________", "____,___,_______________", @@ -30895,124 +6587,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "B": { "item": "army_bed", "chance": 40 }, "L": { "item": "army_personal_locker", "chance": 30 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_165", "type": "mapgen", @@ -31022,38 +6598,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "____________,___,_______", "____________,___,_______", @@ -31086,124 +6630,8 @@ "L": { "item": "army_personal_locker", "chance": 30 }, "r": { "item": "cleaning", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_166", "type": "mapgen", @@ -31213,38 +6641,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "________________________", "________________________", @@ -31273,124 +6669,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "B": { "item": "army_bed", "chance": 40 }, "L": { "item": "army_personal_locker", "chance": 30 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_167", "type": "mapgen", @@ -31400,38 +6680,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "________________________", "________________________", @@ -31463,124 +6711,8 @@ "L": { "item": "army_personal_locker", "chance": 30 }, "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_168", "type": "mapgen", @@ -31590,38 +6722,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "_______________________e", "________________________", @@ -31649,124 +6749,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~" ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_169", "type": "mapgen", @@ -31776,38 +6760,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "eee~~~~~~~~(((~~~~~~~~~~", "__eeeeeeeee)))eeeeeeeeee", @@ -31836,124 +6788,8 @@ ], "items": { "(": { "item": "sewer", "chance": 1 } }, "place_vehicles": [ { "vehicle": "golf_cart", "x": [ 4, 19 ], "y": 3, "chance": 25, "rotation": 180 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_170", "type": "mapgen", @@ -31963,38 +6799,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~e ", "eeee,,,,,,,,,,,,,,,,,,,,", @@ -32022,124 +6826,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~" ], "items": { "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_171", "type": "mapgen", @@ -32149,38 +6837,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " e~~~~~~~~~~~~~", ",,,,,,,,,,eeeeeeeeeeeeee", @@ -32208,124 +6864,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~" ], "items": { "(": { "item": "sewer", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_172", "type": "mapgen", @@ -32335,38 +6875,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~(((~~~~~~~~~e", "eeeeeeeeeee)U)eeeeeeeeee", @@ -32395,124 +6903,8 @@ ], "items": { "(": { "item": "sewer", "chance": 1 } }, "place_vehicles": [ { "vehicle": "golf_cart", "x": [ 4, 19 ], "y": 3, "chance": 25, "rotation": 0 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_173", "type": "mapgen", @@ -32522,38 +6914,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "____G e1", "____e e ee", @@ -32591,124 +6951,8 @@ "r": { "item": "virology_lab", "chance": 40 }, "L": { "item": "chem_lab", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_174", "type": "mapgen", @@ -32718,38 +6962,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "1cggcce@ 22e~~~~~~~~~~~", "eeeeeee@ 22e~~~~~~~~~~~", @@ -32784,124 +6996,8 @@ "r": { "item": "cleaning", "chance": 40 }, "L": { "item": "sewage_plant", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_175", "type": "mapgen", @@ -32911,38 +7007,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -32969,124 +7033,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_176", "type": "mapgen", @@ -33096,38 +7044,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -33154,124 +7070,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_177", "type": "mapgen", @@ -33281,38 +7081,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~eeeeeeeeeeeee", "~~~~~~~~~~~e ", @@ -33341,124 +7109,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "c": { "item": "chem_lab", "chance": 25 }, "d": { "item": "office", "chance": 40 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_178", "type": "mapgen", @@ -33468,38 +7120,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "eeee G ", " 9 ^ G ", @@ -33528,124 +7148,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "c": { "item": "chem_lab", "chance": 25 }, "r": { "item": "electronics", "chance": 45 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_179", "type": "mapgen", @@ -33655,38 +7159,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " e e~~~eeeeeeee____eeee", " e e~~~~~~(((~e____e~~~", @@ -33720,124 +7192,8 @@ "(": { "item": "sewer", "chance": 1 }, "r": { "item": "chem_lab", "chance": 45 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_180", "type": "mapgen", @@ -33847,38 +7203,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "eeee OO ", "~~~e rrrr OO ", @@ -33907,124 +7231,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "c": { "item": "chem_lab", "chance": 25 }, "r": { "item": "mechanics", "chance": 45 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_181", "type": "mapgen", @@ -34034,38 +7242,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " e~~~~~~~~~~", " rrr e~~~~~~~~~~", @@ -34094,124 +7270,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "r": { "item": "tools_common", "chance": 45 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_182", "type": "mapgen", @@ -34221,38 +7281,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~e 3e~~~~~~~~~~~", "~~~~~~~~e 3e~~~~~~~~~~~", @@ -34279,124 +7307,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_183", "type": "mapgen", @@ -34406,38 +7318,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~eeeeeeeeeeeeeeeeeeeeee~", "ee ee", @@ -34465,124 +7345,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~" ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_184", "type": "mapgen", @@ -34592,38 +7356,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~e OO e", "~~~~~e OO e", @@ -34651,124 +7383,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~" ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_185", "type": "mapgen", @@ -34778,38 +7394,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " ,____e~~~~~~~~~~~~~", " ,____e~~~~~~~~~~~~~", @@ -34837,124 +7421,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~" ], "items": { "O": { "item": "dresser", "chance": 60 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_186", "type": "mapgen", @@ -34964,38 +7432,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -35027,124 +7463,8 @@ "O": { "item": "dresser", "chance": 60 }, "r": { "item": "dresser", "chance": 60 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_187", "type": "mapgen", @@ -35154,38 +7474,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -35213,124 +7501,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~" ], "items": { "(": { "item": "dresser", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_188", "type": "mapgen", @@ -35340,38 +7512,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -35399,124 +7539,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~" ], "items": { "(": { "item": "dresser", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_189", "type": "mapgen", @@ -35526,38 +7550,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~(((((((((((((", "~~~~~~~~~~~(((~~~~~~~~~~", @@ -35585,124 +7577,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~" ], "items": { "(": { "item": "dresser", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_190", "type": "mapgen", @@ -35712,38 +7588,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "((((((((((((((~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -35771,124 +7615,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~" ], "items": { "(": { "item": "dresser", "chance": 1 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_191", "type": "mapgen", @@ -35898,38 +7626,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -35956,124 +7652,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_192", "type": "mapgen", @@ -36083,38 +7663,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -36141,124 +7689,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_193", "type": "mapgen", @@ -36268,38 +7700,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -36326,124 +7726,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_194", "type": "mapgen", @@ -36453,38 +7737,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -36511,124 +7763,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_195", "type": "mapgen", @@ -36638,38 +7774,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -36696,124 +7800,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_196", "type": "mapgen", @@ -36823,38 +7811,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -36881,124 +7837,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_197", "type": "mapgen", @@ -37008,38 +7848,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -37066,124 +7874,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_198", "type": "mapgen", @@ -37193,38 +7885,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -37251,124 +7911,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_199", "type": "mapgen", @@ -37378,38 +7922,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~eee ", "~~~~~~~~~~~~~~~~~~~~~e ", @@ -37438,124 +7950,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "r": { "item": "rocketry_lab", "chance": 40 }, "O": { "item": "rocketry_lab", "chance": 50 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_200", "type": "mapgen", @@ -37565,38 +7961,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " eee~e 9 e~~~~~", " e~~~e@ eeee e~~~~~", @@ -37629,124 +7993,8 @@ "c": { "item": "chem_lab", "chance": 25 }, "T": { "item": "electronics", "chance": 20 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_201", "type": "mapgen", @@ -37756,38 +8004,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~eeeeeeeeee~e ", "~eeeee 112211e~e9eee ", @@ -37816,124 +8032,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "c": { "item": "chem_lab", "chance": 25 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_202", "type": "mapgen", @@ -37943,38 +8043,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " ", " ", @@ -38003,124 +8071,8 @@ ], "place_monsters": [ { "monster": "GROUP_WRAITHEON_INFANTRY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.075 } ], "items": { "r": { "item": "rocketry_lab", "chance": 40 }, "c": { "item": "chem_lab", "chance": 25 } }, - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_203", "type": "mapgen", @@ -38130,38 +8082,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ " e~~~~~~~~~~~~~~~~~~", " eeeee~~~~~~~~~~~~~~~~~~", @@ -38188,124 +8108,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_204", "type": "mapgen", @@ -38315,38 +8119,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -38373,124 +8145,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_205", "type": "mapgen", @@ -38500,38 +8156,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -38558,124 +8182,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_206", "type": "mapgen", @@ -38685,38 +8193,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -38743,124 +8219,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_207", "type": "mapgen", @@ -38870,38 +8230,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -38928,124 +8256,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_208", "type": "mapgen", @@ -39055,38 +8267,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -39113,124 +8293,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_209", "type": "mapgen", @@ -39240,38 +8304,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -39298,124 +8330,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_210", "type": "mapgen", @@ -39425,38 +8341,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -39483,124 +8367,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_211", "type": "mapgen", @@ -39610,38 +8378,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -39668,124 +8404,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_212", "type": "mapgen", @@ -39795,38 +8415,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -39853,124 +8441,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_213", "type": "mapgen", @@ -39980,38 +8452,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -40038,124 +8478,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_214", "type": "mapgen", @@ -40165,38 +8489,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -40223,124 +8515,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_215", "type": "mapgen", @@ -40350,38 +8526,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -40408,124 +8552,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_216", "type": "mapgen", @@ -40535,38 +8563,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -40593,124 +8589,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_217", "type": "mapgen", @@ -40720,38 +8600,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -40778,124 +8626,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_218", "type": "mapgen", @@ -40905,38 +8637,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -40963,124 +8663,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_219", "type": "mapgen", @@ -41090,38 +8674,6 @@ "method": "json", "object": { "fill_ter": "t_floor", - "furniture": { - "#": "f_indoor_plant", - "A": "f_sofa", - "B": "f_bed", - "C": "f_cupboard", - "D": "f_fridge", - "H": "f_table", - "L": "f_locker", - "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], - "Q": "f_standing_tank", - "R": "f_exercise", - "S": "f_sink", - "T": "f_table", - "V": "f_vending_c", - "Z": "f_rubble", - "a": "f_robotic_arm", - "b": "f_bench", - "c": "f_counter", - "d": "f_desk", - "g": "f_glass_fridge", - "h": "f_chair", - "i": "f_bench", - "k": "f_mannequin", - "o": "f_bookcase", - "q": "f_sandbag_half", - "r": "f_rack", - "t": "f_toilet", - "u": "f_shower", - "v": "f_oven", - "y": "f_treadmill", - "z": "f_trashcan" - }, "rows": [ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~", @@ -41148,124 +8700,8 @@ "~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~" ], - "terrain": { - " ": "t_thconc_floor", - "!": "t_metal_floor", - "#": "t_thconc_floor", - "$": "t_lava", - "%": "t_fence_barbed", - "&": "t_radio_tower", - "(": "t_sewage", - ")": "t_bars", - "*": "t_potential_trans", - "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], - ",": "t_pavement_y", - "-": "t_brick_wall", - ".": [ - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_grass", - "t_grass", - "t_grass", - "t_dirt", - "t_shrub" - ], - "0": "t_ladder_up", - "1": "t_machinery_light", - "2": "t_machinery_heavy", - "3": "t_conveyor", - "4": "t_station_disc", - "5": "t_gates_control_concrete", - "6": "t_console_broken", - "7": "t_machinery_electronic", - "8": "t_current_trans", - "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], - "<": "t_stairs_up", - "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ], - ">": "t_stairs_down", - "@": "t_sai_box", - "A": "t_thconc_floor", - "B": "t_thconc_floor", - "C": "t_thconc_floor", - "D": "t_thconc_floor", - "E": "t_elevator", - "F": "t_chainfence_v", - "G": "t_reinforced_glass", - "H": "t_sidewalk", - "I": "t_column", - "J": "t_recycler", - "K": "t_searth_test", - "L": "t_thconc_floor", - "M": "t_wall_metal", - "N": "t_sewage_pipe", - "O": "t_thconc_floor", - "P": "t_centrifuge", - "Q": "t_thconc_floor", - "R": "t_thconc_floor", - "S": "t_thconc_floor", - "T": "t_thconc_floor", - "U": "t_door_bar_locked", - "V": "t_thconc_floor", - "W": "t_window", - "Y": "t_wall_glass", - "Z": "t_rock_floor", - "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], - "_": "t_pavement", - "`": "t_rock_floor", - "a": "t_thconc_floor", - "b": "t_thconc_floor", - "c": "t_thconc_floor", - "d": "t_thconc_floor", - "e": "t_strconc_wall", - "f": "t_chainfence_h", - "g": "t_thconc_floor", - "h": "t_thconc_floor", - "i": "t_sidewalk", - "j": "t_missile", - "k": "t_thconc_floor", - "l": "t_water_dp", - "m": "t_wall_metal", - "n": "t_sewage_pump", - "o": "t_thconc_floor", - "p": "t_vat", - "q": "t_thconc_floor", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", - "u": "t_thconc_floor", - "v": "t_thconc_floor", - "w": [ - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_domestic", - "t_window_domestic", - "t_curtains", - "t_window_frame" - ], - "y": "t_thconc_floor", - "z": "t_thconc_floor", - "|": "t_brick_wall", - "~": "t_rock" - } + "terrain": { "=": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_locked", "t_door_metal_locked" ] }, + "palettes": [ "national_guard_camp_b" ] }, "om_terrain": "national_guard_camp_b1_220", "type": "mapgen", diff --git a/data/mods/National_Guard_Camp/palettes/national_guard_camp.json b/data/mods/National_Guard_Camp/palettes/national_guard_camp.json new file mode 100644 index 0000000000000..cc2263d43e805 --- /dev/null +++ b/data/mods/National_Guard_Camp/palettes/national_guard_camp.json @@ -0,0 +1,161 @@ +[ + { + "type": "palette", + "id": "national_guard_camp", + "furniture": { + "#": "f_indoor_plant", + "A": "f_sofa", + "B": "f_bed", + "C": "f_cupboard", + "D": "f_fridge", + "H": "f_table", + "L": "f_locker", + "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], + "Q": "f_sandbag_half", + "R": "f_exercise", + "S": "f_sink", + "T": "f_table", + "V": "f_vending_c", + "X": "f_tank_trap", + "Y": "f_rubble", + "Z": "f_ash", + "a": "f_sandbag_half", + "b": "f_bench", + "c": "f_counter", + "d": "f_desk", + "g": "f_glass_fridge", + "h": "f_chair", + "i": "f_bench", + "o": "f_bookcase", + "q": "f_sandbag_half", + "r": "f_rack", + "t": "f_toilet", + "u": "f_shower", + "v": "f_oven", + "y": "f_treadmill" + }, + "terrain": { + " ": "t_thconc_floor", + "!": "t_metal_floor", + "#": "t_thconc_floor", + "$": "t_radio_tower", + "%": "t_fence_barbed", + "&": "t_gas_pump", + "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], + ",": "t_pavement_y", + "-": "t_brick_wall", + ".": [ + "t_grass", + "t_grass", + "t_grass", + "t_dirt", + "t_grass", + "t_grass", + "t_grass", + "t_dirt", + "t_grass", + "t_grass", + "t_grass", + "t_dirt", + "t_grass", + "t_grass", + "t_grass", + "t_dirt", + "t_grass", + "t_grass", + "t_grass", + "t_dirt", + "t_grass", + "t_grass", + "t_grass", + "t_dirt", + "t_shrub" + ], + "0": "t_manhole_cover", + "1": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], + "2": [ + "t_grass", + "t_grass", + "t_dirt", + "t_grass", + "t_grass", + "t_dirt", + "t_shrub", + "t_tree", + "t_tree_young", + "t_grass", + "t_grass", + "t_dirt", + "t_grass", + "t_grass", + "t_dirt", + "t_shrub", + "t_tree", + "t_grass", + "t_tree_dead" + ], + "3": [ "t_grass", "t_dirt", "t_dirt", "t_dirt", "t_dirt" ], + "5": "t_gates_control_brick", + "6": "t_console_broken", + "7": "t_machinery_electronic", + "8": "t_dirtmound", + "9": "t_door_metal_c", + "<": "t_stairs_up", + "=": "t_door_metal_locked", + ">": "t_stairs_down", + "A": "t_thconc_floor", + "B": "t_thconc_floor", + "C": "t_thconc_floor", + "D": "t_thconc_floor", + "E": "t_elevator", + "F": "t_chainfence_v", + "G": "t_reinforced_glass", + "H": "t_sidewalk", + "I": "t_column", + "L": "t_thconc_floor", + "M": "t_wall_metal", + "O": "t_thconc_floor", + "Q": "t_dirt", + "R": "t_thconc_floor", + "S": "t_thconc_floor", + "T": "t_thconc_floor", + "V": "t_thconc_floor", + "W": "t_window", + "X": "t_pavement", + "Y": "t_dirt", + "Z": "t_dirt", + "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_sidewalk" ], + "_": "t_pavement", + "a": "t_pavement", + "b": "t_thconc_floor", + "c": "t_thconc_floor", + "d": "t_thconc_floor", + "e": "t_strconc_wall", + "f": "t_chainfence_h", + "g": "t_thconc_floor", + "h": "t_thconc_floor", + "i": "t_sidewalk", + "m": "t_wall_metal", + "o": "t_thconc_floor", + "q": "t_thconc_floor", + "r": "t_thconc_floor", + "s": "t_sidewalk", + "t": "t_thconc_floor", + "u": "t_thconc_floor", + "v": "t_thconc_floor", + "w": [ + "t_window_domestic", + "t_window_domestic", + "t_curtains", + "t_window_domestic", + "t_window_domestic", + "t_curtains", + "t_window_frame" + ], + "y": "t_thconc_floor", + "z": "t_dirt", + "|": "t_brick_wall", + "~": "t_rock" + } + } +] diff --git a/data/mods/National_Guard_Camp/palettes/national_guard_camp_b.json b/data/mods/National_Guard_Camp/palettes/national_guard_camp_b.json new file mode 100644 index 0000000000000..e9e81b21b3ff2 --- /dev/null +++ b/data/mods/National_Guard_Camp/palettes/national_guard_camp_b.json @@ -0,0 +1,156 @@ +[ + { + "type": "palette", + "id": "national_guard_camp_b", + "furniture": { + "#": "f_indoor_plant", + "A": "f_sofa", + "B": "f_bed", + "C": "f_cupboard", + "D": "f_fridge", + "H": "f_table", + "L": "f_locker", + "O": [ "f_crate_c", "f_crate_c", "f_crate_o" ], + "Q": "f_standing_tank", + "R": "f_exercise", + "S": "f_sink", + "T": "f_table", + "V": "f_vending_c", + "Z": "f_rubble", + "a": "f_robotic_arm", + "b": "f_bench", + "c": "f_counter", + "d": "f_desk", + "g": "f_glass_fridge", + "h": "f_chair", + "i": "f_bench", + "k": "f_mannequin", + "o": "f_bookcase", + "q": "f_sandbag_half", + "r": "f_rack", + "t": "f_toilet", + "u": "f_shower", + "v": "f_oven", + "y": "f_treadmill", + "z": "f_trashcan" + }, + "terrain": { + " ": "t_thconc_floor", + "!": "t_metal_floor", + "#": "t_thconc_floor", + "$": "t_lava", + "%": "t_fence_barbed", + "&": "t_radio_tower", + "(": "t_sewage", + ")": "t_bars", + "*": "t_potential_trans", + "+": [ "t_door_c", "t_door_c", "t_door_o", "t_door_locked", "t_door_locked_interior" ], + ",": "t_pavement_y", + "-": "t_brick_wall", + ".": [ + "t_grass", + "t_grass", + "t_grass", + "t_dirt", + "t_grass", + "t_grass", + "t_grass", + "t_dirt", + "t_grass", + "t_grass", + "t_grass", + "t_dirt", + "t_grass", + "t_grass", + "t_grass", + "t_dirt", + "t_grass", + "t_grass", + "t_grass", + "t_dirt", + "t_grass", + "t_grass", + "t_grass", + "t_dirt", + "t_shrub" + ], + "0": "t_ladder_up", + "1": "t_machinery_light", + "2": "t_machinery_heavy", + "3": "t_conveyor", + "4": "t_station_disc", + "5": "t_gates_control_concrete", + "6": "t_console_broken", + "7": "t_machinery_electronic", + "8": "t_current_trans", + "9": [ "t_door_metal_c", "t_door_metal_c", "t_door_metal_o" ], + "<": "t_stairs_up", + "=": "t_door_metal_locked", + ">": "t_stairs_down", + "@": "t_sai_box", + "A": "t_thconc_floor", + "B": "t_thconc_floor", + "C": "t_thconc_floor", + "D": "t_thconc_floor", + "E": "t_elevator", + "F": "t_chainfence_v", + "G": "t_reinforced_glass", + "H": "t_sidewalk", + "I": "t_column", + "J": "t_recycler", + "K": "t_searth_test", + "L": "t_thconc_floor", + "M": "t_wall_metal", + "N": "t_sewage_pipe", + "O": "t_thconc_floor", + "P": "t_centrifuge", + "Q": "t_thconc_floor", + "R": "t_thconc_floor", + "S": "t_thconc_floor", + "T": "t_thconc_floor", + "U": "t_door_bar_locked", + "V": "t_thconc_floor", + "W": "t_window", + "Y": "t_wall_glass", + "Z": "t_rock_floor", + "^": [ "t_utility_light", "t_utility_light", "t_utility_light", "t_thconc_floor" ], + "_": "t_pavement", + "`": "t_rock_floor", + "a": "t_thconc_floor", + "b": "t_thconc_floor", + "c": "t_thconc_floor", + "d": "t_thconc_floor", + "e": "t_strconc_wall", + "f": "t_chainfence_h", + "g": "t_thconc_floor", + "h": "t_thconc_floor", + "i": "t_sidewalk", + "j": "t_missile", + "k": "t_thconc_floor", + "l": "t_water_dp", + "m": "t_wall_metal", + "n": "t_sewage_pump", + "o": "t_thconc_floor", + "p": "t_vat", + "q": "t_thconc_floor", + "r": "t_thconc_floor", + "s": "t_sidewalk", + "t": "t_thconc_floor", + "u": "t_thconc_floor", + "v": "t_thconc_floor", + "w": [ + "t_window_domestic", + "t_window_domestic", + "t_curtains", + "t_window_domestic", + "t_window_domestic", + "t_curtains", + "t_window_frame" + ], + "y": "t_thconc_floor", + "z": "t_thconc_floor", + "|": "t_brick_wall", + "~": "t_rock" + } + } +] diff --git a/data/mods/Salvaged_Robots/items.json b/data/mods/Salvaged_Robots/items.json index 8332f1ef1e4e5..056591f22a8c4 100644 --- a/data/mods/Salvaged_Robots/items.json +++ b/data/mods/Salvaged_Robots/items.json @@ -192,7 +192,7 @@ }, { "type": "place_monster", "monster_id": "mon_craftbuddy", "moves": 100 } ], - "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ] }, { "type": "TOOL", diff --git a/data/mods/Tanks/vehicles.json b/data/mods/Tanks/vehicles.json index 3fb94f821dbfa..5995bd2da32b2 100644 --- a/data/mods/Tanks/vehicles.json +++ b/data/mods/Tanks/vehicles.json @@ -292,15 +292,9 @@ { "x": 0, "y": -1, "part": "plating_military" }, { "x": 1, "y": -1, "part": "hdframe_vertical_2" }, { "x": 1, "y": -1, "part": "hdboard_nw" }, - { "x": 1, "y": -1, "part": "diesel_engine_v8" }, - { "x": 1, "y": -1, "part": "alternator_truck" }, - { "x": 1, "y": -1, "part": "storage_battery" }, { "x": 1, "y": -1, "part": "plating_military" }, { "x": 2, "y": -1, "part": "hdframe_vertical_2" }, { "x": 2, "y": -1, "part": "hdhalfboard_horizontal" }, - { "x": 2, "y": -1, "part": "diesel_engine_v8" }, - { "x": 2, "y": -1, "part": "alternator_truck" }, - { "x": 2, "y": -1, "part": "storage_battery" }, { "x": 2, "y": -1, "part": "plating_military" }, { "x": 3, "y": -1, "part": "hdframe_vertical_2" }, { "x": 3, "y": -1, "part": "hdhalfboard_horizontal" }, @@ -368,15 +362,12 @@ { "x": 0, "y": 1, "part": "plating_military" }, { "x": 1, "y": 1, "part": "hdframe_vertical_2" }, { "x": 1, "y": 1, "part": "hdboard_ne" }, - { "x": 1, "y": 1, "part": "diesel_engine_v8" }, - { "x": 1, "y": 1, "part": "alternator_truck" }, - { "x": 1, "y": 1, "part": "storage_battery" }, + { "x": 1, "y": 0, "part": "diesel_engine_v12" }, + { "x": 1, "y": 0, "part": "alternator_truck" }, + { "x": 1, "y": 0, "part": "storage_battery" }, { "x": 1, "y": 1, "part": "plating_military" }, { "x": 2, "y": 1, "part": "hdframe_vertical_2" }, { "x": 2, "y": 1, "part": "hdhalfboard_horizontal" }, - { "x": 2, "y": 1, "part": "diesel_engine_v8" }, - { "x": 2, "y": 1, "part": "alternator_truck" }, - { "x": 2, "y": 1, "part": "storage_battery" }, { "x": 2, "y": 1, "part": "plating_military" }, { "x": 3, "y": 1, "part": "hdframe_vertical_2" }, { "x": 3, "y": 1, "part": "hdhalfboard_horizontal" }, @@ -602,15 +593,15 @@ { "x": -5, "y": -3, "part": "plating_military" }, { "x": -4, "y": -3, "part": "hdframe_vertical_2" }, { "x": -4, "y": -3, "part": "trunk" }, - { "x": -4, "y": -3, "part": "tank", "fuel": "diesel" }, + { "x": -4, "y": -3, "part": "tank", "fuel": "gasoline" }, { "x": -4, "y": -3, "part": "hdroof" }, { "x": -3, "y": -3, "part": "hdframe_vertical_2" }, { "x": -3, "y": -3, "part": "aisle_vertical" }, - { "x": -3, "y": -3, "part": "tank", "fuel": "diesel" }, + { "x": -3, "y": -3, "part": "tank", "fuel": "gasoline" }, { "x": -3, "y": -3, "part": "hdroof" }, { "x": -2, "y": -3, "part": "hdframe_vertical_2" }, { "x": -2, "y": -3, "part": "aisle_vertical" }, - { "x": -2, "y": -3, "part": "tank", "fuel": "diesel" }, + { "x": -2, "y": -3, "part": "tank", "fuel": "gasoline" }, { "x": -2, "y": -3, "part": "hdroof" }, { "x": -1, "y": -3, "part": "hdframe_vertical_2" }, { "x": -1, "y": -3, "part": "hdhatch" }, @@ -650,15 +641,15 @@ { "x": -5, "y": -2, "part": "plating_military" }, { "x": -4, "y": -2, "part": "hdframe_vertical_2" }, { "x": -4, "y": -2, "part": "trunk_floor" }, - { "x": -4, "y": -2, "part": "tank", "fuel": "diesel" }, + { "x": -4, "y": -2, "part": "tank", "fuel": "gasoline" }, { "x": -4, "y": -2, "part": "hdroof" }, { "x": -3, "y": -2, "part": "hdframe_vertical_2" }, { "x": -3, "y": -2, "part": "aisle_vertical" }, - { "x": -3, "y": -2, "part": "tank", "fuel": "diesel" }, + { "x": -3, "y": -2, "part": "tank", "fuel": "gasoline" }, { "x": -3, "y": -2, "part": "hdroof" }, { "x": -2, "y": -2, "part": "hdframe_vertical_2" }, { "x": -2, "y": -2, "part": "hdboard_sw" }, - { "x": -2, "y": -2, "part": "tank", "fuel": "diesel" }, + { "x": -2, "y": -2, "part": "tank", "fuel": "gasoline" }, { "x": -2, "y": -2, "part": "plating_military" }, { "x": -1, "y": -2, "part": "hdframe_vertical_2" }, { "x": -1, "y": -2, "part": "hdboard_vertical" }, @@ -704,15 +695,9 @@ { "x": 0, "y": -1, "part": "plating_military" }, { "x": 1, "y": -1, "part": "hdframe_vertical_2" }, { "x": 1, "y": -1, "part": "hdboard_nw" }, - { "x": 1, "y": -1, "part": "diesel_engine_v8" }, - { "x": 1, "y": -1, "part": "alternator_truck" }, - { "x": 1, "y": -1, "part": "storage_battery" }, { "x": 1, "y": -1, "part": "plating_military" }, { "x": 2, "y": -1, "part": "hdframe_vertical_2" }, { "x": 2, "y": -1, "part": "hdhalfboard_horizontal" }, - { "x": 2, "y": -1, "part": "diesel_engine_v8" }, - { "x": 2, "y": -1, "part": "alternator_truck" }, - { "x": 2, "y": -1, "part": "storage_battery" }, { "x": 2, "y": -1, "part": "plating_military" }, { "x": 3, "y": -1, "part": "hdframe_vertical_2" }, { "x": 3, "y": -1, "part": "hdhalfboard_horizontal" }, @@ -759,7 +744,7 @@ { "x": 1, "y": 0, "part": "plating_military" }, { "x": 2, "y": 0, "part": "hdframe_vertical_2" }, { "x": 2, "y": 0, "part": "hdhalfboard_vertical" }, - { "x": 2, "y": 0, "part": "diesel_engine_v8" }, + { "x": 2, "y": 0, "part": "engine_turbine_small" }, { "x": 2, "y": 0, "part": "alternator_truck" }, { "x": 2, "y": 0, "part": "storage_battery" }, { "x": 2, "y": 0, "part": "plating_military" }, @@ -796,15 +781,9 @@ { "x": 0, "y": 1, "part": "plating_military" }, { "x": 1, "y": 1, "part": "hdframe_vertical_2" }, { "x": 1, "y": 1, "part": "hdboard_ne" }, - { "x": 1, "y": 1, "part": "diesel_engine_v8" }, - { "x": 1, "y": 1, "part": "alternator_truck" }, - { "x": 1, "y": 1, "part": "storage_battery" }, { "x": 1, "y": 1, "part": "plating_military" }, { "x": 2, "y": 1, "part": "hdframe_vertical_2" }, { "x": 2, "y": 1, "part": "hdhalfboard_horizontal" }, - { "x": 2, "y": 1, "part": "diesel_engine_v8" }, - { "x": 2, "y": 1, "part": "alternator_truck" }, - { "x": 2, "y": 1, "part": "storage_battery" }, { "x": 2, "y": 1, "part": "plating_military" }, { "x": 3, "y": 1, "part": "hdframe_vertical_2" }, { "x": 3, "y": 1, "part": "hdhalfboard_horizontal" }, @@ -824,15 +803,15 @@ { "x": -5, "y": 2, "part": "plating_military" }, { "x": -4, "y": 2, "part": "hdframe_vertical_2" }, { "x": -4, "y": 2, "part": "trunk_floor" }, - { "x": -4, "y": 2, "part": "tank", "fuel": "diesel" }, + { "x": -4, "y": 2, "part": "tank", "fuel": "gasoline" }, { "x": -4, "y": 2, "part": "hdroof" }, { "x": -3, "y": 2, "part": "hdframe_vertical_2" }, { "x": -3, "y": 2, "part": "aisle_vertical" }, - { "x": -3, "y": 2, "part": "tank", "fuel": "diesel" }, + { "x": -3, "y": 2, "part": "tank", "fuel": "gasoline" }, { "x": -3, "y": 2, "part": "hdroof" }, { "x": -2, "y": 2, "part": "hdframe_vertical_2" }, { "x": -2, "y": 2, "part": "hdboard_se" }, - { "x": -2, "y": 2, "part": "tank", "fuel": "diesel" }, + { "x": -2, "y": 2, "part": "tank", "fuel": "gasoline" }, { "x": -2, "y": 2, "part": "plating_military" }, { "x": -1, "y": 2, "part": "hdframe_vertical_2" }, { "x": -1, "y": 2, "part": "hdboard_vertical" }, @@ -863,15 +842,15 @@ { "x": -5, "y": 3, "part": "plating_military" }, { "x": -4, "y": 3, "part": "hdframe_vertical_2" }, { "x": -4, "y": 3, "part": "trunk" }, - { "x": -4, "y": 3, "part": "tank", "fuel": "diesel" }, + { "x": -4, "y": 3, "part": "tank", "fuel": "gasoline" }, { "x": -4, "y": 3, "part": "hdroof" }, { "x": -3, "y": 3, "part": "hdframe_vertical_2" }, { "x": -3, "y": 3, "part": "aisle_vertical" }, - { "x": -3, "y": 3, "part": "tank", "fuel": "diesel" }, + { "x": -3, "y": 3, "part": "tank", "fuel": "gasoline" }, { "x": -3, "y": 3, "part": "hdroof" }, { "x": -2, "y": 3, "part": "hdframe_vertical_2" }, { "x": -2, "y": 3, "part": "aisle_vertical" }, - { "x": -2, "y": 3, "part": "tank", "fuel": "diesel" }, + { "x": -2, "y": 3, "part": "tank", "fuel": "gasoline" }, { "x": -2, "y": 3, "part": "hdroof" }, { "x": -1, "y": 3, "part": "hdframe_vertical_2" }, { "x": -1, "y": 3, "part": "aisle_vertical" }, diff --git a/data/mods/alt_map_key/overmap_terrain.json b/data/mods/alt_map_key/overmap_terrain.json index 0fe414de4d906..67d8143468fe5 100644 --- a/data/mods/alt_map_key/overmap_terrain.json +++ b/data/mods/alt_map_key/overmap_terrain.json @@ -2,361 +2,353 @@ { "type": "overmap_terrain", "id": "", + "copy-from": "", "name": "nothing", "sym": "%", - "color": "white", - "flags": [ "NO_ROTATE" ] + "color": "white" }, { "type": "overmap_terrain", "id": "open_air", + "copy-from": "open_air", "name": "open air", "sym": ".", - "color": "blue", - "flags": [ "NO_ROTATE" ] + "color": "blue" }, { "type": "overmap_terrain", "id": "crater", + "copy-from": "crater", "name": "crater", "sym": "*", - "color": "pink", - "see_cost": 2, - "extras": "field", - "flags": [ "NO_ROTATE" ] + "color": "pink" }, { "type": "overmap_terrain", "id": "field", + "copy-from": "field", "name": "field", "sym": ".", - "color": "brown", - "see_cost": 2, - "extras": "field", - "spawns": { "group": "GROUP_FOREST", "population": [ 0, 1 ], "chance": 80 }, - "flags": [ "NO_ROTATE" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "forest", + "copy-from": "forest", "name": "forest", "sym": "#", - "color": "green", - "see_cost": 3, - "extras": "field", - "spawns": { "group": "GROUP_FOREST", "population": [ 0, 3 ], "chance": 80 }, - "flags": [ "NO_ROTATE" ] + "color": "green" }, { "type": "overmap_terrain", "id": "forest_thick", + "copy-from": "forest_thick", "name": "forest", "sym": "#", - "color": "green", - "see_cost": 4, - "extras": "field", - "spawns": { "group": "GROUP_FOREST", "population": [ 0, 6 ], "chance": 90 }, - "mapgen": [ { "method": "builtin", "name": "forest" } ], - "flags": [ "NO_ROTATE" ] + "color": "green" }, { "type": "overmap_terrain", "id": "forest_water", + "copy-from": "forest_water", "name": "swamp", "sym": "#", - "color": "cyan", - "see_cost": 4, - "extras": "field", - "spawns": { "group": "GROUP_SWAMP", "population": [ 1, 4 ], "chance": 100 }, - "mapgen": [ { "method": "builtin", "name": "forest" } ], - "flags": [ "NO_ROTATE" ] + "color": "cyan" }, { "type": "overmap_terrain", "id": "hiway_ns", + "copy-from": "hiway_ns", "name": "highway", "sym": "H", - "color": "dark_gray", - "see_cost": 2, - "extras": "road", - "mapgen": [ { "method": "builtin", "name": "highway" } ], - "flags": [ "NO_ROTATE" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "hiway_ew", + "copy-from": "hiway_ew", "name": "highway", "sym": "=", - "color": "dark_gray", - "see_cost": 2, - "extras": "road", - "mapgen": [ { "method": "builtin", "name": "highway" } ], - "flags": [ "NO_ROTATE" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "road", + "copy-from": "road", "name": "road", - "color": "dark_gray", - "see_cost": 2, - "extras": "road", - "//": "the entries below are optional and serve as an example of mapgen for line_drawing tiles", - "mapgen_straight": [ { "method": "builtin", "name": "road_straight" } ], - "mapgen_curved": [ { "method": "builtin", "name": "road_curved" } ], - "mapgen_end": [ { "method": "builtin", "name": "road_end" } ], - "mapgen_tee": [ { "method": "builtin", "name": "road_tee" } ], - "mapgen_four_way": [ { "method": "builtin", "name": "road_four_way" } ], - "flags": [ "LINEAR" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "road_nesw_manhole", + "copy-from": "road_nesw_manhole", "name": "road, manhole", "sym": "┼", - "color": "yellow", - "see_cost": 2, - "extras": "road", - "mapgen": [ { "method": "builtin", "name": "road_four_way" } ], - "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + "color": "yellow" }, { "type": "overmap_terrain", "id": "bridge", + "copy-from": "bridge", "name": "bridge", "sym": "│", - "color": "white", - "see_cost": 2, - "mapgen": [ { "method": "builtin", "name": "bridge" } ], - "flags": [ "RIVER" ] + "color": "white" }, { "type": "overmap_terrain", "id": "river_center", + "copy-from": "river_center", "name": "river", "sym": "~", - "color": "blue", - "see_cost": 1, - "mapgen": [ { "method": "builtin", "name": "river_center" } ], - "flags": [ "RIVER", "NO_ROTATE" ] + "color": "blue" }, { "type": "overmap_terrain", "id": "river", + "copy-from": "river", "name": "river bank", "sym": "~", - "color": "light_blue", - "see_cost": 1, - "mapgen": [ { "method": "builtin", "name": "river_straight" } ], - "flags": [ "RIVER" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "river_c_not_ne", + "copy-from": "river_c_not_ne", "name": "river bank", "sym": "~", - "color": "light_blue", - "see_cost": 1, - "mapgen": [ { "method": "builtin", "name": "river_curved_not" } ], - "flags": [ "RIVER", "NO_ROTATE" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "river_c_not_nw", + "copy-from": "river_c_not_nw", "name": "river bank", "sym": "~", - "color": "light_blue", - "see_cost": 1, - "mapgen": [ { "method": "builtin", "name": "river_curved_not" } ], - "flags": [ "RIVER", "NO_ROTATE" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "river_c_not_se", + "copy-from": "river_c_not_se", "name": "river bank", "sym": "~", - "color": "light_blue", - "see_cost": 1, - "mapgen": [ { "method": "builtin", "name": "river_curved_not" } ], - "flags": [ "RIVER", "NO_ROTATE" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "river_c_not_sw", + "copy-from": "river_c_not_sw", "name": "river bank", "sym": "~", - "color": "light_blue", - "see_cost": 1, - "mapgen": [ { "method": "builtin", "name": "river_curved_not" } ], - "flags": [ "RIVER", "NO_ROTATE" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "river_ne", + "copy-from": "river_ne", "name": "river bank", "sym": "~", - "color": "light_blue", - "see_cost": 1, - "mapgen": [ { "method": "builtin", "name": "river_curved" } ], - "flags": [ "RIVER", "NO_ROTATE" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "river_se", + "copy-from": "river_se", "name": "river bank", "sym": "~", - "color": "light_blue", - "see_cost": 1, - "mapgen": [ { "method": "builtin", "name": "river_curved" } ], - "flags": [ "RIVER", "NO_ROTATE" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "river_sw", + "copy-from": "river_sw", "name": "river bank", "sym": "~", - "color": "light_blue", - "see_cost": 1, - "mapgen": [ { "method": "builtin", "name": "river_curved" } ], - "flags": [ "RIVER", "NO_ROTATE" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "river_nw", + "copy-from": "river_nw", "name": "river bank", "sym": "~", - "color": "light_blue", - "see_cost": 1, - "mapgen": [ { "method": "builtin", "name": "river_curved" } ], - "flags": [ "RIVER", "NO_ROTATE" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "house", + "copy-from": "house", "name": "house", "sym": "^", - "color": "light_green", - "see_cost": 2, - "extras": "build", - "mondensity": 2, - "mapgen": [ - { "method": "builtin", "name": "house_generic_boxy" }, - { "method": "builtin", "name": "house_generic_big_livingroom" }, - { "method": "builtin", "name": "house_generic_center_hallway" } - ], - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "house_base", + "copy-from": "house_base", "name": "house", "sym": "^", - "color": "light_green", - "see_cost": 2, - "extras": "build", - "mondensity": 2, - "mapgen": [ - { "method": "builtin", "name": "house_generic_boxy" }, - { "method": "builtin", "name": "house_generic_big_livingroom" }, - { "method": "builtin", "name": "house_generic_center_hallway" } - ], - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "house_prepper", + "copy-from": "house_prepper", "name": "house", "sym": "^", - "color": "light_green", - "see_cost": 2, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "s_lot", + "copy-from": "s_lot", "name": "parking lot", "sym": "p", - "color": "light_blue", - "see_cost": 1, - "extras": "build", - "mondensity": 2, - "mapgen": [ { "method": "builtin", "name": "parking_lot" } ], - "flags": [ "SIDEWALK", "NO_ROTATE" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "park", + "copy-from": "park", "name": "park", "sym": "p", - "color": "blue", - "see_cost": 2, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK", "NO_ROTATE" ] + "color": "blue" }, { "type": "overmap_terrain", "id": "pool", + "copy-from": "pool", + "name": "pool", + "sym": "p", + "color": "blue" + }, + { + "type": "overmap_terrain", + "id": "pool_roof", + "copy-from": "pool_roof", + "name": "pool roof", + "sym": "p", + "color": "light_blue" + }, + { + "type": "overmap_terrain", + "id": "pool_1", + "copy-from": "pool_1", + "name": "pool", + "sym": "p", + "color": "blue" + }, + { + "type": "overmap_terrain", + "id": "pool_roof_1", + "copy-from": "pool_roof_1", + "name": "pool roof", + "sym": "p", + "color": "light_blue" + }, + { + "type": "overmap_terrain", + "id": "pool_2", + "copy-from": "pool_2", + "name": "pool", + "sym": "p", + "color": "blue" + }, + { + "type": "overmap_terrain", + "id": "pool_roof_2", + "copy-from": "pool_roof_2", + "name": "pool roof", + "sym": "p", + "color": "light_blue" + }, + { + "type": "overmap_terrain", + "id": "pool_3", + "copy-from": "pool_3", + "name": "pool", + "sym": "p", + "color": "blue" + }, + { + "type": "overmap_terrain", + "id": "pool_roof_3", + "copy-from": "pool_roof_3", + "name": "pool roof", + "sym": "p", + "color": "light_blue" + }, + { + "type": "overmap_terrain", + "id": "pool_4", + "copy-from": "pool_4", + "name": "pool", + "sym": "p", + "color": "blue" + }, + { + "type": "overmap_terrain", + "id": "pool_roof_4", + "copy-from": "pool_roof_4", + "name": "pool roof", + "sym": "p", + "color": "light_blue" + }, + { + "type": "overmap_terrain", + "id": "pool_5", + "copy-from": "pool_5", + "name": "pool", + "sym": "p", + "color": "blue" + }, + { + "type": "overmap_terrain", + "id": "pool_6", + "copy-from": "pool_6", "name": "pool", "sym": "p", - "color": "blue", - "see_cost": 2, - "mondensity": 2, - "flags": [ "SIDEWALK", "NO_ROTATE" ] + "color": "blue" }, { "type": "overmap_terrain", "id": "s_gas", + "copy-from": "s_gas", "name": "gas station", "sym": "g", - "color": "light_blue", - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "s_pharm", + "copy-from": "s_pharm", "name": "pharmacy", "sym": "p", - "color": "light_red", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_red" }, { "type": "overmap_terrain", "id": "office_doctor", + "copy-from": "office_doctor", "name": "doctor's office", "sym": "d", - "color": "light_red", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_red" }, { "type": "overmap_terrain", "id": "office_cubical", + "copy-from": "office_cubical", "name": "office", "sym": "o", - "color": "dark_gray", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "abstract": "apartments_tower_any", + "copy-from": "apartments_tower_any", "name": "apartment tower", "sym": "A", - "color": "i_light_green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_light_green" }, { "type": "overmap_terrain", @@ -401,630 +393,482 @@ { "type": "overmap_terrain", "id": "office_tower_1_entrance", + "copy-from": "office_tower_1_entrance", "name": "office tower", "sym": "O", - "color": "i_black", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK", "NO_ROTATE" ] + "color": "i_black" }, { "type": "overmap_terrain", "id": "office_tower_1", + "copy-from": "office_tower_1", "name": "office tower", "sym": "o", - "color": "i_black", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK", "NO_ROTATE" ] + "color": "i_black" }, { "type": "overmap_terrain", "id": "office_tower_b_entrance", + "copy-from": "office_tower_b_entrance", "name": "tower parking", "sym": "O", - "color": "i_black", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK", "NO_ROTATE" ] + "color": "i_black" }, { "type": "overmap_terrain", "id": "office_tower_b", + "copy-from": "office_tower_b", "name": "tower parking", "sym": "O", - "color": "i_black", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK", "NO_ROTATE" ] + "color": "i_black" }, { "type": "overmap_terrain", "id": "office_tower_2_a1", + "copy-from": "office_tower_2_a1", "name": "office tower", "sym": "o", - "color": "i_black", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_black" }, { "type": "overmap_terrain", "id": "office_tower_2_a2", + "copy-from": "office_tower_2_a2", "name": "office tower", "sym": "o", - "color": "i_black", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_black" }, { "type": "overmap_terrain", "id": "office_tower_2_a3", + "copy-from": "office_tower_2_a3", "name": "office tower", "sym": "o", - "color": "i_black", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_black" }, { "type": "overmap_terrain", "id": "office_tower_2_b1", + "copy-from": "office_tower_2_b1", "name": "office tower", "sym": "o", - "color": "i_black", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_black" }, { "type": "overmap_terrain", "id": "office_tower_2_b2", + "copy-from": "office_tower_2_b2", "name": "office tower", "sym": "o", - "color": "i_black", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_black" }, { "type": "overmap_terrain", "id": "office_tower_2_b3", + "copy-from": "office_tower_2_b3", "name": "office tower", "sym": "o", - "color": "i_black", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_black" }, { "type": "overmap_terrain", "id": "church", + "copy-from": "church", "name": "church", "sym": "c", - "color": "white", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "white" }, { "type": "overmap_terrain", "id": "cathedral_1_NW", + "copy-from": "cathedral_1_NW", "name": "cathedral", "sym": "c", - "color": "i_white", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_white" }, { "type": "overmap_terrain", "id": "cathedral_1_NE", + "copy-from": "cathedral_1_NE", "name": "cathedral", "sym": "c", - "color": "i_white", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_white" }, { "type": "overmap_terrain", "id": "cathedral_1_SW", + "copy-from": "cathedral_1_SW", "name": "cathedral", "sym": "c", - "color": "i_white", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_white" }, { "type": "overmap_terrain", "id": "cathedral_1_SE", + "copy-from": "cathedral_1_SE", "name": "cathedral", "sym": "c", - "color": "i_white", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_white" }, { "type": "overmap_terrain", "id": "cathedral_b_NW", + "copy-from": "cathedral_b_NW", "name": "cathedral basement", "sym": "c", - "color": "i_white", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_white" }, { "type": "overmap_terrain", "id": "cathedral_b_NE", + "copy-from": "cathedral_b_NE", "name": "cathedral basement", "sym": "c", - "color": "i_white", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_white" }, { "type": "overmap_terrain", "id": "cathedral_b_SW", + "copy-from": "cathedral_b_SW", "name": "cathedral basement", "sym": "c", - "color": "i_white", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_white" }, { "type": "overmap_terrain", "id": "cathedral_b_SE", + "copy-from": "cathedral_b_SE", "name": "cathedral basement", "sym": "c", - "color": "i_white", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_white" }, { "type": "overmap_terrain", "id": "s_grocery", + "copy-from": "s_grocery", "name": "grocery store", "sym": "g", - "color": "green", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "green" }, { "type": "overmap_terrain", "id": "s_hardware", + "copy-from": "s_hardware", "name": "hardware store", "sym": "h", - "color": "light_cyan", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_cyan" }, { "type": "overmap_terrain", "id": "s_electronics", + "copy-from": "s_electronics", "name": "electronics store", "sym": "e", - "color": "light_cyan", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_cyan" }, { "type": "overmap_terrain", "id": "s_sports", + "copy-from": "s_sports", "name": "sporting goods store", "sym": "s", - "color": "magenta", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "magenta" }, { "type": "overmap_terrain", "id": "s_liquor", + "copy-from": "s_liquor", "name": "liquor store", "sym": "l", - "color": "green", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "green" }, { "type": "overmap_terrain", "id": "s_gun", + "copy-from": "s_gun", "name": "gun store", "sym": "g", - "color": "red", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "red" }, { "type": "overmap_terrain", "id": "s_clothes", + "copy-from": "s_clothes", "name": "clothing store", "sym": "c", - "color": "magenta", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "magenta" }, { "type": "overmap_terrain", "id": "s_library", + "copy-from": "s_library", "name": "library", "sym": "l", - "color": "white", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "white" }, { "type": "overmap_terrain", "id": "s_bookstore", + "copy-from": "s_bookstore", "name": "bookstore", "sym": "b", - "color": "white", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "white" }, { "type": "overmap_terrain", "id": "s_restaurant", + "copy-from": "s_restaurant", "name": "restaurant", "sym": "r", - "color": "green", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "green" }, { "type": "overmap_terrain", "id": "s_restaurant_fast", + "copy-from": "s_restaurant_fast", "name": "fast food restaurant", "sym": "f", - "color": "green", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "green" }, { "type": "overmap_terrain", "id": "s_restaurant_coffee", + "copy-from": "s_restaurant_coffee", "name": "coffee shop", "sym": "c", - "color": "green", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "green" }, { "type": "overmap_terrain", "id": "s_teashop", + "copy-from": "s_teashop", "name": "teashop", "sym": "t", - "color": "green", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "green" }, { "type": "overmap_terrain", "id": "bar", + "copy-from": "bar", "name": "bar", "sym": "b", - "color": "green", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "green" }, { "type": "overmap_terrain", "id": "s_pizza_parlor", + "copy-from": "s_pizza_parlor", "name": "pizza parlor", "sym": "p", - "color": "green", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "green" }, { "type": "overmap_terrain", "id": "sub_station", + "copy-from": "sub_station", "name": "subway station", "sym": "s", - "color": "yellow", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "KNOWN_DOWN", "SIDEWALK" ] + "color": "yellow" }, { "type": "overmap_terrain", "id": "s_garage", + "copy-from": "s_garage", "name": "mechanics garage", "sym": "m", - "color": "light_blue", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "cabin_strange", + "copy-from": "cabin_strange", "name": "forest", "sym": "#", - "color": "green", - "see_cost": 5, - "extras": "field", - "flags": [ "NO_ROTATE" ] + "color": "green" }, { "type": "overmap_terrain", "id": "cabin_strange_b", + "copy-from": "cabin_strange_b", "name": "cabin basement", "sym": "b", - "color": "dark_gray", - "see_cost": 5, - "extras": "build", - "flags": [ "NO_ROTATE" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "cabin", + "copy-from": "cabin", "name": "cabin", "sym": "c", - "color": "light_green", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "NO_ROTATE" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "dirtlot", + "copy-from": "dirtlot", "name": "dirt lot", "sym": "O", - "color": "brown", - "see_cost": 5, - "extras": "field", - "flags": [ "NO_ROTATE" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "sugar_house", + "copy-from": "sugar_house", "name": "sugar house", "sym": "S", - "color": "green", - "see_cost": 5, - "extras": "build", - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "farm_1", + "copy-from": "farm_1", "name": "farm field", "sym": "f", - "color": "i_green", - "see_cost": 5, - "extras": "field", - "mondensity": 2 + "color": "i_green" }, { "type": "overmap_terrain", "id": "farm_2", + "copy-from": "farm_2", "name": "farm house", "sym": "F", - "color": "i_green", - "see_cost": 5, - "extras": "build", - "mondensity": 2 + "color": "i_green" }, { "type": "overmap_terrain", "id": "farm_3", + "copy-from": "farm_3", "name": "farm field", "sym": "f", - "color": "i_green", - "see_cost": 5, - "extras": "field", - "mondensity": 2 + "color": "i_green" }, { "type": "overmap_terrain", "id": "farm_4", + "copy-from": "farm_4", "name": "farm field", "sym": "f", - "color": "i_green", - "see_cost": 5, - "extras": "field", - "mondensity": 2 + "color": "i_green" }, { "type": "overmap_terrain", "id": "farm_5", + "copy-from": "farm_5", "name": "farm field", "sym": "f", - "color": "i_green", - "see_cost": 5, - "extras": "field", - "mondensity": 2 + "color": "i_green" }, { "type": "overmap_terrain", "id": "farm_6", + "copy-from": "farm_6", "name": "farm field", "sym": "f", - "color": "i_green", - "see_cost": 5, - "extras": "field", - "mondensity": 2 + "color": "i_green" }, { "type": "overmap_terrain", "id": "farm_7", + "copy-from": "farm_7", "name": "farm field", "sym": "f", - "color": "i_green", - "see_cost": 5, - "extras": "field", - "mondensity": 2 + "color": "i_green" }, { "type": "overmap_terrain", "id": "farm_8", + "copy-from": "farm_8", "name": "farm field", "sym": "f", - "color": "i_green", - "see_cost": 5, - "extras": "field", - "mondensity": 2 + "color": "i_green" }, { "type": "overmap_terrain", "id": "farm_9", + "copy-from": "farm_9", "name": "farm field", "sym": "f", - "color": "i_green", - "see_cost": 5, - "extras": "field", - "mondensity": 2 + "color": "i_green" }, { "type": "overmap_terrain", "id": "police", + "copy-from": "police", "name": "police station", "sym": "p", - "color": "red", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "red" }, { "type": "overmap_terrain", "id": "bank", + "copy-from": "bank", "name": "bank", "sym": "b", - "color": "yellow", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "yellow" }, { "type": "overmap_terrain", "id": "pawn", + "copy-from": "pawn", "name": "pawn shop", "sym": "p", - "color": "magenta", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "magenta" }, { "type": "overmap_terrain", "id": "mil_surplus", + "copy-from": "mil_surplus", "name": "mil. surplus", "sym": "m", - "color": "magenta", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "magenta" }, { "type": "overmap_terrain", "id": "furniture", + "copy-from": "furniture", "name": "furniture store", "sym": "f", - "color": "blue", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "blue" }, { "type": "overmap_terrain", "id": "abstorefront", + "copy-from": "abstorefront", "name": "abandoned storefront", "sym": "a", - "color": "blue", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "blue" }, { "type": "overmap_terrain", "id": "s_music", + "copy-from": "s_music", "name": "music store", "sym": "m", - "color": "magenta", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "magenta" }, { "type": "overmap_terrain", "id": "megastore_entrance", + "copy-from": "megastore_entrance", "name": "megastore", "sym": "M", - "color": "i_magenta", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK", "NO_ROTATE" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "megastore", + "copy-from": "megastore", "name": "megastore", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK", "NO_ROTATE" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "abstract": "generic_hospital", + "copy-from": "generic_hospital", "name": "hospital", "sym": "h", - "color": "i_light_red", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_light_red" }, { "type": "overmap_terrain", @@ -1034,8 +878,8 @@ { "type": "overmap_terrain", "id": "hospital_2", - "sym": "H", - "copy-from": "generic_hospital" + "copy-from": "generic_hospital", + "sym": "H" }, { "type": "overmap_terrain", @@ -1075,6849 +919,5840 @@ { "type": "overmap_terrain", "id": "public_works_NE", + "copy-from": "public_works_NE", "name": "public works", "sym": "w", - "color": "i_light_cyan", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_light_cyan" }, { "type": "overmap_terrain", "id": "public_works_NW", + "copy-from": "public_works_NW", "name": "public works", "sym": "w", - "color": "i_light_cyan", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_light_cyan" }, { "type": "overmap_terrain", "id": "public_works_SW", + "copy-from": "public_works_SW", "name": "public works", "sym": "W", - "color": "i_light_cyan", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_light_cyan" }, { "type": "overmap_terrain", "id": "public_works_SE", + "copy-from": "public_works_SE", "name": "public works", "sym": "w", - "color": "i_light_cyan", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_light_cyan" }, { "type": "overmap_terrain", "id": "school_1_1", + "copy-from": "school_1_1", "name": "regional school", "sym": "s", - "color": "i_white", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_white" }, { "type": "overmap_terrain", "id": "school_1_2", + "copy-from": "school_1_2", "name": "regional school", "sym": "S", - "color": "i_white", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_white" }, { "type": "overmap_terrain", "id": "school_1_3", + "copy-from": "school_1_3", "name": "regional school", "sym": "s", - "color": "i_white", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_white" }, { "type": "overmap_terrain", "id": "school_1_4", + "copy-from": "school_1_4", "name": "regional school", "sym": "s", - "color": "i_white", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_white" }, { "type": "overmap_terrain", "id": "school_1_5", + "copy-from": "school_1_5", "name": "regional school", "sym": "s", - "color": "i_white", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_white" }, { "type": "overmap_terrain", "id": "school_1_6", + "copy-from": "school_1_6", "name": "regional school", "sym": "s", - "color": "i_white", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_white" }, { "type": "overmap_terrain", "id": "school_1_7", + "copy-from": "school_1_7", "name": "regional school", "sym": "s", - "color": "i_white", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_white" }, { "type": "overmap_terrain", "id": "school_1_8", + "copy-from": "school_1_8", "name": "regional school", "sym": "s", - "color": "i_white", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_white" }, { "type": "overmap_terrain", "id": "school_1_9", + "copy-from": "school_1_9", "name": "regional school", "sym": "s", - "color": "i_white", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_white" }, { "type": "overmap_terrain", "id": "prison_1_1", + "copy-from": "prison_1_1", "name": "prison", "sym": "p", - "color": "i_yellow", - "see_cost": 5, - "flags": [ "SIDEWALK" ] + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "prison_1_2", + "copy-from": "prison_1_2", "name": "prison", "sym": "P", - "color": "i_yellow", - "see_cost": 5, - "flags": [ "SIDEWALK" ] + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "prison_1_3", + "copy-from": "prison_1_3", "name": "prison", "sym": "p", - "color": "i_yellow", - "see_cost": 5, - "flags": [ "SIDEWALK" ] + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "prison_1_4", + "copy-from": "prison_1_4", "name": "prison", "sym": "p", - "color": "i_yellow", - "see_cost": 5, - "flags": [ "SIDEWALK" ] + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "prison_1_5", + "copy-from": "prison_1_5", "name": "prison", "sym": "p", - "color": "i_yellow", - "see_cost": 5, - "flags": [ "SIDEWALK" ] + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "prison_1_6", + "copy-from": "prison_1_6", "name": "prison", "sym": "p", - "color": "i_yellow", - "see_cost": 5, - "flags": [ "SIDEWALK" ] + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "prison_1_7", + "copy-from": "prison_1_7", "name": "prison", "sym": "p", - "color": "i_yellow", - "see_cost": 5, - "flags": [ "SIDEWALK" ] + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "prison_1_8", + "copy-from": "prison_1_8", "name": "prison", "sym": "p", - "color": "i_yellow", - "see_cost": 5, - "flags": [ "SIDEWALK" ] + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "prison_1_9", + "copy-from": "prison_1_9", "name": "prison", "sym": "p", - "color": "i_yellow", - "see_cost": 5, - "flags": [ "SIDEWALK" ] + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "prison_1_b_1", + "copy-from": "prison_1_b_1", "name": "prison", "sym": "p", - "color": "i_yellow", - "see_cost": 5 + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "prison_1_b_2", + "copy-from": "prison_1_b_2", "name": "prison", "sym": "P", - "color": "i_yellow", - "see_cost": 5 + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "prison_1_b_3", + "copy-from": "prison_1_b_3", "name": "prison", "sym": "p", - "color": "i_yellow", - "see_cost": 5 + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "prison_1_b_4", + "copy-from": "prison_1_b_4", "name": "prison", "sym": "p", - "color": "i_yellow", - "see_cost": 5 + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "prison_1_b_5", + "copy-from": "prison_1_b_5", "name": "prison", "sym": "p", - "color": "i_yellow", - "see_cost": 5 + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "prison_1_b_6", + "copy-from": "prison_1_b_6", "name": "prison", "sym": "p", - "color": "i_yellow", - "see_cost": 5 + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "prison_1_b_7", + "copy-from": "prison_1_b_7", "name": "prison", "sym": "p", - "color": "i_yellow", - "see_cost": 5 + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "prison_1_b_8", + "copy-from": "prison_1_b_8", "name": "prison", "sym": "p", - "color": "i_yellow", - "see_cost": 5 + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "prison_1_b_9", + "copy-from": "prison_1_b_9", "name": "prison", "sym": "p", - "color": "i_yellow", - "see_cost": 5 + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "hotel_tower_1_1", + "copy-from": "hotel_tower_1_1", "name": "hotel parking", "sym": "h", - "color": "i_light_green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_light_green" }, { "type": "overmap_terrain", "id": "hotel_tower_1_2", + "copy-from": "hotel_tower_1_2", "name": "hotel parking", "sym": "h", - "color": "i_light_green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_light_green" }, { "type": "overmap_terrain", "id": "hotel_tower_1_3", + "copy-from": "hotel_tower_1_3", "name": "hotel parking", "sym": "h", - "color": "i_light_green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_light_green" }, { "type": "overmap_terrain", "id": "hotel_tower_1_4", + "copy-from": "hotel_tower_1_4", "name": "hotel parking", "sym": "h", - "color": "i_light_green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_light_green" }, { "type": "overmap_terrain", "id": "hotel_tower_1_5", + "copy-from": "hotel_tower_1_5", "name": "hotel entrance", "sym": "H", - "color": "i_light_green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_light_green" }, { "type": "overmap_terrain", "id": "hotel_tower_1_6", + "copy-from": "hotel_tower_1_6", "name": "hotel parking", "sym": "h", - "color": "i_light_green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_light_green" }, { "type": "overmap_terrain", "id": "hotel_tower_1_7", + "copy-from": "hotel_tower_1_7", "name": "hotel tower", "sym": "H", - "color": "i_light_green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_light_green" }, { "type": "overmap_terrain", "id": "hotel_tower_1_8", + "copy-from": "hotel_tower_1_8", "name": "hotel tower", "sym": "H", - "color": "i_light_green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_light_green" }, { "type": "overmap_terrain", "id": "hotel_tower_1_9", + "copy-from": "hotel_tower_1_9", "name": "hotel tower", "sym": "H", - "color": "i_light_green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_light_green" }, { "type": "overmap_terrain", "id": "hotel_tower_b_1", + "copy-from": "hotel_tower_b_1", "name": "hotel basement", "sym": "B", - "color": "i_light_green", - "see_cost": 5, - "mondensity": 2 + "color": "i_light_green" }, { "type": "overmap_terrain", "id": "hotel_tower_b_2", + "copy-from": "hotel_tower_b_2", "name": "hotel basement", "sym": "B", - "color": "i_light_green", - "see_cost": 5, - "mondensity": 2 + "color": "i_light_green" }, { "type": "overmap_terrain", "id": "hotel_tower_b_3", + "copy-from": "hotel_tower_b_3", "name": "hotel basement", "sym": "B", - "color": "i_light_green", - "see_cost": 5, - "mondensity": 2 + "color": "i_light_green" }, { "type": "overmap_terrain", "id": "motel_entrance", + "copy-from": "motel_entrance", "name": "motel", "sym": "M", - "color": "i_light_green", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_light_green" }, { "type": "overmap_terrain", "id": "motel_1", + "copy-from": "motel_1", "name": "motel", "sym": "m", - "color": "i_light_green", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_light_green" }, { "type": "overmap_terrain", "id": "motel_2", + "copy-from": "motel_2", "name": "motel", "sym": "m", - "color": "i_light_green", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_light_green" }, { "type": "overmap_terrain", "id": "motel_3", + "copy-from": "motel_3", "name": "motel", "sym": "m", - "color": "i_light_green", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_light_green" }, { "type": "overmap_terrain", "id": "dirtroad1_aban1", + "copy-from": "dirtroad1_aban1", "name": "forest", "sym": "#", - "color": "green", - "see_cost": 4 + "color": "green" }, { "type": "overmap_terrain", "id": "forest_aban1", + "copy-from": "forest_aban1", "name": "forest", "sym": "#", - "color": "green", - "see_cost": 4 + "color": "green" }, { "type": "overmap_terrain", "id": "dirtroad2_aban1", + "copy-from": "dirtroad2_aban1", "name": "forest", "sym": "#", - "color": "green", - "see_cost": 4 + "color": "green" }, { "type": "overmap_terrain", "id": "dirtplaza_aban1", + "copy-from": "dirtplaza_aban1", "name": "forest", "sym": "#", - "color": "green", - "see_cost": 4 + "color": "green" }, { "type": "overmap_terrain", "id": "cabin_aban1", + "copy-from": "cabin_aban1", "name": "ruined cabin", "sym": "#", - "color": "green", - "see_cost": 4 + "color": "green" }, { "type": "overmap_terrain", "id": "barn_aban1", + "copy-from": "barn_aban1", "name": "barn", "sym": "F", - "color": "green", - "see_cost": 4 + "color": "green" }, { "type": "overmap_terrain", "id": "car_corner_aban1", + "copy-from": "car_corner_aban1", "name": "car corner", "sym": "F", - "color": "green", - "see_cost": 4 + "color": "green" }, { "type": "overmap_terrain", "id": "shipwreck_river_1", + "copy-from": "shipwreck_river_1", "name": "shipwreck", "sym": "s", - "color": "pink", - "see_cost": 4, - "flags": [ "NO_ROTATE" ] + "color": "pink" }, { "type": "overmap_terrain", "id": "shipwreck_river_2", + "copy-from": "shipwreck_river_2", "name": "shipwreck", "sym": "s", - "color": "pink", - "see_cost": 4, - "flags": [ "NO_ROTATE" ] + "color": "pink" }, { "type": "overmap_terrain", "id": "shipwreck_river_3", + "copy-from": "shipwreck_river_3", "name": "razorclaw nest", "sym": "s", - "color": "pink", - "see_cost": 4, - "flags": [ "NO_ROTATE" ] + "color": "pink" }, { "type": "overmap_terrain", "id": "shipwreck_river_4", + "copy-from": "shipwreck_river_4", "name": "shipwreck", "sym": "s", - "color": "pink", - "see_cost": 4, - "flags": [ "NO_ROTATE" ] + "color": "pink" }, { "type": "overmap_terrain", "id": "s_gas_rural", + "copy-from": "s_gas_rural", "name": "gas station", "sym": "g", - "color": "light_blue", - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "fema_entrance", + "copy-from": "fema_entrance", "name": "fema camp", "sym": "F", - "color": "i_red", - "see_cost": 5, - "extras": "build", - "flags": [ "NO_ROTATE" ] + "color": "i_red" }, { "type": "overmap_terrain", "id": "fema", + "copy-from": "fema", "name": "fema camp", "sym": "f", - "color": "i_red", - "see_cost": 5, - "extras": "build", - "flags": [ "NO_ROTATE" ] + "color": "i_red" }, { "type": "overmap_terrain", "id": "station_radio", + "copy-from": "station_radio", "name": "radio station", "sym": "r", - "color": "blue", - "see_cost": 5, - "extras": "build", - "flags": [ "SIDEWALK" ] + "color": "blue" }, { "type": "overmap_terrain", "id": "shelter", + "copy-from": "shelter", "name": "evac shelter", "sym": "e", - "color": "red", - "see_cost": 2, - "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + "color": "red" }, { "type": "overmap_terrain", "id": "shelter_under", + "copy-from": "shelter_under", "name": "evac shelter", "sym": "e", - "color": "red", - "see_cost": 2, - "flags": [ "KNOWN_UP", "NO_ROTATE" ] + "color": "red" }, { "type": "overmap_terrain", "id": "lmoe", + "copy-from": "lmoe", "name": "LMOE shelter", "sym": "l", - "color": "red", - "see_cost": 2, - "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + "color": "red" }, { "type": "overmap_terrain", "id": "lmoe_under", + "copy-from": "lmoe_under", "name": "LMOE shelter", "sym": "l", - "color": "red", - "see_cost": 2, - "flags": [ "KNOWN_UP", "NO_ROTATE" ] + "color": "red" }, { "type": "overmap_terrain", "id": "lab", + "copy-from": "lab", "name": "science lab", "sym": "l", - "color": "i_pink", - "spawns": { "group": "GROUP_LAB", "population": [ 0, 5 ], "chance": 20 }, - "see_cost": 5, - "flags": [ "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "lab_stairs", + "copy-from": "lab_stairs", "name": "science lab", "sym": "L", - "color": "i_pink", - "see_cost": 5, - "spawns": { "group": "GROUP_LAB", "population": [ 0, 5 ], "chance": 20 }, - "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "lab_core", + "copy-from": "lab_core", "name": "science lab", "sym": "l", - "color": "i_pink", - "spawns": { "group": "GROUP_LAB", "population": [ 0, 8 ], "chance": 30 }, - "see_cost": 5, - "flags": [ "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "lab_finale", + "copy-from": "lab_finale", "name": "science lab", "sym": "L", - "color": "i_pink", - "spawns": { "group": "GROUP_LAB", "population": [ 4, 12 ], "chance": 90 }, - "see_cost": 5, - "flags": [ "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "ants_lab", + "copy-from": "ants_lab", "name": "science lab", "sym": "l", - "color": "i_pink", - "spawns": { "group": "GROUP_LAB", "population": [ 0, 5 ], "chance": 20 }, - "see_cost": 5, - "flags": [ "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "ants_lab_stairs", + "copy-from": "ants_lab_stairs", "name": "science lab", "sym": "L", - "color": "i_pink", - "see_cost": 5, - "spawns": { "group": "GROUP_LAB", "population": [ 0, 5 ], "chance": 20 }, - "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "ice_lab", + "copy-from": "ice_lab", "name": "science lab", "sym": "l", - "color": "i_pink", - "spawns": { "group": "GROUP_LAB", "population": [ 0, 5 ], "chance": 20 }, - "see_cost": 5, - "flags": [ "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "ice_lab_stairs", + "copy-from": "ice_lab_stairs", "name": "science lab", "sym": "L", - "color": "i_pink", - "see_cost": 5, - "spawns": { "group": "GROUP_LAB", "population": [ 0, 5 ], "chance": 20 }, - "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "ice_lab_core", + "copy-from": "ice_lab_core", "name": "science lab", "sym": "l", - "color": "i_pink", - "spawns": { "group": "GROUP_LAB", "population": [ 0, 8 ], "chance": 30 }, - "see_cost": 5, - "flags": [ "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "ice_lab_finale", + "copy-from": "ice_lab_finale", "name": "science lab", "sym": "L", - "color": "i_pink", - "spawns": { "group": "GROUP_LAB", "population": [ 4, 12 ], "chance": 90 }, - "see_cost": 5, - "flags": [ "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "lab_train_depot", + "copy-from": "lab_train_depot", "name": "science train depot", "sym": "l", - "color": "i_pink", - "see_cost": 5, - "extras": "subway", - "spawns": { "group": "GROUP_LAB", "population": [ 0, 5 ], "chance": 20 }, - "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "central_lab_entrance", + "copy-from": "central_lab_entrance", "name": "forest", "sym": "#", - "color": "green", - "see_cost": 3, - "flags": [ "NO_ROTATE" ] + "color": "green" }, { "type": "overmap_terrain", "id": "bunker", + "copy-from": "bunker", "name": "military bunker", "sym": "b", - "color": "red", - "see_cost": 2, - "flags": [ "KNOWN_DOWN" ] + "color": "red" }, { "type": "overmap_terrain", "id": "bunker_basement", + "copy-from": "bunker_basement", "name": "military bunker", "sym": "b", - "color": "red", - "see_cost": 2, - "flags": [ "KNOWN_UP", "NO_ROTATE" ] + "color": "red" }, { "type": "overmap_terrain", "id": "outpost", + "copy-from": "outpost", "name": "military outpost", "sym": "o", - "color": "red", - "see_cost": 2, - "extras": "build", - "flags": [ "NO_ROTATE" ] + "color": "red" }, { "type": "overmap_terrain", "id": "silo", + "copy-from": "silo", "name": "missile silo", "sym": "M", - "color": "red", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "red" }, { "type": "overmap_terrain", "id": "silo_finale", + "copy-from": "silo_finale", "name": "missile silo", "sym": "M", - "color": "white_red", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "white_red" }, { "type": "overmap_terrain", "id": "temple", + "copy-from": "temple", "name": "strange temple", "sym": "S", - "color": "i_pink", - "see_cost": 5, - "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "standing_stones", + "copy-from": "standing_stones", "name": "forest", "sym": "#", - "color": "green", - "see_cost": 3, - "extras": "field", - "spawns": { "group": "GROUP_STANDING_STONES", "population": [ 1, 4 ], "chance": 100 }, - "flags": [ "NO_ROTATE" ] + "color": "green" }, { "type": "overmap_terrain", "id": "temple_stairs", + "copy-from": "temple_stairs", "name": "strange temple", "sym": "s", - "color": "pink", - "see_cost": 5, - "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + "color": "pink" }, { "type": "overmap_terrain", "id": "temple_finale", + "copy-from": "temple_finale", "name": "strange temple", "sym": "s", - "color": "pink", - "see_cost": 5, - "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + "color": "pink" }, { "type": "overmap_terrain", "id": "sewage_treatment", + "copy-from": "sewage_treatment", "name": "sewage treatment", "sym": "s", - "color": "yellow", - "see_cost": 5, - "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + "color": "yellow" }, { "type": "overmap_terrain", "id": "sewage_treatment_hub", + "copy-from": "sewage_treatment_hub", "name": "sewage treatment", "sym": "s", - "color": "i_yellow", - "see_cost": 5, - "flags": [ "KNOWN_UP", "NO_ROTATE" ] + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "sewage_treatment_under", + "copy-from": "sewage_treatment_under", "name": "sewage treatment", "sym": "s", - "color": "i_yellow", - "see_cost": 5, - "flags": [ "NO_ROTATE" ] + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "mine_entrance", + "copy-from": "mine_entrance", "name": "mine entrance", "sym": "M", - "color": "dark_gray", - "see_cost": 5, - "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mine_shaft", + "copy-from": "mine_shaft", "name": "mine shaft", "sym": "m", - "color": "i_black", - "see_cost": 5, - "flags": [ "KNOWN_UP", "KNOWN_DOWN", "NO_ROTATE" ] + "color": "i_black" }, { "type": "overmap_terrain", "id": "mine", + "copy-from": "mine", "name": "mine", "sym": "m", - "color": "i_black", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_black" }, { "type": "overmap_terrain", "id": "mine_down", + "copy-from": "mine_down", "name": "mine", "sym": "M", - "color": "i_black", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_black" }, { "type": "overmap_terrain", "id": "mine_finale", + "copy-from": "mine_finale", "name": "mine", "sym": "M", - "color": "i_black", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_black" }, { "type": "overmap_terrain", "id": "spiral_hub", + "copy-from": "spiral_hub", "name": "spiral cavern", "sym": "@", - "color": "pink", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "pink" }, { "type": "overmap_terrain", "id": "spiral", + "copy-from": "spiral", "name": "spiral cavern", "sym": "@", - "color": "pink", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "pink" }, { "type": "overmap_terrain", "id": "radio_tower", + "copy-from": "radio_tower", "name": "radio tower", "sym": "r", - "color": "blue", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "blue" }, { "type": "overmap_terrain", "id": "toxic_dump", + "copy-from": "toxic_dump", "name": "toxic waste dump", "sym": "t", - "color": "pink", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "pink" }, { "type": "overmap_terrain", "id": "haz_sar_entrance", + "copy-from": "haz_sar_entrance", "name": "hazardous waste sarcophagus", "sym": "H", - "color": "i_pink", - "see_cost": 5, - "flags": [ "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "haz_sar", + "copy-from": "haz_sar", "name": "hazardous waste sarcophagus", "sym": "h", - "color": "i_pink", - "see_cost": 5, - "flags": [ "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "haz_sar_entrance_b1", + "copy-from": "haz_sar_entrance_b1", "name": "hazardous waste sarcophagus", "sym": "H", - "color": "i_pink", - "see_cost": 5, - "flags": [ "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "haz_sar_b1", + "copy-from": "haz_sar_b1", "name": "hazardous waste sarcophagus", "sym": "h", - "color": "i_pink", - "see_cost": 5, - "flags": [ "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "cave", + "copy-from": "cave", "name": "cave", "sym": "c", - "color": "brown", - "see_cost": 2, - "extras": "field", - "flags": [ "NO_ROTATE" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "cave_rat", + "copy-from": "cave_rat", "name": "rat cave", "sym": "c", - "color": "brown", - "see_cost": 2, - "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "hive", + "copy-from": "hive", "name": "bee hive", "sym": "b", - "color": "i_pink", - "see_cost": 3, - "extras": "field", - "flags": [ "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "fungal_bloom", + "copy-from": "fungal_bloom", "name": "fungal bloom", "sym": "F", - "color": "pink", - "see_cost": 2, - "extras": "field", - "flags": [ "NO_ROTATE" ] + "color": "pink" }, { "type": "overmap_terrain", "id": "fungal_tower", + "copy-from": "fungal_tower", "name": "fungal tower", "sym": "F", - "color": "pink", - "see_cost": 3, - "extras": "field", - "flags": [ "NO_ROTATE" ] + "color": "pink" }, { "type": "overmap_terrain", "id": "fungal_flowers", + "copy-from": "fungal_flowers", "name": "fungal flowers", "sym": "F", - "color": "pink", - "see_cost": 5, - "extras": "field", - "flags": [ "NO_ROTATE" ] + "color": "pink" }, { "type": "overmap_terrain", "id": "spider_pit", + "copy-from": "spider_pit", "name": "forest", "sym": "#", - "color": "green", - "see_cost": 3, - "extras": "field", - "flags": [ "NO_ROTATE" ] + "color": "green" }, { "type": "overmap_terrain", "id": "spider_pit_under", + "copy-from": "spider_pit_under", "name": "cavern", "sym": "c", - "color": "brown", - "see_cost": 5, - "flags": [ "NO_ROTATE" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "anthill", + "copy-from": "anthill", "name": "anthill", "sym": "a", - "color": "i_pink", - "see_cost": 2, - "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "slimepit", + "copy-from": "slimepit", "name": "slime pit", "sym": "S", - "color": "i_pink", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "slimepit_down", + "copy-from": "slimepit_down", "name": "slime pit", "sym": "s", - "color": "i_pink", - "see_cost": 2, - "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "triffid_grove", + "copy-from": "triffid_grove", "name": "triffid grove", "sym": "T", - "color": "i_pink", - "see_cost": 5, - "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "triffid_roots", + "copy-from": "triffid_roots", "name": "triffid roots", "sym": "t", - "color": "i_pink", - "see_cost": 5, - "flags": [ "KNOWN_UP", "KNOWN_DOWN", "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "triffid_finale", + "copy-from": "triffid_finale", "name": "triffid heart", "sym": "T", - "color": "i_pink", - "see_cost": 5, - "flags": [ "KNOWN_UP", "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "basement", - "sym": "b", - "copy-from": "generic_city_house_basement", - "mapgen": [ { "method": "builtin", "name": "basement_junk" }, { "method": "builtin", "name": "basement_spiders" } ] + "copy-from": "basement", + "sym": "b" }, { "type": "overmap_terrain", "id": "basement_bionic", - "sym": "b", - "copy-from": "generic_city_house_basement" + "copy-from": "basement_bionic", + "sym": "b" }, { "type": "overmap_terrain", "id": "cavern", + "copy-from": "cavern", "name": "cavern", "sym": "0", - "color": "light_gray", - "see_cost": 5, - "flags": [ "NO_ROTATE" ] + "color": "light_gray" }, { "type": "overmap_terrain", "id": "rock", - "//": "This is old rock type, new one (below) will replace it in new overmaps", + "copy-from": "rock", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 5, - "flags": [ "NO_ROTATE" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "empty_rock", + "copy-from": "empty_rock", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 5, - "flags": [ "NO_ROTATE" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "rift", + "copy-from": "rift", "name": "rift", "sym": "^", - "color": "red", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "red" }, { "type": "overmap_terrain", "id": "hellmouth", + "copy-from": "hellmouth", "name": "hellmouth", "sym": "^", - "color": "light_red", - "see_cost": 2, - "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + "color": "light_red" }, { "type": "overmap_terrain", "id": "sewer_sub_station", + "copy-from": "sewer_sub_station", "name": "subway station (underground level)", "sym": "S", - "color": "yellow", - "see_cost": 5, - "extras": "subway", - "flags": [ "KNOWN_UP", "NO_ROTATE" ] + "color": "yellow" }, { "type": "overmap_terrain", "id": "subway", + "copy-from": "subway", "name": "subway", - "color": "dark_gray", - "see_cost": 5, - "extras": "subway", - "flags": [ "LINEAR" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "sewer", + "copy-from": "sewer", "name": "sewer", - "color": "green", - "see_cost": 5, - "flags": [ "LINEAR" ] + "color": "green" }, { "type": "overmap_terrain", "id": "ants", + "copy-from": "ants", "name": "ant tunnel", - "color": "brown", - "see_cost": 5, - "flags": [ "LINEAR" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "ants_food", + "copy-from": "ants_food", "name": "ant food storage", "sym": "O", - "color": "green", - "see_cost": 5, - "flags": [ "NO_ROTATE" ] + "color": "green" }, { "type": "overmap_terrain", "id": "ants_larvae", + "copy-from": "ants_larvae", "name": "ant larva chamber", "sym": "O", - "color": "white", - "see_cost": 5, - "flags": [ "NO_ROTATE" ] + "color": "white" }, { "type": "overmap_terrain", "id": "ants_queen", + "copy-from": "ants_queen", "name": "ant queen chamber", "sym": "O", - "color": "red", - "see_cost": 5, - "flags": [ "NO_ROTATE" ] + "color": "red" }, { "type": "overmap_terrain", "id": "tutorial", + "copy-from": "tutorial", "name": "tutorial room", "sym": "O", - "color": "cyan", - "see_cost": 5, - "flags": [ "NO_ROTATE" ] + "color": "cyan" }, { "type": "overmap_terrain", "id": "mall_a_1", + "copy-from": "mall_a_1", "name": "road", "sym": "┌", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_2", + "copy-from": "mall_a_2", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_3", + "copy-from": "mall_a_3", "name": "mall - loading bay", "sym": "M", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_4", + "copy-from": "mall_a_4", "name": "mall - utilities", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_5", + "copy-from": "mall_a_5", "name": "mall - utilities", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_6", + "copy-from": "mall_a_6", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_7", + "copy-from": "mall_a_7", "name": "parking lot", "sym": "p", - "color": "light_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "mall_a_8", + "copy-from": "mall_a_8", "name": "parking lot", "sym": "p", - "color": "light_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "mall_a_9", + "copy-from": "mall_a_9", "name": "parking lot", "sym": "p", - "color": "light_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "mall_a_10", + "copy-from": "mall_a_10", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_11", + "copy-from": "mall_a_11", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_12", + "copy-from": "mall_a_12", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_13", + "copy-from": "mall_a_13", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_14", + "copy-from": "mall_a_14", "name": "mall - entrance", "sym": "M", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_15", + "copy-from": "mall_a_15", "name": "road", "sym": "└", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_16", + "copy-from": "mall_a_16", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_17", + "copy-from": "mall_a_17", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_18", + "copy-from": "mall_a_18", "name": "road", "sym": "┐", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_19", + "copy-from": "mall_a_19", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_20", + "copy-from": "mall_a_20", "name": "mall - food court", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_21", + "copy-from": "mall_a_21", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_22", + "copy-from": "mall_a_22", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_23", + "copy-from": "mall_a_23", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_24", + "copy-from": "mall_a_24", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_25", + "copy-from": "mall_a_25", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_26", + "copy-from": "mall_a_26", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_27", + "copy-from": "mall_a_27", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_28", + "copy-from": "mall_a_28", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_29", + "copy-from": "mall_a_29", "name": "mall - food court", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_30", + "copy-from": "mall_a_30", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_31", + "copy-from": "mall_a_31", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_32", + "copy-from": "mall_a_32", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_33", + "copy-from": "mall_a_33", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_34", + "copy-from": "mall_a_34", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_35", + "copy-from": "mall_a_35", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_36", + "copy-from": "mall_a_36", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_37", + "copy-from": "mall_a_37", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_38", + "copy-from": "mall_a_38", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_39", + "copy-from": "mall_a_39", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_40", + "copy-from": "mall_a_40", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_41", + "copy-from": "mall_a_41", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_42", + "copy-from": "mall_a_42", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_43", + "copy-from": "mall_a_43", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_44", + "copy-from": "mall_a_44", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_45", + "copy-from": "mall_a_45", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_46", + "copy-from": "mall_a_46", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_47", + "copy-from": "mall_a_47", "name": "mall - entrance", "sym": "M", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_48", + "copy-from": "mall_a_48", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_49", + "copy-from": "mall_a_49", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_50", + "copy-from": "mall_a_50", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_51", + "copy-from": "mall_a_51", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_52", + "copy-from": "mall_a_52", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_53", + "copy-from": "mall_a_53", "name": "mall - entrance", "sym": "M", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_54", + "copy-from": "mall_a_54", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_55", + "copy-from": "mall_a_55", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_56", + "copy-from": "mall_a_56", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_57", + "copy-from": "mall_a_57", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_58", + "copy-from": "mall_a_58", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_59", + "copy-from": "mall_a_59", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_60", + "copy-from": "mall_a_60", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_61", + "copy-from": "mall_a_61", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_62", + "copy-from": "mall_a_62", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_63", + "copy-from": "mall_a_63", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_64", + "copy-from": "mall_a_64", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_65", + "copy-from": "mall_a_65", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_66", + "copy-from": "mall_a_66", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_67", + "copy-from": "mall_a_67", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_68", + "copy-from": "mall_a_68", "name": "mall - entrance", "sym": "M", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_69", + "copy-from": "mall_a_69", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_70", + "copy-from": "mall_a_70", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_71", + "copy-from": "mall_a_71", "name": "mall", "sym": "m", - "color": "i_magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_magenta" }, { "type": "overmap_terrain", "id": "mall_a_72", + "copy-from": "mall_a_72", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_73", + "copy-from": "mall_a_73", "name": "road", "sym": "└", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_74", + "copy-from": "mall_a_74", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_75", + "copy-from": "mall_a_75", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_76", + "copy-from": "mall_a_76", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_77", + "copy-from": "mall_a_77", "name": "road", "sym": "┬", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_78", + "copy-from": "mall_a_78", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_79", + "copy-from": "mall_a_79", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_80", + "copy-from": "mall_a_80", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "mall_a_81", + "copy-from": "mall_a_81", "name": "road", "sym": "┘", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_1", + "copy-from": "necropolis_a_1", "name": "field", "sym": ".", - "color": "brown", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "necropolis_a_2", + "copy-from": "necropolis_a_2", "name": "house", "sym": "v", - "color": "light_green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "necropolis_a_3", + "copy-from": "necropolis_a_3", "name": "field", "sym": ".", - "color": "brown", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "necropolis_a_4", + "copy-from": "necropolis_a_4", "name": "field", "sym": ".", - "color": "brown", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "necropolis_a_5", + "copy-from": "necropolis_a_5", "name": "abandoned store", "sym": "a", - "color": "blue", - "see_cost": 5, - "mondensity": 2 + "color": "blue" }, { "type": "overmap_terrain", "id": "necropolis_a_6", + "copy-from": "necropolis_a_6", "name": "road", "color": "dark_gray", - "sym": "│", - "see_cost": 5, - "mondensity": 2 + "sym": "│" }, { "type": "overmap_terrain", "id": "necropolis_a_7", + "copy-from": "necropolis_a_7", "name": "pump station", "sym": "p", - "color": "i_yellow", - "see_cost": 5, - "mondensity": 2, - "flags": [ "KNOWN_DOWN" ] + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "necropolis_a_8", + "copy-from": "necropolis_a_8", "name": "pump station", "sym": "p", - "color": "i_yellow", - "see_cost": 5, - "mondensity": 2, - "flags": [ "KNOWN_DOWN", "SIDEWALK" ] + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "necropolis_a_9", + "copy-from": "necropolis_a_9", "name": "field", "sym": ".", - "color": "brown", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "necropolis_a_10", + "copy-from": "necropolis_a_10", "name": "house", "sym": ">", - "color": "light_green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "necropolis_a_11", + "copy-from": "necropolis_a_11", "name": "road", "color": "dark_gray", - "sym": "│", - "see_cost": 5, - "mondensity": 2, - "extras": "road", - "flags": [ "SIDEWALK" ] + "sym": "│" }, { "type": "overmap_terrain", "id": "necropolis_a_12", + "copy-from": "necropolis_a_12", "name": "gardening store", "sym": "g", - "color": "green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_a_13", + "copy-from": "necropolis_a_13", "name": "salon", "sym": "s", - "color": "blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "blue" }, { "type": "overmap_terrain", "id": "necropolis_a_14", + "copy-from": "necropolis_a_14", "name": "crater", "sym": "*", - "color": "pink", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "pink" }, { "type": "overmap_terrain", "id": "necropolis_a_15", + "copy-from": "necropolis_a_15", "name": "road", - "mondensity": 2, - "see_cost": 5, "sym": "│", "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_16", + "copy-from": "necropolis_a_16", "name": "police station", "sym": "p", - "color": "i_red", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_red" }, { "type": "overmap_terrain", "id": "necropolis_a_17", + "copy-from": "necropolis_a_17", "name": "police station", "sym": "p", - "color": "i_red", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_red" }, { "type": "overmap_terrain", "id": "necropolis_a_18", + "copy-from": "necropolis_a_18", "name": "field", "sym": ".", - "color": "brown", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "necropolis_a_19", + "copy-from": "necropolis_a_19", "name": "parking lot", "sym": "p", - "color": "light_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "necropolis_a_20", + "copy-from": "necropolis_a_20", "name": "road", "sym": "└", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_21", + "copy-from": "necropolis_a_21", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_22", + "copy-from": "necropolis_a_22", "name": "road", "sym": "┬", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_23", + "copy-from": "necropolis_a_23", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_24", + "copy-from": "necropolis_a_24", "name": "road", "sym": "┴", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_25", + "copy-from": "necropolis_a_25", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_26", + "copy-from": "necropolis_a_26", "name": "road", "sym": "┐", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_27", + "copy-from": "necropolis_a_27", "name": "field", "sym": ".", - "color": "brown", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "necropolis_a_28", + "copy-from": "necropolis_a_28", "name": "grocery store", "sym": "g", - "color": "green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_a_29", + "copy-from": "necropolis_a_29", "name": "grocery store", "sym": "g", - "color": "green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_a_30", + "copy-from": "necropolis_a_30", "name": "park", "sym": "p", - "color": "blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "blue" }, { "type": "overmap_terrain", "id": "necropolis_a_31", + "copy-from": "necropolis_a_31", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_32", + "copy-from": "necropolis_a_32", "name": "church", "sym": "c", - "color": "i_white", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_white" }, { "type": "overmap_terrain", "id": "necropolis_a_33", + "copy-from": "necropolis_a_33", "name": "church", "sym": "c", - "color": "i_white", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_white" }, { "type": "overmap_terrain", "id": "necropolis_a_34", + "copy-from": "necropolis_a_34", "name": "pawn shop", "sym": "p", - "color": "magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "magenta" }, { "type": "overmap_terrain", "id": "necropolis_a_35", + "copy-from": "necropolis_a_35", "name": "crater", "sym": "*", - "color": "pink", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "pink" }, { "type": "overmap_terrain", "id": "necropolis_a_36", + "copy-from": "necropolis_a_36", "name": "field", "sym": ".", - "color": "brown", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "necropolis_a_37", + "copy-from": "necropolis_a_37", "name": "furniture store", "sym": "f", - "color": "blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "blue" }, { "type": "overmap_terrain", "id": "necropolis_a_38", + "copy-from": "necropolis_a_38", "name": "crater", "sym": "*", - "color": "pink", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "pink" }, { "type": "overmap_terrain", "id": "necropolis_a_39", + "copy-from": "necropolis_a_39", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_40", + "copy-from": "necropolis_a_40", "name": "road", "sym": "┴", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_41", + "copy-from": "necropolis_a_41", "name": "road", "sym": "┬", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_42", + "copy-from": "necropolis_a_42", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_43", + "copy-from": "necropolis_a_43", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_44", + "copy-from": "necropolis_a_44", "name": "road", "sym": "┤", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_45", + "copy-from": "necropolis_a_45", "name": "field", "sym": ".", - "color": "brown", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "necropolis_a_46", + "copy-from": "necropolis_a_46", "name": "clothing store", "sym": "c", - "color": "magenta", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "magenta" }, { "type": "overmap_terrain", "id": "necropolis_a_47", + "copy-from": "necropolis_a_47", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_48", + "copy-from": "necropolis_a_48", "name": "motel", "sym": "m", - "color": "light_green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "necropolis_a_49", + "copy-from": "necropolis_a_49", "name": "motel", "sym": "m", - "color": "light_green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "necropolis_a_50", + "copy-from": "necropolis_a_50", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_51", + "copy-from": "necropolis_a_51", "name": "restaurant", "sym": "r", - "color": "green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_a_52", + "copy-from": "necropolis_a_52", "name": "bank", "sym": "b", - "color": "yellow", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_a_53", + "copy-from": "necropolis_a_53", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_54", + "copy-from": "necropolis_a_54", "name": "house", "sym": "<", - "color": "light_green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "necropolis_a_55", + "copy-from": "necropolis_a_55", "name": "motel", "sym": "m", - "color": "light_green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "necropolis_a_56", + "copy-from": "necropolis_a_56", "name": "parking lot", "sym": "p", - "color": "light_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "necropolis_a_57", + "copy-from": "necropolis_a_57", "name": "motel", "sym": "m", - "color": "light_green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "necropolis_a_58", + "copy-from": "necropolis_a_58", "name": "parking lot", "sym": "p", - "color": "light_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "necropolis_a_59", + "copy-from": "necropolis_a_59", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_60", + "copy-from": "necropolis_a_60", "name": "parking lot", "sym": "p", - "color": "light_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "necropolis_a_61", + "copy-from": "necropolis_a_61", "name": "parking lot", "sym": "p", - "color": "light_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "necropolis_a_62", + "copy-from": "necropolis_a_62", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_63", + "copy-from": "necropolis_a_63", "name": "house", "sym": "<", - "color": "light_green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "necropolis_a_64", + "copy-from": "necropolis_a_64", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_65", + "copy-from": "necropolis_a_65", "name": "road", "sym": "┴", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_66", + "copy-from": "necropolis_a_66", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_67", + "copy-from": "necropolis_a_67", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_68", + "copy-from": "necropolis_a_68", "name": "road", "sym": "┼", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_69", + "copy-from": "necropolis_a_69", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_70", + "copy-from": "necropolis_a_70", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_71", + "copy-from": "necropolis_a_71", "name": "road", "sym": "┘", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_72", + "copy-from": "necropolis_a_72", "name": "field", "sym": ".", - "color": "brown", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "necropolis_a_73", + "copy-from": "necropolis_a_73", "name": "field", "sym": ".", - "color": "brown", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "necropolis_a_74", + "copy-from": "necropolis_a_74", "name": "bar", "sym": "b", - "color": "green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_a_75", + "copy-from": "necropolis_a_75", "name": "fast food restaurant", "sym": "f", - "color": "green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_a_76", + "copy-from": "necropolis_a_76", "name": "parking lot", "sym": "p", - "color": "light_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "necropolis_a_77", + "copy-from": "necropolis_a_77", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_a_78", + "copy-from": "necropolis_a_78", "name": "gas station", "sym": "g", - "color": "light_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "necropolis_a_79", + "copy-from": "necropolis_a_79", "name": "mechanic garage", "sym": "m", - "color": "light_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_blue" }, { "type": "overmap_terrain", "id": "necropolis_a_80", + "copy-from": "necropolis_a_80", "name": "field", "sym": ".", - "color": "brown", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "necropolis_a_81", + "copy-from": "necropolis_a_81", "name": "field", "sym": ".", - "color": "brown", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "brown" }, { - "//": "xxx Bookmark for necropolis sewers", "type": "overmap_terrain", "id": "necropolis_b_1", + "copy-from": "necropolis_b_1", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_2", + "copy-from": "necropolis_b_2", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_3", + "copy-from": "necropolis_b_3", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_4", + "copy-from": "necropolis_b_4", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_5", + "copy-from": "necropolis_b_5", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_6", + "copy-from": "necropolis_b_6", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_7", + "copy-from": "necropolis_b_7", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_8", + "copy-from": "necropolis_b_8", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_9", + "copy-from": "necropolis_b_9", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_10", + "copy-from": "necropolis_b_10", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_11", + "copy-from": "necropolis_b_11", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_12", + "copy-from": "necropolis_b_12", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_13", + "copy-from": "necropolis_b_13", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_14", + "copy-from": "necropolis_b_14", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_15", + "copy-from": "necropolis_b_15", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_16", + "copy-from": "necropolis_b_16", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_17", + "copy-from": "necropolis_b_17", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_18", + "copy-from": "necropolis_b_18", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_19", + "copy-from": "necropolis_b_19", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_20", + "copy-from": "necropolis_b_20", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_21", + "copy-from": "necropolis_b_21", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_22", + "copy-from": "necropolis_b_22", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_23", + "copy-from": "necropolis_b_23", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_24", + "copy-from": "necropolis_b_24", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_25", + "copy-from": "necropolis_b_25", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_26", + "copy-from": "necropolis_b_26", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_27", + "copy-from": "necropolis_b_27", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_28", + "copy-from": "necropolis_b_28", "name": "cavern", "sym": "0", - "color": "light_gray", - "see_cost": 999, - "mondensity": 2 + "color": "light_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_29", + "copy-from": "necropolis_b_29", "name": "sewer?", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_30", + "copy-from": "necropolis_b_30", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_31", + "copy-from": "necropolis_b_31", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_32", + "copy-from": "necropolis_b_32", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_33", + "copy-from": "necropolis_b_33", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_34", + "copy-from": "necropolis_b_34", "name": "basement", "sym": "O", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_35", + "copy-from": "necropolis_b_35", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_36", + "copy-from": "necropolis_b_36", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_37", + "copy-from": "necropolis_b_37", "name": "cavern", "sym": "0", - "color": "light_gray", - "see_cost": 999, - "mondensity": 2 + "color": "light_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_38", + "copy-from": "necropolis_b_38", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_39", + "copy-from": "necropolis_b_39", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_40", + "copy-from": "necropolis_b_40", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_41", + "copy-from": "necropolis_b_41", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_42", + "copy-from": "necropolis_b_42", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_43", + "copy-from": "necropolis_b_43", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_44", + "copy-from": "necropolis_b_44", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_45", + "copy-from": "necropolis_b_45", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_46", + "copy-from": "necropolis_b_46", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_47", + "copy-from": "necropolis_b_47", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_48", + "copy-from": "necropolis_b_48", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_49", + "copy-from": "necropolis_b_49", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_50", + "copy-from": "necropolis_b_50", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_51", + "copy-from": "necropolis_b_51", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_52", + "copy-from": "necropolis_b_52", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_53", + "copy-from": "necropolis_b_53", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_54", + "copy-from": "necropolis_b_54", "name": "basement", "sym": "O", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_55", + "copy-from": "necropolis_b_55", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_56", + "copy-from": "necropolis_b_56", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_57", + "copy-from": "necropolis_b_57", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_58", + "copy-from": "necropolis_b_58", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_59", + "copy-from": "necropolis_b_59", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_60", + "copy-from": "necropolis_b_60", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_61", + "copy-from": "necropolis_b_61", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_62", + "copy-from": "necropolis_b_62", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_63", + "copy-from": "necropolis_b_63", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_64", + "copy-from": "necropolis_b_64", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_65", + "copy-from": "necropolis_b_65", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_66", + "copy-from": "necropolis_b_66", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_67", + "copy-from": "necropolis_b_67", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_68", + "copy-from": "necropolis_b_68", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_69", + "copy-from": "necropolis_b_69", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_70", + "copy-from": "necropolis_b_70", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_71", + "copy-from": "necropolis_b_71", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_72", + "copy-from": "necropolis_b_72", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_73", + "copy-from": "necropolis_b_73", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_74", + "copy-from": "necropolis_b_74", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_75", + "copy-from": "necropolis_b_75", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_76", + "copy-from": "necropolis_b_76", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_77", + "copy-from": "necropolis_b_77", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_78", + "copy-from": "necropolis_b_78", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_79", + "copy-from": "necropolis_b_79", "name": "sewer", "sym": "┼", - "color": "green", - "see_cost": 999, - "mondensity": 2 + "color": "green" }, { "type": "overmap_terrain", "id": "necropolis_b_80", + "copy-from": "necropolis_b_80", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_b_81", + "copy-from": "necropolis_b_81", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_c_1", + "copy-from": "necropolis_c_1", "name": "Vault - Barracks", "sym": "B", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_2", + "copy-from": "necropolis_c_2", "name": "Vault - Armory", "sym": "A", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_3", + "copy-from": "necropolis_c_3", "name": "Vault - Barracks", "sym": "B", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_4", + "copy-from": "necropolis_c_4", "name": "Vault - Barracks", "sym": "B", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_5", + "copy-from": "necropolis_c_5", "name": "Vault - Hospital", "sym": "H", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_6", + "copy-from": "necropolis_c_6", "name": "Vault - Hospital", "sym": "H", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_7", + "copy-from": "necropolis_c_7", "name": "Vault - Hospital", "sym": "H", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_8", + "copy-from": "necropolis_c_8", "name": "Vault - Hospital", "sym": "H", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_9", + "copy-from": "necropolis_c_9", "name": "Vault - Jail", "sym": "J", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_10", + "copy-from": "necropolis_c_10", "name": "Vault - Barracks", "sym": "B", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_11", + "copy-from": "necropolis_c_11", "name": "Vault - Barracks", "sym": "B", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_12", + "copy-from": "necropolis_c_12", "name": "Vault - Barracks", "sym": "B", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_13", + "copy-from": "necropolis_c_13", "name": "Vault - Offices", "sym": "O", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_14", + "copy-from": "necropolis_c_14", "name": "Vault - Offices", "sym": "O", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_15", + "copy-from": "necropolis_c_15", "name": "Vault - Hospital", "sym": "H", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_16", + "copy-from": "necropolis_c_16", "name": "Vault - Hospital", "sym": "H", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_17", + "copy-from": "necropolis_c_17", "name": "Vault - Police Station", "sym": "P", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_18", + "copy-from": "necropolis_c_18", "name": "Vault - Police Station", "sym": "P", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_19", + "copy-from": "necropolis_c_19", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_c_20", + "copy-from": "necropolis_c_20", "name": "Vault - Entrance", "sym": "E", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_21", + "copy-from": "necropolis_c_21", "name": "Vault - Utilities", "sym": "U", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_22", + "copy-from": "necropolis_c_22", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_23", + "copy-from": "necropolis_c_23", "name": "Vault - Communications", "sym": "C", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_24", + "copy-from": "necropolis_c_24", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_25", + "copy-from": "necropolis_c_25", "name": "Vault - Courthouse", "sym": "C", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_26", + "copy-from": "necropolis_c_26", "name": "Vault - Police Station", "sym": "P", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_27", + "copy-from": "necropolis_c_27", "name": "Vault - Police Station", "sym": "P", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_28", + "copy-from": "necropolis_c_28", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_29", + "copy-from": "necropolis_c_29", "name": "Vault - Entrance", "sym": "E", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_30", + "copy-from": "necropolis_c_30", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_31", + "copy-from": "necropolis_c_31", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_32", + "copy-from": "necropolis_c_32", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_33", + "copy-from": "necropolis_c_33", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_34", + "copy-from": "necropolis_c_34", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_35", + "copy-from": "necropolis_c_35", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_36", + "copy-from": "necropolis_c_36", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_37", + "copy-from": "necropolis_c_37", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_38", + "copy-from": "necropolis_c_38", "name": "Vault - Motor Pool", "sym": "M", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_39", + "copy-from": "necropolis_c_39", "name": "Vault - Motor Pool", "sym": "M", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_40", + "copy-from": "necropolis_c_40", "name": "Vault - Visitor Center", "sym": "V", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_41", + "copy-from": "necropolis_c_41", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_42", + "copy-from": "necropolis_c_42", "name": "Vault - Control", "sym": "X", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_43", + "copy-from": "necropolis_c_43", "name": "Vault - Control", "sym": "X", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_44", + "copy-from": "necropolis_c_44", "name": "Vault - Control", "sym": "X", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_45", + "copy-from": "necropolis_c_45", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_46", + "copy-from": "necropolis_c_46", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_c_47", + "copy-from": "necropolis_c_47", "name": "Vault - Motor Pool", "sym": "M", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_48", + "copy-from": "necropolis_c_48", "name": "Vault - Motor Pool", "sym": "M", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_49", + "copy-from": "necropolis_c_49", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_50", + "copy-from": "necropolis_c_50", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_51", + "copy-from": "necropolis_c_51", "name": "Vault - Cafeteria", "sym": "C", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_52", + "copy-from": "necropolis_c_52", "name": "Vault - Cafeteria", "sym": "C", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_53", + "copy-from": "necropolis_c_53", "name": "Vault - Cafeteria", "sym": "C", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_54", + "copy-from": "necropolis_c_54", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_55", + "copy-from": "necropolis_c_55", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_c_56", + "copy-from": "necropolis_c_56", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_57", + "copy-from": "necropolis_c_57", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_58", + "copy-from": "necropolis_c_58", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_59", + "copy-from": "necropolis_c_59", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_60", + "copy-from": "necropolis_c_60", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_61", + "copy-from": "necropolis_c_61", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_62", + "copy-from": "necropolis_c_62", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_63", + "copy-from": "necropolis_c_63", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_c_64", + "copy-from": "necropolis_c_64", "name": "Vault - School", "sym": "S", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_65", + "copy-from": "necropolis_c_65", "name": "Vault - School", "sym": "S", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_66", + "copy-from": "necropolis_c_66", "name": "Vault - School", "sym": "S", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_67", + "copy-from": "necropolis_c_67", "name": "Vault - School", "sym": "S", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_68", + "copy-from": "necropolis_c_68", "name": "Vault - Labs", "sym": "L", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_69", + "copy-from": "necropolis_c_69", "name": "Vault - Labs", "sym": "L", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_70", + "copy-from": "necropolis_c_70", "name": "Vault - Labs", "sym": "L", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_71", + "copy-from": "necropolis_c_71", "name": "Vault - Labs", "sym": "L", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_72", + "copy-from": "necropolis_c_72", "name": "Vault - Labs", "sym": "L", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_73", + "copy-from": "necropolis_c_73", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_c_74", + "copy-from": "necropolis_c_74", "name": "Vault - School", "sym": "S", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_75", + "copy-from": "necropolis_c_75", "name": "Vault - School", "sym": "S", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_76", + "copy-from": "necropolis_c_76", "name": "Vault - School", "sym": "S", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_77", + "copy-from": "necropolis_c_77", "name": "Vault - School", "sym": "S", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_78", + "copy-from": "necropolis_c_78", "name": "Vault - School", "sym": "S", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_79", + "copy-from": "necropolis_c_79", "name": "Vault - School", "sym": "S", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_80", + "copy-from": "necropolis_c_80", "name": "Vault - Labs", "sym": "L", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_c_81", + "copy-from": "necropolis_c_81", "name": "Vault - Labs", "sym": "L", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_1", + "copy-from": "necropolis_d_1", "name": "Vault - Robotics Bay", "sym": "R", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_2", + "copy-from": "necropolis_d_2", "name": "Vault - Robotics Bay", "sym": "R", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_3", + "copy-from": "necropolis_d_3", "name": "Vault - Slum Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_4", + "copy-from": "necropolis_d_4", "name": "Vault - Slum Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_5", + "copy-from": "necropolis_d_5", "name": "Vault - Slum Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_6", + "copy-from": "necropolis_d_6", "name": "Vault - Hospital", "sym": "H", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_7", + "copy-from": "necropolis_d_7", "name": "Vault - Hospital", "sym": "H", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_8", + "copy-from": "necropolis_d_8", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_d_9", + "copy-from": "necropolis_d_9", "name": "Vault - Suites", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_10", + "copy-from": "necropolis_d_10", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_d_11", + "copy-from": "necropolis_d_11", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_12", + "copy-from": "necropolis_d_12", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_13", + "copy-from": "necropolis_d_13", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_14", + "copy-from": "necropolis_d_14", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_15", + "copy-from": "necropolis_d_15", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_16", + "copy-from": "necropolis_d_16", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_17", + "copy-from": "necropolis_d_17", "name": "Vault - Suites", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_18", + "copy-from": "necropolis_d_18", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_19", + "copy-from": "necropolis_d_19", "name": "Vault - Living Bays", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_20", + "copy-from": "necropolis_d_20", "name": "Vault - Living Bays", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_21", + "copy-from": "necropolis_d_21", "name": "Vault - Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_22", + "copy-from": "necropolis_d_22", "name": "Vault - Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_23", + "copy-from": "necropolis_d_23", "name": "Vault - Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_24", + "copy-from": "necropolis_d_24", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_25", + "copy-from": "necropolis_d_25", "name": "Vault - Living Bays", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_26", + "copy-from": "necropolis_d_26", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_27", + "copy-from": "necropolis_d_27", "name": "Vault - Transition Bay", "sym": "T", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_28", + "copy-from": "necropolis_d_28", "name": "Vault - Living Bays", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_29", + "copy-from": "necropolis_d_29", "name": "Vault - Living Bays", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_30", + "copy-from": "necropolis_d_30", "name": "Vault - Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_31", + "copy-from": "necropolis_d_31", "name": "Vault - Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_32", + "copy-from": "necropolis_d_32", "name": "Vault - Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_33", + "copy-from": "necropolis_d_33", "name": "Vault - Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_34", + "copy-from": "necropolis_d_34", "name": "Vault - Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_35", + "copy-from": "necropolis_d_35", "name": "Vault - Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_36", + "copy-from": "necropolis_d_36", "name": "Vault - Transition Bay", "sym": "T", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_37", + "copy-from": "necropolis_d_37", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_d_38", + "copy-from": "necropolis_d_38", "name": "Vault - Maint. Bay", "sym": "M", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_39", + "copy-from": "necropolis_d_39", "name": "Vault - Maint. Bay", "sym": "M", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_40", + "copy-from": "necropolis_d_40", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_41", + "copy-from": "necropolis_d_41", "name": "Vault - Quartermasters", "sym": "Q", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_42", + "copy-from": "necropolis_d_42", "name": "Vault - Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_43", + "copy-from": "necropolis_d_43", "name": "Vault - Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_44", + "copy-from": "necropolis_d_44", "name": "Vault - Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_45", + "copy-from": "necropolis_d_45", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_46", + "copy-from": "necropolis_d_46", "name": "Vault - Living Bays", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_47", + "copy-from": "necropolis_d_47", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_48", + "copy-from": "necropolis_d_48", "name": "Vault - Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_49", + "copy-from": "necropolis_d_49", "name": "Vault - Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_50", + "copy-from": "necropolis_d_50", "name": "Vault - Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_51", + "copy-from": "necropolis_d_51", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_52", + "copy-from": "necropolis_d_52", "name": "Vault - Kitchen", "sym": "K", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_53", + "copy-from": "necropolis_d_53", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_54", + "copy-from": "necropolis_d_54", "name": "Vault - Slum Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_55", + "copy-from": "necropolis_d_55", "name": "Vault - Living Bays", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_56", + "copy-from": "necropolis_d_56", "name": "Vault - Living Bays", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_57", + "copy-from": "necropolis_d_57", "name": "Vault - Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_58", + "copy-from": "necropolis_d_58", "name": "Vault - Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_59", + "copy-from": "necropolis_d_59", "name": "Vault - Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_60", + "copy-from": "necropolis_d_60", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_61", + "copy-from": "necropolis_d_61", "name": "Vault - Conference Room", "sym": "C", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_62", + "copy-from": "necropolis_d_62", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_63", + "copy-from": "necropolis_d_63", "name": "Vault - Slum Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_64", + "copy-from": "necropolis_d_64", "name": "Vault - Living Bays", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_65", + "copy-from": "necropolis_d_65", "name": "Vault - Living Bays", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_66", + "copy-from": "necropolis_d_66", "name": "Vault - Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_67", + "copy-from": "necropolis_d_67", "name": "Vault - Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_68", + "copy-from": "necropolis_d_68", "name": "Vault - Housing", "sym": "h", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_69", + "copy-from": "necropolis_d_69", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_70", + "copy-from": "necropolis_d_70", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_71", + "copy-from": "necropolis_d_71", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_72", + "copy-from": "necropolis_d_72", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_73", + "copy-from": "necropolis_d_73", "name": "solid rock", "sym": "%", - "color": "dark_gray", - "see_cost": 999, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "necropolis_d_74", + "copy-from": "necropolis_d_74", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_75", + "copy-from": "necropolis_d_75", "name": "Vault - Library", "sym": "L", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_76", + "copy-from": "necropolis_d_76", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_77", + "copy-from": "necropolis_d_77", "name": "Vault - Light Industry", "sym": "I", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_78", + "copy-from": "necropolis_d_78", "name": "Vault - Light Industry", "sym": "I", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_79", + "copy-from": "necropolis_d_79", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "necropolis_d_80", + "copy-from": "necropolis_d_80", "name": "Vault - Gym", "sym": "G", - "color": "yellow", - "see_cost": 999, - "mondensity": 2 + "color": "yellow" }, { "type": "overmap_terrain", "id": "necropolis_d_81", + "copy-from": "necropolis_d_81", "name": "Vault - Passage", "sym": "┼", - "color": "white", - "see_cost": 999, - "mondensity": 2 + "color": "white" }, { "type": "overmap_terrain", "id": "evac_center_1", + "copy-from": "evac_center_1", "name": "road", "sym": "┌", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "evac_center_2", + "copy-from": "evac_center_2", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "evac_center_3", + "copy-from": "evac_center_3", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "evac_center_4", + "copy-from": "evac_center_4", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "evac_center_5", + "copy-from": "evac_center_5", "name": "road", "sym": "┐", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "evac_center_6", + "copy-from": "evac_center_6", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "evac_center_7", + "copy-from": "evac_center_7", "name": "refugee center", "sym": "r", - "color": "i_red", - "see_cost": 5, - "mondensity": 2 + "color": "i_red" }, { "type": "overmap_terrain", "id": "evac_center_8", + "copy-from": "evac_center_8", "name": "refugee center", "sym": "R", - "color": "i_red", - "see_cost": 5, - "mondensity": 2 + "color": "i_red" }, { "type": "overmap_terrain", "id": "evac_center_9", + "copy-from": "evac_center_9", "name": "refugee center", "sym": "r", - "color": "i_red", - "see_cost": 5, - "mondensity": 2 + "color": "i_red" }, { "type": "overmap_terrain", "id": "evac_center_10", + "copy-from": "evac_center_10", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "evac_center_11", + "copy-from": "evac_center_11", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "evac_center_12", + "copy-from": "evac_center_12", "name": "refugee center", "sym": "r", - "color": "i_red", - "see_cost": 5, - "mondensity": 2 + "color": "i_red" }, { "type": "overmap_terrain", "id": "evac_center_13", + "copy-from": "evac_center_13", "name": "refugee center", "sym": "r", - "color": "i_red", - "see_cost": 5, - "mondensity": 2 + "color": "i_red" }, { "type": "overmap_terrain", "id": "evac_center_14", + "copy-from": "evac_center_14", "name": "refugee center", "sym": "r", - "color": "i_red", - "see_cost": 5, - "mondensity": 2 + "color": "i_red" }, { "type": "overmap_terrain", "id": "evac_center_15", + "copy-from": "evac_center_15", "name": "road", "sym": "│", - "color": "dark_gray", - "extras": "build", - "see_cost": 5, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "evac_center_16", + "copy-from": "evac_center_16", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "evac_center_17", + "copy-from": "evac_center_17", "name": "refugee center", "sym": "r", - "color": "i_red", - "see_cost": 5, - "mondensity": 2 + "color": "i_red" }, { "type": "overmap_terrain", "id": "evac_center_18", + "copy-from": "evac_center_18", "name": "refugee center", "sym": "r", - "color": "i_red", - "see_cost": 5, - "mondensity": 2 + "color": "i_red" }, { "type": "overmap_terrain", "id": "evac_center_19", + "copy-from": "evac_center_19", "name": "refugee center", "sym": "r", - "color": "i_red", - "see_cost": 5, - "mondensity": 2 + "color": "i_red" }, { "type": "overmap_terrain", "id": "evac_center_20", + "copy-from": "evac_center_20", "name": "road", "sym": "│", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "evac_center_21", + "copy-from": "evac_center_21", "name": "road", "sym": "└", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "evac_center_22", + "copy-from": "evac_center_22", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "evac_center_23", + "copy-from": "evac_center_23", "name": "road", "sym": "┬", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "evac_center_24", + "copy-from": "evac_center_24", "name": "road", "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "evac_center_25", + "copy-from": "evac_center_25", "name": "road", "sym": "┘", - "color": "dark_gray", - "see_cost": 5, - "mondensity": 2 + "color": "dark_gray" }, { "type": "overmap_terrain", "id": "bandit_cabin", + "copy-from": "bandit_cabin", "name": "forest", "sym": "#", - "color": "green", - "see_cost": 5, - "extras": "field", - "flags": [ "NO_ROTATE" ] + "color": "green" }, { "type": "overmap_terrain", "id": "bandit_camp_1", + "copy-from": "bandit_camp_1", "name": "forest", "sym": "#", - "color": "green", - "see_cost": 5, - "extras": "field", - "flags": [ "NO_ROTATE" ] + "color": "green" }, { "type": "overmap_terrain", "id": "bandit_camp_2", + "copy-from": "bandit_camp_2", "name": "forest", "sym": "#", - "color": "green", - "see_cost": 5, - "extras": "field", - "flags": [ "NO_ROTATE" ] + "color": "green" }, { "type": "overmap_terrain", "id": "bandit_camp_3", + "copy-from": "bandit_camp_3", "name": "forest", "sym": "#", - "color": "green", - "see_cost": 5, - "extras": "field", - "flags": [ "NO_ROTATE" ] + "color": "green" }, { "type": "overmap_terrain", "id": "bandit_camp_4", + "copy-from": "bandit_camp_4", "name": "forest", "sym": "#", - "color": "green", - "see_cost": 5, - "extras": "field", - "flags": [ "NO_ROTATE" ] + "color": "green" }, { "type": "overmap_terrain", "id": "sai", + "copy-from": "sai", "name": "interface", "sym": "s", - "color": "yellow", - "see_cost": 5, - "flags": [ "NO_ROTATE" ] + "color": "yellow" }, { "type": "overmap_terrain", "id": "pwr_sub_s", + "copy-from": "pwr_sub_s", "name": "electric substation", "sym": "e", - "color": "yellow", - "see_cost": 5, - "extras": "field", - "flags": [ "NO_ROTATE" ] + "color": "yellow" }, { "type": "overmap_terrain", "id": "pwr_large_entrance", + "copy-from": "pwr_large_entrance", "name": "electric substation", "sym": "E", - "color": "i_yellow", - "see_cost": 5, - "extras": "field", - "flags": [ "NO_ROTATE" ] + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "pwr_large_2", + "copy-from": "pwr_large_2", "name": "electric substation", "sym": "e", - "color": "i_yellow", - "see_cost": 5, - "extras": "field", - "flags": [ "NO_ROTATE" ] + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "pwr_large_3", + "copy-from": "pwr_large_3", "name": "electric substation", "sym": "e", - "color": "i_yellow", - "see_cost": 5, - "extras": "field", - "flags": [ "NO_ROTATE" ] + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "pwr_large_4", + "copy-from": "pwr_large_4", "name": "electric substation", "sym": "e", - "color": "i_yellow", - "see_cost": 5, - "extras": "field", - "flags": [ "NO_ROTATE" ] + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "warehouse", + "copy-from": "warehouse", "name": "small warehouse", "sym": "w", - "color": "light_cyan", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_cyan" }, { "type": "overmap_terrain", "id": "hdwr_large_entrance", + "copy-from": "hdwr_large_entrance", "name": "home improvement superstore entrance", "sym": "H", - "color": "i_light_cyan", - "see_cost": 5, - "extras": "field" + "color": "i_light_cyan" }, { "type": "overmap_terrain", "id": "hdwr_large_SW", + "copy-from": "hdwr_large_SW", "name": "home improvement superstore", "sym": "h", - "color": "i_light_cyan", - "see_cost": 5, - "extras": "field" + "color": "i_light_cyan" }, { "type": "overmap_terrain", "id": "hdwr_large_NW", + "copy-from": "hdwr_large_NW", "name": "home improvement superstore", "sym": "h", - "color": "i_light_cyan", - "see_cost": 5, - "extras": "field" + "color": "i_light_cyan" }, { "type": "overmap_terrain", "id": "hdwr_large_NE", + "copy-from": "hdwr_large_NE", "name": "home improvement superstore", "sym": "h", - "color": "i_light_cyan", - "see_cost": 5, - "extras": "field" + "color": "i_light_cyan" }, { "type": "overmap_terrain", "id": "hdwr_large_backroom", + "copy-from": "hdwr_large_backroom", "name": "home improvement superstore", "sym": "h", - "color": "i_light_cyan", - "see_cost": 5, - "extras": "field" + "color": "i_light_cyan" }, { "type": "overmap_terrain", "id": "hdwr_large_loadingbay", + "copy-from": "hdwr_large_loadingbay", "name": "home improvement superstore", "sym": "h", - "color": "i_light_cyan", - "see_cost": 5, - "extras": "field" + "color": "i_light_cyan" }, { "type": "overmap_terrain", "id": "ranch_camp_1", + "copy-from": "ranch_camp_1", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_2", + "copy-from": "ranch_camp_2", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_3", + "copy-from": "ranch_camp_3", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_4", + "copy-from": "ranch_camp_4", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_5", + "copy-from": "ranch_camp_5", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_6", + "copy-from": "ranch_camp_6", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_7", + "copy-from": "ranch_camp_7", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_8", + "copy-from": "ranch_camp_8", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_9", + "copy-from": "ranch_camp_9", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_10", + "copy-from": "ranch_camp_10", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_11", + "copy-from": "ranch_camp_11", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_12", + "copy-from": "ranch_camp_12", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_13", + "copy-from": "ranch_camp_13", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_14", + "copy-from": "ranch_camp_14", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_15", + "copy-from": "ranch_camp_15", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_16", + "copy-from": "ranch_camp_16", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_17", + "copy-from": "ranch_camp_17", "name": "pond", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_18", + "copy-from": "ranch_camp_18", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_19", + "copy-from": "ranch_camp_19", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_20", + "copy-from": "ranch_camp_20", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_21", + "copy-from": "ranch_camp_21", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_22", + "copy-from": "ranch_camp_22", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_23", + "copy-from": "ranch_camp_23", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_24", + "copy-from": "ranch_camp_24", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_25", + "copy-from": "ranch_camp_25", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_26", + "copy-from": "ranch_camp_26", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_27", + "copy-from": "ranch_camp_27", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_28", + "copy-from": "ranch_camp_28", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_29", + "copy-from": "ranch_camp_29", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_30", + "copy-from": "ranch_camp_30", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_31", + "copy-from": "ranch_camp_31", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_32", + "copy-from": "ranch_camp_32", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_33", + "copy-from": "ranch_camp_33", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_34", + "copy-from": "ranch_camp_34", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_35", + "copy-from": "ranch_camp_35", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_36", + "copy-from": "ranch_camp_36", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_37", + "copy-from": "ranch_camp_37", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_38", + "copy-from": "ranch_camp_38", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_39", + "copy-from": "ranch_camp_39", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_40", + "copy-from": "ranch_camp_40", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_41", + "copy-from": "ranch_camp_41", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_42", + "copy-from": "ranch_camp_42", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_43", + "copy-from": "ranch_camp_43", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_44", + "copy-from": "ranch_camp_44", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_45", + "copy-from": "ranch_camp_45", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_46", + "copy-from": "ranch_camp_46", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_47", + "copy-from": "ranch_camp_47", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_48", + "copy-from": "ranch_camp_48", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_49", + "copy-from": "ranch_camp_49", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_50", + "copy-from": "ranch_camp_50", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_51", + "copy-from": "ranch_camp_51", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_52", + "copy-from": "ranch_camp_52", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_53", + "copy-from": "ranch_camp_53", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_54", + "copy-from": "ranch_camp_54", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_55", + "copy-from": "ranch_camp_55", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_56", + "copy-from": "ranch_camp_56", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_57", + "copy-from": "ranch_camp_57", "name": "silo", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_58", + "copy-from": "ranch_camp_58", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_59", + "copy-from": "ranch_camp_59", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_60", + "copy-from": "ranch_camp_60", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_61", + "copy-from": "ranch_camp_61", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_62", + "copy-from": "ranch_camp_62", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_63", + "copy-from": "ranch_camp_63", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_64", + "copy-from": "ranch_camp_64", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_65", + "copy-from": "ranch_camp_65", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_66", + "copy-from": "ranch_camp_66", "name": "barn", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_67", + "copy-from": "ranch_camp_67", "name": "garage", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_68", + "copy-from": "ranch_camp_68", "name": "ranch", "sym": "R", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_69", + "copy-from": "ranch_camp_69", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_70", + "copy-from": "ranch_camp_70", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_71", + "copy-from": "ranch_camp_71", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_72", + "copy-from": "ranch_camp_72", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_73", + "copy-from": "ranch_camp_73", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_74", + "copy-from": "ranch_camp_74", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_75", + "copy-from": "ranch_camp_75", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_76", + "copy-from": "ranch_camp_76", "name": "lot", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_77", + "copy-from": "ranch_camp_77", "name": "road", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "extras": "road", - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_78", + "copy-from": "ranch_camp_78", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_79", + "copy-from": "ranch_camp_79", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_80", + "copy-from": "ranch_camp_80", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "ranch_camp_81", + "copy-from": "ranch_camp_81", "name": "field", "sym": "r", - "color": "i_brown", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "looted_building", + "copy-from": "looted_building", "name": "looted building", "sym": "l", - "color": "light_gray", - "see_cost": 2 + "color": "light_gray" }, { "type": "overmap_terrain", "id": "debug_ramps", + "copy-from": "debug_ramps", "name": "ramp testing area", "sym": "%", - "color": "white", - "flags": [ "NO_ROTATE" ] + "color": "white" }, { "type": "overmap_terrain", "id": "football_field_a1", + "copy-from": "football_field_a1", "name": "football field", "sym": "f", - "color": "i_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_blue" }, { "type": "overmap_terrain", "id": "football_field_a2", + "copy-from": "football_field_a2", "name": "football field", "sym": "f", - "color": "i_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_blue" }, { "type": "overmap_terrain", "id": "football_field_a3", + "copy-from": "football_field_a3", "name": "football field", "sym": "f", - "color": "i_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_blue" }, { "type": "overmap_terrain", "id": "football_field_a4", + "copy-from": "football_field_a4", "name": "football field", "sym": "f", - "color": "i_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_blue" }, { "type": "overmap_terrain", "id": "football_field_a5", + "copy-from": "football_field_a5", "name": "football field", "sym": "f", - "color": "i_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_blue" }, { "type": "overmap_terrain", "id": "football_field_b1", + "copy-from": "football_field_b1", "name": "football field", "sym": "f", - "color": "i_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_blue" }, { "type": "overmap_terrain", "id": "football_field_b2", + "copy-from": "football_field_b2", "name": "football field", "sym": "f", - "color": "i_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_blue" }, { "type": "overmap_terrain", "id": "football_field_b3", + "copy-from": "football_field_b3", "name": "football field", "sym": "f", - "color": "i_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_blue" }, { "type": "overmap_terrain", "id": "football_field_b4", + "copy-from": "football_field_b4", "name": "football field", "sym": "f", - "color": "i_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_blue" }, { "type": "overmap_terrain", "id": "football_field_b5", + "copy-from": "football_field_b5", "name": "football field", "sym": "f", - "color": "i_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_blue" }, { "type": "overmap_terrain", "id": "football_field_c1", + "copy-from": "football_field_c1", "name": "football field", "sym": "f", - "color": "i_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_blue" }, { "type": "overmap_terrain", "id": "football_field_c2", + "copy-from": "football_field_c2", "name": "football field", "sym": "f", - "color": "i_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_blue" }, { "type": "overmap_terrain", "id": "football_field_c3", + "copy-from": "football_field_c3", "name": "football field", "sym": "f", - "color": "i_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_blue" }, { "type": "overmap_terrain", "id": "football_field_c4", + "copy-from": "football_field_c4", "name": "football field", "sym": "f", - "color": "i_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_blue" }, { "type": "overmap_terrain", "id": "football_field_c5", + "copy-from": "football_field_c5", "name": "football field", "sym": "f", - "color": "i_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_blue" }, { "type": "overmap_terrain", "id": "campsite", + "copy-from": "campsite", "name": "campsite", "sym": "c", - "color": "brown", - "see_cost": 5, - "extras": "field", - "spawns": { "group": "GROUP_FOREST", "population": [ 0, 1 ], "chance": 80 }, - "flags": [ "NO_ROTATE" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "campsite_a", + "copy-from": "campsite_a", "name": "campsites", "sym": "c", - "color": "brown", - "see_cost": 5, - "extras": "field", - "spawns": { "group": "GROUP_FOREST", "population": [ 0, 1 ], "chance": 80 }, - "flags": [ "NO_ROTATE" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "campsite_cabin_incomplete", + "copy-from": "campsite_cabin_incomplete", "name": "incomplete cabin", "sym": "c", - "color": "brown", - "see_cost": 5, - "extras": "field", - "spawns": { "group": "GROUP_FOREST", "population": [ 0, 1 ], "chance": 80 }, - "flags": [ "NO_ROTATE" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "campsite_field_biker", + "copy-from": "campsite_field_biker", "name": "field campsite", "sym": "c", - "color": "brown", - "see_cost": 5, - "extras": "field", - "spawns": { "group": "GROUP_FOREST", "population": [ 0, 1 ], "chance": 80 }, - "flags": [ "NO_ROTATE" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "campsite_field_biker_destroyed", + "copy-from": "campsite_field_biker_destroyed", "name": "field campsite", "sym": "c", - "color": "brown", - "see_cost": 5, - "extras": "field", - "spawns": { "group": "GROUP_FOREST", "population": [ 0, 1 ], "chance": 80 }, - "flags": [ "NO_ROTATE" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "roadstop", + "copy-from": "roadstop", "name": "roadstop", "sym": "r", - "color": "blue", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "blue" }, { "type": "overmap_terrain", "id": "roadstop_a", + "copy-from": "roadstop_a", "name": "public washroom", "sym": "p", - "color": "blue", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "blue" }, { "type": "overmap_terrain", "id": "roadstop_b", + "copy-from": "roadstop_b", "name": "roadside foodcart", "sym": "f", - "color": "green", - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "green" }, { "type": "overmap_terrain", "id": "pump_station_1", + "copy-from": "pump_station_1", "name": "pump station", "sym": "p", - "color": "yellow", - "see_cost": 5, - "mondensity": 2, - "flags": [ "KNOWN_DOWN", "SIDEWALK" ] + "color": "yellow" }, { "type": "overmap_terrain", "id": "pump_station_2", + "copy-from": "pump_station_2", "name": "pump station", "sym": "p", - "color": "yellow", - "see_cost": 5, - "mondensity": 2, - "flags": [ "KNOWN_DOWN" ] + "color": "yellow" }, { "type": "overmap_terrain", "id": "pump_station_3", + "copy-from": "pump_station_3", "name": "sewer", "sym": "p", - "color": "i_yellow", - "see_cost": 999, - "mondensity": 2 + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "pump_station_4", + "copy-from": "pump_station_4", "name": "sewer", "sym": "p", - "color": "i_yellow", - "see_cost": 999, - "mondensity": 2 + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "pump_station_5", + "copy-from": "pump_station_5", "name": "sewer", "sym": "p", - "color": "i_yellow", - "see_cost": 999, - "mondensity": 2 + "color": "i_yellow" }, { "type": "overmap_terrain", "id": "garage_gas_1", + "copy-from": "garage_gas_1", "name": "garage - gas station", "sym": "g", - "color": "i_light_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_light_blue" }, { "type": "overmap_terrain", "id": "garage_gas_2", + "copy-from": "garage_gas_2", "name": "garage", "sym": "g", - "color": "i_light_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_light_blue" }, { "type": "overmap_terrain", "id": "garage_gas_3", + "copy-from": "garage_gas_3", "name": "garage", "sym": "g", - "color": "i_light_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_light_blue" }, { "type": "overmap_terrain", "id": "cemetery_4square_00", + "copy-from": "cemetery_4square_00", "name": "religious cemetery", "sym": "r", - "color": "i_white", - "see_cost": 5, - "extras": "field", - "mondensity": 2 + "color": "i_white" }, { "type": "overmap_terrain", "id": "cemetery_4square_10", + "copy-from": "cemetery_4square_10", "name": "religious cemetery", "sym": "r", - "color": "i_white", - "see_cost": 5, - "extras": "field", - "mondensity": 2 + "color": "i_white" }, { "type": "overmap_terrain", "id": "cemetery_4square_01", + "copy-from": "cemetery_4square_01", "name": "religious cemetery", "sym": "r", - "color": "i_white", - "see_cost": 5, - "extras": "field", - "mondensity": 2 + "color": "i_white" }, { "type": "overmap_terrain", "id": "cemetery_4square_11", + "copy-from": "cemetery_4square_11", "name": "religious cemetery", "sym": "r", - "color": "i_white", - "see_cost": 5, - "extras": "field", - "mondensity": 2 + "color": "i_white" }, { "type": "overmap_terrain", "id": "4way_road", + "copy-from": "4way_road", "name": "road", "sym": "+", - "color": "light_gray", - "see_cost": 5, - "extras": "forest", - "mondensity": 2, - "flags": [ "NO_ROTATE" ] + "color": "light_gray" }, { "type": "overmap_terrain", "id": "pond_field", + "copy-from": "pond_field", "name": "pond", "sym": "#", - "color": "blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "NO_ROTATE" ] + "color": "blue" }, { "type": "overmap_terrain", "id": "pond_forest", + "copy-from": "pond_forest", "name": "basin", "sym": "#", - "color": "blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "NO_ROTATE" ] + "color": "blue" }, { "type": "overmap_terrain", "id": "pond_swamp", + "copy-from": "pond_swamp", "name": "bog", "sym": "#", - "color": "blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "NO_ROTATE" ] + "color": "blue" }, { "type": "overmap_terrain", "id": "hunter_shack", + "copy-from": "hunter_shack", "name": "swamp shack", "sym": "h", - "color": "brown", - "see_cost": 5, - "extras": "field", - "flags": [ "NO_ROTATE" ] + "color": "brown" }, { "type": "overmap_terrain", "id": "orchard_tree_apple", + "copy-from": "orchard_tree_apple", "name": "apple orchard", "sym": "a", - "color": "i_green", - "see_cost": 5, - "extras": "field", - "mondensity": 3, - "flags": [ "NO_ROTATE" ] + "color": "i_green" }, { "type": "overmap_terrain", "id": "orchard_processing", + "copy-from": "orchard_processing", "name": "orchard processing", "sym": "A", - "color": "i_green", - "see_cost": 5, - "extras": "field", - "mondensity": 3, - "flags": [ "NO_ROTATE" ] + "color": "i_green" }, { "type": "overmap_terrain", "id": "orchard_stall", + "copy-from": "orchard_stall", "name": "orchard stall", "sym": "A", - "color": "i_green", - "see_cost": 5, - "extras": "field", - "mondensity": 3, - "flags": [ "NO_ROTATE" ] + "color": "i_green" }, { "id": "dairy_farm_NW", + "copy-from": "dairy_farm_NW", "type": "overmap_terrain", "name": "dairy farm", "sym": "d", - "color": "i_green", - "see_cost": 1, - "flags": [ "SIDEWALK", "NO_ROTATE" ] + "color": "i_green" }, { "id": "dairy_farm_NE", + "copy-from": "dairy_farm_NE", "type": "overmap_terrain", "name": "dairy farm", "sym": "d", - "color": "i_green", - "see_cost": 1, - "flags": [ "SIDEWALK", "NO_ROTATE" ] + "color": "i_green" }, { "id": "dairy_farm_SE", + "copy-from": "dairy_farm_SE", "type": "overmap_terrain", "name": "dairy farm", "sym": "d", - "color": "i_green", - "see_cost": 5, - "flags": [ "SIDEWALK", "NO_ROTATE" ] + "color": "i_green" }, { "id": "dairy_farm_SW", + "copy-from": "dairy_farm_SW", "type": "overmap_terrain", "name": "dairy farm", "sym": "d", - "color": "i_green", - "see_cost": 5, - "flags": [ "SIDEWALK", "NO_ROTATE" ] + "color": "i_green" }, { "id": "orchard", + "copy-from": "orchard", "type": "overmap_terrain", "name": "orchard", "sym": "o", - "color": "green", - "see_cost": 5, - "mondensity": 2, - "extras": "build", - "flags": [ "SIDEWALK" ] + "color": "green" }, { "id": "dispensary", + "copy-from": "dispensary", "type": "overmap_terrain", "name": "dispensary", "sym": "d", - "color": "blue", - "see_cost": 5, - "mondensity": 2, - "extras": "build", - "flags": [ "SIDEWALK" ] + "color": "blue" }, { "id": "skate_park", + "copy-from": "skate_park", "type": "overmap_terrain", "name": "skate park", "sym": "s", - "color": "blue", - "see_cost": 5, - "mondensity": 2, - "extras": "build", - "flags": [ "SIDEWALK" ] + "color": "blue" }, { "id": "small_office", + "copy-from": "small_office", "type": "overmap_terrain", "name": "small office", "sym": "o", - "color": "light_gray", - "see_cost": 5, - "mondensity": 2, - "extras": "build", - "flags": [ "SIDEWALK" ] + "color": "light_gray" }, { "id": "small_wooded_trail", + "copy-from": "small_wooded_trail", "type": "overmap_terrain", "name": "small wooded trail", "sym": "t", - "color": "brown", - "see_cost": 5, - "mondensity": 2, - "extras": "build", - "flags": [ "SIDEWALK" ] + "color": "brown" }, { "id": "art_gallery", + "copy-from": "art_gallery", "type": "overmap_terrain", "name": "art gallery", "sym": "a", - "color": "white", - "see_cost": 5, - "mondensity": 2, - "extras": "build", - "flags": [ "SIDEWALK" ] + "color": "white" }, { "id": "derelict_property", + "copy-from": "derelict_property", "type": "overmap_terrain", "name": "derelict property", "sym": "d", - "color": "light_gray", - "see_cost": 5, - "mondensity": 2, - "extras": "field" + "color": "light_gray" }, { "id": "state_park_0_0", + "copy-from": "state_park_0_0", "type": "overmap_terrain", "name": "state park", "sym": "s", - "color": "i_brown", - "see_cost": 5, - "mondensity": 2 + "color": "i_brown" }, { "id": "state_park_0_1", + "copy-from": "state_park_0_1", "type": "overmap_terrain", "name": "state park", "sym": "s", - "color": "i_brown", - "see_cost": 5, - "mondensity": 2 + "color": "i_brown" }, { "id": "state_park_1_0", + "copy-from": "state_park_1_0", "type": "overmap_terrain", "name": "state park parking", "sym": "s", - "color": "i_brown", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_brown" }, { "id": "state_park_1_1", + "copy-from": "state_park_1_1", "type": "overmap_terrain", "name": "state park", "sym": "s", - "color": "i_brown", - "see_cost": 5, - "mondensity": 2 + "color": "i_brown" }, { "id": "pavilion", + "copy-from": "pavilion", "type": "overmap_terrain", "name": "pavilion", "sym": "A", - "color": "i_green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_green" }, { "id": "fishing_pond_0_0", + "copy-from": "fishing_pond_0_0", "type": "overmap_terrain", "name": "fishing pond", "sym": "#", - "color": "i_blue", - "see_cost": 5, - "mondensity": 2 + "color": "i_blue" }, { "id": "fishing_pond_0_1", + "copy-from": "fishing_pond_0_1", "type": "overmap_terrain", "name": "fishing pond", "sym": "#", - "color": "i_blue", - "see_cost": 5, - "mondensity": 2 + "color": "i_blue" }, { "id": "fishing_pond_1_0", + "copy-from": "fishing_pond_1_0", "type": "overmap_terrain", "name": "fishing pond", "sym": "#", - "color": "i_blue", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "i_blue" }, { "id": "fishing_pond_1_1", + "copy-from": "fishing_pond_1_1", "type": "overmap_terrain", "name": "fishing pond", "sym": "#", - "color": "i_blue", - "see_cost": 5, - "mondensity": 2 + "color": "i_blue" }, { "id": "hunting_blind", + "copy-from": "hunting_blind", "type": "overmap_terrain", "name": "hunting blind", "sym": "h", - "color": "brown", - "see_cost": 5, - "mondensity": 2, - "extras": "field" + "color": "brown" }, { "id": "small_storage_units", + "copy-from": "small_storage_units", "type": "overmap_terrain", "name": "small storage units", "sym": "s", - "color": "magenta", - "see_cost": 5, - "mondensity": 2, - "extras": "build", - "flags": [ "SIDEWALK" ] + "color": "magenta" }, { "id": "cemetery_small", + "copy-from": "cemetery_small", "type": "overmap_terrain", "name": "small cemetery", "sym": "c", - "color": "white", - "see_cost": 5, - "mondensity": 2, - "extras": "build", - "flags": [ "SIDEWALK" ] + "color": "white" }, { "type": "overmap_terrain", "abstract": "generic_mansion_no_sidewalk", + "copy-from": "generic_mansion_no_sidewalk", "name": "mansion", "sym": "m", - "color": "i_light_green", - "see_cost": 5, - "mondensity": 2 + "color": "i_light_green" }, { "type": "overmap_terrain", "abstract": "generic_mansion", - "copy-from": "generic_mansion_no_sidewalk", - "flags": [ "SIDEWALK" ] + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_c", @@ -8255,272 +7090,240 @@ }, { "id": "fire_station", + "copy-from": "fire_station", "type": "overmap_terrain", "name": "fire station", "sym": "f", - "color": "yellow", - "see_cost": 5, - "mondensity": 2, - "extras": "build" + "color": "yellow" }, { "id": "s_arcade", + "copy-from": "s_arcade", "type": "overmap_terrain", "name": "arcade", "sym": "a", - "color": "blue", - "see_cost": 5, - "mondensity": 2 + "color": "blue" }, { "id": "bowling_alley", + "copy-from": "bowling_alley", "type": "overmap_terrain", "name": "bowling alley", "sym": "b", - "color": "blue", - "see_cost": 5, - "mondensity": 2, - "extras": "build" + "color": "blue" }, { "id": "gym", + "copy-from": "gym", "type": "overmap_terrain", "name": "boxing gym", "sym": "b", - "color": "blue", - "see_cost": 5, - "mondensity": 3, - "extras": "build" + "color": "blue" }, { "id": "s_gardening", + "copy-from": "s_gardening", "type": "overmap_terrain", "name": "gardening supply", "sym": "g", - "color": "brown", - "see_cost": 5, - "mondensity": 2, - "extras": "build" + "color": "brown" }, { "id": "gym_fitness", + "copy-from": "gym_fitness", "type": "overmap_terrain", "name": "fitness gym", "sym": "f", - "color": "blue", - "see_cost": 5, - "mondensity": 2, - "extras": "build" + "color": "blue" }, { "id": "veterinarian", + "copy-from": "veterinarian", "type": "overmap_terrain", "name": "animal clinic", "sym": "a", - "color": "light_red", - "see_cost": 5, - "mondensity": 2, - "extras": "build" + "color": "light_red" }, { "id": "mortuary", + "copy-from": "mortuary", "type": "overmap_terrain", "name": "mortuary", "sym": "m", - "color": "blue", - "see_cost": 5, - "mondensity": 6, - "extras": "build" + "color": "blue" }, { "id": "s_jewelry", + "copy-from": "s_jewelry", "type": "overmap_terrain", "name": "jewelry store", "sym": "j", - "color": "magenta", - "see_cost": 5, - "mondensity": 2, - "extras": "build" + "color": "magenta" }, { "id": "home_improvement", + "copy-from": "home_improvement", "type": "overmap_terrain", "name": "home improvement store", "sym": "h", - "color": "light_cyan", - "see_cost": 5, - "mondensity": 2, - "extras": "build" + "color": "light_cyan" }, { "id": "s_antique", + "copy-from": "s_antique", "type": "overmap_terrain", "name": "antique store", "sym": "a", - "color": "magenta", - "see_cost": 5, - "mondensity": 2, - "extras": "build" + "color": "magenta" }, { "id": "dojo", + "copy-from": "dojo", "type": "overmap_terrain", "name": "dojo", "sym": "d", - "color": "blue", - "see_cost": 5, - "mondensity": 2, - "extras": "build" + "color": "blue" }, { "id": "s_laundromat", + "copy-from": "s_laundromat", "type": "overmap_terrain", "name": "laundromat", "sym": "l", - "color": "blue", - "see_cost": 5, - "mondensity": 2, - "extras": "build" + "color": "blue" }, { "id": "museum", + "copy-from": "museum", "type": "overmap_terrain", "name": "museum", "sym": "m", - "color": "white", - "see_cost": 5, - "mondensity": 2, - "extras": "build" + "color": "white" }, { "type": "overmap_terrain", "id": "lumberyard_0_0", + "copy-from": "lumberyard_0_0", "name": "lumberyard", - "copy-from": "generic_city_building", "sym": "l", "color": "i_brown" }, { "type": "overmap_terrain", "id": "lumberyard_0_1", + "copy-from": "lumberyard_0_1", "name": "lumberyard", - "copy-from": "generic_city_building_no_sidewalk", "sym": "l", "color": "i_brown" }, { "type": "overmap_terrain", "id": "lumberyard_1_0", + "copy-from": "lumberyard_1_0", "name": "lumberyard", - "copy-from": "generic_city_building_no_sidewalk", "sym": "l", "color": "i_brown" }, { "type": "overmap_terrain", "id": "lumberyard_1_1", + "copy-from": "lumberyard_1_1", "name": "lumberyard", - "copy-from": "generic_city_building_no_sidewalk", "sym": "l", "color": "i_brown" }, { "type": "overmap_terrain", "id": "construction_site", + "copy-from": "construction_site", "name": "construction site", - "copy-from": "generic_city_building", "sym": "c", "color": "light_gray" }, { "type": "overmap_terrain", "id": "post_office", + "copy-from": "post_office", "name": "post office", - "copy-from": "generic_city_building", "sym": "p", "color": "blue" }, { "type": "overmap_terrain", "id": "candy_shop", + "copy-from": "candy_shop", "name": "candy shop", - "copy-from": "generic_city_building", "sym": "c", "color": "green" }, { "type": "overmap_terrain", "id": "bakery", + "copy-from": "bakery", "name": "bakery", - "copy-from": "generic_city_building", "sym": "b", "color": "green" }, { "type": "overmap_terrain", "id": "icecream_shop", + "copy-from": "icecream_shop", "name": "icecream shop", - "copy-from": "generic_city_building", "sym": "s", "color": "green" }, { "type": "overmap_terrain", "id": "bandit_garage_1", + "copy-from": "bandit_garage_1", "name": "forest", "sym": "#", - "color": "green", - "see_cost": 5, - "extras": "field", - "flags": [ "NO_ROTATE" ] + "color": "green" }, { "type": "overmap_terrain", "id": "bandit_garage_2", + "copy-from": "bandit_garage_2", "name": "forest", "sym": "b", - "color": "light_blue", - "see_cost": 5, - "extras": "field", - "flags": [ "NO_ROTATE" ] + "color": "light_blue" }, { "id": "pavilion", + "copy-from": "pavilion", "type": "overmap_terrain", - "copy-from": "generic_city_building", "name": "pavilion", "sym": "p", "color": "brown" }, { "id": "animalpound", + "copy-from": "animalpound", "type": "overmap_terrain", "name": "animal pound", "sym": "a", - "color": "magenta", - "see_cost": 5, - "extras": "build" + "color": "magenta" }, { "type": "overmap_terrain", "id": "s_butcher", + "copy-from": "s_butcher", "name": "butcher shop", - "copy-from": "generic_city_building", "sym": "b", "color": "green" }, { "type": "overmap_terrain", "id": "dollarstore", - "copy-from": "generic_city_building", + "copy-from": "dollarstore", "name": "dollar store", "sym": "d", "color": "magenta" }, { "id": "cemetery_small", + "copy-from": "cemetery_small", "type": "overmap_terrain", - "copy-from": "generic_city_building", "name": "small cemetery", "sym": "c", "color": "white" @@ -8528,63 +7331,55 @@ { "type": "overmap_terrain", "id": "Cemetery_1a", + "copy-from": "Cemetery_1a", "name": "cemetery", "sym": "c", - "color": "i_white", - "see_cost": 5, - "extras": "field", - "mondensity": 2 + "color": "i_white" }, { "type": "overmap_terrain", "id": "Cemetery_1b", + "copy-from": "Cemetery_1b", "name": "cemetery", "sym": "c", - "color": "i_white", - "see_cost": 5, - "extras": "field", - "mondensity": 2 + "color": "i_white" }, { "type": "overmap_terrain", "id": "cemetery_4square_00", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "cemetery_4square_00", "name": "religious cemetery", "sym": "c", - "color": "white", - "extras": "field" + "color": "white" }, { "type": "overmap_terrain", "id": "cemetery_4square_10", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "cemetery_4square_10", "name": "religious cemetery", "sym": "c", - "color": "white", - "extras": "field" + "color": "white" }, { "type": "overmap_terrain", "id": "cemetery_4square_01", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "cemetery_4square_01", "name": "religious cemetery", "sym": "c", - "color": "white", - "extras": "field" + "color": "white" }, { "type": "overmap_terrain", "id": "cemetery_4square_11", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "cemetery_4square_11", "name": "religious cemetery", "sym": "c", - "color": "white", - "extras": "field" + "color": "white" }, { "type": "overmap_terrain", "id": "emptyresidentiallot", - "copy-from": "generic_city_building", + "copy-from": "emptyresidentiallot", "name": "empty residential lot", "sym": "e", "color": "light_gray" @@ -8592,7 +7387,7 @@ { "type": "overmap_terrain", "id": "stripclub", - "copy-from": "generic_city_building", + "copy-from": "stripclub", "name": "strip club", "sym": "s", "color": "blue" @@ -8600,7 +7395,7 @@ { "type": "overmap_terrain", "id": "stadium_0_0", - "copy-from": "generic_city_building", + "copy-from": "stadium_0_0", "name": "stadium parking", "sym": "p", "color": "light_blue" @@ -8608,7 +7403,7 @@ { "type": "overmap_terrain", "id": "stadium_1_0", - "copy-from": "generic_city_building", + "copy-from": "stadium_1_0", "name": "stadium parking", "sym": "p", "color": "light_blue" @@ -8616,7 +7411,7 @@ { "type": "overmap_terrain", "id": "stadium_2_0", - "copy-from": "generic_city_building", + "copy-from": "stadium_2_0", "name": "stadium parking", "sym": "p", "color": "light_blue" @@ -8624,7 +7419,7 @@ { "type": "overmap_terrain", "id": "stadium_3_0", - "copy-from": "generic_city_building", + "copy-from": "stadium_3_0", "name": "stadium parking", "sym": "p", "color": "light_blue" @@ -8632,7 +7427,7 @@ { "type": "overmap_terrain", "id": "stadium_0_1", - "copy-from": "generic_city_building", + "copy-from": "stadium_0_1", "name": "stadium", "sym": "s", "color": "i_blue" @@ -8640,7 +7435,7 @@ { "type": "overmap_terrain", "id": "stadium_1_1", - "copy-from": "generic_city_building", + "copy-from": "stadium_1_1", "name": "stadium entrance", "sym": "S", "color": "i_blue" @@ -8648,7 +7443,7 @@ { "type": "overmap_terrain", "id": "stadium_2_1", - "copy-from": "generic_city_building", + "copy-from": "stadium_2_1", "name": "stadium", "sym": "s", "color": "i_blue" @@ -8656,7 +7451,7 @@ { "type": "overmap_terrain", "id": "stadium_3_1", - "copy-from": "generic_city_building", + "copy-from": "stadium_3_1", "name": "stadium", "sym": "s", "color": "i_blue" @@ -8664,7 +7459,7 @@ { "type": "overmap_terrain", "id": "stadium_0_2", - "copy-from": "generic_city_building", + "copy-from": "stadium_0_2", "name": "stadium", "sym": "s", "color": "i_blue" @@ -8672,7 +7467,7 @@ { "type": "overmap_terrain", "id": "stadium_1_2", - "copy-from": "generic_city_building", + "copy-from": "stadium_1_2", "name": "stadium field", "sym": "s", "color": "i_blue" @@ -8680,7 +7475,7 @@ { "type": "overmap_terrain", "id": "stadium_2_2", - "copy-from": "generic_city_building", + "copy-from": "stadium_2_2", "name": "stadium field", "sym": "s", "color": "i_blue" @@ -8688,7 +7483,7 @@ { "type": "overmap_terrain", "id": "stadium_3_2", - "copy-from": "generic_city_building", + "copy-from": "stadium_3_2", "name": "stadium", "sym": "s", "color": "i_blue" @@ -8696,7 +7491,7 @@ { "type": "overmap_terrain", "id": "stadium_0_3", - "copy-from": "generic_city_building", + "copy-from": "stadium_0_3", "name": "stadium", "sym": "s", "color": "i_blue" @@ -8704,7 +7499,7 @@ { "type": "overmap_terrain", "id": "stadium_1_3", - "copy-from": "generic_city_building", + "copy-from": "stadium_1_3", "name": "stadium field", "sym": "s", "color": "i_blue" @@ -8712,7 +7507,7 @@ { "type": "overmap_terrain", "id": "stadium_2_3", - "copy-from": "generic_city_building", + "copy-from": "stadium_2_3", "name": "stadium field", "sym": "s", "color": "i_blue" @@ -8720,7 +7515,7 @@ { "type": "overmap_terrain", "id": "stadium_3_3", - "copy-from": "generic_city_building", + "copy-from": "stadium_3_3", "name": "stadium", "sym": "s", "color": "i_blue" @@ -8728,7 +7523,7 @@ { "type": "overmap_terrain", "id": "stadium_0_4", - "copy-from": "generic_city_building", + "copy-from": "stadium_0_4", "name": "stadium garage", "sym": "s", "color": "i_blue" @@ -8736,7 +7531,7 @@ { "type": "overmap_terrain", "id": "stadium_1_4", - "copy-from": "generic_city_building", + "copy-from": "stadium_1_4", "name": "stadium", "sym": "s", "color": "i_blue" @@ -8744,7 +7539,7 @@ { "type": "overmap_terrain", "id": "stadium_2_4", - "copy-from": "generic_city_building", + "copy-from": "stadium_2_4", "name": "stadium", "sym": "s", "color": "i_blue" @@ -8752,7 +7547,7 @@ { "type": "overmap_terrain", "id": "stadium_3_4", - "copy-from": "generic_city_building", + "copy-from": "stadium_3_4", "name": "stadium bar", "sym": "s", "color": "i_blue" @@ -8760,7 +7555,7 @@ { "type": "overmap_terrain", "id": "golfcourse_00", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "golfcourse_00", "name": "golf course", "sym": "g", "color": "i_blue" @@ -8768,7 +7563,7 @@ { "type": "overmap_terrain", "id": "golfcourse_01", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "golfcourse_01", "name": "golf course", "sym": "g", "color": "i_blue" @@ -8776,7 +7571,7 @@ { "type": "overmap_terrain", "id": "golfcourse_02", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "golfcourse_02", "name": "golf course", "sym": "g", "color": "i_blue" @@ -8784,7 +7579,7 @@ { "type": "overmap_terrain", "id": "golfcourse_10", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "golfcourse_10", "name": "golf course", "sym": "g", "color": "i_blue" @@ -8792,7 +7587,7 @@ { "type": "overmap_terrain", "id": "golfcourse_11", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "golfcourse_11", "name": "golf course", "sym": "g", "color": "i_blue" @@ -8800,7 +7595,7 @@ { "type": "overmap_terrain", "id": "golfcourse_12", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "golfcourse_12", "name": "golf course", "sym": "g", "color": "i_blue" @@ -8808,7 +7603,7 @@ { "type": "overmap_terrain", "id": "golfcourse_20", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "golfcourse_20", "name": "golf course", "sym": "g", "color": "i_blue" @@ -8816,7 +7611,7 @@ { "type": "overmap_terrain", "id": "golfcourse_21", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "golfcourse_21", "name": "golf course", "sym": "g", "color": "i_blue" @@ -8824,7 +7619,7 @@ { "type": "overmap_terrain", "id": "golfcourse_22", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "golfcourse_22", "name": "golf course", "sym": "g", "color": "i_blue" @@ -8832,7 +7627,7 @@ { "type": "overmap_terrain", "id": "golfcourse_30", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "golfcourse_30", "name": "golf course parking lot", "sym": "g", "color": "i_blue" @@ -8840,7 +7635,7 @@ { "type": "overmap_terrain", "id": "golfcourse_31", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "golfcourse_31", "name": "golf course service building", "sym": "g", "color": "i_blue" @@ -8848,7 +7643,7 @@ { "type": "overmap_terrain", "id": "golfcourse_32", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "golfcourse_32", "name": "golf course", "sym": "g", "color": "i_blue" @@ -8856,7 +7651,7 @@ { "type": "overmap_terrain", "id": "s_daycare", - "copy-from": "generic_city_building", + "copy-from": "s_daycare", "name": "daycare center", "sym": "d", "color": "light_green" @@ -8864,7 +7659,7 @@ { "type": "overmap_terrain", "id": "s_vfw", - "copy-from": "generic_city_building", + "copy-from": "s_vfw", "name": "war memorial", "sym": "w", "color": "yellow" @@ -8872,7 +7667,7 @@ { "type": "overmap_terrain", "id": "dumpsite", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "dumpsite", "name": "dumpsite", "sym": "d", "color": "light_gray" @@ -8880,7 +7675,7 @@ { "type": "overmap_terrain", "id": "dump", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "dump", "name": "dump", "sym": "d", "color": "light_gray" @@ -8888,7 +7683,7 @@ { "type": "overmap_terrain", "id": "landfill", - "copy-from": "generic_city_building", + "copy-from": "landfill", "name": "landfill", "sym": "l", "color": "light_gray" @@ -8896,7 +7691,7 @@ { "type": "overmap_terrain", "id": "landscapingsupplyco_1a", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "landscapingsupplyco_1a", "name": "landscaping supply co", "sym": "l", "color": "i_light_gray" @@ -8904,7 +7699,7 @@ { "type": "overmap_terrain", "id": "landscapingsupplyco_1b", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "landscapingsupplyco_1b", "name": "landscaping supply co", "sym": "l", "color": "i_light_gray" @@ -8912,7 +7707,7 @@ { "type": "overmap_terrain", "id": "emptycommerciallot", - "copy-from": "generic_city_building", + "copy-from": "emptycommerciallot", "name": "empty commercial lot", "sym": "e", "color": "light_gray" @@ -8920,7 +7715,7 @@ { "type": "overmap_terrain", "id": "moonshine_still", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "moonshine_still", "name": "moonshine still", "sym": "m", "color": "green" @@ -8928,7 +7723,7 @@ { "type": "overmap_terrain", "id": "s_petstore", - "copy-from": "generic_city_building", + "copy-from": "s_petstore", "name": "pet supply store", "sym": "p", "color": "magenta" @@ -8936,43 +7731,39 @@ { "type": "overmap_terrain", "id": "shipwreck_river_1", + "copy-from": "shipwreck_river_1", "name": "shipwreck", "sym": "s", - "color": "i_pink", - "see_cost": 4, - "flags": [ "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "shipwreck_river_2", + "copy-from": "shipwreck_river_2", "name": "shipwreck", "sym": "s", - "color": "i_pink", - "see_cost": 4, - "flags": [ "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "shipwreck_river_3", + "copy-from": "shipwreck_river_3", "name": "razorclaw nest", "sym": "s", - "color": "i_pink", - "see_cost": 4, - "flags": [ "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "shipwreck_river_4", + "copy-from": "shipwreck_river_4", "name": "shipwreck", "sym": "s", - "color": "i_pink", - "see_cost": 4, - "flags": [ "NO_ROTATE" ] + "color": "i_pink" }, { "type": "overmap_terrain", "id": "trailerparksmall0", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "trailerparksmall0", "name": "trailer park", "sym": "t", "color": "i_light_green" @@ -8980,7 +7771,7 @@ { "type": "overmap_terrain", "id": "trailerparksmall1", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "trailerparksmall1", "name": "trailer park", "sym": "t", "color": "i_light_green" @@ -8988,7 +7779,7 @@ { "type": "overmap_terrain", "id": "trailerparksmall2", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "trailerparksmall2", "name": "trailer park", "sym": "t", "color": "i_light_green" @@ -8996,7 +7787,7 @@ { "type": "overmap_terrain", "id": "large_storage_units_3", - "copy-from": "generic_city_building", + "copy-from": "large_storage_units_3", "name": "storage units", "sym": "s", "color": "i_magenta" @@ -9004,7 +7795,7 @@ { "type": "overmap_terrain", "id": "large_storage_units_2", - "copy-from": "generic_city_building", + "copy-from": "large_storage_units_2", "name": "storage units", "sym": "s", "color": "i_magenta" @@ -9012,7 +7803,7 @@ { "type": "overmap_terrain", "id": "large_storage_units_1", - "copy-from": "generic_city_building", + "copy-from": "large_storage_units_1", "name": "storage units", "sym": "s", "color": "i_magenta" @@ -9020,7 +7811,7 @@ { "type": "overmap_terrain", "id": "medium_storage_units_1", - "copy-from": "generic_city_building", + "copy-from": "medium_storage_units_1", "name": "storage units", "sym": "s", "color": "i_magenta" @@ -9028,7 +7819,7 @@ { "type": "overmap_terrain", "id": "medium_storage_units_2", - "copy-from": "generic_city_building", + "copy-from": "medium_storage_units_2", "name": "storage units", "sym": "s", "color": "i_magenta" @@ -9036,7 +7827,7 @@ { "type": "overmap_terrain", "id": "junkyard_1a", - "copy-from": "generic_city_building", + "copy-from": "junkyard_1a", "name": "junkyard", "sym": "j", "color": "i_light_gray" @@ -9044,7 +7835,7 @@ { "type": "overmap_terrain", "id": "junkyard_1b", - "copy-from": "generic_city_building", + "copy-from": "junkyard_1b", "name": "junkyard", "sym": "j", "color": "i_light_gray" @@ -9052,7 +7843,7 @@ { "type": "overmap_terrain", "id": "junkyard_2a", - "copy-from": "generic_city_building", + "copy-from": "junkyard_2a", "name": "junkyard", "sym": "j", "color": "i_light_gray" @@ -9060,7 +7851,7 @@ { "type": "overmap_terrain", "id": "junkyard_2b", - "copy-from": "generic_city_building", + "copy-from": "junkyard_2b", "name": "junkyard", "sym": "j", "color": "i_light_gray" @@ -9068,7 +7859,7 @@ { "type": "overmap_terrain", "id": "s_baseballfield_a1", - "copy-from": "generic_city_building", + "copy-from": "s_baseballfield_a1", "name": "baseball field", "sym": "b", "color": "i_blue" @@ -9076,7 +7867,7 @@ { "type": "overmap_terrain", "id": "s_baseballfield_a2", - "copy-from": "generic_city_building", + "copy-from": "s_baseballfield_a2", "name": "baseball field", "sym": "b", "color": "i_blue" @@ -9084,7 +7875,7 @@ { "type": "overmap_terrain", "id": "s_baseballfield_b1", - "copy-from": "generic_city_building", + "copy-from": "s_baseballfield_b1", "name": "baseball field", "sym": "b", "color": "i_blue" @@ -9092,24 +7883,23 @@ { "type": "overmap_terrain", "id": "s_baseballfield_b2", - "copy-from": "generic_city_building", + "copy-from": "s_baseballfield_b2", "name": "baseball field", "sym": "b", "color": "i_blue" }, { "id": "animalshelter", + "copy-from": "animalshelter", "type": "overmap_terrain", "name": "animal shelter", "sym": "a", - "color": "yellow", - "see_cost": 5, - "extras": "build" + "color": "yellow" }, { "type": "overmap_terrain", "id": "desolatebarn", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "desolatebarn", "name": "desolate barn", "sym": "d", "color": "brown" @@ -9117,7 +7907,7 @@ { "type": "overmap_terrain", "id": "homelesscamp", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "homelesscamp", "name": "homeless camp", "sym": "h", "color": "light_green" @@ -9125,15 +7915,15 @@ { "type": "overmap_terrain", "id": "ranch_camp_17", + "copy-from": "ranch_camp_17", "name": "pond", "sym": "#", - "color": "blue", - "see_cost": 2, - "flags": [ "NO_ROTATE" ] + "color": "blue" }, { "type": "overmap_terrain", "id": "mass_grave", + "copy-from": "mass_grave", "name": "mass grave", "sym": "m", "color": "red" @@ -9141,7 +7931,7 @@ { "type": "overmap_terrain", "id": "recyclecenter", - "copy-from": "generic_city_building", + "copy-from": "recyclecenter", "name": "recycle center", "sym": "r", "color": "light_gray" @@ -9149,7 +7939,7 @@ { "type": "overmap_terrain", "id": "music_venue", - "copy-from": "generic_city_building", + "copy-from": "music_venue", "name": "music venue", "sym": "m", "color": "blue" @@ -9157,24 +7947,23 @@ { "type": "overmap_terrain", "id": "mine_entrance", + "copy-from": "mine_entrance", "name": "mine entrance", "sym": "m", - "color": "light_gray", - "see_cost": 5, - "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + "color": "light_gray" }, { "type": "overmap_terrain", "id": "s_bike_shop", + "copy-from": "s_bike_shop", "name": "bike shop", - "copy-from": "generic_city_building", "color": "light_blue", "sym": "b" }, { "type": "overmap_terrain", "id": "sugar_house", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "sugar_house", "name": "sugar house", "sym": "s", "color": "green" @@ -9182,7 +7971,7 @@ { "type": "overmap_terrain", "id": "s_reststop_1", - "copy-from": "generic_city_building", + "copy-from": "s_reststop_1", "name": "rest area", "sym": "r", "color": "i_yellow" @@ -9190,7 +7979,7 @@ { "type": "overmap_terrain", "id": "s_reststop_2", - "copy-from": "generic_city_building", + "copy-from": "s_reststop_2", "name": "rest area", "sym": "r", "color": "i_yellow" @@ -9198,7 +7987,7 @@ { "type": "overmap_terrain", "id": "s_restparking_1", - "copy-from": "generic_city_building", + "copy-from": "s_restparking_1", "name": "rest area parking", "sym": "p", "color": "light_blue" @@ -9206,51 +7995,47 @@ { "type": "overmap_terrain", "id": "s_restparking_2", - "copy-from": "generic_city_building", + "copy-from": "s_restparking_2", "name": "rest area parking", "sym": "p", "color": "light_blue" }, { "id": "dairy_farm_NW", + "copy-from": "dairy_farm_NW", "type": "overmap_terrain", "name": "dairy farm", "sym": "d", - "color": "i_brown", - "see_cost": 1, - "flags": [ "SIDEWALK", "NO_ROTATE" ] + "color": "i_brown" }, { "id": "dairy_farm_NE", + "copy-from": "dairy_farm_NE", "type": "overmap_terrain", "name": "dairy farm", "sym": "d", - "color": "i_brown", - "see_cost": 1, - "flags": [ "SIDEWALK", "NO_ROTATE" ] + "color": "i_brown" }, { "id": "dairy_farm_SE", + "copy-from": "dairy_farm_SE", "type": "overmap_terrain", "name": "dairy farm", "sym": "d", - "color": "i_brown", - "see_cost": 5, - "flags": [ "SIDEWALK", "NO_ROTATE" ] + "color": "i_brown" }, { "id": "dairy_farm_SW", + "copy-from": "dairy_farm_SW", "type": "overmap_terrain", "name": "dairy farm", "sym": "d", - "color": "i_brown", - "see_cost": 5, - "flags": [ "SIDEWALK", "NO_ROTATE" ] + "color": "i_brown" }, { "type": "overmap_terrain", "id": "s_shoppingplaza_a1", - "copy-from": "generic_city_building", + "copy-from": "s_shoppingplaza_a1", "name": "parking lot", "sym": "p", "color": "light_blue" @@ -9258,7 +8043,7 @@ { "type": "overmap_terrain", "id": "s_shoppingplaza_a2", - "copy-from": "generic_city_building", + "copy-from": "s_shoppingplaza_a2", "name": "parking lot", "sym": "p", "color": "light_blue" @@ -9266,7 +8051,7 @@ { "type": "overmap_terrain", "id": "s_shoppingplaza_a3", - "copy-from": "generic_city_building", + "copy-from": "s_shoppingplaza_a3", "name": "parking lot", "sym": "p", "color": "light_blue" @@ -9274,7 +8059,7 @@ { "type": "overmap_terrain", "id": "s_shoppingplaza_a4", - "copy-from": "generic_city_building", + "copy-from": "s_shoppingplaza_a4", "name": "parking lot", "sym": "p", "color": "light_blue" @@ -9282,7 +8067,7 @@ { "type": "overmap_terrain", "id": "s_shoppingplaza_a5", - "copy-from": "generic_city_building", + "copy-from": "s_shoppingplaza_a5", "name": "parking lot", "sym": "p", "color": "light_blue" @@ -9290,7 +8075,7 @@ { "type": "overmap_terrain", "id": "s_shoppingplaza_a6", - "copy-from": "generic_city_building", + "copy-from": "s_shoppingplaza_a6", "name": "abandoned shopping plaza", "sym": "a", "color": "i_light_gray" @@ -9298,7 +8083,7 @@ { "type": "overmap_terrain", "id": "s_shoppingplaza_b1", - "copy-from": "generic_city_building", + "copy-from": "s_shoppingplaza_b1", "name": "abandoned shopping plaza", "sym": "a", "color": "i_light_gray" @@ -9306,7 +8091,7 @@ { "type": "overmap_terrain", "id": "s_shoppingplaza_b2", - "copy-from": "generic_city_building", + "copy-from": "s_shoppingplaza_b2", "name": "abandoned shopping plaza", "sym": "a", "color": "i_light_gray" @@ -9314,7 +8099,7 @@ { "type": "overmap_terrain", "id": "s_shoppingplaza_b3", - "copy-from": "generic_city_building", + "copy-from": "s_shoppingplaza_b3", "name": "abandoned shopping plaza", "sym": "a", "color": "i_light_gray" @@ -9322,7 +8107,7 @@ { "type": "overmap_terrain", "id": "s_shoppingplaza_b4", - "copy-from": "generic_city_building", + "copy-from": "s_shoppingplaza_b4", "name": "abandoned shopping plaza", "sym": "a", "color": "i_light_gray" @@ -9330,7 +8115,7 @@ { "type": "overmap_terrain", "id": "s_shoppingplaza_b5", - "copy-from": "generic_city_building", + "copy-from": "s_shoppingplaza_b5", "name": "abandoned shopping plaza", "sym": "a", "color": "i_light_gray" @@ -9338,7 +8123,7 @@ { "type": "overmap_terrain", "id": "s_shoppingplaza_b6", - "copy-from": "generic_city_building", + "copy-from": "s_shoppingplaza_b6", "name": "abandoned shopping plaza", "sym": "a", "color": "i_light_gray" @@ -9346,7 +8131,7 @@ { "type": "overmap_terrain", "id": "PublicPond_1a", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "PublicPond_1a", "name": "public pond", "sym": "#", "color": "i_blue" @@ -9354,7 +8139,7 @@ { "type": "overmap_terrain", "id": "PublicPond_1b", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "PublicPond_1b", "name": "public pond", "sym": "#", "color": "i_blue" @@ -9362,7 +8147,7 @@ { "type": "overmap_terrain", "id": "zoo_0_0", - "copy-from": "generic_city_building", + "copy-from": "zoo_0_0", "name": "zoo parking", "sym": "p", "color": "light_blue" @@ -9370,7 +8155,7 @@ { "type": "overmap_terrain", "id": "zoo_1_0", - "copy-from": "generic_city_building", + "copy-from": "zoo_1_0", "name": "zoo parking", "sym": "p", "color": "light_blue" @@ -9378,7 +8163,7 @@ { "type": "overmap_terrain", "id": "zoo_2_0", - "copy-from": "generic_city_building", + "copy-from": "zoo_2_0", "name": "zoo pavilion", "sym": "Z", "color": "i_blue" @@ -9386,7 +8171,7 @@ { "type": "overmap_terrain", "id": "zoo_0_1", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "zoo_0_1", "name": "zoo", "sym": "Z", "color": "i_blue" @@ -9394,7 +8179,7 @@ { "type": "overmap_terrain", "id": "zoo_1_1", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "zoo_1_1", "name": "zoo", "sym": "Z", "color": "i_blue" @@ -9402,7 +8187,7 @@ { "type": "overmap_terrain", "id": "zoo_2_1", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "zoo_2_1", "name": "zoo", "sym": "z", "color": "i_blue" @@ -9410,7 +8195,7 @@ { "type": "overmap_terrain", "id": "zoo_0_2", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "zoo_0_2", "name": "zoo", "sym": "z", "color": "i_blue" @@ -9418,7 +8203,7 @@ { "type": "overmap_terrain", "id": "zoo_1_2", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "zoo_1_2", "name": "zoo", "sym": "z", "color": "i_blue" @@ -9426,7 +8211,7 @@ { "type": "overmap_terrain", "id": "zoo_2_2", - "copy-from": "generic_city_building_no_sidewalk", + "copy-from": "zoo_2_2", "name": "zoo", "sym": "z", "color": "i_blue" @@ -9434,229 +8219,209 @@ { "type": "overmap_terrain", "id": "shootingrange_1a", + "copy-from": "shootingrange_1a", "name": "shooting range", "sym": "r", - "color": "i_red", - "see_cost": 5, - "extras": "field", - "mondensity": 2 + "color": "i_red" }, { "type": "overmap_terrain", "id": "shootingrange_2a", + "copy-from": "shootingrange_2a", "name": "shooting range", "sym": "r", - "color": "i_red", - "see_cost": 5, - "extras": "field", - "mondensity": 2 + "color": "i_red" }, { "type": "overmap_terrain", "id": "barn_aban1", + "copy-from": "barn_aban1", "name": "ruined cabin - barn", "sym": "r", - "color": "i_light_gray", - "see_cost": 4 + "color": "i_light_gray" }, { "type": "overmap_terrain", "id": "car_corner_aban1", + "copy-from": "car_corner_aban1", "name": "ruined cabin - car corner", "sym": "r", - "color": "i_light_gray", - "see_cost": 4 + "color": "i_light_gray" }, { "type": "overmap_terrain", "id": "cabin_aban1", + "copy-from": "cabin_aban1", "name": "ruined cabin", "sym": "r", - "color": "i_light_gray", - "see_cost": 4 + "color": "i_light_gray" }, { "type": "overmap_terrain", "id": "dirtplaza_aban1", + "copy-from": "dirtplaza_aban1", "name": "ruined cabin - dirt plaza", "sym": "r", - "color": "i_light_gray", - "see_cost": 4 + "color": "i_light_gray" }, { "type": "overmap_terrain", "id": "dirtroad1_aban1", + "copy-from": "dirtroad1_aban1", "name": "forest", "sym": "#", - "color": "green", - "see_cost": 4 + "color": "green" }, { "type": "overmap_terrain", "id": "dirtroad2_aban1", + "copy-from": "dirtroad2_aban1", "name": "forest", "sym": "#", - "color": "green", - "see_cost": 4 + "color": "green" }, { "type": "overmap_terrain", "id": "irradiator_1_1", + "copy-from": "irradiator_1_1", "name": "irradiation plant", "sym": "i", - "color": "light_green", - "see_cost": 5, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "irradiator_1_2", + "copy-from": "irradiator_1_2", "name": "irradiation plant", "sym": "i", - "color": "light_green", - "see_cost": 5, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "irradiator_1_3", + "copy-from": "irradiator_1_3", "name": "irradiation plant", "sym": "i", - "color": "light_green", - "see_cost": 5, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "irradiator_1_4", + "copy-from": "irradiator_1_4", "name": "irradiation plant", "sym": "i", - "color": "light_green", - "see_cost": 5, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "irradiator_1_5", + "copy-from": "irradiator_1_5", "name": "irradiation plant", "sym": "i", - "color": "light_green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "irradiator_1_6", + "copy-from": "irradiator_1_6", "name": "irradiation plant", "sym": "i", - "color": "light_green", - "see_cost": 5, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "irradiator_1_7", + "copy-from": "irradiator_1_7", "name": "irradiation plant", "sym": "i", - "color": "light_green", - "see_cost": 5 + "color": "light_green" }, { "type": "overmap_terrain", "id": "irradiator_1_8", + "copy-from": "irradiator_1_8", "name": "irradiation plant", "sym": "I", - "color": "light_green", - "see_cost": 5, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "irradiator_1_9", + "copy-from": "irradiator_1_9", "name": "irradiation plant", "sym": "i", - "color": "light_green", - "see_cost": 5 + "color": "light_green" }, { "type": "overmap_terrain", "id": "irradiator_1_1_roof", + "copy-from": "irradiator_1_1_roof", "name": "irradiation plant", "sym": "i", - "color": "light_green", - "see_cost": 5, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "irradiator_1_2_roof", + "copy-from": "irradiator_1_2_roof", "name": "irradiation plant", "sym": "i", - "color": "light_green", - "see_cost": 5, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "irradiator_1_3_roof", + "copy-from": "irradiator_1_3_roof", "name": "irradiation plant", "sym": "i", - "color": "light_green", - "see_cost": 5, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "irradiator_1_4_roof", + "copy-from": "irradiator_1_4_roof", "name": "irradiation plant", "sym": "i", - "color": "light_green", - "see_cost": 5, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "irradiator_1_5_roof", + "copy-from": "irradiator_1_5_roof", "name": "irradiation plant", "sym": "i", - "color": "light_green", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "irradiator_1_6_roof", + "copy-from": "irradiator_1_6_roof", "name": "irradiation plant", "sym": "i", - "color": "light_green", - "see_cost": 5, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "irradiator_1_7_roof", + "copy-from": "irradiator_1_7_roof", "name": "irradiation plant", "sym": "i", - "color": "light_green", - "see_cost": 5 + "color": "light_green" }, { "type": "overmap_terrain", "id": "irradiator_1_8_roof", + "copy-from": "irradiator_1_8_roof", "name": "irradiation plant", "sym": "I", - "color": "light_green", - "see_cost": 5, - "flags": [ "SIDEWALK" ] + "color": "light_green" }, { "type": "overmap_terrain", "id": "irradiator_1_9_roof", + "copy-from": "irradiator_1_9_roof", "name": "irradiation plant", "sym": "i", - "color": "light_green", - "see_cost": 5 + "color": "light_green" } ] diff --git a/data/raw/keybindings.json b/data/raw/keybindings.json index 6ba2c763c7ecb..3194cefd5f263 100644 --- a/data/raw/keybindings.json +++ b/data/raw/keybindings.json @@ -913,6 +913,20 @@ "name": "Toggle Snap to Target", "bindings": [ { "input_method": "keyboard", "key": "*" } ] }, + { + "type": "keybinding", + "name": "Zoom In", + "category": "TARGET", + "id": "zoom_in", + "bindings": [ { "input_method": "keyboard", "key": "z" } ] + }, + { + "type": "keybinding", + "name": "Zoom Out", + "category": "TARGET", + "id": "zoom_out", + "bindings": [ { "input_method": "keyboard", "key": "Z" } ] + }, { "type": "keybinding", "id": "CENTER", @@ -1425,10 +1439,16 @@ }, { "type": "keybinding", - "name": "Pick up Item(s)", + "name": "Pick up Nearby Item(s)", "category": "DEFAULTMODE", "id": "pickup", - "bindings": [ { "input_method": "keyboard", "key": "," }, { "input_method": "keyboard", "key": "g" } ] + "bindings": [ { "input_method": "keyboard", "key": "g" } ] + }, + { + "type": "keybinding", + "name": "Pickup Item(s) at Player Feet", + "category": "DEFAULTMODE", + "id": "pickup_feet" }, { "type": "keybinding", @@ -1549,6 +1569,12 @@ "id": "eat", "bindings": [ { "input_method": "keyboard", "key": "E" } ] }, + { + "type": "keybinding", + "name": "Consume Item Menu", + "category": "DEFAULTMODE", + "id": "open_consume" + }, { "type": "keybinding", "name": "Read", diff --git a/doc/COMPILER_SUPPORT.md b/doc/COMPILER_SUPPORT.md index 695bf957112ed..3597d77320a7a 100644 --- a/doc/COMPILER_SUPPORT.md +++ b/doc/COMPILER_SUPPORT.md @@ -1,31 +1,42 @@ # Compilers Supported -We are compiling with -std=c++11 as you can see from the Makefile. -This regrettably restricts which compilers will compile the project, while at the same time allowing the use of a plethora of features introduced by C++11. +Our goal with compiler support is to make it as easy as possible for new +contributors to get started with development of the game, while also using the +newest compilers (and thus language standards) that we can. -## GCC +To that end, we aim to support gcc and clang up to the newest stable versions +and back to those shipping in any supported version of a popular distribution +or relevant development environment, including Ubuntu, Debian, MSYS, and XCode. -GCC is the preferred compiler for building on Linux. -In order to fully support the C++11 standard, we are using GCC version 4.8.2. +In practice, compiler support is often determined by what is covered in our +automated testing. -## Clang +At time of writing, the oldest relevant compiler is gcc 5.3, shipped in the +Ubuntu Xenial LTS release. Ubuntu is likely to remain the limiting factor, so +the set of supported compilers should be reviewed when Xenial ceases support in +2021-05. + +## GCC -We use Clang 3.5.2 for our experimental and release builds. -Clang similarly fully supports C++11 as of version 3.1, but you may be able to get by with an earlier version. +We support and test gcc from version 5.3. -## MinGW +## Clang -MinGW version 4.9.0 is currently building the project, but has a few rough edges, such as lack of support for std::to_string(). As such we aren't using to_string(), since MinGW is a popular option for building on Windows. Input on the earliest version that will successfully compile the project is welcome. +We support and test Clang from version 3.8. -## MinGW-w64 +## Mingw and Mingw-w64 -This is the preferred compiler for building on Windows, and is the compiler we use to cross-compile for Windows experimental and release builds. -MinGW-w64 4.8.2 is currently building the project. Input on the earliest version that will successfully compile the project is welcome. +We use Mingw for cross-compilation of Windows versions on Linux. gcc 5.4 is +currently used both in the tests and for the Windows release binaries. ## MSYS2 -MSYS2 is an alternate way to build the project on Windows. It has a great package manager called Pacman which was ported from Arch Linux. It's as close to a Linux system as a (native) Windows can get (Arch in particular) and allows for simple updating of all the installed packages. You need the latest version of some packages in order for the provided instructions to work properly. To be specific, you will need mingw-w64-x86_64-SDL2_mixer >= 2.0.0-6 if you want sound support. +MSYS2 is [a way to build the project](../COMPILING-MSYS.md) on Windows. It +currently offers gcc at versions 7 or higher. + +MSYS also provides clang. We don't currently support using clang here, but +work to that end is welcome. ## Visual Studio -MSVC 14 can build Cataclysm and we have project files for it in msvc140/. We strongly suspect that MSVC 13 and earlier are incapable of building Cataclysm and we've removed their project files. If we can support MSVC 13, feel free to restore the project files. +We also support [Visual Studio](../COMPILING-VS-VCPKG.md) 2015 Update 3 and above. diff --git a/doc/JSON_FLAGS.md b/doc/JSON_FLAGS.md index af4d8d797593d..649302f86d0e7 100644 --- a/doc/JSON_FLAGS.md +++ b/doc/JSON_FLAGS.md @@ -1,868 +1,718 @@ # JSON Flags +* [Notes](#notes) +* [TODO](#todo) +* [Ammo](#ammo) + + [Ammo type](#ammo-type) + + [Effects](#effects) +* [Armor](#armor) + + [Covers](#covers) + + [Flags](#flags) +* [Bionics](#bionics) +* [Books](#books) + + [Use actions](#use-actions) +* [Comestibles](#comestibles) + + [Comestible type](#comestible-type) + + [Addiction type](#addiction-type) + + [Use action](#use-action) + + [Flags](#flags-1) +* [Furniture and Terrain](#furniture-and-terrain) + + [Flags](#flags-2) + + [Examine Actions](#examine-actions) + + [Fungal Conversions Only](#fungal-conversions-only) + + [Furniture Only](#furniture-only) +* [Generic](#generic) + + [Flags](#flags-3) +* [Guns](#guns) + + [Firing modes](#firing-modes) +* [Magazines](#magazines) +* [MAP SPECIALS](#map-specials) +* [Material Phases](#material-phases) +* [Melee](#melee) + + [Flags](#flags-4) +* [Monster Groups](#monster-groups) + + [Conditions](#conditions) + - [Seasons](#seasons) + - [Time of day](#time-of-day) +* [Monsters](#monsters) + + [Anger, Fear and Placation Triggers](#anger--fear-and-placation-triggers) + + [Categories](#categories) + + [Death Functions](#death-functions) + + [Flags](#flags-5) + + [Monster Defense and Attacks](#monster-defense-and-attacks) + + [Sizes](#sizes) + + [Special attacks](#special-attacks) +* [Mutations](#mutations) + + [Categories](#categories-1) +* [Overmap](#overmap) + + [Overmap connections](#overmap-connections) + - [Flags](#flags-6) + + [Overmap specials](#overmap-specials) + - [Flags](#flags-7) + + [Overmap terrains](#overmap-terrains) + - [Flags](#flags-8) +* [Recipes](#recipes) + + [Categories](#categories-2) + + [Flags](#flags-9) +* [Scenarios](#scenarios) + + [Flags](#flags-10) + - [Season Flags](#season-flags) +* [Skills](#skills) + + [Tags](#tags) +* [Techniques](#techniques) +* [Tools](#tools) + + [Flags](#flags-11) + + [Flags that apply to items](#flags-that-apply-to-items) +* [Vehicle Parts](#vehicle-parts) + + [Flags](#flags-12) + + [Fuel types](#fuel-types) + + ## Notes - Many of the flags intended for one category or item type, can be used in other categories or item types. Experiment to see where else flags can be used. - Offensive and defensive flags can be used on any item type that can be wielded. -## Material Phases -- ```NULL``` -- ```GAS``` -- ```LIQUID``` -- ```PLASMA``` -- ```SOLID``` +## TODO -## Recipes +- Descriptions for `Special attacks` under `Monsters` could stand to be more descriptive of exactly what the attack does. +- `Ammo effects` under `Ammo` need more descriptive details, and some need to be double-checked for accuracy. -### Categories -- ```CC_AMMO``` -- ```CC_ARMOR``` -- ```CC_CHEM``` -- ```CC_DRINK``` -- ```CC_ELECTRONIC``` -- ```CC_FOOD``` -- ```CC_MISC``` -- ```CC_WEAPON``` +## Ammo -### Flags +### Ammo type -- ```BLIND_EASY``` Easy to craft with little to no light -- ```BLIND_HARD``` Possible to craft with little to no light, but difficult -- ```UNCRAFT_SINGLE_CHARGE``` Lists returned amounts for one charge of an item that is counted by charges. -- ```UNCRAFT_LIQUIDS_CONTAINED``` Spawn liquid items in its default container. -- ```ALLOW_ROTTEN``` Explicitly allow rotten components when crafting non-perishables. +These are handled through `ammo_types.json`. You can tag a weapon with these to have it chamber existing ammo, or make your own ammo there. The first column in this list is the tag's "id", the internal identifier DDA uses to track the tag, and the second is a brief description of the ammo tagged. Use the id to search for ammo listings, as ids are constant throughout DDA's code. Happy chambering! :-) -## Furniture & Terrain +- ```120mm``` 120mm HEAT +- ```12mm``` 12mm +- ```20x66mm``` 20x66mm Shot (and relatives) +- ```223``` .223 Remington (and 5.56 NATO) +- ```22``` .22LR (and relatives) +- ```3006``` 30.06 +- ```300``` .300 WinMag +- ```308``` .308 Winchester (and relatives) +- ```32``` .32 ACP +- ```36paper``` .36 cap & ball +- ```38``` .38 Special +- ```40``` 10mm +- ```40mm``` 40mm Grenade +- ```44``` .44 Magnum +- ```44paper``` .44 cap & ball +- ```454``` .454 Casull +- ```45``` .45 ACP (and relatives) +- ```46``` 46mm +- ```500``` .500 Magnum +- ```50``` .50 BMG +- ```57``` 57mm +- ```5x50``` 5x50 Dart +- ```66mm``` 66mm HEAT +- ```700nx``` .700 Nitro Express +- ```762R``` 7.62x54mm +- ```762``` 7.62x39mm +- ```762x25``` 7.62x25mm +- ```84x246mm``` 84x246mm HE +- ```8x40mm``` 8mm Caseless +- ```9mm``` 9x19mm Luger (and relatives) +- ```9x18``` 9x18mm +- ```BB``` BB +- ```RPG-7``` RPG-7 +- ```UPS``` UPS charges +- ```ammo_flintlock``` Flintlock ammo +- ```ampoule``` Ampoule +- ```arrow``` Arrow +- ```battery``` Battery +- ```blunderbuss``` Blunderbuss +- ```bolt``` Bolt +- ```charcoal``` Charcoal +- ```components``` Components +- ```dart``` Dart +- ```diesel``` Diesel +- ```fish_bait``` Fish bait +- ```fishspear``` Speargun spear +- ```fusion``` Laser Pack +- ```gasoline``` Gasoline +- ```homebrew_rocket``` homebrew rocket +- ```lamp_oil``` Lamp oil +- ```laser_capacitor``` Charge +- ```m235``` M235 TPA (66mm Incendiary Rocket) +- ```metal_rail``` Rebar Rail +- ```mininuke_mod``` Mininuke +- ```money``` Cents +- ```muscle``` Muscle +- ```nail``` Nail +- ```pebble``` Pebble +- ```plasma``` Plasma +- ```plutonium``` Plutonium Cell +- ```rebreather_filter``` Rebreather filter +- ```shot``` Shotshell +- ```signal_flare``` Signal Flare +- ```tape``` Duct tape +- ```thread``` Thread +- ```thrown``` Thrown +- ```unfinished_char``` Semi-charred fuel +- ```water``` Water -List of known flags, used in both terrain.json and furniture.json +### Effects -### Flags +- ```ACIDBOMB``` Leaves a pool of acid on detonation. +- ```BEANBAG``` Stuns the target. +- ```BLINDS_EYES``` Blinds the target if it hits the head (ranged projectiles can't actually hit the eyes at the moment). +- ```BOUNCE``` Inflicts target with `bounced` effect and rebounds to a nearby target without this effect. +- ```COOKOFF``` Explodes when lit on fire. +- ```CUSTOM_EXPLOSION``` Explosion as specified in ```"explosion"``` field of used ammo. See `JSON_INFO.md`. +- ```DRAW_AS_LINE``` Doesn't go through regular bullet animation, instead draws a line and the bullet on its end for one frame. +- ```EXPLOSIVE_BIG``` Large explosion without any shrapnel. +- ```EXPLOSIVE_HUGE``` Huge explosion without any shrapnel. +- ```EXPLOSIVE``` Explodes without any shrapnel. +- ```FLAME``` Very small explosion that lights fires. +- ```FLARE``` Lights the target on fire. +- ```FLASHBANG``` Blinds and deafens nearby targets. +- ```FRAG``` Small explosion that spreads shrapnel. +- ```INCENDIARY``` Lights target on fire. +- ```LARGE_BEANBAG``` Heavily stuns the target. +- ```LASER``` Creates a trail of laser (the field type) +- ```LIGHTNING``` Creates a trail of lightning. +- ```MININUKE_MOD``` Small thermo-nuclear detonation that leaves behind radioactive fallout. +- ```MUZZLE_SMOKE``` Generate a small cloud of smoke at the source. +- ```NAPALM``` Explosion that spreads fire. +- ```NEVER_MISFIRES``` Firing ammo without this flag may trigger a misfiring, this is independent of the weapon flags. +- ```NOGIB``` Prevents overkill damage on the target (target won't explode into gibs, see also the monster flag NO_GIBS). +- ```NO_EMBED``` When an item would be spawned from the projectile, it will always be spawned on the ground rather than in monster's inventory. Implied for active thrown items. Doesn't do anything on projectiles that do not drop items. +- ```NO_ITEM_DAMAGE``` Will not damage items on the map even when it otherwise would try to. +- ```PLASMA``` Creates a trail of superheated plasma. +- ```RECOVER_[X]``` Has a (X-1/X) chance to create a single charge of the used ammo at the point of impact. +- ```RECYCLED``` (For handmade ammo) causes the gun to misfire sometimes, this independent of the weapon flags. +- ```SHOT``` Multiple smaller pellets; less effective against armor but increases chance to hit and no point-blank penalty +- ```SMOKE_BIG``` Generates a large cloud of smoke at the target. +- ```SMOKE``` Generates a cloud of smoke at the target. +- ```STREAM_BIG``` Leaves a trail of intense fire fields. +- ```STREAM``` Leaves a trail of fire fields. +- ```TRAIL``` Creates a trail of smoke. +- ```WIDE``` Prevents `HARDTOSHOOT` monster flag from having any effect. Implied by ```SHOT``` or liquid ammo. -- ```ALARMED``` Sets off an alarm if smashed. -- ```ALLOW_FIELD_EFFECT``` Apply field effects to items inside ```SEALED``` terrain/furniture. -- ```AUTO_WALL_SYMBOL``` (only for terrain) The symbol of this terrain will be one of the line drawings (corner, T-intersection, straight line etc.) depending on the adjacent terrains. - Example: `-` and `|` are both terrain with the `CONNECT_TO_WALL` flag. `O` does not have the flag, while `X` and `Y` have the `AUTO_WALL_SYMBOL` flag. +## Armor - `X` terrain will be drawn as a T-intersection (connected to west, south and east), `Y` will be drawn as horizontal line (going from west to east, no connection to south). - ``` - -X- -Y- - | O - ``` +### Covers -- ```BARRICADABLE_DOOR``` Door that can be barricaded. -- ```BARRICADABLE_DOOR_DAMAGED``` -- ```BARRICADABLE_DOOR_REINFORCED``` -- ```BARRICADABLE_DOOR_REINFORCED_DAMAGED``` -- ```BARRICADABLE_WINDOW``` Window that can be barricaded. -- ```BARRICADABLE_WINDOW_CURTAINS``` -- ```BASHABLE``` Players + Monsters can bash this. -- ```BUTCHER_EQ``` Butcher's equipment - required for full butchery of corpses. -- ```CAN_SIT``` Furniture the player can sit on. Player sitting near furniture with the "FLAT_SURF" tag will get mood bonus for eating. -- ```CHIP``` Used in construction menu to determine if wall can have paint chipped off. -- ```COLLAPSES``` Has a roof that can collapse. -- ```CONNECT_TO_WALL``` (only for terrain) This flag has been superseded by the JSON entry `connects_to`, but is retained for backward compatibility. -- ```CONSOLE``` Used as a computer. -- ```CONTAINER``` Items on this square are hidden until looted by the player. -- ```BLOCK_WIND``` This terrain will block the effects of wind. -- ```DECONSTRUCT``` Can be deconstructed. -- ```DEEP_WATER``` -- ```DESTROY_ITEM``` Items that land here are destroyed. See also `NOITEM` -- ```DIGGABLE``` Digging monsters, seeding monster, digging with shovel, etc. -- ```DIGGABLE_CAN_DEEPEN``` Diggable location can be dug again to make deeper (e.g. shallow pit to deep pit). -- ```DOOR``` Can be opened (used for NPC path-finding). -- ```EASY_DECONSTRUCT``` Player can deconstruct this without tools. -- ```EXPLODES``` Explodes when on fire. -- ```FIRE_CONTAINER``` Stops fire from spreading (brazier, wood stove, etc.) -- ```FLAMMABLE``` Can be lit on fire. -- ```FLAMMABLE_ASH``` Burns to ash rather than rubble. -- ```FLAMMABLE_HARD``` Harder to light on fire, but still possible. -- ```FLAT``` Player can build and move furniture on. -- ```FLAT_SURF``` Furniture or terrain with a flat hard surface (e.g. table, but not chair; tree stump, etc.). -- ```GOES_DOWN``` Can use > to go down a level. -- ```GOES_UP``` Can use < to go up a level. -- ```HARVESTED``` Marks the harvested version of a terrain type (e.g. harvesting an apple tree turns it into a harvested tree, which later becomes an apple tree again). -- ```HIDE_PLACE``` Creatures on this tile can't be seen by creatures not standing on adjacent tiles -- ```INDOORS``` Has a roof over it; blocks rain, sunlight, etc. -- ```LADDER``` This piece of furniture that makes climbing easy (works only with z-level mode). -- ```LIQUID``` Blocks movement, but isn't a wall (lava, water, etc.) -- ```LIQUIDCONT``` Furniture that contains liquid, allows for contents to be accessed in some checks even if `SEALED`. -- ```MINEABLE``` Can be mined with a pickaxe/jackhammer. -- ```MOUNTABLE``` Suitable for guns with the `MOUNTED_GUN` flag. -- ```NOCOLLIDE``` Feature that simply doesn't collide with vehicles at all. -- ```NOITEM``` Items cannot be added here but may overflow to adjacent tiles. See also `DESTROY_ITEM` -- ```NO_FLOOR``` Things should fall when placed on this tile -- ```NO_SIGHT``` Creature on this tile have their sight reduced to one tile -- ```OPENCLOSE_INSIDE``` If it's a door (with an 'open' or 'close' field), it can only be opened or closed if you're inside. -- ```PAINFUL``` May cause a small amount of pain. -- ```PERMEABLE``` Permeable for gases. -- ```PLACE_ITEM``` Valid terrain for `place_item()` to put items on. -- ```PLANT``` A 'furniture' that grows and fruits. -- ```PLOWABLE``` Terrain can be plowed. -- ```RAMP``` Can be used to move up a z-level -- ```RAMP_END``` -- ```REDUCE_SCENT``` Reduces scent even more; only works if also bashable. -- ```ROAD``` Flat and hard enough to drive or skate (with rollerblades) on. -- ```ROUGH``` May hurt the player's feet. -- ```RUG``` Enables the `Remove Carpet` Construction entry. -- ```SALT_WATER``` Source of salt water (works for terrains with examine action "water_source"). -- ```SEALED``` Can't use e to retrieve items; must smash them open first. -- ```SEEN_FROM_ABOVE``` Visible from a higher level (provided the tile above has no floor) -- ```SHARP``` May do minor damage to players/monsters passing through it. -- ```SHORT``` Feature too short to collide with vehicle protrusions. (mirrors, blades). -- ```SUPPORTS_ROOF``` Used as a boundary for roof construction. -- ```SUPPRESS_SMOKE``` Prevents smoke from fires; used by ventilated wood stoves, etc. -- ```SWIMMABLE``` Player and monsters can swim through it. -- ```THIN_OBSTACLE``` Passable by players and monsters; vehicles destroy it. -- ```TINY``` Feature too short to collide with vehicle undercarriage. Vehicles drive over them with no damage, unless a wheel hits them. -- ```TRANSPARENT``` Players and monsters can see through/past it. Also sets ter_t.transparent. -- ```USABLE_FIRE``` This terrain or furniture counts as a nearby fire for crafting. -- ```UNSTABLE``` Walking here cause the bouldering effect on the character. -- ```WALL``` This terrain is an upright obstacle. Used for fungal conversion, and also implies `CONNECT_TO_WALL`. +- ```ARMS``` ... same ```ARM_L``` and ```ARM_R``` +- ```ARM_L``` +- ```ARM_R``` +- ```EYES``` +- ```FEET``` ... same ```FOOT_L``` and ```FOOT_R``` +- ```FOOT_L``` +- ```FOOT_R``` +- ```HANDS``` ... same ```HAND_L``` and ```HAND_R``` +- ```HAND_L``` +- ```HAND_R``` +- ```HEAD``` +- ```LEGS``` ... same ```LEG_L``` and ```LEG_R``` +- ```LEG_L``` +- ```LEG_R``` +- ```MOUTH``` +- ```TORSO``` -### Examine actions +### Flags -- ```none``` None -- ```aggie_plant``` Harvest plants. -- ```bars``` Take advantage of AMORPHOUS and slip through the bars. -- ```bulletin_board``` Use this to arrange tasks for your faction camp. -- ```cardreader``` Use the cardreader with a valid card, or attempt to hack. -- ```chainfence``` Hop over the chain fence. -- ```controls_gate``` Controls the attached gate. -- ```dirtmound``` Plant seeds and plants. -- ```elevator``` Use the elevator to change floors. -- ```fault``` Displays descriptive message, but otherwise unused. -- ```flower_poppy``` Pick the mutated poppy. -- ```fswitch``` Flip the switch and the rocks will shift. -- ```fungus``` Release spores as the terrain crumbles away. -- ```gaspump``` Use the gas-pump. -- ```pit``` Cover the pit if you have some planks of wood. -- ```pit_covered``` Uncover the pit. -- ```pedestal_temple``` Opens the temple if you have a petrified eye. -- ```pedestal_wyrm``` Spawn wyrms. -- ```recycle_compactor``` Compress pure metal objects into basic shapes. -- ```rubble``` Clear up the rubble if you have a shovel. -- ```safe``` Attempt to crack the safe. -- ```shelter``` Take down the shelter. -- ```shrub_marloss``` Pick a marloss bush. -- ```shrub_wildveggies``` Pick a wild veggies shrub. -- ```slot_machine``` Gamble. -- ```portable_structure``` Take down a tent or similar portable structure. -- ```toilet``` Either drink or get water out of the toilet. -- ```trap``` Interact with a trap. -- ```water_source``` Drink or get water from a water source. +Some armor flags, such as `WATCH` and `ALARMCLOCK` are compatible with other item types. Experiment to find which flags work elsewhere. -### Currently only used for Fungal conversions +- ```ALARMCLOCK``` Has an alarm-clock feature. +- ```ALLOWS_NATURAL_ATTACKS``` Doesn't prevent any natural attacks or similar benefits from mutations, fingertip razors, etc., like most items covering the relevant body part would. +- ```BAROMETER``` This gear is equipped with an accurate barometer (which is used to measure atmospheric pressure). +- ```BELTED``` Layer for backpacks and things worn over outerwear. +- ```BLIND``` Blinds the wearer while worn, and provides nominal protection v. flashbang flashes. +- ```BLOCK_WHILE_WORN``` Allows worn armor or shields to be used for blocking attacks. +- ```CLIMATE_CONTROL``` This piece of clothing has climate control of some sort, keeping you warmer or cooler depending on ambient and bodily temperature. +- ```COLLAR``` This piece of clothing has a wide collar that can keep your mouth warm. +- ```DEAF``` Makes the player deaf. +- ```ELECTRIC_IMMUNE``` This gear completely protects you from electric discharges. +- ```FANCY``` Wearing this clothing gives a morale bonus if the player has the `Stylish` trait. +- ```FIX_FARSIGHT``` This gear corrects farsightedness. +- ```FIX_NEARSIGHT``` This gear corrects nearsightedness. +- ```FLOTATION``` Prevents the player from drowning in deep water. Also prevents diving underwater. +- ```FRAGILE``` This gear is less resistant to damage than normal. +- ```HELMET_COMPAT``` Items that are not SKINTIGHT or OVERSIZE but can be worn with a helmet. +- ```HOOD``` Allow this clothing to conditionally cover the head, for additional warmth or water protection., if the player's head isn't encumbered +- ```HYGROMETER``` This gear is equipped with an accurate hygrometer (which is used to measure humidity). +- ```NO_QUICKDRAW``` Don't offer to draw items from this holster when the fire key is pressed whilst the players hands are empty +- ```ONLY_ONE``` You can wear only one. +- ```OUTER``` Outer garment layer. +- ```OVERSIZE``` Can always be worn no matter encumbrance/mutations/bionics/etc., but prevents any other clothing being worn over this. +- ```PARTIAL_DEAF``` Reduces the volume of sounds to a safe level. +- ```POCKETS``` Increases warmth for hands if the player's hands are cold and the player is wielding nothing. +- ```PSYSHIELD_PARTIAL``` 25% chance to protect against fear_paralyze monster attack when worn. +- ```RAD_PROOF``` This piece of clothing completely protects you from radiation. +- ```RAD_RESIST``` This piece of clothing partially protects you from radiation. +- ```RAINPROOF``` Prevents the covered body-part(s) from getting wet in the rain. +- ```RESTRICT_HANDS``` Prevents the player from wielding a weapon two-handed, forcing one-handed use if the weapon permits it. +- ```SKINTIGHT``` Undergarment layer. +- ```SLOWS_MOVEMENT``` This piece of clothing multiplies move cost by 1.1. +- ```SLOWS_THIRST``` This piece of clothing multiplies the rate at which the player grows thirsty by 0.70. +- ```STURDY``` This clothing is a lot more resistant to damage than normal. +- ```SUN_GLASSES``` Prevents glaring when in sunlight. +- ```SUPER_FANCY``` Gives an additional moral bonus over `FANCY` if the player has the `Stylish` trait. +- ```SWIM_GOGGLES``` Allows you to see much further under water. +- ```THERMOMETER``` This gear is equipped with an accurate thermometer (which is used to measure temperature). +- ```VARSIZE``` Can be made to fit via tailoring. +- ```WAIST``` Layer for belts other things worn on the waist. +- ```WATCH``` Acts as a watch and allows the player to see actual time. +- ```WATERPROOF``` Prevents the covered body-part(s) from getting wet in any circumstance. +- ```WATER_FRIENDLY``` Prevents the item from making the body part count as unfriendly to water and thus causing negative morale from being wet. -- ```FLOWER``` This furniture is a flower. -- ```FUNGUS``` Fungal covered. -- ```ORGANIC``` This furniture is partly organic. -- ```SHRUB``` This terrain is a shrub. -- ```TREE``` This terrain is a tree. -- ```YOUNG``` This terrain is a young tree. -### Furniture only +## Bionics -- ```BLOCKSDOOR``` This will boost map terrain's resistance to bashing if `str_*_blocked` is set (see `map_bash_info`) +- ```BIONIC_ARMOR_INTERFACE``` This bionic can provide power to powered armor. +- ```BIONIC_FAULTY``` This bionic is a "faulty" bionic. +- ```BIONIC_GUN``` This bionic is a gun bionic and activating it will fire it. Prevents all other activation effects. +- ```BIONIC_NPC_USABLE``` The NPC AI knows how to use this CBM and it can be installed on an NPC. +- ```BIONIC_POWER_SOURCE``` This bionic is a power source bionic. +- ```BIONIC_SLEEP_FRIENDLY``` This bionic won't prompt the user to turn it off if they try to sleep while it's active. +- ```BIONIC_TOGGLED``` This bionic only has a function when activated, else it causes it's effect every turn. +- ```BIONIC_WEAPON``` This bionic is a weapon bionic and activating it will create (or destroy) bionic's fake_item in user's hands. Prevents all other activation effects. -## Monsters -Flags used to describe monsters and define their properties and abilities. +## Books -### Sizes +- ```INSPIRATIONAL``` Reading this book grants bonus morale to characters with the SPIRITUAL trait. -- ```TINY``` Squirrel -- ```SMALL``` Dog -- ```MEDIUM``` Human -- ```LARGE``` Cow -- ```HUGE``` Tank +### Use actions -### Categories +- ```ACIDBOMB_ACT``` Get rid of it or you'll end up like that guy in Robocop. +- ```ACIDBOMB``` Pull the pin on an acid bomb. +- ```ARROW_FLAMABLE``` Light your arrow and let fly. +- ```BATTLETORCH``` Light the battle torch. +- ```BELL``` Ring the bell. +- ```BOLTCUTTERS``` Use your town key to gain access anywhere. +- ```BREAK_STICK``` Breaks long stick into two. +- ```C4``` Arm the C4. +- ```CABLE_ATTACH``` This item is a cable spool. Use it to try to attach to a vehicle. +- ```CAN_GOO``` Release a little blob buddy. +- ```CAPTURE_MONSTER_ACT``` Capture and encapsulate a monster. The associated action is also used for releasing it. +- ```CARVER_OFF``` Turn the carver on. +- ```CARVER_ON``` Turn the carver off. +- ```CHAINSAW_OFF``` Turn the chainsaw on. +- ```CHAINSAW_ON``` Turn the chainsaw off. +- ```COMBATSAW_OFF``` Turn the combat-saw on. +- ```COMBATSAW_ON``` Turn the combat-saw off +- ```CROWBAR``` Pry open doors, windows, man-hole covers and many other things that need prying. +- ```DIG``` Clear rubble. +- ```DIRECTIONAL_ANTENNA``` Find the source of a signal with your radio. +- ```DIVE_TANK``` Use compressed air tank to breathe. +- ```DOG_WHISTLE``` Dogs hate this thing; your dog seems pretty cool with it though. +- ```DOLLCHAT``` That creepy doll just keeps on talking. +- ```ELEC_CHAINSAW_OFF``` Turn the electric chainsaw on. +- ```ELEC_CHAINSAW_ON``` Turn the electric chainsaw off. +- ```EXTINGUISHER``` Put out fires. +- ```FIRECRACKER_ACT``` The saddest Fourth of July. +- ```FIRECRACKER_PACK_ACT``` Keep the change you filthy animal. +- ```FIRECRACKER_PACK``` Light an entire packet of firecrackers. +- ```FIRECRACKER``` Light a singular firecracker. +- ```FLASHBANG``` Pull the pin on a flashbang. +- ```GEIGER``` Detect local radiation levels. +- ```GRANADE_ACT``` Assaults enemies with source code fixes? +- ```GRANADE``` Pull the pin on Granade. +- ```GRENADE``` Pull the pin on a grenade. +- ```HACKSAW``` Cut metal into chunks. +- ```HAMMER``` Pry boards off of windows, doors and fences. +- ```HEATPACK``` Activate the heatpack and get warm. +- ```HEAT_FOOD``` Heat food around fires. +- ```HOTPLATE``` Use the hotplate. +- ```JACKHAMMER``` Bust down walls and other constructions. +- ```JET_INJECTOR``` Inject some jet drugs right into your veins. +- ```LAW``` Unpack the LAW for firing. +- ```LIGHTSTRIP``` Activates the lightstrip. +- ```LUMBER``` Cut logs into planks. +- ```MAKEMOUND``` Make a mound of dirt. +- ```MANHACK``` Activate a manhack. +- ```MATCHBOMB``` Light the matchbomb. +- ```MILITARYMAP``` Learn of local military installations, and show roads. +- ```MININUKE``` Set the timer and run. Or hit with a hammer (not really). +- ```MOLOTOV_LIT``` Throw it, but don't drop it. +- ```MOLOTOV``` Light the Molotov cocktail. +- ```MOP``` Mop up the mess. +- ```MP3_ON``` Turn the mp3 player off. +- ```MP3``` Turn the mp3 player on. +- ```NOISE_EMITTER_OFF``` Turn the noise emitter on. +- ```NOISE_EMITTER_ON``` Turn the noise emitter off. +- ```NONE``` Do nothing. +- ```PHEROMONE``` Makes zombies ignore you. +- ```PICKAXE``` Does nothing but berate you for having it (I'm serious). +- ```PLACE_RANDOMLY``` This is very much like the flag in the manhack iuse, it prevents the item from querying the player as to where they want the monster unloaded to, and instead choses randomly. +- ```PORTABLE_GAME``` Play games. +- ```PORTAL``` Create portal traps. +- ```RADIO_OFF``` Turn the radio on. +- ```RADIO_ON``` Turn the radio off. +- ```RAG``` Stop the bleeding. +- ```RESTAURANTMAP``` Learn of local eateries, and show roads. +- ```ROADMAP``` Learn of local common points-of-interest and show roads. +- ```SCISSORS``` Cut up clothing. +- ```SEED``` Asks if you are sure that you want to eat the seed. As it is better to plant seeds. +- ```SEW``` Sew clothing. +- ```SHELTER``` Put up a full-blown shelter. +- ```SHOCKTONFA_OFF``` Turn the shocktonfa on. +- ```SHOCKTONFA_ON``` Turn the shocktonfa off. +- ```SIPHON``` Siphon liquids out of vehicle. +- ```SMOKEBOMB_ACT``` This may be a good way to hide as a smoker. +- ```SMOKEBOMB``` Pull the pin on a smoke bomb. +- ```SOLARPACK_OFF``` Fold solar backpack array. +- ```SOLARPACK``` Unfold solar backpack array. +- ```SOLDER_WELD``` Solder or weld items, or cauterize wounds. +- ```SPRAY_CAN``` Graffiti the town. +- ```SURVIVORMAP``` Learn of local points-of-interest that can help you survive, and show roads. +- ```TAZER``` Shock someone or something. +- ```TELEPORT``` Teleport. +- ```TORCH``` Light a torch. +- ```TOURISTMAP``` Learn of local points-of-interest that a tourist would like to visit, and show roads. +- ```TOWEL``` Dry your character using the item as towel. +- ```TURRET``` Activate a turret. +- ```WASHCLOTHES``` Wash clothes with FILTHY flag. +- ```WATER_PURIFIER``` Purify water. -- ```NULL``` No category. -- ```CLASSIC``` Only monsters we expect in a classic zombie movie. -- ```WILDLIFE``` Natural animals. -### Death functions. Multiple death functions can be used. Not all combinations make sense. +## Comestibles -- ```ACID``` Acid instead of a body. not the same as the ACID_BLOOD flag. In most cases you want both. -- ```AMIGARA``` Removes hypnosis if the last one. -- ```BLOBSPLIT``` Creates more blobs. -- ```BOOMER``` Explodes in vomit. -- ```BROKEN``` Spawns a broken robot item, its id calculated like this: the prefix "mon_" is removed from the monster id, than the prefix "broken_" is added. Example: mon_eyebot -> broken_eyebot -- ```DISAPPEAR``` Hallucination disappears. -- ```DISINTEGRATE``` Falls apart. -- ```EXPLODE``` Damaging explosion. -- ```FIREBALL``` 10 percent chance to explode in a fireball. -- ```FLAME_EXPLOSION``` guaranteed to explode and starts fires. -- ```FUNGUS``` Explodes in spores. -- ```GAMEOVER``` Game over man! Game over! Defense mode. -- ```GUILT``` Moral penalty. There is also a flag with a similar effect. -- ```KILL_BREATHERS``` All breathers die. -- ```KILL_VINES``` Kill all nearby vines. -- ```MELT``` Normal death, but melts. -- ```NORMAL``` Drop a body, leave gibs. -- ```RATKING``` Cure verminitis. -- ```SMOKEBURST``` Explode like a huge smoke bomb. -- ```THING``` Turn into a full thing. -- ```TRIFFID_HEART``` Destroys all roots. -- ```VINE_CUT``` Kill adjacent vine if it's cut. -- ```WORM``` Spawns 2 half-worms +### Comestible type + +- ```DRINK``` +- ```FOOD``` +- ```MED``` + +### Addiction type + +- ```alcohol``` +- ```amphetamine``` +- ```caffeine``` +- ```cocaine``` +- ```crack``` +- ```nicotine``` +- ```opiate``` +- ```sleeping pill``` + +### Use action + +- ```ALCOHOL_STRONG``` Greatly increases drunkenness. Adds disease `drunk`. +- ```ALCOHOL_WEAK``` Slightly increases drunkenness. Adds disease `drunk` +- ```ALCOHOL``` Increases drunkenness. Adds disease `drunk`. +- ```ANTIBIOTIC``` Helps fight infections. Removes disease `infected` and adds disease `recover`. +- ```ATOMIC_CAFF``` Greatly reduces fatigue and increases radiation dosage. +- ```BANDAGE``` Stop bleeding. +- ```BIRDFOOD``` Makes a small bird friendly. +- ```BLECH``` Causes vomiting. +- ```CAFF``` Reduces fatigue. +- ```CATFOOD``` Makes a cat friendly. +- ```CATTLEFODDER``` Makes a large herbivore friendly. +- ```CHEW``` Displays message "You chew your %s", but otherwise does nothing. +- ```CIG``` Alleviates nicotine cravings. Adds disease `cig`. +- ```COKE``` Decreases hunger. Adds disease `high`. +- ```CRACK``` Decreases hunger. Adds disease `high`. +- ```DISINFECTANT``` Prevents infections. +- ```DOGFOOD``` Makes a dog friendly. +- ```FIRSTAID``` Heal. +- ```FLUMED``` Adds disease `took_flumed`. +- ```FLUSLEEP``` Adds disease `took_flumed` and increases fatigue. +- ```FUNGICIDE``` Kills fungus and spores. Removes diseases `fungus` and `spores`. +- ```HALLU``` Adds disease `hallu`. +- ```HONEYCOMB``` Spawns wax. +- ```INHALER``` Removes disease `asthma`. +- ```IODINE``` Adds disease `iodine`. +- ```MARLOSS``` "As you eat the berry, you have a near-religious experience, feeling at one with your surroundings..." +- ```METH``` Adds disease `meth` +- ```NONE``` "You can't do anything of interest with your [x]." +- ```PKILL``` Reduces pain. Adds disease `pkill[n]` where `[n]` is the level of flag `PKILL_[n]` used on this comestible. +- ```PLANTBLECH``` Causes vomiting if player does not contain plant mutations +- ```POISON``` Adds diseases `poison` and `foodpoison`. +- ```PROZAC``` Adds disease `took_prozac` if not currently present, otherwise acts as a minor stimulant. Rarely has the `took_prozac_bad` adverse effect. +- ```PURIFIER``` Removes negative mutations. +- ```ROYAL_JELLY``` Alleviates many negative conditions and diseases. +- ```SEWAGE``` Causes vomiting and a chance to mutate. +- ```SLEEP``` Greatly increases fatigue. +- ```THORAZINE``` Removes diseases `hallu`, `visuals`, `high`. Additionally removes disease `formication` if disease `dermatik` isn't also present. Has a chance of a negative reaction which increases fatigue. +- ```VACCINE``` Greatly increases health. +- ```VITAMINS``` Increases healthiness (not to be confused with HP) +- ```WEED``` Makes you roll with Cheech & Chong. Adds disease `weed_high`. +- ```XANAX``` Alleviates anxiety. Adds disease `took_xanax`. ### Flags -- ```NULL``` Source use only. -- ```ABSORBS``` Consumes objects it moves over. (Modders use this). -- ```ABSORBS_SPLITS``` Consumes objects it moves over, and if it absorbs enough it will split into a copy. -- ```ACIDPROOF``` Immune to acid. -- ```ACIDTRAIL``` Leaves a trail of acid. -- ```ACID_BLOOD``` Makes monster bleed acid. Fun stuff! Does not automatically dissolve in a pool of acid on death. -- ```ANIMAL``` Is an _animal_ for purposes of the `Animal Empathy` trait. -- ```AQUATIC``` Confined to water. -- ```ARTHROPOD_BLOOD``` Forces monster to bleed hemolymph. -- ```ATTACKMON``` Attacks other monsters. -- ```BADVENOM``` Attack may **severely** poison the player. -- ```BASHES``` Bashes down doors. -- ```BIRDFOOD``` Becomes friendly / tamed with bird food. -- ```BILE_BLOOD``` Makes monster bleed bile. -- ```BLEED``` Causes the player to bleed. -- ```BONES``` May produce bones and sinews when butchered. -- ```BORES``` Tunnels through just about anything (15x bash multiplier: dark wyrms' bash skill 12->180) -- ```CAN_DIG``` Can dig _and_ walk. -- ```CAN_OPEN_DOORS``` Can open doors on its path. -- ```CATFOOD``` Becomes friendly / tamed with cat food. -- ```CATTLEFODDER``` Becomes friendly / tamed with cattle fodder. -- ```CBM_CIV``` May produce a common CBM a power CBM when butchered. -- ```CBM_OP``` May produce a CBM or two from 'bionics_op' item group when butchered. -- ```CBM_POWER``` May produce a power CBM when butchered, independent of CBM. -- ```CBM_SUBS``` May produce a CBM or two from bionics_subs and a power CBM when butchered. -- ```CBM_SCI``` May produce a CBM from 'bionics_sci' item group when butchered. -- ```CBM_TECH``` May produce a CBM or two from 'bionics_tech' item group and a power CBM when butchered. -- ```CHITIN``` May produce chitin when butchered. -- ```CLIMBS``` Can climb. -- ```DESTROYS``` Bashes down walls and more. (2.5x bash multiplier, where base is the critter's max melee bashing) -- ```DIGS``` Digs through the ground. -- ```DOGFOOD``` Becomes friendly / tamed with dog food. -- ```DRIPS_NAPALM``` Occasionally drips napalm on move. -- ```DRIPS_GASOLINE``` Occasionally drips gasoline on move. -- ```ELECTRIC``` Shocks unarmed attackers. -- ```ELECTRONIC``` e.g. A Robot; affected by emp blasts and other stuff. -- ```FAT``` May produce fat when butchered. -- ```FEATHER``` May produce feathers when butchered. -- ```FLIES``` Can fly (over water, etc.) -- ```FILTHY``` Any clothing it drops will be filthy. -- ```FIREPROOF``` Immune to fire. -- ```FIREY``` Burns stuff and is immune to fire. -- ```FISHABLE``` It is fishable. -- ```CURRENT``` this water is flowing. -- ```FLAMMABLE``` Monster catches fire, burns, and spreads fire to nearby objects. -- ```FUR``` May produce fur when butchered. -- ```GOODHEARING``` Pursues sounds more than most monsters. -- ```GRABS``` Its attacks may grab you! -- ```GROUP_BASH``` Gets help from monsters around it when bashing. -- ```GROUP_MORALE``` More courageous when near friends. -- ```GUILT``` You feel guilty for killing it. -- ```HARDTOSHOOT``` It's one size smaller for ranged attacks, no less then MS_TINY -- ```HEARS``` It can hear you. -- ```HIT_AND_RUN``` Flee for several turns after a melee attack. -- ```HUMAN``` It's a live human, as long as it's alive. -- ```IMMOBILE``` Doesn't move (e.g. turrets) -- ```INTERIOR_AMMO``` Monster contains ammo inside itself, no need to load on launch. Prevents ammo from being dropped on disable. -- ```KEENNOSE``` Keen sense of smell. -- ```LARVA``` Creature is a larva. Currently used for gib and blood handling. -- ```LEATHER``` May produce leather when butchered. -- ```LOUDMOVES``` Mkes move noises as if ~2 sizes louder, even if flying. -- ```MILKABLE``` Produces milk when milked. -- ```NIGHT_INVISIBILITY``` Monster becomes invisible if it's more than one tile away and the lighting on its tile is LL_LOW or less. Visibility is not affected by night vision. -- ```NOHEAD``` Headshots not allowed! -- ```NOGIB``` Does not leave gibs / meat chunks when killed with huge damage. -- ```NO_BREATHE``` Creature can't drown and is unharmed by gas, smoke or poison. -- ```NO_BREED``` Creature doesn't reproduce even though it has reproduction data - useful when using copy-from to make child versions of adult creatures -- ```PARALYZE``` Attack may paralyze the player with venom. -- ```PLASTIC``` Absorbs physical damage to a great degree. -- ```POISON``` Poisonous to eat. -- ```PUSH_MON``` Can push creatures out of its way. -- ```QUEEN``` When it dies, local populations start to die off too. -- ```REGENERATES_10``` Monster regenerates quickly over time. -- ```REGENERATES_50``` Monster regenerates very quickly over time. -- ```REGENERATES_IN_DARK``` Monster regenerates very quickly in poorly lit tiles. -- ```REGEN_MORALE``` Will stop fleeing if at max hp, and regen anger and morale. -- ```REVIVES``` Monster corpse will revive after a short period of time. -- ```SEES``` It can see you (and will run/follow). -- ```SLUDGEPROOF``` Ignores the effect of sludge trails. -- ```SLUDGETRAIL``` Causes the monster to leave a sludge trap trail when moving. -- ```SMELLS``` It can smell you. -- ```STUMBLES``` Stumbles in its movement. -- ```SUNDEATH``` Dies in full sunlight. -- ```SWARMS``` Groups together and form loose packs. -- ```SWIMS``` Treats water as 50 movement point terrain. -- ```VENOM``` Attack may poison the player. -- ```VERMIN``` Obsolete flag for inconsequential monsters, now prevents loading. -- ```WARM``` Warm blooded. -- ```WEBWALK``` Doesn't destroy webs. -- ```WOOL``` May produce wool when butchered. - -### Monster defense attacks - -- ```NONE``` No special attack-back -- ```ACIDSPLASH``` Splash acid on the attacker -- ```ZAPBACK``` Shock attacker on hit - -### Special attacks - -Some special attacks are also valid use actions for tools and weapons. -See monsters.json for examples on how to use these attacks. -Also see monster_attacks.json for more special attacks, for example, impale and scratch - -- ```NONE``` No special attack. -- ```ACID``` Spit acid. -- ```ACID_ACCURATE``` Shoots acid that is accurate at long ranges, but less so up close. -- ```ACID_BARF``` Barfs corroding, blinding acid. -- ```ANTQUEEN``` Hatches/grows: `egg > ant > soldier`. -- ```BIO_OP_TAKEDOWN``` Attack with special martial art takedown manoeuvres. -- ```BITE``` Bite attack that can cause deep infected wounds. -- ```BMG_TUR``` Barrett .50BMG rifle fires. -- ```BOOMER``` Spit bile. -- ```BOOMER_GLOW``` Spit glowing bile. -- ```BRANDISH``` Brandish a knife at the player. -- ```BREATHE``` Spawns a `breather` -- ```CALLBLOBS``` Calls 2/3 of nearby blobs to defend this monster, and sends 1/3 of nearby blobs after the player. -- ```CHICKENBOT``` Robot can attack with tazer, M4, or MGL depending on distance. -- ```COPBOT``` Cop-bot alerts and then tazes the player. -- ```DANCE``` Monster dances. -- ```DARKMAN``` Can cause darkness and wraiths to spawn. -- ```DERMATIK``` Attempts to lay dermatik eggs in the player. -- ```DERMATIK_GROWTH``` Dermatik larva grows into an adult. -- ```DISAPPEAR``` Hallucination disappears. -- ```DOGTHING``` The dog _thing_ spawns into a tentacle dog. -- ```FEAR_PARALYZE``` Paralyze the player with fear. -- ```FLAMETHROWER``` Shoots a stream of fire. -- ```FLESH_GOLEM``` Attack the player with claw, and inflict disease `downed` if the attack connects. -- ```FORMBLOB``` Spawns blobs? -- ```FRAG_TUR``` MGL fires frag rounds. -- ```FUNGUS``` Releases fungal spores and attempts to infect the player. -- ```FUNGUS_BIG_BLOSSOM``` Spreads fire suppressing fungal haze. -- ```FUNGUS_BRISTLE``` Perform barbed tendril attack that can cause fungal infections. -- ```FUNGUS_CORPORATE``` Used solely by Crazy Cataclysm. This will cause runtime errors if used without out, and spawns SpOreos on top of the creature. -- ```FUNGUS_FORTIFY``` Grows Fungal hedgerows, and advances player on the mycus threshold path. -- ```FUNGUS_GROWTH``` Grows a young fungaloid into an adult. -- ```FUNGUS_HAZE``` Spawns fungal fields. -- ```FUNGUS_INJECT``` Perform needle attack that can cause fungal infections. -- ```FUNGUS_SPROUT``` Grows a fungal wall. -- ```GENERATOR``` Regenerates health. -- ```GENE_STING``` Shoot a dart at the player that causes a mutation if it connects. -- ```GRAB``` Grabs the player, slowing on hit, making movement and dodging impossible and blocking harder. -- ```GRAB``` GRAB the target, and drag it around. -- ```GROWPLANTS``` Spawns underbrush, or promotes it to `> young tree > tree`. -- ```GROW_VINE``` Grows creeper vines. -- ```HOWL``` "an ear-piercing howl!" -- ```JACKSON``` Converts zombies into zombie dancers. -- ```LASER``` Laser turret fires. -- ```LEAP``` leap away to an unobstructed tile. -- ```LONGSWIPE``` Does high damage claw attack, which can even hit some distance away. -- ```LUNGE``` Perform a jumping attack from some distance away, which can down the target. -- ```MULTI_ROBOT``` Robot can attack with tazer, flamethrower, M4, MGL, or 120mm cannon depending on distance. -- ```PARA_STING``` Shoot a paralyzing dart at the player. -- ```PARROT``` Parrots the speech defined in `speech.json`, picks one of the lines randomly. "speaker" points to a monster id. -- ```PHOTOGRAPH``` Photograph the player. Causes a robot attack? -- ```PLANT``` Fungal spores take seed and grow into a fungaloid. -- ```PULL_METAL_WEAPON``` Pull weapon that's made of iron or steel from the player's hand. -- ```RANGED_PULL``` Pull targets towards attacker. -- ```RATKING``` Inflicts disease `rat` -- ```RATTLE``` "a sibilant rattling sound!" -- ```RESURRECT``` Revives the dead--again. -- ```RIFLE_TUR``` Rifle turret fires. -- ```RIOTBOT``` Sprays teargas or relaxation gas, can handcuff players, and can use a blinding flash. -- ```SCIENCE``` Various science/technology related attacks (e.g. manhacks, radioactive beams, etc.) -- ```SEARCHLIGHT``` Tracks targets with a searchlight. -- ```SHOCKSTORM``` Shoots bolts of lightning. -- ```SHOCKING_REVEAL``` Shoots bolts of lightning, and reveals a SHOCKING FACT! Very fourth-wall breaking. Used solely by Crazy Cataclysm. -- ```SHRIEK``` "a terrible shriek!" -- ```SHRIEK_ALERT``` "a very terrible shriek!" -- ```SHRIEK_STUN``` "a stunning shriek!", causes a small bash, can cause a stun. -- ```SLIMESPRING``` Can provide a morale boost to the player, and cure bite and bleed effects. -- ```SMASH``` Smashes the target for massive damage, sending it flying. -- ```SMG``` SMG turret fires. -- ```SPIT_SAP``` Spit sap. -- ```STARE``` Stare at the player and inflict teleglow. -- ```STRETCH_ATTACK``` Long ranged piercing attack. -- ```STRETCH_BITE``` Long ranged bite attack. -- ```SUICIDE``` Dies after attacking. -- ```TAZER``` Shock the player. -- ```TENTACLE``` Lashes a tentacle at the player. -- ```TRIFFID_GROWTH``` Young triffid grows into an adult. -- ```TRIFFID_HEARTBEAT``` Grows and crumbles root walls around the player, and spawns more monsters. -- ```UPGRADE``` Upgrades a regular zombie into a special zombie. -- ```VINE``` Attacks with vine. -- ```VORTEX``` Forms a vortex/tornado that causes damage and throws creatures around. - -### Anger, Fear & Placation Triggers - -- ```NULL``` Source use only? -- ```FIRE``` There's a fire nearby. -- ```FRIEND_ATTACKED``` A monster of the same type was attacked. -- ```FRIEND_DIED``` A monster of the same type died. -- ```HURT``` The monster is hurt. -- ```MEAT``` Meat or a corpse is nearby. -- ```PLAYER_CLOSE``` The player gets within a few tiles distance. -- ```PLAYER_WEAK``` The player is hurt. -- ```STALK``` Increases when following the player. -- ```SOUND``` Heard a sound. - -## Monster Groups - -### Conditions - -Limit when monsters can spawn. - -#### Seasons - -Multiple season conditions will be combined together so that any of those conditions become valid time of year spawn times. +- ```ACID``` when consumed using the BLECH function, penalties are reduced if acidproof. +- ```CARNIVORE_OK``` Can be eaten by characters with the Carnivore mutation. +- ```EATEN_COLD``` Morale bonus for eating cold. +- ```EATEN_HOT``` Morale bonus for eating hot. +- ```EDIBLE_FROZEN``` Being frozen doesn't prevent eating it. No morale bonus. +- ```INEDIBLE``` Inedible by default, enabled to eat when in conjunction with (mutation threshold) flags: BIRD, CATTLE. +- ```FERTILIZER``` Works as fertilizer for farming, of if this consumed with the PLANTBLECH function penalties will be reversed for plants. +- ```FREEZERBURN``` First thaw is MUSHY, second is rotten +- ```HIDDEN_HALLU``` ... Food causes hallucinations, visible only with a certain survival skill level. +- ```HIDDEN_POISON``` ... Food is poisonous, visible only with a certain survival skill level. +- ```MELTS``` Provides half fun unless frozen. Edible when frozen. +- ```MILLABLE``` Can be placed inside a mill, to turn into flour. +- ```MYCUS_OK``` Can be eaten by post-threshold Mycus characters. Only applies to mycus fruits by default. +- ```NO_INGEST``` Administered by some means other than oral intake. +- ```PKILL_1``` Minor painkiller. +- ```PKILL_2``` Moderate painkiller. +- ```PKILL_3``` Heavy painkiller. +- ```PKILL_4``` "You shoot up." +- ```PKILL_L``` Slow-release painkiller. +- ```SMOKABLE``` Accepted by smoking rack. +- ```SMOKED``` Not accepted by smoking rack (product of smoking). +- ```USE_EAT_VERB``` "You drink your %s." or "You eat your %s." +- ```USE_ON_NPC``` Can be used on NPCs (not necessarily by them). +- ```ZOOM``` Zoom items can increase your overmap sight range. -- ```AUTUMN``` -- ```SPRING``` -- ```SUMMER``` -- ```WINTER``` -#### Time of day +## Furniture and Terrain -Multiple time of day conditions will be combined together so that any of those conditions become valid time of day spawn times. +List of known flags, used in both `terrain.json` and `furniture.json`. -- ```DAWN``` -- ```DAY``` -- ```DUSK``` -- ```NIGHT``` +### Flags -## Mutations +- ```ALARMED``` Sets off an alarm if smashed. +- ```ALLOW_FIELD_EFFECT``` Apply field effects to items inside ```SEALED``` terrain/furniture. +- ```AUTO_WALL_SYMBOL``` (only for terrain) The symbol of this terrain will be one of the line drawings (corner, T-intersection, straight line etc.) depending on the adjacent terrains. -### Categories + Example: `-` and `|` are both terrain with the `CONNECT_TO_WALL` flag. `O` does not have the flag, while `X` and `Y` have the `AUTO_WALL_SYMBOL` flag. -These branches are also the valid entries for the categories of `dreams` in `dreams.json` + `X` terrain will be drawn as a T-intersection (connected to west, south and east), `Y` will be drawn as horizontal line (going from west to east, no connection to south). + ``` + -X- -Y- + | O + ``` -- ```MUTCAT_ALPHA``` "You feel...better. Somehow." -- ```MUTCAT_BEAST``` "Your heart races and you see blood for a moment." -- ```MUTCAT_BIRD``` "Your body lightens and you long for the sky." -- ```MUTCAT_CATTLE``` "Your mind and body slow down. You feel peaceful." -- ```MUTCAT_CEPHALOPOD``` "Your mind is overcome by images of eldritch horrors...and then they pass." -- ```MUTCAT_CHIMERA``` "You need to roar, bask, bite, and flap. NOW." -- ```MUTCAT_ELFA``` "Nature is becoming one with you..." -- ```MUTCAT_FISH``` "You are overcome by an overwhelming longing for the ocean." -- ```MUTCAT_INSECT``` "You hear buzzing, and feel your body harden." -- ```MUTCAT_LIZARD``` "For a heartbeat, your body cools down." -- ```MUTCAT_MEDICAL``` "Your can feel the blood rushing through your veins and a strange, medicated feeling washes over your senses." -- ```MUTCAT_PLANT``` "You feel much closer to nature." -- ```MUTCAT_RAPTOR``` "Mmm...sweet bloody flavor...tastes like victory." -- ```MUTCAT_RAT``` "You feel a momentary nausea." -- ```MUTCAT_SLIME``` "Your body loses all rigidity for a moment." -- ```MUTCAT_SPIDER``` "You feel insidious." -- ```MUTCAT_TROGLOBITE``` "You yearn for a cool, dark place to hide." +- ```BARRICADABLE_DOOR_DAMAGED``` +- ```BARRICADABLE_DOOR_REINFORCED_DAMAGED``` +- ```BARRICADABLE_DOOR_REINFORCED``` +- ```BARRICADABLE_DOOR``` Door that can be barricaded. +- ```BARRICADABLE_WINDOW_CURTAINS``` +- ```BARRICADABLE_WINDOW``` Window that can be barricaded. +- ```BASHABLE``` Players + Monsters can bash this. +- ```BLOCK_WIND``` This terrain will block the effects of wind. +- ```BUTCHER_EQ``` Butcher's equipment - required for full butchery of corpses. +- ```CAN_SIT``` Furniture the player can sit on. Player sitting near furniture with the "FLAT_SURF" tag will get mood bonus for eating. +- ```CHIP``` Used in construction menu to determine if wall can have paint chipped off. +- ```COLLAPSES``` Has a roof that can collapse. +- ```CONNECT_TO_WALL``` (only for terrain) This flag has been superseded by the JSON entry `connects_to`, but is retained for backward compatibility. +- ```CONSOLE``` Used as a computer. +- ```CONTAINER``` Items on this square are hidden until looted by the player. +- ```DECONSTRUCT``` Can be deconstructed. +- ```DEEP_WATER``` +- ```DESTROY_ITEM``` Items that land here are destroyed. See also `NOITEM` +- ```DIGGABLE_CAN_DEEPEN``` Diggable location can be dug again to make deeper (e.g. shallow pit to deep pit). +- ```DIGGABLE``` Digging monsters, seeding monster, digging with shovel, etc. +- ```DOOR``` Can be opened (used for NPC path-finding). +- ```EASY_DECONSTRUCT``` Player can deconstruct this without tools. +- ```EXPLODES``` Explodes when on fire. +- ```FIRE_CONTAINER``` Stops fire from spreading (brazier, wood stove, etc.) +- ```FLAMMABLE_ASH``` Burns to ash rather than rubble. +- ```FLAMMABLE_HARD``` Harder to light on fire, but still possible. +- ```FLAMMABLE``` Can be lit on fire. +- ```FLAT_SURF``` Furniture or terrain with a flat hard surface (e.g. table, but not chair; tree stump, etc.). +- ```FLAT``` Player can build and move furniture on. +- ```GOES_DOWN``` Can use > to go down a level. +- ```GOES_UP``` Can use < to go up a level. +- ```HARVESTED``` Marks the harvested version of a terrain type (e.g. harvesting an apple tree turns it into a harvested tree, which later becomes an apple tree again). +- ```HIDE_PLACE``` Creatures on this tile can't be seen by creatures not standing on adjacent tiles +- ```INDOORS``` Has a roof over it; blocks rain, sunlight, etc. +- ```LADDER``` This piece of furniture that makes climbing easy (works only with z-level mode). +- ```LIQUIDCONT``` Furniture that contains liquid, allows for contents to be accessed in some checks even if `SEALED`. +- ```LIQUID``` Blocks movement, but isn't a wall (lava, water, etc.) +- ```MINEABLE``` Can be mined with a pickaxe/jackhammer. +- ```MOUNTABLE``` Suitable for guns with the `MOUNTED_GUN` flag. +- ```NOCOLLIDE``` Feature that simply doesn't collide with vehicles at all. +- ```NOITEM``` Items cannot be added here but may overflow to adjacent tiles. See also `DESTROY_ITEM` +- ```NO_FLOOR``` Things should fall when placed on this tile +- ```NO_SIGHT``` Creature on this tile have their sight reduced to one tile +- ```OPENCLOSE_INSIDE``` If it's a door (with an 'open' or 'close' field), it can only be opened or closed if you're inside. +- ```PAINFUL``` May cause a small amount of pain. +- ```PERMEABLE``` Permeable for gases. +- ```PLACE_ITEM``` Valid terrain for `place_item()` to put items on. +- ```PLANT``` A 'furniture' that grows and fruits. +- ```PLOWABLE``` Terrain can be plowed. +- ```RAMP_END``` +- ```RAMP``` Can be used to move up a z-level +- ```REDUCE_SCENT``` Reduces scent even more; only works if also bashable. +- ```ROAD``` Flat and hard enough to drive or skate (with rollerblades) on. +- ```ROUGH``` May hurt the player's feet. +- ```RUG``` Enables the `Remove Carpet` Construction entry. +- ```SALT_WATER``` Source of salt water (works for terrains with examine action "water_source"). +- ```SEALED``` Can't use e to retrieve items; must smash them open first. +- ```SEEN_FROM_ABOVE``` Visible from a higher level (provided the tile above has no floor) +- ```SHARP``` May do minor damage to players/monsters passing through it. +- ```SHORT``` Feature too short to collide with vehicle protrusions. (mirrors, blades). +- ```SUPPORTS_ROOF``` Used as a boundary for roof construction. +- ```SUPPRESS_SMOKE``` Prevents smoke from fires; used by ventilated wood stoves, etc. +- ```SWIMMABLE``` Player and monsters can swim through it. +- ```THIN_OBSTACLE``` Passable by players and monsters; vehicles destroy it. +- ```TINY``` Feature too short to collide with vehicle undercarriage. Vehicles drive over them with no damage, unless a wheel hits them. +- ```TRANSPARENT``` Players and monsters can see through/past it. Also sets ter_t.transparent. +- ```UNSTABLE``` Walking here cause the bouldering effect on the character. +- ```USABLE_FIRE``` This terrain or furniture counts as a nearby fire for crafting. +- ```WALL``` This terrain is an upright obstacle. Used for fungal conversion, and also implies `CONNECT_TO_WALL`. -## Vehicle Parts +### Examine Actions -### Fuel types +- ```aggie_plant``` Harvest plants. +- ```bars``` Take advantage of AMORPHOUS and slip through the bars. +- ```bulletin_board``` Use this to arrange tasks for your faction camp. +- ```cardreader``` Use the cardreader with a valid card, or attempt to hack. +- ```chainfence``` Hop over the chain fence. +- ```controls_gate``` Controls the attached gate. +- ```dirtmound``` Plant seeds and plants. +- ```elevator``` Use the elevator to change floors. +- ```fault``` Displays descriptive message, but otherwise unused. +- ```flower_poppy``` Pick the mutated poppy. +- ```fswitch``` Flip the switch and the rocks will shift. +- ```fungus``` Release spores as the terrain crumbles away. +- ```gaspump``` Use the gas-pump. +- ```none``` None +- ```pedestal_temple``` Opens the temple if you have a petrified eye. +- ```pedestal_wyrm``` Spawn wyrms. +- ```pit_covered``` Uncover the pit. +- ```pit``` Cover the pit if you have some planks of wood. +- ```portable_structure``` Take down a tent or similar portable structure. +- ```recycle_compactor``` Compress pure metal objects into basic shapes. +- ```rubble``` Clear up the rubble if you have a shovel. +- ```safe``` Attempt to crack the safe. +- ```shelter``` Take down the shelter. +- ```shrub_marloss``` Pick a marloss bush. +- ```shrub_wildveggies``` Pick a wild veggies shrub. +- ```slot_machine``` Gamble. +- ```toilet``` Either drink or get water out of the toilet. +- ```trap``` Interact with a trap. +- ```water_source``` Drink or get water from a water source. -- ```NULL``` None -- ```battery``` Electrifying. -- ```diesel``` Refined dino. -- ```gasoline``` Refined dino. -- ```plasma``` Superheated. -- ```plutonium``` 1.21 Gigawatts! -- ```water``` Clean. -- ```wind``` Wind powered. +### Fungal Conversions Only -### Flags +- ```FLOWER``` This furniture is a flower. +- ```FUNGUS``` Fungal covered. +- ```ORGANIC``` This furniture is partly organic. +- ```SHRUB``` This terrain is a shrub. +- ```TREE``` This terrain is a tree. +- ```YOUNG``` This terrain is a young tree. -- ```ADVANCED_PLANTER``` This planter doesn't spill seeds and avoids damaging itself on non-diggable surfaces. -- ```AISLE``` Player can move over this part with less speed penalty than normal. -- ```AISLE_LIGHT``` -- ```ALTERNATOR``` Recharges batteries installed on the vehicle. -- ```ANCHOR_POINT``` Allows secure seatbelt attachment. -- ```ARMOR``` Protects the other vehicle parts it's installed over during collisions. -- ```ATOMIC_LIGHT``` -- ```BATTERY_MOUNT``` -- ```BED``` A bed where the player can sleep. -- ```BEEPER``` Generates noise when the vehicle moves backward. -- ```BELTABLE``` Seatbelt can be attached to this part. -- ```BIKE_RACK_VEH``` Can be used to merge an adjacent single tile wide vehicle, or split a single tile wide vehicle off into its own vehicle. -- ```BOARDABLE``` The player can safely move over or stand on this part while the vehicle is moving. -- ```CAMERA``` -- ```CAMERA_CONTROL``` -- ```CAPTURE_MOSNTER_VEH``` Can be used to capture monsters when mounted on a vehicle. -- ```CARGO``` Cargo holding area. -- ```CARGO_LOCKING``` This cargo area is inaccessible to NPCs. -- ```CHEMLAB``` Acts as a chemistry set for crafting. -- ```CHIMES``` Generates continuous noise when used. -- ```CIRCLE_LIGHT``` Projects a circular radius of light when turned on. -- ```CONE_LIGHT``` Projects a cone of light when turned on. -- ```CONTROLS``` Can be used to control the vehicle. -- ```COVERED``` Prevents items in cargo parts from emitting any light. -- ```CRAFTRIG``` Acts as a dehydrator, vacuum sealer and reloading press for crafting purposes. Potentially to include additional tools in the future. -- ```CTRL_ELECTRONIC``` Controls electrical and electronic systems of the vehicle. -- ```CURTAIN``` Can be installed over a part flagged with ```WINDOW```, and functions the same as blinds found on windows in buildings. -- ```DIFFICULTY_REMOVE``` -- ```DOME_LIGHT``` -- ```DOOR_MOTOR``` -- ```ENGINE``` Is an engine and contributes towards vehicle mechanical power. -- ```E_HEATER``` Is an engine and has a heater to warm internal vehicle items when on. -- ```E_ALTERNATOR``` Is an engine that can power an alternator. -- ```E_COLD_START``` Is an engine that starts much slower in cold weather. -- ```E_COMBUSTION``` Is an engine that burns its fuel and can backfire or explode when damaged. -- ```E_HIGHER_SKILL``` Is an engine that is more difficult to install as more engines are installed. -- ```E_STARTS_INSTANTLY``` Is an engine that starts instantly, like food pedals. -- ```EVENTURN``` Only on during even turns. -- ```EXTRA_DRAG``` tells the vehicle that the part exerts engine power reduction. -- ```FAUCET``` -- ```FLAT_SURF``` Part with a flat hard surface (e.g. table). -- ```FOLDABLE``` -- ```FORGE``` Acts as a forge for crafting. -- ```FRIDGE``` Can refrigerate items. -- ```FREEZER``` Can freeze items in below zero degrees Celsius temperature. -- ```FUNNEL``` -- ```HALF_CIRCLE_LIGHT``` Projects a directed half-circular radius of light when turned on. -- ```HORN``` Generates noise when used. -- ```INITIAL_PART``` When starting a new vehicle via the construction menu, this vehicle part will be the initial part of the vehicle (if the used item matches the item required for this part). The items of parts with this flag are automatically added as component to the vehicle start construction. -- ```INTERNAL``` Must be mounted inside a cargo area. -- ```KITCHEN``` Acts as a kitchen unit and heat source for crafting. -- ```LOCKABLE_CARGO``` Cargo containers that are able to have a lock installed. -- ```MUFFLER``` Muffles the noise a vehicle makes while running. -- ```MULTISQUARE``` Causes this part and any adjacent parts with the same ID to act as a singular part. -- ```MUSCLE_ARMS``` Power of the engine with such flag depends on player's strength (it's less effective than ```MUSCLE_LEGS```). -- ```MUSCLE_LEGS``` Power of the engine with such flag depends on player's strength. -- ```NAILABLE``` Attached with nails -- ```NEEDS_BATTERY_MOUNT``` -- ```NOINSTALL``` Cannot be installed. -- ```NO_JACK``` -- ```OBSTACLE``` Cannot walk through part, unless the part is also ```OPENABLE```. -- ```ODDTURN``` Only on during odd turns. -- ```ON_CONTROLS``` -- ```ON_ROOF``` - Parts with this flag could only be installed on a roof (parts with ```ROOF``` flag). -- ```OPAQUE``` Cannot be seen through. -- ```OPENABLE``` Can be opened or closed. -- ```OPENCLOSE_INSIDE``` Can be opened or closed, but only from inside the vehicle. -- ```OVER``` Can be mounted over other parts. -- ```PERPETUAL``` If paired with REACTOR, part produces electrical power without consuming fuel. -- ```PLANTER``` Plants seeds into tilled dirt, spilling them when the terrain underneath is unsuitable. It is damaged by running it over non-```DIGGABLE``` surfaces. -- ```PLOW``` Tills the soil underneath the part while active. Takes damage from unsuitable terrain at a level proportional to the speed of the vehicle. -- ```POWER_TRANSFER``` Transmits power to and from an attached thingy (probably a vehicle). -- ```PROTRUSION``` Part sticks out so no other parts can be installed over it. -- ```WIND_POWERED``` This engine is powered by wind ( sails etc ). -- ```REACTOR``` When enabled, part consumes fuel to generate epower. -- ```REAPER``` Cuts down mature crops, depositing them on the square. -- ```RECHARGE``` Recharge items with the same flag. ( Currently only the rechargeable battery mod. ) -- ```REMOTE_CONTROLS``` -- ```REVERSIBLE``` Removal has identical requirements to installation but is twice as quick -- ```ROOF``` Covers a section of the vehicle. Areas of the vehicle that have a roof and roofs on surrounding sections, are considered inside. Otherwise they're outside. -- ```SCOOP``` Pulls items from underneath the vehicle to the cargo space of the part. Also mops up liquids. -- ```SEAT``` A seat where the player can sit or sleep. -- ```SEATBELT``` Helps prevent the player from being ejected from the vehicle during an accident. -- ```SECURITY``` -- ```SHARP``` Striking a monster with this part does cutting damage instead of bashing damage, and prevents stunning the monster. -- ```SOLAR_PANEL``` Recharges vehicle batteries when exposed to sunlight. Has a 1 in 4 chance of being broken on car generation. -- ```SPACE_HEATER``` Is a part that emits hot air. -- ```STABLE``` Similar to `WHEEL`, but if the vehicle is only a 1x1 section, this single wheel counts as enough wheels. -- ```STEERABLE``` This wheel is steerable. -- ```STEREO``` -- ```TOOL_NONE``` Can be removed/installed without any tools -- ```TOOL_SCREWDRIVER``` Attached with screws, can be removed/installed with a screwdriver -- ```TOOL_WRENCH``` Attached with bolts, can be removed/installed with a wrench -- ```TRACK``` Allows the vehicle installed on, to be marked and tracked on map. -- ```TRACKED``` Contributes to steering effectiveness but doesn't count as a steering axle for install difficulty and still contributes to drag for the center of steering calculation. -- ```TURRET``` Is a weapon turret. Can only be installed on a part with ```TURRET_MOUNT``` flag. -- ```TURRET_MOUNT``` Parts with this flag are suitable for installing turrets. -- ```UNMOUNT_ON_DAMAGE``` Part breaks off the vehicle when destroyed by damage. -- ```UNMOUNT_ON_MOVE``` Dismount this part when the vehicle moves. Doesn't drop the part, unless you give it special handling. -- ```VARIABLE_SIZE``` Has 'bigness' for power, wheel radius, etc. -- ```VISION``` -- ```WATER_WHEEL``` Recharges vehicle batteries when submerged in moving water. -- ```WELDRIG``` Acts as a welder for crafting. -- ```WIDE_CONE_LIGHT``` Projects a wide cone of light when turned on. -- ```WIND_TURBINE``` Recharges vehicle batteries when exposed to wind. -- ```WHEEL``` Counts as a wheel in wheel calculations. -- ```WASHING_MACHINE``` Can be used to wash filthy clothes en masse. -- ```WATER_WHEEL``` Recharges vehicle batteries when in flowing water. -- ```WINDOW``` Can see through this part and can install curtains over it. -- ```WORKBENCH``` Can craft at this part, must be paired with a workbench json entry. +### Furniture Only -## Ammo +- ```BLOCKSDOOR``` This will boost map terrain's resistance to bashing if `str_*_blocked` is set (see `map_bash_info`) -### Ammo type -These are handled through ammo_types.json. You can tag a weapon with these to have it chamber existing ammo, or make your own ammo there. The first column in this list is the tag's "id", the internal identifier DDA uses to track the tag, and the second is a brief description of the ammo tagged. Use the id to search for ammo listings, as ids are constant throughout DDA's code. Happy chambering! :-) +## Generic -- ```22``` .22LR (and relatives) -- ```223``` .223 Remington (and 5.56 NATO) -- ```300``` .300 WinMag -- ```3006``` 30.06 -- ```308``` .308 Winchester (and relatives) -- ```32``` .32 ACP -- ```36paper``` .36 cap & ball -- ```38``` .38 Special -- ```40``` 10mm -- ```44``` .44 Magnum -- ```44paper``` .44 cap & ball -- ```45``` .45 ACP (and relatives) -- ```454``` .454 Casull -- ```46``` 46mm -- ```5x50``` 5x50 Dart -- ```50``` .50 BMG -- ```500``` .500 Magnum -- ```57``` 57mm -- ```700nx``` .700 Nitro Express -- ```762x25``` 7.62x25mm -- ```762``` 7.62x39mm -- ```762R``` 7.62x54mm -- ```8x40mm``` 8mm Caseless -- ```9mm``` 9x19mm Luger (and relatives) -- ```9x18``` 9x18mm -- ```12mm``` 12mm -- ```20x66mm``` 20x66mm Shot (and relatives) -- ```40mm``` 40mm Grenade -- ```66mm``` 66mm HEAT -- ```84x246mm``` 84x246mm HE -- ```120mm``` 120mm HEAT -- ```ammo_flintlock``` Flintlock ammo -- ```ampoule``` Ampoule -- ```arrow``` Arrow -- ```battery``` Battery -- ```BB``` BB -- ```blunderbuss``` Blunderbuss -- ```bolt``` Bolt -- ```charcoal``` Charcoal -- ```components``` Components -- ```dart``` Dart -- ```diesel``` Diesel -- ```fish_bait``` Fish bait -- ```fishspear``` Speargun spear -- ```fusion``` Laser Pack -- ```gasoline``` Gasoline -- ```homebrew_rocket``` homebrew rocket -- ```lamp_oil``` Lamp oil -- ```laser_capacitor``` Charge -- ```m235``` M235 TPA (66mm Incendiary Rocket) -- ```metal_rail``` Rebar Rail -- ```mininuke_mod``` Mininuke -- ```money``` Cents -- ```muscle``` Muscle -- ```nail``` Nail -- ```pebble``` Pebble -- ```plasma``` Plasma -- ```plutonium``` Plutonium Cell -- ```rebreather_filter``` Rebreather filter -- ```RPG-7``` RPG-7 -- ```signal_flare``` Signal Flare -- ```shot``` Shotshell -- ```tape``` Duct tape -- ```thread``` Thread -- ```thrown``` Thrown -- ```unfinished_char``` Semi-charred fuel -- ```UPS``` UPS charges -- ```water``` Water +### Flags -### Effects +- ```ANESTHESIA``` ... Item is considered anesthesia for the purpose of installing or uninstalling bionics. +- ```BIONIC_NPC_USABLE``` Safe CBMs that NPCs can use without extensive NPC rewrites to utilize toggle CBMs. +- ```DANGEROUS``` ... NPCs will not accept this item. Explosion iuse actor implies this flag. Implies "NPC_THROW_NOW". +- ```DURABLE_MELEE``` ... Item is made to hit stuff and it does it well, so it's considered to be a lot tougher than other weapons made of the same materials. +- ```FAKE_MILL``` ... Item is a fake item, to denote a partially milled product by @ref Item::process_fake_mill, where conditions for its removal are set. +- ```FAKE_SMOKE``` ... Item is a fake item generating smoke, recognizable by @ref item::process_fake_smoke, where conditions for its removal are set. +- ```FIREWOOD``` ... This item can serve as a firewood. Items with this flag are sorted out to "Loot: Wood" zone +- ```FRAGILE_MELEE``` ... Fragile items that fall apart easily when used as a weapon due to poor construction quality and will break into components when broken. +- ```GAS_DISCOUNT``` ... Discount cards for the automated gas stations. +- ```IS_PET_ARMOR``` ... Is armor for a pet monster, not armor for a person +- ```LEAK_ALWAYS``` ... Leaks (may be combined with "RADIOACTIVE"). +- ```LEAK_DAM``` ... Leaks when damaged (may be combined with "RADIOACTIVE"). +- ```NEEDS_UNFOLD``` ... Has an additional time penalty upon wielding. For melee weapons and guns this is offset by the relevant skill. Stacks with "SLOW_WIELD". +- ```NO_PICKUP``` ... Character can not pickup anything while wielding this item (e.g. bionic claws). +- ```NO_REPAIR``` ... Prevents repairing of this item even if otherwise suitable tools exist. +- ```NO_SALVAGE``` Item cannot be broken down through a salvage process. Best used when something should not be able to be broken down (i.e. base components like leather patches). +- ```NPC_ACTIVATE``` ... NPCs can activate this item as an alternative attack. Currently by throwing it right after activation. Implied by "BOMB". +- ```NPC_ALT_ATTACK``` ... Shouldn't be set directly. Implied by "NPC_ACTIVATE" and "NPC_THROWN". +- ```NPC_THROWN``` ... NPCs will throw this item (without activating it first) as an alternative attack. +- ```NPC_THROW_NOW``` ... NPCs will try to throw this item away, preferably at enemies. Implies "TRADER_AVOID" and "NPC_THROWN". +- ```PSEUDO``` ... Used internally to mark items that are referred to in the crafting inventory but are not actually items. They can be used as tools, but not as components. Implies "TRADER_AVOID". +- ```RADIOACTIVE``` ... Is radioactive (can be used with LEAK_*). +- ```RAIN_PROTECT``` ... Protects from sunlight and from rain, when wielded. +- ```REDUCED_BASHING``` ... Gunmod flag; reduces the item's bashing damage by 50%. +- ```REDUCED_WEIGHT``` ... Gunmod flag; reduces the item's base weight by 25%. +- ```SLEEP_AID``` ... This item helps in sleeping. +- ```SLOW_WIELD``` ... Has an additional time penalty upon wielding. For melee weapons and guns this is offset by the relevant skill. Stacks with "NEEDS_UNFOLD". +- ```TRADER_AVOID``` ... NPCs will not start with this item. Use this for active items (e.g. flashlight (on)), dangerous items (e.g. active bomb), fake item or unusual items (e.g. unique quest item). +- ```UNBREAKABLE_MELEE``` ... Does never get damaged when used as melee weapon. +- ```UNRECOVERABLE``` Cannot be recovered from a disassembly. -- ```ACIDBOMB``` Leaves a pool of acid on detonation. -- ```BEANBAG``` Stuns the target. -- ```BLINDS_EYES``` Blinds the target if it hits the head (ranged projectiles can't actually hit the eyes at the moment). -- ```BOUNCE``` Inflicts target with `bounced` effect and rebounds to a nearby target without this effect. -- ```COOKOFF``` Explodes when lit on fire. -- ```CUSTOM_EXPLOSION``` Explosion as specified in ```"explosion"``` field of used ammo. See JSON_INFO.md -- ```DRAW_AS_LINE``` Doesn't go through regular bullet animation, instead draws a line and the bullet on its end for one frame. -- ```EXPLOSIVE``` Explodes without any shrapnel. -- ```EXPLOSIVE_BIG``` Large explosion without any shrapnel. -- ```EXPLOSIVE_HUGE``` Huge explosion without any shrapnel. -- ```FLAME``` Very small explosion that lights fires. -- ```FLARE``` Lights the target on fire. -- ```FLASHBANG``` Blinds and deafens nearby targets. -- ```FRAG``` Small explosion that spreads shrapnel. -- ```INCENDIARY``` Lights target on fire. -- ```LARGE_BEANBAG``` Heavily stuns the target. -- ```LASER``` Creates a trail of laser (the field type) -- ```LIGHTNING``` Creates a trail of lightning. -- ```MININUKE_MOD``` Small thermo-nuclear detonation that leaves behind radioactive fallout. -- ```MUZZLE_SMOKE``` Generate a small cloud of smoke at the source. -- ```NAPALM``` Explosion that spreads fire. -- ```NOGIB``` Prevents overkill damage on the target (target won't explode into gibs, see also the monster flag NO_GIBS). -- ```NO_EMBED``` When an item would be spawned from the projectile, it will always be spawned on the ground rather than in monster's inventory. Implied for active thrown items. Doesn't do anything on projectiles that do not drop items. -- ```NO_ITEM_DAMAGE``` Will not damage items on the map even when it otherwise would try to. -- ```NEVER_MISFIRES``` Firing ammo without this flag may trigger a misfiring, this is independent of the weapon flags. -- ```PLASMA``` Creates a trail of superheated plasma. -- ```RECOVER_[X]``` Has a (X-1/X) chance to create a single charge of the used ammo at the point of impact. -- ```RECYCLED``` (For handmade ammo) causes the gun to misfire sometimes, this independent of the weapon flags. -- ```SHOT``` Multiple smaller pellets; less effective against armor but increases chance to hit and no point-blank penalty -- ```SMOKE``` Generates a cloud of smoke at the target. -- ```SMOKE_BIG``` Generates a large cloud of smoke at the target. -- ```STREAM``` Leaves a trail of fire fields. -- ```STREAM_BIG``` Leaves a trail of intense fire fields. -- ```TRAIL``` Creates a trail of smoke. -- ```WIDE``` Prevents `HARDTOSHOOT` monster flag from having any effect. Implied by ```SHOT``` or liquid ammo. -## Techniques +## Guns -Techniques may be used by tools, armors, weapons and anything else that can be wielded. +- ```BACKBLAST``` Causes a small explosion behind the person firing the weapon. Currently not implemented? +- ```BIPOD``` Handling bonus only applies on MOUNTABLE map/vehicle tiles. Does not include wield time penalty (see SLOW_WIELD). +- ```CHARGE``` Has to be charged to fire. Higher charges do more damage. +- ```COLLAPSIBLE_STOCK``` Reduces weapon volume proportional to the base size of the gun (excluding any mods). Does not include wield time penalty (see NEEDS_UNFOLD). +- ```CONSUMABLE``` Makes a gunpart have a chance to get damaged depending on ammo fired, and definable fields 'consume_chance' and 'consume_divisor'. +- ```DISABLE_SIGHTS``` Prevents use of the base weapon sights +- ```FIRE_100``` Uses 100 shots per firing. +- ```FIRE_50``` Uses 50 shots per firing. +- ```FIRE_TWOHAND``` Gun can only be fired if player has two free hands. +- ```IRREMOVABLE``` Makes so that the gunmod cannot be removed. +- ```MOUNTED_GUN``` Gun can only be used on terrain / furniture with the "MOUNTABLE" flag. +- ```NEVER_JAMS``` Never malfunctions. +- ```NO_BOOM``` Cancels the ammo effect "FLAME". +- ```NO_UNLOAD``` Cannot be unloaded. +- ```PRIMITIVE_RANGED_WEAPON``` Allows using non-gunsmith tools to repair it (but not reinforce). +- ```PUMP_ACTION``` Gun has a rails on its pump action, allowing to install only mods with PUMP_RAIL_COMPATIBLE flag on underbarrel slot. +- ```PUMP_RAIL_COMPATIBLE``` Mod can be installed on underbarrel slot of guns with rails on their pump action. +- ```RELOAD_AND_SHOOT``` Firing automatically reloads and then shoots. +- ```RELOAD_EJECT``` Ejects shell from gun on reload instead of when fired. +- ```RELOAD_ONE``` Only reloads one round at a time. +- ```STR_DRAW``` Range with this weapon is reduced unless character has at least twice the required minimum strength +- ```STR_RELOAD``` Reload speed is affected by strength. +- ```UNDERWATER_GUN``` Gun is optimized for usage underwater, does perform badly outside of water. +- ```WATERPROOF_GUN``` Gun does not rust and can be used underwater. -- see contents of `data/json/techniques.json` -- techniques are also used with martial arts styles, see `data/json/martialarts.json` +### Firing modes -## Armor +- ```MELEE``` Melee attack using properties of the gun or auxiliary gunmod +- ```NPC_AVOID``` NPC's will not attempt to use this mode +- ```SIMULTANEOUS``` All rounds fired concurrently (not sequentially) with recoil added only once (at the end) -### Covers -- ```ARMS``` ... same ```ARM_L``` and ```ARM_R``` -- ```ARM_L``` -- ```ARM_R``` -- ```EYES``` -- ```FEET``` ... same ```FOOT_L``` and ```FOOT_R``` -- ```FOOT_L``` -- ```FOOT_R``` -- ```HANDS``` ... same ```HAND_L``` and ```HAND_R``` -- ```HAND_L``` -- ```HAND_R``` -- ```HEAD``` -- ```LEGS``` ... same ```LEG_L``` and ```LEG_R``` -- ```LEG_L``` -- ```LEG_R``` -- ```MOUTH``` -- ```TORSO``` +## Magazines -### Flags +- ```MAG_BULKY``` Can be stashed in an appropriate oversize ammo pouch (intended for bulky or awkwardly shaped magazines) +- ```MAG_COMPACT``` Can be stashed in an appropriate ammo pouch (intended for compact magazines) +- ```MAG_DESTROY``` Magazine is destroyed when the last round is consumed (intended for ammo belts). Has precedence over MAG_EJECT. +- ```MAG_EJECT``` Magazine is ejected from the gun/tool when the last round is consumed +- ```SPEEDLOADER``` Acts like a magazine, except it transfers rounds to the target gun instead of being inserted into it. -Some armor flags, such as `WATCH` and `ALARMCLOCK` are compatible with other item types. Experiment to find which flags work elsewhere. -- ```ALARMCLOCK``` Has an alarm-clock feature. -- ```ALLOWS_NATURAL_ATTACKS``` Doesn't prevent any natural attacks or similar benefits from mutations, fingertip razors, etc., like most items covering the relevant body part would. -- ```BAROMETER``` This gear is equipped with an accurate barometer (which is used to measure atmospheric pressure). -- ```BELTED``` Layer for backpacks and things worn over outerwear. -- ```BLIND``` Blinds the wearer while worn, and provides nominal protection v. flashbang flashes. -- ```BLOCK_WHILE_WORN``` Allows worn armor or shields to be used for blocking attacks. -- ```CLIMATE_CONTROL``` This piece of clothing has climate control of some sort, keeping you warmer or cooler depending on ambient and bodily temperature. -- ```COLLAR``` This piece of clothing has a wide collar that can keep your mouth warm. -- ```DEAF``` Makes the player deaf. -- ```ELECTRIC_IMMUNE``` This gear completely protects you from electric discharges. -- ```ONLY_ONE``` You can wear only one. -- ```FANCY``` Wearing this clothing gives a morale bonus if the player has the `Stylish` trait. -- ```FIX_FARSIGHT``` This gear corrects farsightedness. -- ```FIX_NEARSIGHT``` This gear corrects nearsightedness. -- ```FLOTATION``` Prevents the player from drowning in deep water. Also prevents diving underwater. -- ```FRAGILE``` This gear is less resistant to damage than normal. -- ```HELMET_COMPAT``` Items that are not SKINTIGHT or OVERSIZE but can be worn with a helmet. -- ```HOOD``` Allow this clothing to conditionally cover the head, for additional warmth or water protection., if the player's head isn't encumbered -- ```HYGROMETER``` This gear is equipped with an accurate hygrometer (which is used to measure humidity). -- ```NO_QUICKDRAW``` Don't offer to draw items from this holster when the fire key is pressed whilst the players hands are empty -- ```OUTER``` Outer garment layer. -- ```OVERSIZE``` Can always be worn no matter encumbrance/mutations/bionics/etc., but prevents any other clothing being worn over this. -- ```PARTIAL_DEAF``` Reduces the volume of sounds to a safe level. -- ```POCKETS``` Increases warmth for hands if the player's hands are cold and the player is wielding nothing. -- ```PSYSHIELD_PARTIAL``` 25% chance to protect against fear_paralyze monster attack when worn. -- ```RAD_PROOF``` This piece of clothing completely protects you from radiation. -- ```RAD_RESIST``` This piece of clothing partially protects you from radiation. -- ```RAINPROOF``` Prevents the covered body-part(s) from getting wet in the rain. -- ```RESTRICT_HANDS``` Prevents the player from wielding a weapon two-handed, forcing one-handed use if the weapon permits it. -- ```SKINTIGHT``` Undergarment layer. -- ```SLOWS_MOVEMENT``` This piece of clothing multiplies move cost by 1.1. -- ```SLOWS_THIRST``` This piece of clothing multiplies the rate at which the player grows thirsty by 0.70. -- ```STURDY``` This clothing is a lot more resistant to damage than normal. -- ```SUN_GLASSES``` Prevents glaring when in sunlight. -- ```SUPER_FANCY``` Gives an additional moral bonus over `FANCY` if the player has the `Stylish` trait. -- ```SWIM_GOGGLES``` Allows you to see much further under water. -- ```THERMOMETER``` This gear is equipped with an accurate thermometer (which is used to measure temperature). -- ```VARSIZE``` Can be made to fit via tailoring. -- ```WAIST``` Layer for belts other things worn on the waist. -- ```WATCH``` Acts as a watch and allows the player to see actual time. -- ```WATER_FRIENDLY``` Prevents the item from making the body part count as unfriendly to water and thus causing negative morale from being wet. -- ```WATERPROOF``` Prevents the covered body-part(s) from getting wet in any circumstance. +## MAP SPECIALS -## Comestibles +- ```mx_anomaly``` ... Natural anomaly (crater + artifact). +- ```mx_clay_deposit``` ... A small surface clay deposit. +- ```mx_clearcut``` ... All trees become stumps. +- ```mx_collegekids``` ... Corpses and items. +- ```mx_crater``` ... Crater with rubble (and radioactivity). +- ```mx_drugdeal``` ... Corpses and some drugs. +- ```mx_fumarole``` ... A lava rift. +- ```mx_grove``` ... All trees and shrubs become a single species of tree. +- ```mx_helicopter``` ... Metal wreckage and some items. +- ```mx_jabberwock``` ... A *chance* of a jabberwock. +- ```mx_military``` ... Corpses and some military items. +- ```mx_minefield``` ... Landmines, a field of them. +- ```mx_null``` ... No special at all. +- ```mx_pond``` ... A small pond. +- ```mx_portal_in``` ... Another portal to neither space. +- ```mx_portal``` ... Portal to neither space. +- ```mx_roadblock``` ... Roadblock furniture with turrets and some cars. +- ```mx_science``` ... Corpses and some scientist items. +- ```mx_shia``` ... A *chance* of Shia, if Crazy Catalcysm is enabled. +- ```mx_shrubbery``` ... All trees and shrubs become a single species of shrub. +- ```mx_spider``` ... A big spider web, complete with spiders and eggs. +- ```mx_supplydrop``` ... Crates with some military items in it. -### Comestible type -- ```DRINK``` -- ```FOOD``` -- ```MED``` +## Material Phases -### Addiction type +- ```GAS``` +- ```LIQUID``` +- ```NULL``` +- ```PLASMA``` +- ```SOLID``` -- ```alcohol``` -- ```amphetamine``` -- ```caffeine``` -- ```cocaine``` -- ```crack``` -- ```nicotine``` -- ```opiate``` -- ```sleeping pill``` -### Use action - -- ```NONE``` "You can't do anything of interest with your [x]." -- ```ALCOHOL``` Increases drunkenness. Adds disease `drunk`. -- ```ALCOHOL_STRONG``` Greatly increases drunkenness. Adds disease `drunk`. -- ```ALCOHOL_WEAK``` Slightly increases drunkenness. Adds disease `drunk` -- ```ANTIBIOTIC``` Helps fight infections. Removes disease `infected` and adds disease `recover`. -- ```ATOMIC_CAFF``` Greatly reduces fatigue and increases radiation dosage. -- ```BANDAGE``` Stop bleeding. -- ```BIRDFOOD``` Makes a small bird friendly. -- ```BLECH``` Causes vomiting. -- ```CAFF``` Reduces fatigue. -- ```CATFOOD``` Makes a cat friendly. -- ```CATTLEFODDER``` Makes a large herbivore friendly. -- ```CHEW``` Displays message "You chew your %s", but otherwise does nothing. -- ```CIG``` Alleviates nicotine cravings. Adds disease `cig`. -- ```COKE``` Decreases hunger. Adds disease `high`. -- ```CRACK``` Decreases hunger. Adds disease `high`. -- ```DISINFECTANT``` Prevents infections. -- ```DOGFOOD``` Makes a dog friendly. -- ```FIRSTAID``` Heal. -- ```FLUMED``` Adds disease `took_flumed`. -- ```FLUSLEEP``` Adds disease `took_flumed` and increases fatigue. -- ```FUNGICIDE``` Kills fungus and spores. Removes diseases `fungus` and `spores`. -- ```SEWAGE``` Causes vomiting and a chance to mutate. -- ```HALLU``` Adds disease `hallu`. -- ```HONEYCOMB``` Spawns wax. -- ```INHALER``` Removes disease `asthma`. -- ```IODINE``` Adds disease `iodine`. -- ```MARLOSS``` "As you eat the berry, you have a near-religious experience, feeling at one with your surroundings..." -- ```METH``` Adds disease `meth` -- ```PKILL``` Reduces pain. Adds disease `pkill[n]` where `[n]` is the level of flag `PKILL_[n]` used on this comestible. -- ```PLANTBLECH``` Causes vomiting if player does not contain plant mutations -- ```POISON``` Adds diseases `poison` and `foodpoison`. -- ```PROZAC``` Adds disease `took_prozac` if not currently present, otherwise acts as a minor stimulant. Rarely has the `took_prozac_bad` adverse effect. -- ```PURIFIER``` Removes negative mutations. -- ```ROYAL_JELLY``` Alleviates many negative conditions and diseases. -- ```SLEEP``` Greatly increases fatigue. -- ```THORAZINE``` Removes diseases `hallu`, `visuals`, `high`. Additionally removes disease `formication` if disease `dermatik` isn't also present. Has a chance of a negative reaction which increases fatigue. -- ```VACCINE``` Greatly increases health. -- ```VITAMINS``` Increases healthiness (not to be confused with HP) -- ```WEED``` Makes you roll with Cheech & Chong. Adds disease `weed_high`. -- ```XANAX``` Alleviates anxiety. Adds disease `took_xanax`. - -### Flags - -- ```ACID``` when consumed using the BLECH function, penalties are reduced if acidproof. -- ```CARNIVORE_OK``` Can be eaten by characters with the Carnivore mutation. -- ```EATEN_HOT``` Morale bonus for eating hot. -- ```EATEN_COLD``` Morale bonus for eating cold. -- ```EDIBLE_FROZEN``` Being frozen doesn't prevent eating it. No morale bonus. -- ```FREEZERBURN``` First thaw is MUSHY, second is rotten -- ```MELTS``` Provides half fun unless frozen. Edible when frozen. -- ```MILLABLE``` Can be placed inside a mill, to turn into flour. -- ```FERTILIZER``` Works as fertilizer for farming, of if this consumed with the PLANTBLECH function penalties will be reversed for plants. -- ```HIDDEN_POISON``` ... Food is poisonous, visible only with a certain survival skill level. -- ```HIDDEN_HALLU``` ... Food causes hallucinations, visible only with a certain survival skill level. -- ```MYCUS_OK``` Can be eaten by post-threshold Mycus characters. Only applies to mycus fruits by default. -- ```PKILL_1``` Minor painkiller. -- ```PKILL_2``` Moderate painkiller. -- ```PKILL_3``` Heavy painkiller. -- ```PKILL_4``` "You shoot up." -- ```PKILL_L``` Slow-release painkiller. -- ```SMOKABLE``` Accepted by smoking rack. -- ```SMOKED``` Not accepted by smoking rack (product of smoking). -- ```USE_EAT_VERB``` "You drink your %s." or "You eat your %s." -- ```USE_ON_NPC``` Can be used on NPCs (not necessarily by them). -- ```ZOOM``` Zoom items can increase your overmap sight range. -- ```NO_INGEST``` Administered by some means other than oral intake. - -## Melee +## Melee ### Flags @@ -879,262 +729,362 @@ Some armor flags, such as `WATCH` and `ALARMCLOCK` are compatible with other ite - ```UNARMED_WEAPON``` Wielding this item still counts as unarmed combat. - ```WHIP``` Has a chance of disarming the opponent. -## Guns -- ```BACKBLAST``` Causes a small explosion behind the person firing the weapon. Currently not implemented? -- ```BIPOD``` Handling bonus only applies on MOUNTABLE map/vehicle tiles. Does not include wield time penalty (see SLOW_WIELD). -- ```CHARGE``` Has to be charged to fire. Higher charges do more damage. -- ```COLLAPSIBLE_STOCK``` Reduces weapon volume proportional to the base size of the gun (excluding any mods). Does not include wield time penalty (see NEEDS_UNFOLD). -- ```CONSUMABLE``` Makes a gunpart have a chance to get damaged depending on ammo fired, and definable fields 'consume_chance' and 'consume_divisor'. -- ```DISABLE_SIGHTS``` Prevents use of the base weapon sights -- ```FIRE_50``` Uses 50 shots per firing. -- ```FIRE_100``` Uses 100 shots per firing. -- ```FIRE_TWOHAND``` Gun can only be fired if player has two free hands. -- ```IRREMOVABLE``` Makes so that the gunmod cannot be removed. -- ```MOUNTED_GUN``` Gun can only be used on terrain / furniture with the "MOUNTABLE" flag. -- ```NEVER_JAMS``` Never malfunctions. -- ```NO_BOOM``` Cancels the ammo effect "FLAME". -- ```NO_UNLOAD``` Cannot be unloaded. -- ```PRIMITIVE_RANGED_WEAPON``` Allows using non-gunsmith tools to repair it (but not reinforce). -- ```PUMP_ACTION``` Gun has a rails on its pump action, allowing to install only mods with PUMP_RAIL_COMPATIBLE flag on underbarrel slot. -- ```PUMP_RAIL_COMPATIBLE``` Mod can be installed on underbarrel slot of guns with rails on their pump action. -- ```RELOAD_AND_SHOOT``` Firing automatically reloads and then shoots. -- ```RELOAD_EJECT``` Ejects shell from gun on reload instead of when fired. -- ```RELOAD_ONE``` Only reloads one round at a time. -- ```STR_DRAW``` Range with this weapon is reduced unless character has at least twice the required minimum strength -- ```STR_RELOAD``` Reload speed is affected by strength. -- ```UNDERWATER_GUN``` Gun is optimized for usage underwater, does perform badly outside of water. -- ```WATERPROOF_GUN``` Gun does not rust and can be used underwater. +## Monster Groups + +### Conditions + +Limit when monsters can spawn. + +#### Seasons + +Multiple season conditions will be combined together so that any of those conditions become valid time of year spawn times. + +- ```AUTUMN``` +- ```SPRING``` +- ```SUMMER``` +- ```WINTER``` + +#### Time of day + +Multiple time of day conditions will be combined together so that any of those conditions become valid time of day spawn times. + +- ```DAWN``` +- ```DAY``` +- ```DUSK``` +- ```NIGHT``` + + +## Monsters + +Flags used to describe monsters and define their properties and abilities. + +### Anger, Fear and Placation Triggers + +- ```FIRE``` There's a fire nearby. +- ```FRIEND_ATTACKED``` A monster of the same type was attacked. +- ```FRIEND_DIED``` A monster of the same type died. +- ```HURT``` The monster is hurt. +- ```MEAT``` Meat or a corpse is nearby. +- ```NULL``` Source use only? +- ```PLAYER_CLOSE``` The player gets within a few tiles distance. +- ```PLAYER_WEAK``` The player is hurt. +- ```SOUND``` Heard a sound. +- ```STALK``` Increases when following the player. + +### Categories + +- ```CLASSIC``` Only monsters we expect in a classic zombie movie. +- ```NULL``` No category. +- ```WILDLIFE``` Natural animals. + +### Death Functions + +Multiple death functions can be used. Not all combinations make sense. + +- ```ACID``` Acid instead of a body. not the same as the ACID_BLOOD flag. In most cases you want both. +- ```AMIGARA``` Removes hypnosis if the last one. +- ```BLOBSPLIT``` Creates more blobs. +- ```BOOMER``` Explodes in vomit. +- ```BROKEN``` Spawns a broken robot item, its id calculated like this: the prefix "mon_" is removed from the monster id, than the prefix "broken_" is added. Example: mon_eyebot -> broken_eyebot +- ```DISAPPEAR``` Hallucination disappears. +- ```DISINTEGRATE``` Falls apart. +- ```EXPLODE``` Damaging explosion. +- ```FIREBALL``` 10 percent chance to explode in a fireball. +- ```FLAME_EXPLOSION``` guaranteed to explode and starts fires. +- ```FUNGUS``` Explodes in spores. +- ```GAMEOVER``` Game over man! Game over! Defense mode. +- ```GUILT``` Moral penalty. There is also a flag with a similar effect. +- ```KILL_BREATHERS``` All breathers die. +- ```KILL_VINES``` Kill all nearby vines. +- ```MELT``` Normal death, but melts. +- ```NORMAL``` Drop a body, leave gibs. +- ```RATKING``` Cure verminitis. +- ```SMOKEBURST``` Explode like a huge smoke bomb. +- ```THING``` Turn into a full thing. +- ```TRIFFID_HEART``` Destroys all roots. +- ```VINE_CUT``` Kill adjacent vine if it's cut. +- ```WORM``` Spawns 2 half-worms + +### Flags + +- ```ABSORBS_SPLITS``` Consumes objects it moves over, and if it absorbs enough it will split into a copy. +- ```ABSORBS``` Consumes objects it moves over. (Modders use this). +- ```ACIDPROOF``` Immune to acid. +- ```ACIDTRAIL``` Leaves a trail of acid. +- ```ACID_BLOOD``` Makes monster bleed acid. Fun stuff! Does not automatically dissolve in a pool of acid on death. +- ```ANIMAL``` Is an _animal_ for purposes of the `Animal Empathy` trait. +- ```AQUATIC``` Confined to water. +- ```ARTHROPOD_BLOOD``` Forces monster to bleed hemolymph. +- ```ATTACKMON``` Attacks other monsters. +- ```BADVENOM``` Attack may **severely** poison the player. +- ```BASHES``` Bashes down doors. +- ```BILE_BLOOD``` Makes monster bleed bile. +- ```BIRDFOOD``` Becomes friendly / tamed with bird food. +- ```BLEED``` Causes the player to bleed. +- ```BONES``` May produce bones and sinews when butchered. +- ```BORES``` Tunnels through just about anything (15x bash multiplier: dark wyrms' bash skill 12->180) +- ```CAN_DIG``` Can dig _and_ walk. +- ```CAN_OPEN_DOORS``` Can open doors on its path. +- ```CATFOOD``` Becomes friendly / tamed with cat food. +- ```CATTLEFODDER``` Becomes friendly / tamed with cattle fodder. +- ```CBM_CIV``` May produce a common CBM a power CBM when butchered. +- ```CBM_OP``` May produce a CBM or two from 'bionics_op' item group when butchered. +- ```CBM_POWER``` May produce a power CBM when butchered, independent of CBM. +- ```CBM_SCI``` May produce a CBM from 'bionics_sci' item group when butchered. +- ```CBM_SUBS``` May produce a CBM or two from bionics_subs and a power CBM when butchered. +- ```CBM_TECH``` May produce a CBM or two from 'bionics_tech' item group and a power CBM when butchered. +- ```CHITIN``` May produce chitin when butchered. +- ```CLIMBS``` Can climb. +- ```CURRENT``` this water is flowing. +- ```DESTROYS``` Bashes down walls and more. (2.5x bash multiplier, where base is the critter's max melee bashing) +- ```DIGS``` Digs through the ground. +- ```DOGFOOD``` Becomes friendly / tamed with dog food. +- ```DRIPS_GASOLINE``` Occasionally drips gasoline on move. +- ```DRIPS_NAPALM``` Occasionally drips napalm on move. +- ```ELECTRIC``` Shocks unarmed attackers. +- ```ELECTRONIC``` e.g. A Robot; affected by emp blasts and other stuff. +- ```FAT``` May produce fat when butchered. +- ```FEATHER``` May produce feathers when butchered. +- ```FILTHY``` Any clothing it drops will be filthy. +- ```FIREPROOF``` Immune to fire. +- ```FIREY``` Burns stuff and is immune to fire. +- ```FISHABLE``` It is fishable. +- ```FLAMMABLE``` Monster catches fire, burns, and spreads fire to nearby objects. +- ```FLIES``` Can fly (over water, etc.) +- ```FUR``` May produce fur when butchered. +- ```GOODHEARING``` Pursues sounds more than most monsters. +- ```GRABS``` Its attacks may grab you! +- ```GROUP_BASH``` Gets help from monsters around it when bashing. +- ```GROUP_MORALE``` More courageous when near friends. +- ```GUILT``` You feel guilty for killing it. +- ```HARDTOSHOOT``` It's one size smaller for ranged attacks, no less then MS_TINY +- ```HEARS``` It can hear you. +- ```HIT_AND_RUN``` Flee for several turns after a melee attack. +- ```HUMAN``` It's a live human, as long as it's alive. +- ```IMMOBILE``` Doesn't move (e.g. turrets) +- ```INTERIOR_AMMO``` Monster contains ammo inside itself, no need to load on launch. Prevents ammo from being dropped on disable. +- ```KEENNOSE``` Keen sense of smell. +- ```LARVA``` Creature is a larva. Currently used for gib and blood handling. +- ```LEATHER``` May produce leather when butchered. +- ```LOUDMOVES``` Mkes move noises as if ~2 sizes louder, even if flying. +- ```MILKABLE``` Produces milk when milked. +- ```NIGHT_INVISIBILITY``` Monster becomes invisible if it's more than one tile away and the lighting on its tile is LL_LOW or less. Visibility is not affected by night vision. +- ```NOGIB``` Does not leave gibs / meat chunks when killed with huge damage. +- ```NOHEAD``` Headshots not allowed! +- ```NO_BREATHE``` Creature can't drown and is unharmed by gas, smoke or poison. +- ```NO_BREED``` Creature doesn't reproduce even though it has reproduction data - useful when using copy-from to make child versions of adult creatures +- ```NULL``` Source use only. +- ```PARALYZE``` Attack may paralyze the player with venom. +- ```PLASTIC``` Absorbs physical damage to a great degree. +- ```POISON``` Poisonous to eat. +- ```PUSH_MON``` Can push creatures out of its way. +- ```QUEEN``` When it dies, local populations start to die off too. +- ```REGENERATES_10``` Monster regenerates quickly over time. +- ```REGENERATES_50``` Monster regenerates very quickly over time. +- ```REGENERATES_IN_DARK``` Monster regenerates very quickly in poorly lit tiles. +- ```REGEN_MORALE``` Will stop fleeing if at max hp, and regen anger and morale. +- ```REVIVES``` Monster corpse will revive after a short period of time. +- ```SEES``` It can see you (and will run/follow). +- ```SLUDGEPROOF``` Ignores the effect of sludge trails. +- ```SLUDGETRAIL``` Causes the monster to leave a sludge trap trail when moving. +- ```SMELLS``` It can smell you. +- ```STUMBLES``` Stumbles in its movement. +- ```SUNDEATH``` Dies in full sunlight. +- ```SWARMS``` Groups together and form loose packs. +- ```SWIMS``` Treats water as 50 movement point terrain. +- ```VENOM``` Attack may poison the player. +- ```VERMIN``` Obsolete flag for inconsequential monsters, now prevents loading. +- ```WARM``` Warm blooded. +- ```WEBWALK``` Doesn't destroy webs. +- ```WOOL``` May produce wool when butchered. + +### Monster Defense and Attacks + +- ```ACIDSPLASH``` Splash acid on the attacker +- ```NONE``` No special attack-back +- ```ZAPBACK``` Shock attacker on hit + +### Sizes + +- ```HUGE``` Tank +- ```LARGE``` Cow +- ```MEDIUM``` Human +- ```SMALL``` Dog +- ```TINY``` Squirrel + +### Special attacks + +Some special attacks are also valid use actions for tools and weapons. +See `monsters.json` for examples on how to use these attacks. +Also see `monster_attacks.json` for more special attacks, for example, impale and scratch. + +- ```ACID_ACCURATE``` Shoots acid that is accurate at long ranges, but less so up close. +- ```ACID_BARF``` Barfs corroding, blinding acid. +- ```ACID``` Spit acid. +- ```ANTQUEEN``` Hatches/grows: `egg > ant > soldier`. +- ```BIO_OP_TAKEDOWN``` Attack with special martial art takedown maneuverer. +- ```BITE``` Bite attack that can cause deep infected wounds. +- ```BMG_TUR``` Barrett .50BMG rifle fires. +- ```BOOMER_GLOW``` Spit glowing bile. +- ```BOOMER``` Spit bile. +- ```BRANDISH``` Brandish a knife at the player. +- ```BREATHE``` Spawns a `breather` +- ```CALLBLOBS``` Calls 2/3 of nearby blobs to defend this monster, and sends 1/3 of nearby blobs after the player. +- ```CHICKENBOT``` Robot can attack with tazer, M4, or MGL depending on distance. +- ```COPBOT``` Cop-bot alerts and then tazes the player. +- ```DANCE``` Monster dances. +- ```DARKMAN``` Can cause darkness and wraiths to spawn. +- ```DERMATIK_GROWTH``` Dermatik larva grows into an adult. +- ```DERMATIK``` Attempts to lay dermatik eggs in the player. +- ```DISAPPEAR``` Hallucination disappears. +- ```DOGTHING``` The dog _thing_ spawns into a tentacle dog. +- ```FEAR_PARALYZE``` Paralyze the player with fear. +- ```FLAMETHROWER``` Shoots a stream of fire. +- ```FLESH_GOLEM``` Attack the player with claw, and inflict disease `downed` if the attack connects. +- ```FORMBLOB``` Spawns blobs? +- ```FRAG_TUR``` MGL fires frag rounds. +- ```FUNGUS_BIG_BLOSSOM``` Spreads fire suppressing fungal haze. +- ```FUNGUS_BRISTLE``` Perform barbed tendril attack that can cause fungal infections. +- ```FUNGUS_CORPORATE``` Used solely by Crazy Cataclysm. This will cause runtime errors if used without out, and spawns SpOreos on top of the creature. +- ```FUNGUS_FORTIFY``` Grows Fungal hedgerows, and advances player on the mycus threshold path. +- ```FUNGUS_GROWTH``` Grows a young fungaloid into an adult. +- ```FUNGUS_HAZE``` Spawns fungal fields. +- ```FUNGUS_INJECT``` Perform needle attack that can cause fungal infections. +- ```FUNGUS_SPROUT``` Grows a fungal wall. +- ```FUNGUS``` Releases fungal spores and attempts to infect the player. +- ```GENERATOR``` Regenerates health. +- ```GENE_STING``` Shoot a dart at the player that causes a mutation if it connects. +- ```GRAB``` GRAB the target, and drag it around. +- ```GRAB``` Grabs the player, slowing on hit, making movement and dodging impossible and blocking harder. +- ```GROWPLANTS``` Spawns underbrush, or promotes it to `> young tree > tree`. +- ```GROW_VINE``` Grows creeper vines. +- ```HOWL``` "an ear-piercing howl!" +- ```JACKSON``` Converts zombies into zombie dancers. +- ```LASER``` Laser turret fires. +- ```LEAP``` leap away to an unobstructed tile. +- ```LONGSWIPE``` Does high damage claw attack, which can even hit some distance away. +- ```LUNGE``` Perform a jumping attack from some distance away, which can down the target. +- ```MULTI_ROBOT``` Robot can attack with tazer, flamethrower, M4, MGL, or 120mm cannon depending on distance. +- ```NONE``` No special attack. +- ```PARA_STING``` Shoot a paralyzing dart at the player. +- ```PARROT``` Parrots the speech defined in `speech.json`, picks one of the lines randomly. "speaker" points to a monster id. +- ```PHOTOGRAPH``` Photograph the player. Causes a robot attack? +- ```PLANT``` Fungal spores take seed and grow into a fungaloid. +- ```PULL_METAL_WEAPON``` Pull weapon that's made of iron or steel from the player's hand. +- ```RANGED_PULL``` Pull targets towards attacker. +- ```RATKING``` Inflicts disease `rat` +- ```RATTLE``` "a sibilant rattling sound!" +- ```RESURRECT``` Revives the dead--again. +- ```RIFLE_TUR``` Rifle turret fires. +- ```RIOTBOT``` Sprays teargas or relaxation gas, can handcuff players, and can use a blinding flash. +- ```SCIENCE``` Various science/technology related attacks (e.g. manhacks, radioactive beams, etc.) +- ```SEARCHLIGHT``` Tracks targets with a searchlight. +- ```SHOCKING_REVEAL``` Shoots bolts of lightning, and reveals a SHOCKING FACT! Very fourth-wall breaking. Used solely by Crazy Cataclysm. +- ```SHOCKSTORM``` Shoots bolts of lightning. +- ```SHRIEK_ALERT``` "a very terrible shriek!" +- ```SHRIEK_STUN``` "a stunning shriek!", causes a small bash, can cause a stun. +- ```SHRIEK``` "a terrible shriek!" +- ```SLIMESPRING``` Can provide a morale boost to the player, and cure bite and bleed effects. +- ```SMASH``` Smashes the target for massive damage, sending it flying. +- ```SMG``` SMG turret fires. +- ```SPIT_SAP``` Spit sap. +- ```STARE``` Stare at the player and inflict teleglow. +- ```STRETCH_ATTACK``` Long ranged piercing attack. +- ```STRETCH_BITE``` Long ranged bite attack. +- ```SUICIDE``` Dies after attacking. +- ```TAZER``` Shock the player. +- ```TENTACLE``` Lashes a tentacle at the player. +- ```TRIFFID_GROWTH``` Young triffid grows into an adult. +- ```TRIFFID_HEARTBEAT``` Grows and crumbles root walls around the player, and spawns more monsters. +- ```UPGRADE``` Upgrades a regular zombie into a special zombie. +- ```VINE``` Attacks with vine. +- ```VORTEX``` Forms a vortex/tornado that causes damage and throws creatures around. + -### Firing modes -- ```MELEE``` Melee attack using properties of the gun or auxiliary gunmod -- ```NPC_AVOID``` NPC's will not attempt to use this mode -- ```SIMULTANEOUS``` All rounds fired concurrently (not sequentially) with recoil added only once (at the end) +## Mutations -## Magazines +### Categories -- ```MAG_BULKY``` Can be stashed in an appropriate oversize ammo pouch (intended for bulky or awkwardly shaped magazines) -- ```MAG_COMPACT``` Can be stashed in an appropriate ammo pouch (intended for compact magazines) -- ```MAG_DESTROY``` Magazine is destroyed when the last round is consumed (intended for ammo belts). Has precedence over MAG_EJECT. -- ```MAG_EJECT``` Magazine is ejected from the gun/tool when the last round is consumed -- ```SPEEDLOADER``` Acts like a magazine, except it transfers rounds to the target gun instead of being inserted into it. +These branches are also the valid entries for the categories of `dreams` in `dreams.json` -## Tools +- ```MUTCAT_ALPHA``` "You feel...better. Somehow." +- ```MUTCAT_BEAST``` "Your heart races and you see blood for a moment." +- ```MUTCAT_BIRD``` "Your body lightens and you long for the sky." +- ```MUTCAT_CATTLE``` "Your mind and body slow down. You feel peaceful." +- ```MUTCAT_CEPHALOPOD``` "Your mind is overcome by images of eldritch horrors...and then they pass." +- ```MUTCAT_CHIMERA``` "You need to roar, bask, bite, and flap. NOW." +- ```MUTCAT_ELFA``` "Nature is becoming one with you..." +- ```MUTCAT_FISH``` "You are overcome by an overwhelming longing for the ocean." +- ```MUTCAT_INSECT``` "You hear buzzing, and feel your body harden." +- ```MUTCAT_LIZARD``` "For a heartbeat, your body cools down." +- ```MUTCAT_MEDICAL``` "Your can feel the blood rushing through your veins and a strange, medicated feeling washes over your senses." +- ```MUTCAT_PLANT``` "You feel much closer to nature." +- ```MUTCAT_RAPTOR``` "Mmm...sweet bloody flavor...tastes like victory." +- ```MUTCAT_RAT``` "You feel a momentary nausea." +- ```MUTCAT_SLIME``` "Your body loses all rigidity for a moment." +- ```MUTCAT_SPIDER``` "You feel insidious." +- ```MUTCAT_TROGLOBITE``` "You yearn for a cool, dark place to hide." -### Flags -Melee flags are fully compatible with tool flags, and vice versa. +## Overmap -- ```ACT_ON_RANGED_HIT``` The item should activate when thrown or fired, then immediately get processed if it spawns on the ground. -- ```ALLOWS_REMOTE_USE``` This item can be activated or reloaded from adjacent tile without picking it up. -- ```BELT_CLIP``` The item can be clipped or hooked on to a belt loop of the appropriate size (belt loops are limited by their max_volume and max_weight properties) -- ```BOMB``` It can be a remote controlled bomb. -- ```CABLE_SPOOL``` This item is a cable spool and must be processed as such. It has an internal "state" variable which may be in the states "attach_first" or "pay_out_cable" -- in the latter case, set its charges to `max_charges - dist(here, point(vars["source_x"], vars["source_y"]))`. If this results in 0 or a negative number, set its state back to "attach_first". -- ```CHARGEDIM``` If illuminated, light intensity fades with charge, starting at 20% charge left. -- ```DIG_TOOL``` If wielded, digs thorough terrain like rock and walls, as player walks into them. If item also has ```POWERED``` flag, then it digs faster, but uses up the item's ammo as if activating it. -- ```FIRE``` Counts as a fire for crafting purposes. -- ```FIRESTARTER``` Item will start fire. -- ```FISH_GOOD``` When used for fishing, it's a good tool (requires that the matching use_action has been set). -- ```FISH_POOR``` When used for fishing, it's a poor tool (requires that the matching use_action has been set). -- ```HAS_RECIPE``` Used by the E-Ink tablet to indicates it's currently showing a recipe. -- ```LIGHT_[X]``` Illuminates the area with light intensity `[X]` where `[X]` is an intensity value. (e.x. `LIGHT_4` or `LIGHT_100`). -- ```MC_MOBILE```, ```MC_RANDOM_STUFF```, ```MC_SCIENCE_STUFF```, ```MC_USED```, ```MC_HAS_DATA``` Memory card related flags, see `iuse.cpp` -- ```NO_DROP``` Item should never exist on map tile as a discrete item (must be contained by another item) -- ```NO_UNLOAD``` Cannot be unloaded. -- ```POWERED``` If turned ON, item uses its own source of power, instead of relying on power of the user -- ```RADIOCARITEM``` Item can be put into a remote controlled car. -- ```RADIOSIGNAL_1``` Activated per radios signal 1. -- ```RADIOSIGNAL_2``` Activated per radios signal 2. -- ```RADIOSIGNAL_3``` Activated per radios signal 3. -- ```RADIO_ACTIVATION``` It is activated by a remote control (also requires RADIOSIGNAL*). -- ```RADIO_CONTAINER``` It's a container of something that is radio controlled. -- ```RADIO_MOD``` The item has been made into a radio-activated item. -- ```RADIO_MODABLE``` Indicates the item can be made into a radio-activated item. -- ```RECHARGE``` Gain charges when placed in a cargo area with a recharge station. -- ```SAFECRACK``` This item can be used to unlock safes. -- ```USE_UPS``` Item is charges from an UPS / it uses the charges of an UPS instead of its own. -- ```USES_BIONIC_POWER``` The item has no charges of its own, and runs off of the player's bionic power. -- ```WATER_EXTINGUISH``` Is extinguishable in water or under precipitation. Converts items (requires "reverts_to" or use_action "transform" to be set). -- ```WIND_EXTINGUISH``` This item will be extinguished by the wind. -- ```WET``` Item is wet and will slowly dry off (e.g. towel). -- ```WRITE_MESSAGE``` This item could be used to write messages on signs. +### Overmap connections -### Flags that apply to items, not to item types. +#### Flags -Those flags are added by the game code to specific items (that specific welder, not *all* welders). +- ```ORTHOGONAL``` The connection generally prefers straight lines, avoids turning wherever possible. -- ```COLD``` Item is cold (see EATEN_COLD). -- ```FROZEN``` Item is frozen solid (used by freezer). -- ```MUSHY``` FREEZERBURN item was frozen and is now mushy and tasteless and will go bad after freezing again. -- ```DIRTY``` Item (liquid) was dropped on the ground and is now irreparably dirty. -- ```NO_PARASITES``` Invalidates parasites count set in food->type->comestible->parasites -- ```FIT``` Reduces encumbrance by one. -- ```HOT``` Item is hot (see EATEN_HOT). -- ```WARM``` A hidden flag used to track an item's journey to/from hot, buffers between HOT and cold. -- ```LITCIG``` Marks a lit smoking item (cigarette, joint etc.). -- ```REVIVE_SPECIAL``` ... Corpses revives when the player is nearby. -- ```USE_UPS``` The tool has the UPS mod and is charged from an UPS. -- ```WET``` Item is wet and will slowly dry off (e.g. towel). -- ```FIELD_DRESS``` Corpse was field dressed. Affects butcher results. -- ```FIELD_DRESS_FAILED``` Corpse was damaged by unskillful field dressing. Affects butcher results. -- ```QUARTERED``` Corpse was quartered into parts. Affects butcher results, weight, volume. +### Overmap specials -## Bionics +#### Flags -- ```BIONIC_FAULTY``` This bionic is a "faulty" bionic. -- ```BIONIC_POWER_SOURCE``` This bionic is a power source bionic. -- ```BIONIC_TOGGLED``` This bionic only has a function when activated, else it causes it's effect every turn. -- ```BIONIC_GUN``` This bionic is a gun bionic and activating it will fire it. Prevents all other activation effects. -- ```BIONIC_WEAPON``` This bionic is a weapon bionic and activating it will create (or destroy) bionic's fake_item in user's hands. Prevents all other activation effects. -- ```BIONIC_ARMOR_INTERFACE``` This bionic can provide power to powered armor. -- ```BIONIC_NPC_USABLE``` The NPC AI knows how to use this CBM and it can be installed on an NPC. -- ```BIONIC_SLEEP_FRIENDLY``` This bionic won't prompt the user to turn it off if they try to sleep while it's active. +- ```BEE``` Location is related to bees. Used to classify location. +- ```BLOB``` Location should "blob" outward from the defined location with a chance to be placed in adjacent locations. +- ```CLASSIC``` Location is allowed when classic zombies are enabled. +- ```FUNGAL``` Location is related to fungi. Used to classify location. +- ```TRIFFID``` Location is related to triffids. Used to classify location. +- ```UNIQUE``` Location is unique and will only occur once per overmap. `occurrences` is overridden to define a percent chance (e.g. `"occurrences" : [75, 100]` is 75%) -## Books +### Overmap terrains -- ```INSPIRATIONAL``` Reading this book grants bonus morale to characters with the SPIRITUAL trait. +#### Flags -### Use actions +- ```KNOWN_DOWN``` There's a known way down. +- ```KNOWN_UP``` There's a known way up. +- ```LINEAR``` For roads etc, which use ID_straight, ID_curved, ID_tee, ID_four_way. +- ```NO_ROTATE``` The terrain can't be rotated (ID_north, ID_east, ID_south, and ID_west instances will NOT be generated, just ID). +- ```RIVER``` It's a river tile. +- ```SIDEWALK``` Has sidewalks on the sides adjacent to roads. -- ```NONE``` Do nothing. -- ```ACIDBOMB``` Pull the pin on an acid bomb. -- ```ACIDBOMB_ACT``` Get rid of it or you'll end up like that guy in Robocop. -- ```ARROW_FLAMABLE``` Light your arrow and let fly. -- ```BATTLETORCH``` Light the battle torch. -- ```BELL``` Ring the bell. -- ```BOLTCUTTERS``` Use your town key to gain access anywhere. -- ```C4``` Arm the C4. -- ```CABLE_ATTACH``` This item is a cable spool. Use it to try to attach to a vehicle. -- ```CAN_GOO``` Release a little blob buddy. -- ```CAPTURE_MONSTER_ACT``` Capture and encapsulate a monster. The associated action is also used for releasing it. -- ```CARVER_OFF``` Turn the carver on. -- ```CARVER_ON``` Turn the carver off. -- ```CHAINSAW_OFF``` Turn the chainsaw on. -- ```CHAINSAW_ON``` Turn the chainsaw off. -- ```COMBATSAW_OFF``` Turn the combat-saw on. -- ```COMBATSAW_ON``` Turn the combat-saw off -- ```CROWBAR``` Pry open doors, windows, man-hole covers and many other things that need prying. -- ```DIG``` Clear rubble. -- ```DIVE_TANK``` Use compressed air tank to breathe. -- ```DIRECTIONAL_ANTENNA``` Find the source of a signal with your radio. -- ```DOG_WHISTLE``` Dogs hate this thing; your dog seems pretty cool with it though. -- ```DOLLCHAT``` That creepy doll just keeps on talking. -- ```ELEC_CHAINSAW_OFF``` Turn the electric chainsaw on. -- ```ELEC_CHAINSAW_ON``` Turn the electric chainsaw off. -- ```EXTINGUISHER``` Put out fires. -- ```FIRECRACKER``` Light a singular firecracker. -- ```FIRECRACKER_ACT``` The saddest Fourth of July. -- ```FIRECRACKER_PACK``` Light an entire packet of firecrackers. -- ```FIRECRACKER_PACK_ACT``` Keep the change you filthy animal. -- ```FLASHBANG``` Pull the pin on a flashbang. -- ```GEIGER``` Detect local radiation levels. -- ```GRANADE``` Pull the pin on Granade. -- ```GRANADE_ACT``` Assaults enemies with source code fixes? -- ```GRENADE``` Pull the pin on a grenade. -- ```HACKSAW``` Cut metal into chunks. -- ```HAMMER``` Pry boards off of windows, doors and fences. -- ```HEATPACK``` Activate the heatpack and get warm. -- ```HEAT_FOOD``` Heat food around fires. -- ```HOTPLATE``` Use the hotplate. -- ```JACKHAMMER``` Bust down walls and other constructions. -- ```JET_INJECTOR``` Inject some jet drugs right into your veins. -- ```LAW``` Unpack the LAW for firing. -- ```LIGHTSTRIP``` Activates the lightstrip. -- ```LUMBER``` Cut logs into planks. -- ```MAKEMOUND``` Make a mound of dirt. -- ```MANHACK``` Activate a manhack. -- ```MATCHBOMB``` Light the matchbomb. -- ```MILITARYMAP``` Learn of local military installations, and show roads. -- ```MININUKE``` Set the timer and run. Or hit with a hammer (not really). -- ```MOLOTOV``` Light the Molotov cocktail. -- ```MOLOTOV_LIT``` Throw it, but don't drop it. -- ```MOP``` Mop up the mess. -- ```MP3``` Turn the mp3 player on. -- ```MP3_ON``` Turn the mp3 player off. -- ```SOLARPACK``` Unfold solar backpack array. -- ```SOLARPACK_OFF``` Fold solar backpack array. -- ```NOISE_EMITTER_OFF``` Turn the noise emitter on. -- ```NOISE_EMITTER_ON``` Turn the noise emitter off. -- ```PHEROMONE``` Makes zombies ignore you. -- ```PICKAXE``` Does nothing but berate you for having it (I'm serious). -- ```PLACE_RANDOMLY``` This is very much like the flag in the manhack iuse, it prevents the item from querying the player as to where they want the monster unloaded to, and instead choses randomly. -- ```PORTABLE_GAME``` Play games. -- ```PORTAL``` Create portal traps. -- ```RADIO_OFF``` Turn the radio on. -- ```RADIO_ON``` Turn the radio off. -- ```RAG``` Stop the bleeding. -- ```RESTAURANTMAP``` Learn of local eateries, and show roads. -- ```ROADMAP``` Learn of local common points-of-interest and show roads. -- ```SCISSORS``` Cut up clothing. -- ```SEED``` Asks if you are sure that you want to eat the seed. As it is better to plant seeds. -- ```SEW``` Sew clothing. -- ```SHELTER``` Put up a full-blown shelter. -- ```SHOCKTONFA_OFF``` Turn the shocktonfa on. -- ```SHOCKTONFA_ON``` Turn the shocktonfa off. -- ```SIPHON``` Siphon liquids out of vehicle. -- ```SMOKEBOMB``` Pull the pin on a smoke bomb. -- ```SMOKEBOMB_ACT``` This may be a good way to hide as a smoker. -- ```SOLDER_WELD``` Solder or weld items, or cauterize wounds. -- ```SPRAY_CAN``` Graffiti the town. -- ```SURVIVORMAP``` Learn of local points-of-interest that can help you survive, and show roads. -- ```TAZER``` Shock someone or something. -- ```TELEPORT``` Teleport. -- ```TORCH``` Light a torch. -- ```TOURISTMAP``` Learn of local points-of-interest that a tourist would like to visit, and show roads. -- ```TOWEL``` Dry your character using the item as towel. -- ```TURRET``` Activate a turret. -- ```WASHCLOTHES``` Wash clothes with FILTHY flag. -- ```WATER_PURIFIER``` Purify water. -- ```BREAK_STICK``` Breaks long stick into two. -## Generic +## Recipes -### Flags +### Categories -- ```ANESTHESIA``` ... Item is considered anesthesia for the purpose of installing or uninstalling bionics. -- ```BIONIC_NPC_USABLE``` Safe CBMs that NPCs can use without extensive NPC rewrites to utilize toggle CBMs. -- ```DURABLE_MELEE``` ... Item is made to hit stuff and it does it well, so it's considered to be a lot tougher than other weapons made of the same materials. -- ```FAKE_SMOKE``` ... Item is a fake item generating smoke, recognizable by @ref item::process_fake_smoke, where conditions for its removal are set. -- ```FAKE_MILL``` ... Item is a fake item, to denote a partially milled product by @ref Item::process_fake_mill, where conditions for its removal are set. -- ```FIREWOOD``` ... This item can serve as a firewood. Items with this flag are sorted out to "Loot: Wood" zone -- ```FRAGILE_MELEE``` ... Fragile items that fall apart easily when used as a weapon due to poor construction quality and will break into components when broken. -- ```GAS_DISCOUNT``` ... Discount cards for the automated gas stations. -- ```IS_PET_ARMOR``` ... Is armor for a pet monster, not armor for a person -- ```LEAK_ALWAYS``` ... Leaks (may be combined with "RADIOACTIVE"). -- ```LEAK_DAM``` ... Leaks when damaged (may be combined with "RADIOACTIVE"). -- ```NEEDS_UNFOLD``` ... Has an additional time penalty upon wielding. For melee weapons and guns this is offset by the relevant skill. Stacks with "SLOW_WIELD". -- ```NO_PICKUP``` ... Character can not pickup anything while wielding this item (e.g. bionic claws). -- ```NO_SALVAGE``` Item cannot be broken down through a salvage process. Best used when something should not be able to be broken down (i.e. base components like leather patches). -- ```PSEUDO``` ... Used internally to mark items that are referred to in the crafting inventory but are not actually items. They can be used as tools, but not as components. Implies "TRADER_AVOID". -- ```RADIOACTIVE``` ... Is radioactive (can be used with LEAK_*). -- ```RAIN_PROTECT``` ... Protects from sunlight and from rain, when wielded. -- ```REDUCED_BASHING``` ... Gunmod flag; reduces the item's bashing damage by 50%. -- ```REDUCED_WEIGHT``` ... Gunmod flag; reduces the item's base weight by 25%. -- ```SLOW_WIELD``` ... Has an additional time penalty upon wielding. For melee weapons and guns this is offset by the relevant skill. Stacks with "NEEDS_UNFOLD". -- ```SLEEP_AID``` ... This item helps in sleeping. -- ```TRADER_AVOID``` ... NPCs will not start with this item. Use this for active items (e.g. flashlight (on)), dangerous items (e.g. active bomb), fake item or unusual items (e.g. unique quest item). -- ```UNBREAKABLE_MELEE``` ... Does never get damaged when used as melee weapon. -- ```UNRECOVERABLE``` Cannot be recovered from a disassembly. -- ```DANGEROUS``` ... NPCs will not accept this item. Explosion iuse actor implies this flag. Implies "NPC_THROW_NOW". -- ```NO_REPAIR``` ... Prevents repairing of this item even if otherwise suitable tools exist. -- ```NPC_THROW_NOW``` ... NPCs will try to throw this item away, preferably at enemies. Implies "TRADER_AVOID" and "NPC_THROWN". -- ```NPC_ACTIVATE``` ... NPCs can activate this item as an alternative attack. Currently by throwing it right after activation. Implied by "BOMB". -- ```NPC_THROWN``` ... NPCs will throw this item (without activating it first) as an alternative attack. -- ```NPC_ALT_ATTACK``` ... Shouldn't be set directly. Implied by "NPC_ACTIVATE" and "NPC_THROWN". +- ```CC_AMMO``` +- ```CC_ARMOR``` +- ```CC_CHEM``` +- ```CC_DRINK``` +- ```CC_ELECTRONIC``` +- ```CC_FOOD``` +- ```CC_MISC``` +- ```CC_WEAPON``` -## Skills +### Flags -### Tags +- ```ALLOW_ROTTEN``` Explicitly allow rotten components when crafting non-perishables. +- ```BLIND_EASY``` Easy to craft with little to no light +- ```BLIND_HARD``` Possible to craft with little to no light, but difficult +- ```UNCRAFT_LIQUIDS_CONTAINED``` Spawn liquid items in its default container. +- ```UNCRAFT_SINGLE_CHARGE``` Lists returned amounts for one charge of an item that is counted by charges. +- ```FULL_MAGAZINE``` If this recipe requires magazines, it needs one that is full. For deconstruction recipes, it will spawn a full magazine when deconstructed. -- ```combat_skill``` The skill is considered a combat skill. It's affected by "PACIFIST", "PRED1", "PRED2", "PRED3", and "PRED4" traits. -- ```contextual_skill``` The skill is abstract, it depends on context (an indirect item to which it's applied). Neither player nor NPCs can possess it. ## Scenarios ### Flags -- ```SCEN_ONLY``` Profession can be chosen only as part of the appropriate scenario. - - ```ALLOW_OUTSIDE``` Allows placing player outside of building, useful for outdoor start. - ```BAD_DAY``` Player starts the game drunk, depressed and sick with the flu. - ```BOARDED``` Start in boarded building (windows and doors are boarded, movable furniture is moved to windows and doors). @@ -1144,68 +1094,219 @@ Those flags are added by the game code to specific items (that specific welder, - ```HELI_CRASH``` Player starts the game with various limbs wounds. - ```INFECTED``` Player starts the game infected. - ```LONE_START``` If starting NPC spawn option is switched to "Scenario-based", this scenario won't spawn a fellow NPC on game start. +- ```SCEN_ONLY``` Profession can be chosen only as part of the appropriate scenario. - ```SUR_START``` Surrounded start, zombies outside the starting location. -- ```WIN_START``` ... start in winter. +#### Season Flags + +- ```AUT_START``` ... start in autumn. - ```SPR_START``` ... start in spring. -- ```SUM_START``` ... start in summer. - ```SUM_ADV_START``` ... start second summer after Cataclysm. -- ```AUT_START``` ... start in autumn. +- ```SUM_START``` ... start in summer. +- ```WIN_START``` ... start in winter. -## Overmap terrains -### Flags +## Skills -- ```KNOWN_DOWN``` There's a known way down. -- ```KNOWN_UP``` There's a known way up. -- ```LINEAR``` For roads etc, which use ID_straight, ID_curved, ID_tee, ID_four_way. -- ```NO_ROTATE``` The terrain can't be rotated (ID_north, ID_east, ID_south, and ID_west instances will NOT be generated, just ID). -- ```RIVER``` It's a river tile. -- ```SIDEWALK``` Has sidewalks on the sides adjacent to roads. +### Tags -## Overmap connections +- ```combat_skill``` The skill is considered a combat skill. It's affected by "PACIFIST", "PRED1", "PRED2", "PRED3", and "PRED4" traits. +- ```contextual_skill``` The skill is abstract, it depends on context (an indirect item to which it's applied). Neither player nor NPCs can possess it. -### Flags -- ```ORTHOGONAL``` The connection generally prefers straight lines, avoids turning wherever possible. +## Techniques + +Techniques may be used by tools, armors, weapons and anything else that can be wielded. + +- See contents of `data/json/techniques.json`. +- Techniques are also used with martial arts styles, see `data/json/martialarts.json`. -## Overmap specials + +## Tools ### Flags -- ```BLOB``` Location should "blob" outward from the defined location with a chance to be placed in adjacent locations. -- ```CLASSIC``` Location is allowed when classic zombies are enabled. -- ```UNIQUE``` Location is unique and will only occur once per overmap. `occurrences` is overridden to define a percent chance (e.g. `"occurrences" : [75, 100]` is 75%) -- ```BEE``` Location is related to bees. Used to classify location. -- ```FUNGAL``` Location is related to fungi. Used to classify location. -- ```TRIFFID``` Location is related to triffids. Used to classify location. +Melee flags are fully compatible with tool flags, and vice versa. -## TODO +- ```ACT_ON_RANGED_HIT``` The item should activate when thrown or fired, then immediately get processed if it spawns on the ground. +- ```ALLOWS_REMOTE_USE``` This item can be activated or reloaded from adjacent tile without picking it up. +- ```BELT_CLIP``` The item can be clipped or hooked on to a belt loop of the appropriate size (belt loops are limited by their max_volume and max_weight properties) +- ```BOMB``` It can be a remote controlled bomb. +- ```CABLE_SPOOL``` This item is a cable spool and must be processed as such. It has an internal "state" variable which may be in the states "attach_first" or "pay_out_cable" -- in the latter case, set its charges to `max_charges - dist(here, point(vars["source_x"], vars["source_y"]))`. If this results in 0 or a negative number, set its state back to "attach_first". +- ```CHARGEDIM``` If illuminated, light intensity fades with charge, starting at 20% charge left. +- ```DIG_TOOL``` If wielded, digs thorough terrain like rock and walls, as player walks into them. If item also has ```POWERED``` flag, then it digs faster, but uses up the item's ammo as if activating it. +- ```FIRESTARTER``` Item will start fire. +- ```FIRE``` Counts as a fire for crafting purposes. +- ```FISH_GOOD``` When used for fishing, it's a good tool (requires that the matching use_action has been set). +- ```FISH_POOR``` When used for fishing, it's a poor tool (requires that the matching use_action has been set). +- ```HAS_RECIPE``` Used by the E-Ink tablet to indicates it's currently showing a recipe. +- ```LIGHT_[X]``` Illuminates the area with light intensity `[X]` where `[X]` is an intensity value. (e.x. `LIGHT_4` or `LIGHT_100`). +- ```MC_MOBILE```, ```MC_RANDOM_STUFF```, ```MC_SCIENCE_STUFF```, ```MC_USED```, ```MC_HAS_DATA``` Memory card related flags, see `iuse.cpp` +- ```NO_DROP``` Item should never exist on map tile as a discrete item (must be contained by another item) +- ```NO_UNLOAD``` Cannot be unloaded. +- ```POWERED``` If turned ON, item uses its own source of power, instead of relying on power of the user +- ```RADIOCARITEM``` Item can be put into a remote controlled car. +- ```RADIOSIGNAL_1``` Activated per radios signal 1. +- ```RADIOSIGNAL_2``` Activated per radios signal 2. +- ```RADIOSIGNAL_3``` Activated per radios signal 3. +- ```RADIO_ACTIVATION``` It is activated by a remote control (also requires RADIOSIGNAL*). +- ```RADIO_CONTAINER``` It's a container of something that is radio controlled. +- ```RADIO_MODABLE``` Indicates the item can be made into a radio-activated item. +- ```RADIO_MOD``` The item has been made into a radio-activated item. +- ```RECHARGE``` Gain charges when placed in a cargo area with a recharge station. +- ```SAFECRACK``` This item can be used to unlock safes. +- ```USES_BIONIC_POWER``` The item has no charges of its own, and runs off of the player's bionic power. +- ```USE_UPS``` Item is charges from an UPS / it uses the charges of an UPS instead of its own. +- ```WATER_EXTINGUISH``` Is extinguishable in water or under precipitation. Converts items (requires "reverts_to" or use_action "transform" to be set). +- ```WET``` Item is wet and will slowly dry off (e.g. towel). +- ```WIND_EXTINGUISH``` This item will be extinguished by the wind. +- ```WRITE_MESSAGE``` This item could be used to write messages on signs. -- Descriptions for `Special attacks` under `Monsters` could stand to be more descriptive of exactly what the attack does. -- `Ammo effects` under `Ammo` need more descriptive details, and some need to be double-checked for accuracy. +### Flags that apply to items -## MAP SPECIALS +These flags **do not apply to item types**. -- ```mx_null``` ... No special at all. -- ```mx_anomaly``` ... Natural anomaly (crater + artifact). -- ```mx_collegekids``` ... Corpses and items. -- ```mx_crater``` ... Crater with rubble (and radioactivity). -- ```mx_drugdeal``` ... Corpses and some drugs. -- ```mx_fumarole``` ... A lava rift. -- ```mx_helicopter``` ... Metal wreckage and some items. -- ```mx_military``` ... Corpses and some military items. -- ```mx_minefield``` ... Landmines, a field of them. -- ```mx_portal``` ... Portal to neither space. -- ```mx_portal_in``` ... Another portal to neither space. -- ```mx_roadblock``` ... Roadblock furniture with turrets and some cars. -- ```mx_science``` ... Corpses and some scientist items. -- ```mx_supplydrop``` ... Crates with some military items in it. -- ```mx_shia``` ... A *chance* of Shia, if Crazy Catalcysm is enabled. -- ```mx_spider``` ... A big spider web, complete with spiders and eggs. -- ```mx_jabberwock``` ... A *chance* of a jabberwock. -- ```mx_grove``` ... All trees and shrubs become a single species of tree. -- ```mx_shrubbery``` ... All trees and shrubs become a single species of shrub. -- ```mx_clearcut``` ... All trees become stumps. -- ```mx_pond``` ... A small pond. -- ```mx_clay_deposit``` ... A small surface clay deposit. +Those flags are added by the game code to specific items (that specific welder, not *all* welders). + +- ```COLD``` Item is cold (see EATEN_COLD). +- ```DIRTY``` Item (liquid) was dropped on the ground and is now irreparably dirty. +- ```FIELD_DRESS_FAILED``` Corpse was damaged by unskillful field dressing. Affects butcher results. +- ```FIELD_DRESS``` Corpse was field dressed. Affects butcher results. +- ```FIT``` Reduces encumbrance by one. +- ```FROZEN``` Item is frozen solid (used by freezer). +- ```HOT``` Item is hot (see EATEN_HOT). +- ```LITCIG``` Marks a lit smoking item (cigarette, joint etc.). +- ```MUSHY``` FREEZERBURN item was frozen and is now mushy and tasteless and will go bad after freezing again. +- ```NO_PARASITES``` Invalidates parasites count set in food->type->comestible->parasites +- ```QUARTERED``` Corpse was quartered into parts. Affects butcher results, weight, volume. +- ```REVIVE_SPECIAL``` ... Corpses revives when the player is nearby. +- ```USE_UPS``` The tool has the UPS mod and is charged from an UPS. +- ```WARM``` A hidden flag used to track an item's journey to/from hot, buffers between HOT and cold. +- ```WET``` Item is wet and will slowly dry off (e.g. towel). + + +## Vehicle Parts + +### Flags + +- ```ADVANCED_PLANTER``` This planter doesn't spill seeds and avoids damaging itself on non-diggable surfaces. +- ```AISLE_LIGHT``` +- ```AISLE``` Player can move over this part with less speed penalty than normal. +- ```ALTERNATOR``` Recharges batteries installed on the vehicle. +- ```ANCHOR_POINT``` Allows secure seatbelt attachment. +- ```ARMOR``` Protects the other vehicle parts it's installed over during collisions. +- ```ATOMIC_LIGHT``` +- ```BATTERY_MOUNT``` +- ```BED``` A bed where the player can sleep. +- ```BEEPER``` Generates noise when the vehicle moves backward. +- ```BELTABLE``` Seatbelt can be attached to this part. +- ```BIKE_RACK_VEH``` Can be used to merge an adjacent single tile wide vehicle, or split a single tile wide vehicle off into its own vehicle. +- ```BOARDABLE``` The player can safely move over or stand on this part while the vehicle is moving. +- ```CAMERA_CONTROL``` +- ```CAMERA``` +- ```CAPTURE_MOSNTER_VEH``` Can be used to capture monsters when mounted on a vehicle. +- ```CARGO_LOCKING``` This cargo area is inaccessible to NPCs. +- ```CARGO``` Cargo holding area. +- ```CHEMLAB``` Acts as a chemistry set for crafting. +- ```CHIMES``` Generates continuous noise when used. +- ```CIRCLE_LIGHT``` Projects a circular radius of light when turned on. +- ```CONE_LIGHT``` Projects a cone of light when turned on. +- ```CONTROLS``` Can be used to control the vehicle. +- ```COVERED``` Prevents items in cargo parts from emitting any light. +- ```CRAFTRIG``` Acts as a dehydrator, vacuum sealer and reloading press for crafting purposes. Potentially to include additional tools in the future. +- ```CTRL_ELECTRONIC``` Controls electrical and electronic systems of the vehicle. +- ```CURTAIN``` Can be installed over a part flagged with ```WINDOW```, and functions the same as blinds found on windows in buildings. +- ```DIFFICULTY_REMOVE``` +- ```DOME_LIGHT``` +- ```DOOR_MOTOR``` +- ```ENGINE``` Is an engine and contributes towards vehicle mechanical power. +- ```EVENTURN``` Only on during even turns. +- ```EXTRA_DRAG``` tells the vehicle that the part exerts engine power reduction. +- ```E_ALTERNATOR``` Is an engine that can power an alternator. +- ```E_COLD_START``` Is an engine that starts much slower in cold weather. +- ```E_COMBUSTION``` Is an engine that burns its fuel and can backfire or explode when damaged. +- ```E_HEATER``` Is an engine and has a heater to warm internal vehicle items when on. +- ```E_HIGHER_SKILL``` Is an engine that is more difficult to install as more engines are installed. +- ```E_STARTS_INSTANTLY``` Is an engine that starts instantly, like food pedals. +- ```FAUCET``` +- ```FLAT_SURF``` Part with a flat hard surface (e.g. table). +- ```FOLDABLE``` +- ```FORGE``` Acts as a forge for crafting. +- ```FREEZER``` Can freeze items in below zero degrees Celsius temperature. +- ```FRIDGE``` Can refrigerate items. +- ```FUNNEL``` +- ```HALF_CIRCLE_LIGHT``` Projects a directed half-circular radius of light when turned on. +- ```HORN``` Generates noise when used. +- ```INITIAL_PART``` When starting a new vehicle via the construction menu, this vehicle part will be the initial part of the vehicle (if the used item matches the item required for this part). The items of parts with this flag are automatically added as component to the vehicle start construction. +- ```INTERNAL``` Must be mounted inside a cargo area. +- ```KITCHEN``` Acts as a kitchen unit and heat source for crafting. +- ```LOCKABLE_CARGO``` Cargo containers that are able to have a lock installed. +- ```MUFFLER``` Muffles the noise a vehicle makes while running. +- ```MULTISQUARE``` Causes this part and any adjacent parts with the same ID to act as a singular part. +- ```MUSCLE_ARMS``` Power of the engine with such flag depends on player's strength (it's less effective than ```MUSCLE_LEGS```). +- ```MUSCLE_LEGS``` Power of the engine with such flag depends on player's strength. +- ```NAILABLE``` Attached with nails +- ```NEEDS_BATTERY_MOUNT``` +- ```NOINSTALL``` Cannot be installed. +- ```NO_JACK``` +- ```OBSTACLE``` Cannot walk through part, unless the part is also ```OPENABLE```. +- ```ODDTURN``` Only on during odd turns. +- ```ON_CONTROLS``` +- ```ON_ROOF``` - Parts with this flag could only be installed on a roof (parts with ```ROOF``` flag). +- ```OPAQUE``` Cannot be seen through. +- ```OPENABLE``` Can be opened or closed. +- ```OPENCLOSE_INSIDE``` Can be opened or closed, but only from inside the vehicle. +- ```OVER``` Can be mounted over other parts. +- ```PERPETUAL``` If paired with REACTOR, part produces electrical power without consuming fuel. +- ```PLANTER``` Plants seeds into tilled dirt, spilling them when the terrain underneath is unsuitable. It is damaged by running it over non-```DIGGABLE``` surfaces. +- ```PLOW``` Tills the soil underneath the part while active. Takes damage from unsuitable terrain at a level proportional to the speed of the vehicle. +- ```POWER_TRANSFER``` Transmits power to and from an attached thingy (probably a vehicle). +- ```PROTRUSION``` Part sticks out so no other parts can be installed over it. +- ```REACTOR``` When enabled, part consumes fuel to generate epower. +- ```REAPER``` Cuts down mature crops, depositing them on the square. +- ```RECHARGE``` Recharge items with the same flag. ( Currently only the rechargeable battery mod. ) +- ```REMOTE_CONTROLS``` +- ```REVERSIBLE``` Removal has identical requirements to installation but is twice as quick +- ```ROOF``` Covers a section of the vehicle. Areas of the vehicle that have a roof and roofs on surrounding sections, are considered inside. Otherwise they're outside. +- ```SCOOP``` Pulls items from underneath the vehicle to the cargo space of the part. Also mops up liquids. +- ```SEATBELT``` Helps prevent the player from being ejected from the vehicle during an accident. +- ```SEAT``` A seat where the player can sit or sleep. +- ```SECURITY``` +- ```SHARP``` Striking a monster with this part does cutting damage instead of bashing damage, and prevents stunning the monster. +- ```SOLAR_PANEL``` Recharges vehicle batteries when exposed to sunlight. Has a 1 in 4 chance of being broken on car generation. +- ```SPACE_HEATER``` Is a part that emits hot air. +- ```STABLE``` Similar to `WHEEL`, but if the vehicle is only a 1x1 section, this single wheel counts as enough wheels. +- ```STEERABLE``` This wheel is steerable. +- ```STEREO``` +- ```TOOL_NONE``` Can be removed/installed without any tools +- ```TOOL_SCREWDRIVER``` Attached with screws, can be removed/installed with a screwdriver +- ```TOOL_WRENCH``` Attached with bolts, can be removed/installed with a wrench +- ```TRACKED``` Contributes to steering effectiveness but doesn't count as a steering axle for install difficulty and still contributes to drag for the center of steering calculation. +- ```TRACK``` Allows the vehicle installed on, to be marked and tracked on map. +- ```TURRET_MOUNT``` Parts with this flag are suitable for installing turrets. +- ```TURRET``` Is a weapon turret. Can only be installed on a part with ```TURRET_MOUNT``` flag. +- ```UNMOUNT_ON_DAMAGE``` Part breaks off the vehicle when destroyed by damage. +- ```UNMOUNT_ON_MOVE``` Dismount this part when the vehicle moves. Doesn't drop the part, unless you give it special handling. +- ```VARIABLE_SIZE``` Has 'bigness' for power, wheel radius, etc. +- ```VISION``` +- ```WASHING_MACHINE``` Can be used to wash filthy clothes en masse. +- ```WATER_WHEEL``` Recharges vehicle batteries when in flowing water. +- ```WATER_WHEEL``` Recharges vehicle batteries when submerged in moving water. +- ```WELDRIG``` Acts as a welder for crafting. +- ```WHEEL``` Counts as a wheel in wheel calculations. +- ```WIDE_CONE_LIGHT``` Projects a wide cone of light when turned on. +- ```WINDOW``` Can see through this part and can install curtains over it. +- ```WIND_POWERED``` This engine is powered by wind ( sails etc ). +- ```WIND_TURBINE``` Recharges vehicle batteries when exposed to wind. +- ```WORKBENCH``` Can craft at this part, must be paired with a workbench json entry. + +### Fuel types + +- ```NULL``` None +- ```battery``` Electrifying. +- ```diesel``` Refined dino. +- ```gasoline``` Refined dino. +- ```plasma``` Superheated. +- ```plutonium``` 1.21 Gigawatts! +- ```water``` Clean. +- ```wind``` Wind powered. diff --git a/doc/JSON_INFO.md b/doc/JSON_INFO.md index 3eaec1a462f24..d4ba41b5c8bde 100644 --- a/doc/JSON_INFO.md +++ b/doc/JSON_INFO.md @@ -267,6 +267,7 @@ The syntax listed here is still valid. "specific_heat_solid": 2.15, "latent_heat": 260, "edible": true, + "rotting": true, "bash_resist": 1, "cut_resist": 1, "acid_resist": 1, diff --git a/doc/MAPGEN.md b/doc/MAPGEN.md index 0103da4048ea1..9811988711ff0 100644 --- a/doc/MAPGEN.md +++ b/doc/MAPGEN.md @@ -66,6 +66,7 @@ * 2.5.17 "sealed_item" * 2.5.18 "graffiti" * 2.6.19 "translate_ter" + * 2.6.20 "zones" * 2.6 "rotation" * 3 update_mapgen * 3.1 overmap tile specification @@ -77,18 +78,25 @@ ## 0.0 How buildings and terrain are generated Cataclysm creates buildings and terrain on discovery via 'mapgen'; functions specific to an overmap terrain (the tiles you see in [m]ap are also determined by overmap terrain). Overmap terrains ("oter") are defined in overmap_terrain.json. -By default, an oter has a single builtin mapgen function which matches the '"id"' in it's json entry (examples: "house", "bank", etc). Multiple functions also possible. When a player moves into range of an area marked on the map as a house, the game chooses semi-randomly from a list of functions for "house", picks one, and runs it, laying down walls and adding items, monsters, rubber chickens and whatnot. This is all done in a fraction of a second (something to keep in mind for later). +By default, an oter has a single built-in mapgen function which matches the '"id"' in it's json entry (examples: "house", "bank", etc). Multiple functions also possible. When a player moves into range of an area marked on the map as a house, the game chooses semi-randomly from a list of functions for "house", picks one, and runs it, laying down walls and adding items, monsters, rubber chickens and whatnot. This is all done in a fraction of a second (something to keep in mind for later). -All mapgen functions build in a 24x24 tile area - even for large buildings; obtuse but surprisingly effective methods are used to assemble giant 3x3 hotels, etc. For the moment, mod support for big buildings is not fully supported, though technically possible (see below). +All mapgen functions build in a 24x24 tile area - even for large buildings; obtuse but surprisingly effective methods are used to assemble giant 3x3 hotels, etc.. In order to make a world that's random and (somewhat) sensical, there are numerous rules and exceptions to them, which are clarified below. # 1 Adding mapgen entries. -One doesn't (and shouldn't) need to create a new overmap_terrain for a new variation of a building. For a custom gas station, defining a mapgen entry and adding it to the "s_gas" mapgen list will add it to the random variations of gas station in the world. +One doesn't need to create a new overmap_terrain for a new variation of a building. For a custom gas station, defining a mapgen entry and adding it to the "s_gas" mapgen list will add it to the random variations of gas station in the world. + +If you use an existing overmap_terrain and it has a roof or other z-level linked to its file, the other levels will be generated with the ground floor. To avoid this, or add your own multiple z-levels, create an overmap_terrain with a similar name (s_gas_1). ## 1.0 Methods -While adding mapgen as a c++ function is one of the fastest (and the most versatile) ways to generate procedural terrain on the fly, this requires recompiling the game. For mods, one can instead define a mapgen function in: -* JSON: A set of json arrays and objects for defining stuff and things. Pros: Fastest to apply, mostly complete, supported by one third party map editor so far. Cons: Not a programming language; no if statements or variables means instances of a particular json mapgen definition will all be similar. Support was added for randomizing things, however. +While adding mapgen as a c++ function is one of the fastest (and the most versatile) ways to generate procedural terrain on the fly, this requires recompiling the game. + +Most of the existing c++ buildings have been moved to json and currently json mapping is the preferred method of adding both content and mods. + +* JSON: A set of json arrays and objects for defining stuff and things. Pros: Fastest to apply, mostly complete. Cons: Not a programming language; no if statements or variables means instances of a particular json mapgen definition will all be similar. Third party map editors are currently out of date. + +* JSON support includes the use of nested mapgen, smaller mapgen chunks which override a portion of the linked mapgen. This allows for greater variety in furniture, terrain and spawns within a single mapgen file. You can also link mapgen files for multiple z-level buildings and multi-tile buildings. ## 1.1 Placement Mapgen definitions can be added in 2 places: @@ -691,6 +699,12 @@ normal mapgen, but it is useful for setting a baseline with update_mapgen. - "from": (required, string) the terrain id of the terrain to be transformed - "to": (required, string) the terrain id that the from terrain will transformed into +### 2.5.20 "zones" +Places a zone for an NPC faction. NPCs in the faction will use the zone to influence the AI. +- "type": (required, string) must be one of NPC_RETREAT, NPC_NO_INVESTIGATE, or NPC_INVESTIGATE_ONLY. NPCs will prefer to retreat towards NPC_RETREAT zones. They will not move to the see the source of unseen sounds coming from NPC_NO_INVESTIGATE zones. They will not move to the see the source of unseen sounds coming from outside NPC_INVESTIGATE_ONLY zones. +- "faction": (required, string) the faction id of the NPC faction that will use the zone. +- "name": (optional, string) the name of the zone. + # 2.7 "rotation" Rotates the generated map after all the other mapgen stuff has been done. The value can be a single integer or a range (out of which a value will be randomly chosen). Example: ```JSON @@ -724,4 +738,3 @@ update_mapgen adds new optional keywords to a few mapgen JSON items. ### 3.2.0 "target" place_npc, place_monster, and place_computer can take an optional target boolean. If they have `"target": true` and are invoked by update_mapgen with a valid mission, then the NPC, monster, or computer will be marked as the target of the mission. - diff --git a/doc/NPCs.md b/doc/NPCs.md index 784f03dccd69b..afe884f0ea432 100644 --- a/doc/NPCs.md +++ b/doc/NPCs.md @@ -126,6 +126,20 @@ The dynamic line is a list of dynamic lines, all of which are displayed. The dy } ``` +#### A line to be translated with gender context +The line is to be given a gender context for the NPC, player, or both, to aid +translation in languages where that matters. For example: +```json +{ + "gendered_line": "Thank you.", + "relevant_genders": [ "npc" ] +} +``` +("Thank you" is different for male and female speakers in e.g. Portuguese). + +Valid choices for entries in the `"relevant_genders"` list are `"npc"` and +`"u"`. + #### A randomly selected hint The dynamic line will be randomly chosen from the hints snippets. diff --git a/doc/SOUNDPACKS.md b/doc/SOUNDPACKS.md index 0cb10abfb4943..59fbb2c271564 100644 --- a/doc/SOUNDPACKS.md +++ b/doc/SOUNDPACKS.md @@ -16,6 +16,8 @@ VIEW: Basic ## JSON format +### Sound effects + Sound effects can be included with a format like this: ```javascript @@ -39,6 +41,9 @@ Sound effects can be included with a format like this: } ] ``` +Adding variety: If for a certain `id`'s `variant` multiple `files` are defined, they will be chosen at random when `variant` is played. + +### Preloading SFX Sound effects can be included for preloading with a format like this: @@ -54,6 +59,8 @@ Sound effects can be included for preloading with a format like this: ] ``` +### Playlist + A playlist can be included with a format like this: ```javascript @@ -83,19 +90,162 @@ A playlist can be included with a format like this: Each sound effect is identified by an id and a variant. If a sound effect is played with a variant that does not exist in the json files, but a variant "default" exists, then the "default" variant is played instead. The file name of the sound effect is relative to the soundpack directory, so if the file name is set to "sfx.wav" and your soundpack is in `data/sound/mypack`, the file must be placed at `data/sound/mypack/sfx.wav`. +## JSON Format Sound Effects List + A full list of sound effect id's and variants is given in the following. Each line in the list has the following format: `id variant1|variant2` Where id describes the id of the sound effect, and a list of variants separated by | follows. When the variants are omitted, the variant "default" is assumed. Where the variants do not represent literal strings, but variables, they will be enclosed in `<` `>`. For instance, `` is a placeholder for any valid furniture ID (as in the furniture definition JSON). -* `footstep default|light|clumsy|bionic` -* `explosion default|small|huge` -* `open_door |` -* `close_door |` + # open/close doors +* `open_door default||` +* `close_door default||` + + # smashing attempts and results, few special ones and furniture/terrain specific * `bash default` -* `smash wall|door|door_boarded|glass` -* `melee_hit # note: use weapon id "null" for unarmed attacks` -* `fire_gun ` +* `smash wall|door|door_boarded|glass|swing|web|paper_torn|metal` +* `smash_success hit_vehicle|smash_glass_contents|smash_cloth||` +* `smash_fail default||` + + # melee sounds +* `melee_swing default|small_bash|small_cutting|small_stabbing|big_bash|big_cutting|big_stabbing` +* `melee_hit_flesh default|small_bash|small_cutting|small_stabbing|big_bash|big_cutting|big_stabbing|` +* `melee_hit_metal default|small_bash|small_cutting|small_stabbing|big_bash|big_cutting|big_stabbing!` +* `melee_hit ` # note: use weapon id "null" for unarmed attacks + + # firearm/ranged weapon sounds +* `fire_gun |brass_eject|empty` +* `fire_gun_distant ` * `reload ` -* `environment thunder_near|thunder_far|daytime|nighttime|indoors|indoors_rain|underground|WEATHER_DRIZZLE|WEATHER_RAINY|WEATHER_THUNDER|WEATHER_FLURRIES|WEATHER_SNOW|WEATHER_SNOWSTORM` +* `bullet_hit hit_flesh|hit_wall|hit_metal|hit_glass|hit_water` + + # enviromental sfx, here divided by sections for clarity +* `environment thunder_near|thunder_far` +* `environment daytime|nighttime` +* `environment indoors|indoors_rain|underground` +* `environment ` # examples: `WEATHER_DRIZZLE|WEATHER_RAINY|WEATHER_THUNDER|WEATHER_FLURRIES|WEATHER_SNOW|WEATHER_SNOWSTORM` +* `environment alarm|church_bells|police_siren` +* `environment deafness_shock|deafness_tone_start|deafness_tone_light|deafness_tone_medium|deafness_tone_heavy` + + # misc environmental sounds +* `footstep default|light|clumsy|bionic` +* `explosion default|small|huge` + + # ambient danger theme for seeing large numbers of zombies +* `danger_low` +* `danger_medium` +* `danger_high` +* `danger_extreme` + + # chainsaw pack +* `chainsaw_cord chainsaw_on` +* `chainsaw_start chainsaw_on` +* `chainsaw_start chainsaw_on` +* `chainsaw_stop chainsaw_on` +* `chainsaw_idle chainsaw_on` +* `melee_swing_start chainsaw_on` +* `melee_swing_end chainsaw_on` +* `melee_swing chainsaw_on` +* `melee_hit_flesh chainsaw_on` +* `melee_hit_metal chainsaw_on` +* `weapon_theme chainsaw` + + # monster death and bite attacks +* `mon_death zombie_death|zombie_gibbed` +* `mon_bite bite_miss|bite_hit` + +* `melee_attack monster_melee_hit` + +* `player_laugh laugh_f|laugh_m` + + # player movement sfx + important: `plmove ` has priority over default `plmove|walk_` (excluding `|barefoot`) + example: if `plmove|t_grass_long` is defined it will be played before default `plmove|walk_grass` default for all grassy terrains + +* `plmove |` +* `plmove walk_grass|walk_dirt|walk_metal|walk_water|walk_tarmac|walk_barefoot|clear_obstacle` + + # fatigue +* `plmove fatigue_m_low|fatigue_m_med|fatigue_m_high|fatigue_f_low|fatigue_f_med|fatigue_f_high` + + # player hurt sounds +* `deal_damage hurt_f|hurt_m` + + # player death and end-game sounds +* `clean_up_at_end game_over|death_m|death_f` + + # variuos bionic sounds +* `bionic elec_discharge|elec_crackle_low|elec_crackle_med|elec_crackle_high|elec_blast|elec_blast_muffled|acid_discharge|pixelated` +* `bionic bio_resonator|bio_hydraulics|` + + # various tools/traps being used (including some associated terrain/furniture) +* `tool alarm_clock|jackhammer|pickaxe|oxytorch|hacksaw|axe|shovel|crowbar|boltcutters|compactor|gaspump|noise_emitter|repair_kit|camera_shutter|handcuffs` +* `tool geiger_low|geiger_medium|geiger_high` +* `trap bubble_wrap|bear_trap|snare|teleport|dissector` + + # various activities +* `activity burrow` + + # musical instruments, `_bad` is used when you fail to play it well +* `musical_instrument ` +* `musical_instrument_bad ` + + # various shouts and screams +* `shout default|scream|scream_tortured|roar|squeak|shriek|wail|howl` + + # speach, it is currently linked with either item or monster id, or is special `NPC` or `NPC_loud` + # TODO: full vocalization of speech.json +* `speech ` # examples: talking_doll, creepy_doll, Granade, +* `speech ` # examples: eyebot, minitank, mi-go, many robots +* `speech NPC_m|NPC_f|NPC_m_loud|NPC_f_loud` # special for NPCs +* `speech robot` # special for robotic voice from a machine etc. + + # radio chatter +* `radio static|inaudible_chatter` + + # humming sounds of various origin +* `humming electric|machinery` + + # sounds related to (burning) fire +* `fire ignition` + + # vehicle sounds - engine and other parts in action + # note: defaults are executed when specific option is not defined +* `engine_start ` # note: specific engine start (id of any engine/motor/steam_engine/paddle/oar/sail/etc. ) +* `engine_start combustion|electric|muscle|wind` # default engine starts groups +* `engine_stop ` # note: specific engine stop (id of any engine/motor/steam_engine/paddle/oar/sail/etc. ) +* `engine_stop combustion|electric|muscle|wind` # default engine stop groups + + # note: internal engine sound is dynamically pitch shifted depending on vehicle speed + # it is an ambient looped sound with dedicated channel +* `engine_working_internal ` # note: sound of engine working heard inside vehicle +* `engine_working_internal combustion|electric|muscle|wind` # default engine working (inside) groups + + # note: external engine sound volume and pan is dynamically shifted depending on distance and angle to vehicle + # volume heard at given distance is linked to engine's `noise_factor` and stress to the engine (see `vehicle::noise_and_smoke()` ) + # it is an ambient looped sound with dedicated channel + # this is a single-channel solution (TODO: multi-channel for every heard vehicle); it picks loudest heard vehicle + # there is no pitch shift here (may be introduced when need for it emerges) +* `engine_working_external ` # note: sound of engine working heard outside vehicle +* `engine_working_external combustion|electric|muscle|wind` # default engine working (outside) groups + + # note: gear_up/gear_down is done automatically by pitch manipulation + # gear shift is dependant on max safe speed, and works in assumption, that there are + # 6 forward gears, gear 0 = neutral, and gear -1 = reverse +* `vehicle gear_shift` + + +* `vehicle engine_backfire|engine_bangs_start|fault_immobiliser_beep|engine_single_click_fail|engine_multi_click_fail|engine_stutter_fail|engine_clanking_fail` +* `vehicle horn_loud|horn_medium|horn_low|rear_beeper|chimes|car_alarm` +* `vehicle reaper|scoop|scoop_thump` + +* `vehicle_open ` # note: id of: doors, trunks, hatches, etc. +* `vehicle_close ` + + # miscellaneous sounds +* `misc flashbang|flash|shockwave|earthquake|stairs_movement|stones_grinding|bomb_ticking|lit_fuse|cow_bell|bell|timber` +* `misc rc_car_hits_obstacle|rc_car_drives` +* `misc default|whistle|airhorn|horn_bicycle|servomotor` +* `misc beep|ding|` +* `misc rattling|spitting|coughing|heartbeat|puff|inhale|exhale|insect_wings|snake_hiss` # mostly organic noises diff --git a/doc/TRANSLATING.md b/doc/TRANSLATING.md index 8a7d09e4d19f0..6d1664ac60cad 100644 --- a/doc/TRANSLATING.md +++ b/doc/TRANSLATING.md @@ -78,6 +78,34 @@ Click on the "Save" button when you are satisfied with your translation. See [Transifex's documentation][3] for more information. +### Grammatical gender + +For NPC dialogue (and potentially other strings) some languages may wish to +have alternate translations depending on the gender of the conversation +participants. This two pieces of initial configuration. + +1. The dialogue must have the relevant genders listed in the json file defining + it. See [the NPC docs](NPCs.md). +2. Each language must specify the genders it wishes to use via the translation + of `grammatical gender list`. This should be a space-separated list of + genders used in this language for such translations. Don't add genders here + until you're sure you will need them, because it will make more work for + you. If you need different genders than are currently supported you must + add them to the `all_genders` lists in `lang/extract_json_strings.py` and + `src/translations.cpp`. + +Having done this, the relevant dialogue lines will appear multiple times for +translation, with different genders specified in the message context. For +example, a context of `npc:m` would indicate that the NPC participant in the +conversation is male. + +Because of technical limitations, all supported genders will appear as +contexts, but you only need to provide translations for the genders listed in +`grammatical gender list` for your language. + +Other parts of the game have various ad hoc solutions to grammatical gender, so +don't be surprised to see other contexts appearing for other strings. + ### Tips There are issues specific to Cataclysm: DDA which translators should be aware of. diff --git a/lang/extract_json_strings.py b/lang/extract_json_strings.py index 1fd4ae5694228..66fe3ecb2c435 100755 --- a/lang/extract_json_strings.py +++ b/lang/extract_json_strings.py @@ -3,6 +3,7 @@ import json import os +import itertools import subprocess from optparse import OptionParser from sys import platform @@ -142,6 +143,7 @@ def warning_supressed(filename): "skill", "snippet", "speech", + "SPELL", "start_location", "STATIONARY_ITEM", "terrain", @@ -181,6 +183,12 @@ def warning_supressed(filename): "technique", } +# For handling grammatical gender +all_genders = ["f", "m", "n"] + +def gender_options(subject): + return [subject + ":" + g for g in all_genders] + ## ## SPECIALIZED EXTRACTION FUNCTIONS ## @@ -492,6 +500,14 @@ def extract_recipe_group(item): for i in item.get("recipes"): writestr(outfile, i.get("description")) +def extract_gendered_dynamic_line_optional(line, outfile): + if "gendered_line" in line: + msg = line["gendered_line"] + subjects = line["relevant_genders"] + options = [gender_options(subject) for subject in subjects] + for context_list in itertools.product(*options): + context = " ".join(context_list) + writestr(outfile, msg, context=context) def extract_dynamic_line_optional(line, member, outfile): if member in line: @@ -502,6 +518,7 @@ def extract_dynamic_line(line, outfile): for l in line: extract_dynamic_line(l, outfile) elif type(line) == dict: + extract_gendered_dynamic_line_optional(line, outfile) extract_dynamic_line_optional(line, "u_male", outfile) extract_dynamic_line_optional(line, "u_female", outfile) extract_dynamic_line_optional(line, "npc_male", outfile) diff --git a/lang/po/cataclysm-dda.pot b/lang/po/cataclysm-dda.pot index 63e8a9ee5d534..db186c8bffd38 100644 --- a/lang/po/cataclysm-dda.pot +++ b/lang/po/cataclysm-dda.pot @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-03 13:47+0800\n" +"POT-Creation-Date: 2019-05-10 15:42+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -582,28 +582,6 @@ msgid "" "fuel in a charcoal kiln." msgstr "" -#: lang/json/AMMO_from_json.py -msgid "sprayable fungicide" -msgstr "" - -#. ~ Description for sprayable fungicide -#: lang/json/AMMO_from_json.py -msgid "" -"Fungicide enhanced with sulfur to create sprayable anti-fungal ammo for the " -"chemical thrower. Best be used with some kind of mask or mouth protection." -msgstr "" - -#: lang/json/AMMO_from_json.py -msgid "sprayable toxic gas" -msgstr "" - -#. ~ Description for sprayable toxic gas -#: lang/json/AMMO_from_json.py -msgid "" -"A hazardous mixture made from household cleaners, improvised for use in a " -"chemical thrower. Best be used with some kind of mask or mouth protection." -msgstr "" - #: lang/json/AMMO_from_json.py msgid "chain link" msgstr "" @@ -624,6 +602,17 @@ msgstr[1] "" msgid "Mixture of oxygen and nitrogen in proportions suitable for diving." msgstr "" +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "tinder" +msgid_plural "tinder" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for tinder +#: lang/json/AMMO_from_json.py +msgid "Flammable material, finely divided for easy combustion." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "crude wooden arrow" msgstr "" @@ -3198,6 +3187,28 @@ msgid "" "the cost of reduced expansion. This one has been hand-reloaded." msgstr "" +#: lang/json/AMMO_from_json.py +msgid "sprayable toxic gas" +msgstr "" + +#. ~ Description for sprayable toxic gas +#: lang/json/AMMO_from_json.py +msgid "" +"A hazardous mixture made from household cleaners, improvised for use in a " +"chemical thrower. Best be used with some kind of mask or mouth protection." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "sprayable fungicide" +msgstr "" + +#. ~ Description for sprayable fungicide +#: lang/json/AMMO_from_json.py +msgid "" +"Fungicide enhanced with sulfur to create sprayable anti-fungal ammo for the " +"chemical thrower. Best be used with some kind of mask or mouth protection." +msgstr "" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "paper cartridge" msgstr "" @@ -3993,17 +4004,6 @@ msgid "" "pellets as shot. Despite the minimal range, it packs a punch." msgstr "" -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "tinder" -msgid_plural "tinder" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for tinder -#: lang/json/AMMO_from_json.py -msgid "Flammable material, finely divided for easy combustion." -msgstr "" - #: lang/json/AMMO_from_json.py msgid "lead pellet" msgstr "" @@ -6901,17 +6901,6 @@ msgstr[1] "" msgid "Heavy fingerless leather gloves. Very flexible and comfortable." msgstr "" -#: lang/json/ARMOR_from_json.py -msgid "pair of geta" -msgid_plural "pairs of geta" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for pair of geta -#: lang/json/ARMOR_from_json.py -msgid "Simple wooden geta." -msgstr "" - #: lang/json/ARMOR_from_json.py msgid "pair of ballistic glasses" msgid_plural "pairs of ballistic glasses" @@ -7476,6 +7465,11 @@ msgstr[1] "" msgid "Plain black hakama for use in kendo and other martial arts." msgstr "" +#. ~ Description for hakama +#: lang/json/ARMOR_from_json.py +msgid "A flowing, pleated garment which can be worn over a kimono." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "halter top" msgid_plural "halter tops" @@ -8602,6 +8596,32 @@ msgid "" "sash." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "yukata" +msgid_plural "yukatas" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for yukata +#: lang/json/ARMOR_from_json.py +msgid "" +"An easy to wear, breezy robe secured with a sash. Essentially Japanese " +"pajamas. Great for summer nights." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "haori" +msgid_plural "haoris" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for haori +#: lang/json/ARMOR_from_json.py +msgid "" +"A loose coat with wide sleeves that is worn unfastened over a kimono. It is " +"jet black with sparse, tasteful golden embroidery." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "kippah" msgid_plural "kippahs" @@ -12213,6 +12233,17 @@ msgid "" "barefoot, still better than nothing." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "pair of geta" +msgid_plural "pairs of geta" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for pair of geta +#: lang/json/ARMOR_from_json.py +msgid "Simple wooden geta." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "pair of heels" msgid_plural "pairs of heels" @@ -12982,8 +13013,8 @@ msgid_plural "Active Defense System CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Active Defense System CBM #. ~ Description for Active Defense System +#. ~ Description for Active Defense System CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A thin forcefield surrounds your body, continually draining power. Anything " @@ -12998,8 +13029,8 @@ msgid_plural "Advanced Microreactor CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Advanced Microreactor CBM #. ~ Description for Advanced Microreactor System +#. ~ Description for Advanced Microreactor CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This stripped down mini-reactor is safer than it appears due to integrated " @@ -13013,8 +13044,8 @@ msgid_plural "Alarm System CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Alarm System CBM #. ~ Description for Alarm System +#. ~ Description for Alarm System CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A motion-detecting alarm system will notice almost all movement within a " @@ -13094,8 +13125,8 @@ msgid_plural "Battery System CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Battery System CBM #. ~ Description for Battery System +#. ~ Description for Battery System CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have a battery draining attachment, and thus can make use of the energy " @@ -13109,8 +13140,8 @@ msgid_plural "Monomolecular Blade CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Monomolecular Blade CBM #. ~ Description for Monomolecular Blade +#. ~ Description for Monomolecular Blade CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A deadly foot-long blade made of advanced material now resides inside your " @@ -13166,8 +13197,8 @@ msgid_plural "Blood Filter CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Blood Filter CBM #. ~ Description for Blood Filter +#. ~ Description for Blood Filter CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A filtration system in your heart allows you to actively filter out chemical " @@ -13194,8 +13225,8 @@ msgid_plural "Subdermal Carbon Filament CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Subdermal Carbon Filament CBM #. ~ Description for Subdermal Carbon Filament +#. ~ Description for Subdermal Carbon Filament CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Lying just beneath your skin is a thin armor made of carbon nanotubes. This " @@ -13208,8 +13239,8 @@ msgid_plural "Chain Lightning CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Chain Lightning CBM #. ~ Description for Chain Lightning +#. ~ Description for Chain Lightning CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your body is equipped with a chain lightning generator, allowing you to emit " @@ -13238,8 +13269,8 @@ msgid_plural "Internal Climate Control CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Internal Climate Control CBM #. ~ Description for Internal Climate Control +#. ~ Description for Internal Climate Control CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Throughout your body lies a network of thermal piping which eases the " @@ -13252,8 +13283,8 @@ msgid_plural "Cloaking System CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Cloaking System CBM #. ~ Description for Cloaking System +#. ~ Description for Cloaking System CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This high-power system uses a set of cameras and LEDs to make you blend into " @@ -13281,8 +13312,8 @@ msgid_plural "Wired Reflexes CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Wired Reflexes CBM #. ~ Description for Wired Reflexes +#. ~ Description for Wired Reflexes CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your reaction time has been greatly enhanced with bionic nerve stimulators, " @@ -13295,8 +13326,8 @@ msgid_plural "Expanded Digestive System CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Expanded Digestive System CBM #. ~ Description for Expanded Digestive System +#. ~ Description for Expanded Digestive System CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have been outfitted with three synthetic stomachs and industrial-grade " @@ -13310,8 +13341,8 @@ msgid_plural "Enhanced Hearing CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Enhanced Hearing CBM #. ~ Description for Enhanced Hearing +#. ~ Description for Enhanced Hearing CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "When this bionic is active, your hearing will be drastically improved, " @@ -13340,8 +13371,8 @@ msgid_plural "EMP Projector CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for EMP Projector CBM #. ~ Description for EMP Projector +#. ~ Description for EMP Projector CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A ranged EMP generator system is implanted on the palm of your right hand " @@ -13355,8 +13386,8 @@ msgid_plural "Ethanol Burner CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Ethanol Burner CBM #. ~ Description for Ethanol Burner +#. ~ Description for Ethanol Burner CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You burn alcohol as fuel in an extremely efficient reaction. However, you " @@ -13369,8 +13400,8 @@ msgid_plural "Aero-Evaporator CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Aero-Evaporator CBM #. ~ Description for Aero-Evaporator +#. ~ Description for Aero-Evaporator CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This unit draws moisture from the surrounding air, which then is poured from " @@ -13383,8 +13414,8 @@ msgid_plural "Diamond Cornea CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Diamond Cornea CBM #. ~ Description for Diamond Cornea +#. ~ Description for Diamond Cornea CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Your vision is greatly enhanced, giving you a +2 bonus to perception." msgstr "" @@ -13410,8 +13441,8 @@ msgid_plural "Facial Distortion CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Facial Distortion CBM #. ~ Description for Facial Distortion +#. ~ Description for Facial Distortion CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Through controlled application of electrochemical impulses, you are capable " @@ -13425,8 +13456,8 @@ msgid_plural "Dielectric Capacitance System CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Dielectric Capacitance System CBM #. ~ Description for Dielectric Capacitance System +#. ~ Description for Dielectric Capacitance System CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Throughout your body lies a network of miniature piezoelectric capacitors " @@ -13488,21 +13519,6 @@ msgid "" "small amount of light." msgstr "" -#: lang/json/BIONIC_ITEM_from_json.py -msgid "Internal Furnace CBM" -msgid_plural "Internal Furnace CBMs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for Internal Furnace CBM -#. ~ Description for Internal Furnace -#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py -msgid "" -"When this bionic is active, you can burn nearly any organic material as fuel " -"(use 'E'), recharging your power level. Some materials will burn better " -"than others." -msgstr "" - #: lang/json/BIONIC_ITEM_from_json.py msgid "Integrated Dosimeter CBM" msgid_plural "Integrated Dosimeter CBMs" @@ -13537,8 +13553,8 @@ msgid_plural "Terranian Sonar CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Terranian Sonar CBM #. ~ Description for Terranian Sonar +#. ~ Description for Terranian Sonar CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your feet are equipped with precision sonar equipment, allowing you to " @@ -13552,8 +13568,8 @@ msgid_plural "Heat Drain CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Heat Drain CBM #. ~ Description for Heat Drain +#. ~ Description for Heat Drain CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While fighting unarmed against a warm-blooded opponent, there is a chance " @@ -13581,8 +13597,8 @@ msgid_plural "Hydraulic Muscles CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Hydraulic Muscles CBM #. ~ Description for Hydraulic Muscles +#. ~ Description for Hydraulic Muscles CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While activated, your muscles will be greatly enhanced, increasing your " @@ -13595,8 +13611,8 @@ msgid_plural "Infrared Vision CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Infrared Vision CBM #. ~ Description for Infrared Vision +#. ~ Description for Infrared Vision CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your range of vision extends into the infrared, allowing you to see warm-" @@ -13609,8 +13625,8 @@ msgid_plural "Cerebral Booster CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Cerebral Booster CBM #. ~ Description for Cerebral Booster +#. ~ Description for Cerebral Booster CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your brain has been enhanced with bionic coprocessors, giving you a +2 bonus " @@ -13637,8 +13653,8 @@ msgid_plural "Leukocyte Breeder System CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Leukocyte Breeder System CBM #. ~ Description for Leukocyte Breeder System +#. ~ Description for Leukocyte Breeder System CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You are equipped with bionic stimulators which augment your haematopoiesis " @@ -13653,8 +13669,8 @@ msgid_plural "Mini-Flamethrower CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Mini-Flamethrower CBM #. ~ Description for Mini-Flamethrower +#. ~ Description for Mini-Flamethrower CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "The index fingers of both hands have powerful fire starters which extend " @@ -13694,8 +13710,8 @@ msgid_plural "Nictating Membrane CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Nictating Membrane CBM #. ~ Description for Nictating Membrane +#. ~ Description for Nictating Membrane CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your eyes have a thin membrane that closes over your eyes while underwater, " @@ -13722,8 +13738,8 @@ msgid_plural "Metabolic Interchange CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Metabolic Interchange CBM #. ~ Description for Metabolic Interchange +#. ~ Description for Metabolic Interchange CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your digestive system and power supply are interconnected. Bionic energy is " @@ -13737,8 +13753,8 @@ msgid_plural "Weather Reader CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Weather Reader CBM #. ~ Description for Weather Reader +#. ~ Description for Weather Reader CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A multitude of scientific instruments and sensors collect environmental " @@ -13752,8 +13768,8 @@ msgid_plural "Repair Nanobots CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Repair Nanobots CBM #. ~ Description for Repair Nanobots +#. ~ Description for Repair Nanobots CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Inside your body is a fleet of tiny dormant robots. While activated they " @@ -13767,8 +13783,8 @@ msgid_plural "Artificial Night Generator CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Artificial Night Generator CBM #. ~ Description for Artificial Night Generator +#. ~ Description for Artificial Night Generator CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Destructive interference eliminates all light within a 15 tile radius." msgstr "" @@ -13792,8 +13808,8 @@ msgid_plural "Offensive Defense System CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Offensive Defense System CBM #. ~ Description for Offensive Defense System +#. ~ Description for Offensive Defense System CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A thin forcefield surrounds your body, continually draining power. This " @@ -13807,8 +13823,8 @@ msgid_plural "Sensory Dulling CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Sensory Dulling CBM #. ~ Description for Sensory Dulling +#. ~ Description for Sensory Dulling CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your nervous system is wired to allow you to inhibit the signals of pain, " @@ -13835,8 +13851,8 @@ msgid_plural "Power Armor Interface CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Power Armor Interface CBM #. ~ Description for Power Armor Interface +#. ~ Description for Power Armor Interface CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Interfaces your power system with the internal charging port on suits of " @@ -13849,8 +13865,8 @@ msgid_plural "Power Armor Mk. II Interface CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Power Armor Mk. II Interface CBM #. ~ Description for Power Armor Interface Mk. II +#. ~ Description for Power Armor Mk. II Interface CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Interfaces your power system with the internal charging port on suits of " @@ -13864,8 +13880,8 @@ msgid_plural "Power Storage CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Power Storage CBM #. ~ Description for Power Storage +#. ~ Description for Power Storage CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Compact Bionics Module that upgrades your power capacity by 100 units. " @@ -13879,8 +13895,8 @@ msgid_plural "Power Storage CBMs Mk. II" msgstr[0] "" msgstr[1] "" -#. ~ Description for Power Storage CBM Mk. II #. ~ Description for Power Storage Mk. II +#. ~ Description for Power Storage CBM Mk. II #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Compact Bionics Module developed at DoubleTech Industries as a replacement " @@ -13894,8 +13910,8 @@ msgid_plural "Probability Travel CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Probability Travel CBM #. ~ Description for Probability Travel +#. ~ Description for Probability Travel CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Increases your body's wavelength, allowing you to quantum tunnel through " @@ -13951,8 +13967,8 @@ msgid_plural "Fingertip Razors CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Fingertip Razors CBM #. ~ Description for Fingertip Razors +#. ~ Description for Fingertip Razors CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You possess razor-sharp retractable claws underneath your fingernails, ten " @@ -13966,8 +13982,8 @@ msgid_plural "Internal Microreactor CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Internal Microreactor CBM #. ~ Description for Microreactor System +#. ~ Description for Internal Microreactor CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This stripped down mini-reactor may not be the best thing to have in your " @@ -13994,8 +14010,8 @@ msgid_plural "Recycler Unit CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Recycler Unit CBM #. ~ Description for Recycler Unit +#. ~ Description for Recycler Unit CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your digestive system has been outfitted with a series of filters and " @@ -14009,8 +14025,8 @@ msgid_plural "Remote Controller CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Remote Controller CBM #. ~ Description for Remote Controller +#. ~ Description for Remote Controller CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A small module connected to your brain allows you to interface with nearby " @@ -14023,8 +14039,8 @@ msgid_plural "Sonic Resonator CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Sonic Resonator CBM #. ~ Description for Sonic Resonator +#. ~ Description for Sonic Resonator CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your entire body may resonate at very high power, creating a short-range " @@ -14038,8 +14054,8 @@ msgid_plural "Olfactory Mask CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Olfactory Mask CBM #. ~ Description for Olfactory Mask +#. ~ Description for Olfactory Mask CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While this system is powered, your body will produce very little odor, " @@ -14052,8 +14068,8 @@ msgid_plural "Scent Vision CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Scent Vision CBM #. ~ Description for Scent Vision +#. ~ Description for Scent Vision CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While this system is powered, you're able to visually sense your own scent, " @@ -14067,8 +14083,8 @@ msgid_plural "Electroshock Unit CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Electroshock Unit CBM #. ~ Description for Electroshock Unit +#. ~ Description for Electroshock Unit CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While fighting unarmed, or with a weapon that conducts electricity, there is " @@ -14082,8 +14098,8 @@ msgid_plural "Shockwave Generator CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Shockwave Generator CBM #. ~ Description for Shockwave Generator +#. ~ Description for Shockwave Generator CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You generate a powerful shockwave, knocking back all nearby creatures. " @@ -14097,8 +14113,8 @@ msgid_plural "Synaptic Accelerator CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Synaptic Accelerator CBM #. ~ Description for Synaptic Accelerator +#. ~ Description for Synaptic Accelerator CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py #, no-python-format msgid "" @@ -14180,8 +14196,8 @@ msgid_plural "Teleportation Unit CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Teleportation Unit CBM #. ~ Description for Teleportation Unit +#. ~ Description for Teleportation Unit CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This highly experimental unit folds space over short distances, instantly " @@ -14195,8 +14211,8 @@ msgid_plural "Time Dilation CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Time Dilation CBM #. ~ Description for Time Dilation +#. ~ Description for Time Dilation CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "At the cost of all stored bionic power, you may increase your body speed and " @@ -14210,8 +14226,8 @@ msgid_plural "Integrated Toolset CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Integrated Toolset CBM #. ~ Description for Integrated Toolset +#. ~ Description for Integrated Toolset CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Surgically implanted in your hands and fingers is a complete tool set - " @@ -14239,8 +14255,8 @@ msgid_plural "Joint Servo CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Joint Servo CBM #. ~ Description for Joint Servo +#. ~ Description for Joint Servo CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your leg joints have been equipped with servomotors that provide power-" @@ -14255,8 +14271,8 @@ msgid_plural "Uncanny Dodge CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Uncanny Dodge CBM #. ~ Description for Uncanny Dodge +#. ~ Description for Uncanny Dodge CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your nervous system has been augmented with bionic processors, allowing you " @@ -14269,8 +14285,8 @@ msgid_plural "Unified Power System CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Unified Power System CBM #. ~ Description for Internal Unified Power System +#. ~ Description for Unified Power System CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have a unified power system wired into your power banks. Objects that " @@ -14283,8 +14299,8 @@ msgid_plural "Internal Chronometer CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Internal Chronometer CBM #. ~ Description for Internal Chronometer +#. ~ Description for Internal Chronometer CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have been equipped with an internal atomic clock, ensuring that you will " @@ -14356,8 +14372,8 @@ msgid_plural "Taste Modifier CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Taste Modifier CBM #. ~ Description for Taste Modifier +#. ~ Description for Taste Modifier CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A set of highly sensitive sensors is installed in your mouth, and a small " @@ -14573,8 +14589,23 @@ msgid "" "level will slowly recharge." msgstr "" -#. ~ Description for Solar Panels CBM +#: lang/json/BIONIC_ITEM_from_json.py +msgid "Internal Furnace CBM" +msgid_plural "Internal Furnace CBMs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Internal Furnace +#. ~ Description for Internal Furnace CBM +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "" +"When this bionic is active, you can burn nearly any organic material as fuel " +"(use 'E'), recharging your power level. Some materials will burn better " +"than others." +msgstr "" + #. ~ Description for Solar Panels +#. ~ Description for Solar Panels CBM #: lang/json/BIONIC_ITEM_from_json.py #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" @@ -14646,8 +14677,8 @@ msgid_plural "Ionic Overload Generator CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Ionic Overload Generator CBM #. ~ Description for Ionic Overload Generator +#. ~ Description for Ionic Overload Generator CBM #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A powerful ion energy generator is implanted on your chest. Fires a " @@ -17527,6 +17558,17 @@ msgid "" "with sketches and notes, a skilled tailor could learn a lot from this volume." msgstr "" +#: lang/json/BOOK_from_json.py +msgid "Traditional Japanese Kimono" +msgid_plural "Traditional Japanese Kimonos" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Traditional Japanese Kimono +#: lang/json/BOOK_from_json.py +msgid "An illustrated textbook on the crafting of Japanese traditional garb." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "Friendly, Humane Fashion" msgid_plural "Friendly, Humane Fashions" @@ -29023,6 +29065,20 @@ msgstr[1] "" msgid "A small, open plastic bag. Essentially trash." msgstr "" +#: lang/json/CONTAINER_from_json.py +msgid "zipper bag" +msgid_plural "zipper bags" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for zipper bag +#: lang/json/CONTAINER_from_json.py +msgid "" +"An inexpensive flexible rectangular storage bag on its typical small size. " +"Transparent and made of plastic, it can be sealed and opened by a slider " +"which works in a similar way to a zip fastener." +msgstr "" + #: lang/json/CONTAINER_from_json.py msgid "body bag" msgid_plural "body bags" @@ -29095,32 +29151,6 @@ msgid "" "a tool. Holds 250 ml of liquid." msgstr "" -#: lang/json/CONTAINER_from_json.py -msgid "pewter bowl" -msgid_plural "pewter bowls" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for pewter bowl -#: lang/json/CONTAINER_from_json.py -msgid "" -"A pewter bowl without a lid. Can be used as a container or as a tool. " -"Holds 250 ml of liquid." -msgstr "" - -#: lang/json/CONTAINER_from_json.py -msgid "plastic bowl" -msgid_plural "plastic bowls" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for plastic bowl -#: lang/json/CONTAINER_from_json.py -msgid "" -"A plastic bowl. Can be used as a container or as a tool. Holds 250 ml of " -"liquid." -msgstr "" - #: lang/json/CONTAINER_from_json.py msgid "pack" msgid_plural "packs" @@ -29259,28 +29289,6 @@ msgid "" "things hot or cold. Contains 1L of liquid." msgstr "" -#: lang/json/CONTAINER_from_json.py -msgid "ceramic bowl" -msgid_plural "ceramic bowls" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for ceramic bowl -#: lang/json/CONTAINER_from_json.py -msgid "A shallow dessert bowl, not a lot of use for it really." -msgstr "" - -#: lang/json/CONTAINER_from_json.py -msgid "ceramic cup" -msgid_plural "ceramic cups" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for ceramic cup -#: lang/json/CONTAINER_from_json.py -msgid "A ceramic teacup, pinky out!" -msgstr "" - #: lang/json/CONTAINER_from_json.py msgid "clay canister" msgid_plural "clay canisters" @@ -29414,28 +29422,6 @@ msgid "" "transport alcohol." msgstr "" -#: lang/json/CONTAINER_from_json.py -msgid "glass cup" -msgid_plural "glasses" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for glass cup -#: lang/json/CONTAINER_from_json.py -msgid "A tall glass, just begging for a frosty one!" -msgstr "" - -#: lang/json/CONTAINER_from_json.py -msgid "glass bowl" -msgid_plural "glass bowls" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for glass bowl -#: lang/json/CONTAINER_from_json.py -msgid "A glass dessert bowl, not a lot of use for it really." -msgstr "" - #: lang/json/CONTAINER_from_json.py msgid "3L glass jar" msgid_plural "3L glass jars" @@ -29691,6 +29677,20 @@ msgstr[1] "" msgid "A big, square plastic bucket usually used for carrying ice cream." msgstr "" +#: lang/json/CONTAINER_from_json.py +msgid "condom" +msgid_plural "condoms" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for condom +#: lang/json/CONTAINER_from_json.py +msgid "" +"A gentleman's balloon. A single use life preventer. A thumbless latex " +"mitten. This could be used as a makeshift water container, but otherwise " +"it's anyone's guess what it's for." +msgstr "" + #: lang/json/CONTAINER_from_json.py msgid "blood draw kit" msgid_plural "blood draw kits" @@ -29705,6 +29705,17 @@ msgid "" "you are standing on." msgstr "" +#: lang/json/CONTAINER_from_json.py +msgid "plastic bowl" +msgid_plural "plastic bowls" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for plastic bowl +#: lang/json/CONTAINER_from_json.py +msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." +msgstr "" + #: lang/json/CONTAINER_from_json.py msgid "small metal tank" msgid_plural "small metal tanks" @@ -30321,8 +30332,8 @@ msgstr "" #. ~ Description for wind #. ~ Description for a smoking device and a source of flame #. ~ Description for abstract map -#. ~ Description for seeing this is a bug #. ~ Description for weapon +#. ~ Description for seeing this is a bug #: lang/json/GENERIC_from_json.py #: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py #: lang/json/TOOL_from_json.py lang/json/skill_from_json.py @@ -31418,17 +31429,6 @@ msgid "" "vest." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "ceramic plate" -msgid_plural "ceramic plates" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for ceramic plate -#: lang/json/GENERIC_from_json.py -msgid "A ceramic dinner plate, you could probably play frisbee with it." -msgstr "" - #: lang/json/GENERIC_from_json.py msgid "fish bowl" msgid_plural "fish bowls" @@ -31442,74 +31442,6 @@ msgid "" "fish appears to have tiny antlers." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "glass plate" -msgid_plural "glass plates" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for glass plate -#: lang/json/GENERIC_from_json.py -msgid "A glass dinner plate, you could probably play frisbee with it." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "tin plate" -msgid_plural "tin plates" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for tin plate -#: lang/json/GENERIC_from_json.py -msgid "A tin dinner plate, you could probably play frisbee with it." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "fork" -msgid_plural "forks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for fork -#: lang/json/GENERIC_from_json.py -msgid "" -"A fork, if you stab something with it you eat it right away. Wait... " -"nevermind." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "spoon" -msgid_plural "spoons" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for spoon -#: lang/json/GENERIC_from_json.py -msgid "Do not try to bend the spoon. That is impossible." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "spork" -msgid_plural "sporks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for spork -#: lang/json/GENERIC_from_json.py -msgid "Foons are for scrubs, real men use sporks." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "foon" -msgid_plural "foons" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for foon -#: lang/json/GENERIC_from_json.py -msgid "Clearly the superior instrument. Sporks are just imitators." -msgstr "" - #: lang/json/GENERIC_from_json.py msgid "blood soaked rag" msgid_plural "blood soaked rags" @@ -32580,20 +32512,6 @@ msgid "" "vest." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "condom" -msgid_plural "condoms" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for condom -#: lang/json/GENERIC_from_json.py -msgid "" -"A gentleman's balloon. A single use life preventer. A thumbless latex " -"mitten. This could be used as a makeshift water container, but otherwise " -"it's anyone's guess what it's for." -msgstr "" - #: lang/json/GENERIC_from_json.py msgid "small lock and key" msgid_plural "small lock and keys" @@ -32872,17 +32790,6 @@ msgid "" "chopping things and for use as a hammer." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "butter knife" -msgid_plural "butter knives" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for butter knife -#: lang/json/GENERIC_from_json.py -msgid "A dull knife, absolutely worthless in combat." -msgstr "" - #. ~ Description for rock #: lang/json/GENERIC_from_json.py msgid "" @@ -33323,6 +33230,22 @@ msgid "" "or by their wives in defense of the household." msgstr "" +#. ~ Description for naginata +#: lang/json/GENERIC_from_json.py +msgid "" +"A sturdy polearm with a curved blade, made in the same manner as the katana " +"and other Japanese blades. This one has a bit of wiggle to its blade and " +"feels a bit shoddily made." +msgstr "" + +#. ~ Description for naginata +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a dull, slightly floppy replica of a Japanese polearm with a curved " +"blade. With a little difficulty, you could use it administer a solid slap " +"from a distance." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "survivor naginata" msgid_plural "survivor naginata" @@ -34730,17 +34653,6 @@ msgid "" "amount of damage." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "frying pan" -msgid_plural "frying pans" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for frying pan -#: lang/json/GENERIC_from_json.py -msgid "A cast-iron pan. Makes a decent melee weapon, and is used for cooking." -msgstr "" - #: lang/json/GENERIC_from_json.py msgid "pasta extruder" msgid_plural "pasta extruders" @@ -34786,46 +34698,6 @@ msgid "" "spike." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "pot" -msgid_plural "pots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for pot -#: lang/json/GENERIC_from_json.py -msgid "Useful for boiling water when cooking spaghetti and more." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "copper pot" -msgid_plural "copper pots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for copper pot -#: lang/json/GENERIC_from_json.py -msgid "" -"Useful for boiling water when cooking spaghetti and more. Made from copper, " -"with a lining of tin to prevent metal from leaching into acidic foods." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "canning pot" -msgid_plural "canning pots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for canning pot -#: lang/json/GENERIC_from_json.py -msgid "" -"A very large 25 liter pot, primarily meant for canning food in glass jars " -"via the water bath method, though it can cook normal foods just as well. " -"Canning foods with it will require a lot of water. If you're only canning a " -"couple of jars at a time, you'd fill it up with rocks or something to " -"displace the water above the lids." -msgstr "" - #: lang/json/GENERIC_from_json.py msgid "stone pot" msgid_plural "stone pots" @@ -35696,20 +35568,21 @@ msgid "" "circular cone." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "UPS-compatible recharging station" -msgid_plural "UPS-compatible recharging stations" +#: lang/json/GENERIC_from_json.py +#: lang/json/vehicle_part_from_json.py +msgid "recharging station" +msgid_plural "recharging stations" msgstr[0] "" msgstr[1] "" -#. ~ Description for UPS-compatible recharging station +#. ~ Description for recharging station #: lang/json/GENERIC_from_json.py msgid "" -"A Unified Power System recharging station designed to operate on vehicle " -"power. Once installed in a vehicle storage space and turned on from a " -"dashboard or electronics control unit, it will slowly charge all UPS " -"compatible tools and battery cells in that space. The system can only be " -"installed in existing storage compartments." +"A universal recharging station designed to operate on vehicle power. While " +"on it will steadily charge all rechargeable batteries (battery cells, lead-" +"acid batteries, etc) placed directly within its storage space. The system " +"can only be installed onto existing storage compartments, and is controlled " +"from a dashboard or electronics control unit." msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py @@ -37279,6 +37152,764 @@ msgid "" "Exchange Token'." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "generic silverware" +msgid_plural "generic silverwares" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for generic silverware +#. ~ Description for generic utensil +#. ~ Description for generic silverware +#. ~ Description for generic dish +#. ~ Description for generic cook pot +#. ~ Description for generic kitchen knife +#: lang/json/GENERIC_from_json.py +#: lang/json/TOOL_from_json.py +msgid "generic item template" +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "generic utensil" +msgid_plural "generic utensils" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/GENERIC_from_json.py +msgid "generic dish" +msgid_plural "generic dishs" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/GENERIC_from_json.py +msgid "generic cook pot" +msgid_plural "generic cook pots" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/GENERIC_from_json.py +msgid "ceramic plate" +msgid_plural "ceramic plates" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for ceramic plate +#: lang/json/GENERIC_from_json.py +msgid "A ceramic dinner plate, unremarkable in every way." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "ceramic bowl" +msgid_plural "ceramic bowls" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for ceramic bowl +#: lang/json/GENERIC_from_json.py +msgid "A perfectly ordinary ceramic soup bowl." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "ceramic cup" +msgid_plural "ceramic cups" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for ceramic cup +#: lang/json/GENERIC_from_json.py +msgid "A light ceramic teacup. Quite classy." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "coffee mug" +msgid_plural "coffee mugs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for coffee mug +#: lang/json/GENERIC_from_json.py +msgid "A ceramic coffee cup with a logo on the side." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "The side of the mug reads 'World's Greatest Dad'." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "The side of the mug reads 'World's Greatest Mom'." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "" +"The side of the mug has a picture of a happy looking family printed on'." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "" +"The side of the mug has a comical green face on it and says 'I'm a zombie " +"without my coffee!'." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "The side of the mug reads 'I'd rather be playing open source games'." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "The side of the mug reads 'If you think I'm bad, look in a mirror'." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "The side of the mug has a diagram of a caffeine molecule." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "The side of the mug has a cute picture of a sleeping cat." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "The mug is printed in leopard spots." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "The mug is blue and looks like a TARDIS." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "The side of the mug reads 'STAR WARS' over a picture of a lightsaber." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "The side of the mug reads 'House Stark' and depicts a fictional crest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "The side of the mug reads 'My fandom could beat up your fandom'. " +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "" +"The side of the mug reads 'Do you even linux, bro?' and has a picture of a " +"muscular penguin." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "The side of the mug reads 'I wish this was wine!'" +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "The side of the mug reads 'CasUaL aLcoHoLiSm'" +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "tin plate" +msgid_plural "tin plates" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for tin plate +#: lang/json/GENERIC_from_json.py +msgid "A tin dinner plate, lightweight and clanky." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "tin cup" +msgid_plural "tin cups" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for tin cup +#: lang/json/GENERIC_from_json.py +msgid "" +"An emaled tin cup. Great for camping or for prison use; makes a wonderful " +"sound when clanged along bars." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "pewter bowl" +msgid_plural "pewter bowls" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for pewter bowl +#: lang/json/GENERIC_from_json.py +msgid "A small pewter serving bowl without a lid. Holds 250 ml of liquid." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "glass plate" +msgid_plural "glass plates" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for glass plate +#: lang/json/GENERIC_from_json.py +msgid "A glass dinner plate, for people who don't have clumsy children." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "drinking glass" +msgid_plural "drinking glasses" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for drinking glass +#: lang/json/GENERIC_from_json.py +msgid "A tall drinking glass." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "wine glass" +msgid_plural "wine glasses" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for wine glass +#: lang/json/GENERIC_from_json.py +msgid "" +"A stemmed drinking glass that makes you feel very fancy when you drink from " +"it." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "glass bowl" +msgid_plural "glass bowls" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for glass bowl +#: lang/json/GENERIC_from_json.py +msgid "A glass bowl for soup or dessert." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "plastic plate" +msgid_plural "plastic plates" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for plastic plate +#: lang/json/GENERIC_from_json.py +msgid "A durable plastic plate, the sort you might use as patio dishware." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "plastic tumbler" +msgid_plural "plastic tumblers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for plastic tumbler +#: lang/json/GENERIC_from_json.py +msgid "" +"A durable plastic drinking vessel. This one is made of clear acrylic and " +"looks almost like glass." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "kiddie bowl" +msgid_plural "kiddie bowls" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for kiddie bowl +#: lang/json/GENERIC_from_json.py +msgid "A plastic bowl designed for use by children." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "This bowl is decorated with cartoon bears." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "" +"There is a drawing of Yoda at the bottom of this bowl, and the words 'Eaten " +"it all, you have'." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "" +"This bowl is covered in cartoon dogs and a logo that reads 'Paw Patrol'." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "" +"There are orange and blue fish chasing each other around the rim of this " +"bowl." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "" +"This bowl is shaped like the head of a silly frog with the opening forming " +"the mouth." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "There are cute farm animals decorating this bowl." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "fork" +msgid_plural "forks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for fork +#: lang/json/GENERIC_from_json.py +msgid "" +"A fork, if you stab something with it you eat it right away. Wait... " +"nevermind." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "plastic fork" +msgid_plural "plastic forks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for plastic fork +#: lang/json/GENERIC_from_json.py +msgid "" +"A plastic disposable fork. Great for picnic lunches in the post apocalyptic " +"wasteland." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "spoon" +msgid_plural "spoons" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for spoon +#: lang/json/GENERIC_from_json.py +msgid "Do not try to bend the spoon. That is impossible." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "plastic spoon" +msgid_plural "plastic spoons" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for plastic spoon +#: lang/json/GENERIC_from_json.py +msgid "A plastic disposable spoon. Easier to bend than the metal variety." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "kiddie spoon" +msgid_plural "kiddie spoons" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for kiddie spoon +#: lang/json/GENERIC_from_json.py +msgid "A plastic spoon designed for use by children." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "This spoon is striped in bright primary colors." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "This spoon is styled to look like a bulldozer." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "" +"This spoon is covered in cartoon dogs and a logo that reads 'Paw Patrol'." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "There is a cute cartoon bear on the handle of this spoon." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "There are cartoon cats all over this spoon." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "This spoon has a sillhouette of a giraffe going down the handle." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "butter knife" +msgid_plural "butter knives" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for butter knife +#: lang/json/GENERIC_from_json.py +msgid "" +"A dull knife, absolutely worthless in combat. Excellent for spreading soft " +"things on bread." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "plastic knife" +msgid_plural "plastic knives" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for plastic knife +#: lang/json/GENERIC_from_json.py +msgid "" +"A plastic butter knife. It's actually a bit sharper than its metal " +"counterpart, but that doesn't make it any more effective as a weapon." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "plastic straw" +msgid_plural "plastic straws" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for plastic straw +#: lang/json/GENERIC_from_json.py +msgid "A plastic straw, for drinking things and making litter" +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "corkscrew" +msgid_plural "corkscrews" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for corkscrew +#: lang/json/GENERIC_from_json.py +msgid "Many a pleasant date has been ruined by forgetting this important tool." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "vegetable peeler" +msgid_plural "vegetable peelers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for vegetable peeler +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a simple tool for peeling the outer skin off fruit and veggies " +"without stabbing yourself." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "bottle opener" +msgid_plural "bottle openers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for bottle opener +#: lang/json/GENERIC_from_json.py +msgid "A simple lever for popping open bottles." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "" +"This bottle opener is shaped like a zombie head, the mouth pops open the " +"bottle." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "This bottle opener is shaped like a lightsaber." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "This bottle opener is shaped like a revolver." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "" +"This bottle opener is engraved with the words 'I'll die before I give you my " +"beer'." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "" +"This bottle opener is emblazoned with a logo for an HVAC contracting company." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "This bottle opener reads 'Corporate Team Building Exercise 1999'." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "This bottle opener reads 'I'd rather be drinking whiskey'." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "This bottle opener is shaped like a phaser." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "spork" +msgid_plural "sporks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for spork +#: lang/json/GENERIC_from_json.py +msgid "" +"The bastardized hybrid of a spoon and fork, with all the power and " +"capabilities of both in a more annoying to use package." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "foon" +msgid_plural "foons" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for foon +#: lang/json/GENERIC_from_json.py +msgid "Clearly the superior instrument. Sporks are just imitators." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "chopsticks" +msgid_plural "chopstickss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for chopsticks +#: lang/json/GENERIC_from_json.py +msgid "" +"One of the most popular eating utensils in the world. Does double duty as a " +"way of dealing with especially fragile vampires." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "ladle" +msgid_plural "ladles" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for ladle +#: lang/json/GENERIC_from_json.py +msgid "When you need to scoop some soup, this is the utensil for you." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "whisk" +msgid_plural "whisks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for whisk +#: lang/json/GENERIC_from_json.py +msgid "" +"Also known as a 'wire whip', this is a less effective weapon than it sounds." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "potato masher" +msgid_plural "potato mashers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for potato masher +#: lang/json/GENERIC_from_json.py +msgid "" +"This tool can mash potatoes and soft root vegetables; it cannot do the twist." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "garlic press" +msgid_plural "garlic presss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for garlic press +#: lang/json/GENERIC_from_json.py +msgid "This tool can squash a clove or two of garlic into a fine paste." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "can opener" +msgid_plural "can openers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for can opener +#: lang/json/GENERIC_from_json.py +msgid "It's not hard to open cans without this, but it's way messier." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "carving fork" +msgid_plural "carving forks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for carving fork +#: lang/json/GENERIC_from_json.py +msgid "" +"It's like a tiny pitchfork, or a very large dinner fork. You use it to hold " +"meat still while you slice it." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "spatula" +msgid_plural "spatulas" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for spatula +#: lang/json/GENERIC_from_json.py +msgid "" +"A rubber scraper for making sure you get every last scrap of cookie dough." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "rolling pin" +msgid_plural "rolling pins" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for rolling pin +#: lang/json/GENERIC_from_json.py +msgid "" +"A stout piece of hardwood, turned and sanded smooth, with rounded handles at " +"the ends. This timeless kitchen tool also doubles as a very effective club." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "pot" +msgid_plural "pots" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for pot +#: lang/json/GENERIC_from_json.py +msgid "Useful for boiling water when cooking spaghetti and more." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "cast-iron pot" +msgid_plural "cast-iron pots" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for cast-iron pot +#: lang/json/GENERIC_from_json.py +msgid "" +"This hefty black pot is made from cast iron and coated in a sturdy enamel." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "copper pot" +msgid_plural "copper pots" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for copper pot +#: lang/json/GENERIC_from_json.py +msgid "" +"Useful for boiling water when cooking spaghetti and more. Made from copper, " +"with a lining of tin to prevent metal from leaching into acidic foods." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "casserole" +msgid_plural "casseroles" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for casserole +#: lang/json/GENERIC_from_json.py +msgid "" +"A ceramic pot made for both cooking and serving, particularly one-pot " +"dinners." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "stock pot" +msgid_plural "stock pots" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for stock pot +#: lang/json/GENERIC_from_json.py +msgid "" +"A large pot for making soup stocks. You could fit a whole turkey in there, " +"with a bit of shoving." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "canning pot" +msgid_plural "canning pots" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for canning pot +#: lang/json/GENERIC_from_json.py +msgid "" +"A very large 25 liter pot, primarily meant for canning food in glass jars " +"via the water bath method, though it can cook normal foods just as well. " +"Canning foods with it will require a lot of water. If you're only canning a " +"couple of jars at a time, you'd fill it up with rocks or something to " +"displace the water above the lids." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "cast-iron frying pan" +msgid_plural "cast-iron frying pans" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for cast-iron frying pan +#: lang/json/GENERIC_from_json.py +msgid "A cast-iron pan. Makes a decent melee weapon, and is used for cooking." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "steel frying pan" +msgid_plural "steel frying pans" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for steel frying pan +#: lang/json/GENERIC_from_json.py +msgid "" +"A steel frying pan. Makes a decent melee weapon, and is used for cooking." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "copper frying pan" +msgid_plural "copper frying pans" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for copper frying pan +#: lang/json/GENERIC_from_json.py +msgid "" +"A copper frying pan, coated in a thin layer of tin. Makes a decent melee " +"weapon, and is used for cooking." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "kettle" +msgid_plural "kettles" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for kettle +#: lang/json/GENERIC_from_json.py +msgid "A stovetop kettle for boiling water." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "cutting board" +msgid_plural "cutting boards" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for cutting board +#: lang/json/GENERIC_from_json.py +msgid "" +"A large flat piece of wood for chopping vegetables on without ruining your " +"knife or your countertop." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "spare parts" msgid_plural "spare parts" @@ -38096,12 +38727,6 @@ msgid "" "power." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "rolling pin" -msgid_plural "rolling pins" -msgstr[0] "" -msgstr[1] "" - #. ~ Description for rolling pin #: lang/json/GENERIC_from_json.py msgid "A light wooden rolling pin used to flatten dough." @@ -38602,19 +39227,6 @@ msgstr[1] "" msgid "An inflatable airbag." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "battery charger" -msgid_plural "battery chargers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for battery charger -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "" -"A charger for batteries that runs off vehicle power. It is quite " -"inefficient, but charges fast." -msgstr "" - #: lang/json/GENERIC_from_json.py msgid "nuclear waste" msgid_plural "nuclear wastes" @@ -40778,6 +41390,17 @@ msgid "" "It retains its universal compatibility, though." msgstr "" +#: lang/json/MAGAZINE_from_json.py +msgid "atomic ultra-light battery cell" +msgstr "" + +#. ~ Description for atomic ultra-light battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is an atomic battery designed for small size over everything else. It " +"retains its universal compatibility, though. It cannot be recharged." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "light battery cell" msgstr "" @@ -40799,7 +41422,18 @@ msgstr[1] "" #: lang/json/MAGAZINE_from_json.py msgid "" "This is a high-capacity light battery cell, universally compatible with all " -"kinds of personal electronic devices." +"kinds of small devices." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "atomic light battery cell" +msgstr "" + +#. ~ Description for atomic light battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is an atomic battery, universally compatible with all kinds of personal " +"electronic devices. It cannot be recharged." msgstr "" #: lang/json/MAGAZINE_from_json.py @@ -40826,6 +41460,17 @@ msgid "" "kinds of appliances and power tools." msgstr "" +#: lang/json/MAGAZINE_from_json.py +msgid "atomic medium battery cell" +msgstr "" + +#. ~ Description for atomic medium battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is an atomic battery, universally compatible with all kinds of " +"appliances and power tools. It cannot be recharged." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "heavy battery cell" msgstr "" @@ -40850,6 +41495,17 @@ msgid "" "kinds of industrial-grade equipment and large tools." msgstr "" +#: lang/json/MAGAZINE_from_json.py +msgid "atomic heavy battery cell" +msgstr "" + +#. ~ Description for atomic heavy battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is an atomic battery, universally compatible with all kinds of " +"industrial-grade equipment and large tools. It cannot be recharged." +msgstr "" + #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "fuel bunker" msgstr "" @@ -41568,7 +42224,7 @@ msgstr "" #. ~ Description for LW-12 magazine #: lang/json/MAGAZINE_from_json.py msgid "" -"A 12-round polymer magazine for use with the Leadworks LLC L39-45 and " +"A 12-round polymer magazine for use with the Leadworks LLC L39-460 and " "L39B-45 pistols." msgstr "" @@ -41996,6 +42652,17 @@ msgid "" "A standard 20-round magazine for the Skorpion Vz. 82, in 9x18mm Makarov." msgstr "" +#: lang/json/MAGAZINE_from_json.py +msgid "pressurized chemical tank" +msgstr "" + +#. ~ Description for pressurized chemical tank +#: lang/json/MAGAZINE_from_json.py +msgid "" +"A makeshift pressurized 2L canister designed to feed a makeshift chemical " +"thrower." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "pressurized fuel tank" msgstr "" @@ -42178,6 +42845,13 @@ msgid "" "tremendous amount of energy." msgstr "" +#. ~ Description for light battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity light battery cell, universally compatible with all " +"kinds of personal electronic devices." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "rechargeable battery" msgid_plural "rechargeable batteries" @@ -42727,29 +43401,65 @@ msgid "Want a little crazy in your Cataclysm? Try this one." msgstr "" #: lang/json/MOD_INFO_from_json.py -msgid "(DP_RP) Chesthole Indicators" +msgid "[DP_MOD] Indicators: Chesthole" msgstr "" -#. ~ Description for (DP_RP) Chesthole Indicators +#. ~ Description for [DP_MOD] Indicators: Chesthole #: lang/json/MOD_INFO_from_json.py msgid "Changes interface indicators to Chesthole version." msgstr "" #: lang/json/MOD_INFO_from_json.py -msgid "(DP_RP) REMIX Indicators" +msgid "[DP_MOD] Indicators: REMIX" msgstr "" -#. ~ Description for (DP_RP) REMIX Indicators +#. ~ Description for [DP_MOD] Indicators: REMIX #: lang/json/MOD_INFO_from_json.py msgid "" "Changes interface indicators to remix of Xotto, Chesthole and DeadPeople." msgstr "" #: lang/json/MOD_INFO_from_json.py -msgid "(DP_RP) Xotto Indicators" +msgid "[DP_MOD] Hide DEBUG" +msgstr "" + +#. ~ Description for [DP_MOD] Hide DEBUG +#: lang/json/MOD_INFO_from_json.py +msgid "Hides DEBUG graphic above character head when he has debug mutations." +msgstr "" + +#: lang/json/MOD_INFO_from_json.py +msgid "[DP_MOD] No Highlight" +msgstr "" + +#. ~ Description for [DP_MOD] No Highlight +#: lang/json/MOD_INFO_from_json.py +msgid "Removes action highlight graphics from the game." msgstr "" -#. ~ Description for (DP_RP) Xotto Indicators +#: lang/json/MOD_INFO_from_json.py +msgid "[DP_MOD] Hide STATUS" +msgstr "" + +#. ~ Description for [DP_MOD] Hide STATUS +#: lang/json/MOD_INFO_from_json.py +msgid "Hides STATUS graphics above character head." +msgstr "" + +#: lang/json/MOD_INFO_from_json.py +msgid "[DP_MOD] Alternative Floor Tiles" +msgstr "" + +#. ~ Description for [DP_MOD] Alternative Floor Tiles +#: lang/json/MOD_INFO_from_json.py +msgid "Brings previous wooden floor tiles back!" +msgstr "" + +#: lang/json/MOD_INFO_from_json.py +msgid "[DP_MOD] Indicators: Xotto" +msgstr "" + +#. ~ Description for [DP_MOD] Indicators: Xotto #: lang/json/MOD_INFO_from_json.py msgid "Changes interface indicators to Xotto version." msgstr "" @@ -43294,6 +44004,15 @@ msgid "" "issues." msgstr "" +#: lang/json/MOD_INFO_from_json.py +msgid "Bionic Slots" +msgstr "" + +#. ~ Description for Bionic Slots +#: lang/json/MOD_INFO_from_json.py +msgid "Enables the bionic slots system." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "Dark Days Ahead" msgstr "" @@ -44943,6 +45662,20 @@ msgid "" "twisted into an expression of pure rage." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "zombeaver" +msgstr "" + +#. ~ Description for zombeaver +#: lang/json/MONSTER_from_json.py +msgid "" +"This wall-eyed beast has a large wound on its side, and ribs with some flesh " +"on them are seen through it. The most prominent feature of this abomination " +"is large incisors in its ominously open mouth, strange black goo is oozing " +"out of it. Seems like it isn't interested in trees anymore and is looking " +"for some warm fresh to feed." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "antlered horror" msgstr "" @@ -48013,8 +48746,8 @@ msgstr "" msgid "guardin gnome" msgstr "" -#. ~ Description for guardin gnome #. ~ Description for garden gnome +#. ~ Description for guardin gnome #: lang/json/MONSTER_from_json.py lang/json/furniture_from_json.py msgid "A normal and completely harmless garden gnome." msgstr "" @@ -48932,20 +49665,6 @@ msgid_plural "base toolmods" msgstr[0] "" msgstr[1] "" -#: lang/json/TOOLMOD_from_json.py -msgid "atomic battery mod" -msgid_plural "atomic battery mods" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for atomic battery mod -#: lang/json/TOOLMOD_from_json.py -msgid "" -"This plutonium cell has been adapted to fit conventional battery " -"connections. You can attach it to any battery-operated equipment, " -"converting it to use power off the plutonium cell instead." -msgstr "" - #: lang/json/TOOLMOD_from_json.py msgid "UPS conversion mod" msgid_plural "UPS conversion mods" @@ -51295,8 +52014,9 @@ msgstr[1] "" #. ~ Use action menu_text for Louisville Slaughterer. #. ~ Use action menu_text for candle. +#. ~ Use action menu_text for hobo stove. #: lang/json/TOOL_from_json.py -#: src/veh_interact.cpp +#: lang/json/TOOL_from_json.py src/veh_interact.cpp msgid "Light" msgstr "" @@ -54142,19 +54862,6 @@ msgid "" "burning." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "butcher knife" -msgid_plural "butcher knives" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for butcher knife -#: lang/json/TOOL_from_json.py -msgid "" -"This is a sharp, heavy knife. It makes a good melee weapon, and is an ideal " -"item for butchering corpses." -msgstr "" - #: lang/json/TOOL_from_json.py msgid "combat knife" msgid_plural "combat knives" @@ -54210,19 +54917,6 @@ msgid "" "collectors due to its fearsome appearance." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "steak knife" -msgid_plural "steak knives" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for steak knife -#: lang/json/TOOL_from_json.py -msgid "" -"This is a sharp knife, designed for cutting meat. It makes a poor melee " -"weapon, but is decent at butchering corpses." -msgstr "" - #: lang/json/TOOL_from_json.py msgid "Swiss Army knife" msgid_plural "Swiss Army knives" @@ -54767,6 +55461,17 @@ msgid "" "'mess' you may have made." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "scrub brush" +msgid_plural "scrub brushs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for scrub brush +#: lang/json/TOOL_from_json.py +msgid "This is a simple scrub brush." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "mortar and pestle" msgid_plural "sets of mortar and pestle" @@ -57113,6 +57818,54 @@ msgid "" "a catalyst for some chemical reactions." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "hobo stove" +msgid_plural "hobo stoves" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for hobo stove. +#: lang/json/TOOL_from_json.py +msgid "The hobo stove is lit." +msgstr "" + +#. ~ Use action need_fire_msg for hobo stove. +#: lang/json/TOOL_from_json.py src/iuse.cpp +#: src/iuse.cpp src/iuse_actor.cpp +msgid "You need a source of fire!" +msgstr "" + +#. ~ Description for hobo stove +#. ~ Description for hobo stove (lit) +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small improvised wood stove, made from a metal can or similar " +"container of the right size. Useful for defrosting and reheating food, uses " +"simple tinder." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "hobo stove (lit)" +msgid_plural "hobo stoves (lit)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action menu_text for hobo stove (lit). +#: lang/json/TOOL_from_json.py +msgid "Heat up food" +msgstr "" + +#. ~ Use action msg for hobo stove (lit). +#: lang/json/TOOL_from_json.py src/iuse.cpp +msgid "You heat up the food." +msgstr "" + +#. ~ Use action msg for hobo stove (lit). +#. ~ Use action msg for ember carrier (lit). +#: lang/json/TOOL_from_json.py +msgid "The ember is extinguished." +msgstr "" + #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "military black box" msgid_plural "military black boxes" @@ -57180,6 +57933,122 @@ msgid "" "and the way it shimmers makes you uneasy." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "generic kitchen knife" +msgid_plural "generic kitchen knifes" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/TOOL_from_json.py +msgid "butcher knife" +msgid_plural "butcher knives" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for butcher knife +#: lang/json/TOOL_from_json.py +msgid "" +"This is a sharp, heavy knife. It makes a good melee weapon, and is an ideal " +"item for butchering corpses." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "steak knife" +msgid_plural "steak knives" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for steak knife +#: lang/json/TOOL_from_json.py +msgid "" +"This is a sharp knife, designed for cutting meat. It makes a poor melee " +"weapon, but is decent at butchering corpses." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "paring knife" +msgid_plural "paring knives" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for paring knife +#: lang/json/TOOL_from_json.py +msgid "" +"This is a short-bladed knife with a sharp blade, made for fine controlled " +"cuts to vegetables without using a cutting board." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "chef knife" +msgid_plural "chef knives" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for chef knife +#: lang/json/TOOL_from_json.py +msgid "" +"This is a long-bladed kitchen knife. The blade is wider than the handle, " +"giving room for the wielder's knuckles, and it has a characteristic curve " +"for a fast rocking action for chopping vegetables. It makes a good melee " +"weapon, but the wide blade is unwieldy for butchering." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "carving knife" +msgid_plural "carving knives" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for carving knife +#: lang/json/TOOL_from_json.py +msgid "" +"This is a long-bladed kitchen knife with a thin, slightly curved blade for " +"deftly slicing meat either in flat sheets or around the bone. It would be a " +"decent melee weapon, and excellent for butchery." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "bread knife" +msgid_plural "bread knives" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for bread knife +#: lang/json/TOOL_from_json.py +msgid "" +"This knife has quite a long blade with a scalloped edge for cutting bread. " +"It's not that sharp, but its length and heft mean it could do a bit of " +"damage and cause some nasty tearing." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "vegetable cleaver" +msgid_plural "vegetable cleavers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for vegetable cleaver +#: lang/json/TOOL_from_json.py +msgid "" +"This is a menacing looking knife with a broad, square shaped blade, curved " +"for fast vegetable chopping. Its heft and sharpness would make it a decent " +"weapon as well, although not as good as a meat cleaver." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "meat cleaver" +msgid_plural "meat cleavers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for meat cleaver +#: lang/json/TOOL_from_json.py +msgid "" +"This is a menacing looking knife with a broad, square shaped blade. Its " +"heft and sharpness would make it a very effective melee weapon, and an " +"excellent butchering tool." +msgstr "" + #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "brazier" msgid_plural "braziers" @@ -57217,6 +58086,19 @@ msgid "" "for easy transportation and can be deployed as a furniture." msgstr "" +#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +msgid "metal smoking rack" +msgid_plural "metal smoking racks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for metal smoking rack +#: lang/json/TOOL_from_json.py +msgid "" +"A metal rack designed to smoke food for better preservation and taste. It " +"is folded for easy transportation and can be deployed as a furniture." +msgstr "" + #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "tourist table" msgid_plural "tourist tables" @@ -58566,32 +59448,6 @@ msgid "" "9mm ammo." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "hobo stove" -msgid_plural "hobo stoves" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for hobo stove -#. ~ Description for hobo stove (lit) -#: lang/json/TOOL_from_json.py -msgid "" -"This is a small improvised wood stove, made from a metal can or similar " -"container of the right size. Useful for cooking, uses simple tinder." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "hobo stove (lit)" -msgid_plural "hobo stoves (lit)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for hobo stove (lit). -#. ~ Use action msg for ember carrier (lit). -#: lang/json/TOOL_from_json.py -msgid "The ember is extinguished." -msgstr "" - #: lang/json/TOOL_from_json.py msgid "flint and steel" msgid_plural "sets of flint and steel" @@ -60459,10 +61315,22 @@ msgstr "" msgid "Stop communing with the trees?" msgstr "" +#: lang/json/activity_type_from_json.py +msgid "Stop consuming?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "Stop eating?" msgstr "" +#: lang/json/activity_type_from_json.py +msgid "Stop drinking?" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "Stop using drugs?" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid ".700 Nitro Express" msgstr "" @@ -61130,10 +61998,6 @@ msgid "" "you can see in the slighest." msgstr "" -#: lang/json/bionic_from_json.py -msgid "Internal Furnace" -msgstr "" - #: lang/json/bionic_from_json.py msgid "Integrated Dosimeter" msgstr "" @@ -61692,6 +62556,10 @@ msgid "" "artificial but effective sensation of fatigue." msgstr "" +#: lang/json/bionic_from_json.py +msgid "Internal Furnace" +msgstr "" + #. ~ Description for Solar Panels #: lang/json/bionic_from_json.py msgid "" @@ -66078,6 +66946,17 @@ msgid "" "Even if you have no gear, there is always a need for slaves and fresh meat." msgstr "" +#: lang/json/faction_from_json.py +msgid "God's Community" +msgstr "" + +#. ~ Description for God's Community +#: lang/json/faction_from_json.py +msgid "" +"A small group of churchgoers that formed a community in the woods. They " +"welcome anyone in their faction, but hate the unnatural." +msgstr "" + #: lang/json/faction_from_json.py msgid "Captives" msgstr "" @@ -67314,6 +68193,8 @@ msgid "smoking rack" msgstr "" #. ~ Description for smoking rack +#. ~ Description for metal smoking rack +#. ~ Description for active metal smoking rack #: lang/json/furniture_from_json.py msgid "" "A special rack designed to smoke food for better preservation and taste." @@ -67330,6 +68211,10 @@ msgid "" "is lit and smoking." msgstr "" +#: lang/json/furniture_from_json.py +msgid "active metal smoking rack" +msgstr "" + #: lang/json/furniture_from_json.py msgid "rock forge" msgstr "" @@ -68939,22 +69824,6 @@ msgid "" "stop fires or \"protesters\"." msgstr "" -#: lang/json/gun_from_json.py -msgid "chemical thrower" -msgid_plural "chemical throwers" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A bulky, self-made chemical sprayer with an internal conversion mechanism " -"that allows all sorts of chemicals to be dispersed to your surroundings." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "slosh." -msgstr "" - #: lang/json/gun_from_json.py msgid "base gun" msgid_plural "base guns" @@ -68967,6 +69836,10 @@ msgid_plural "base flamethrowers" msgstr[0] "" msgstr[1] "" +#: lang/json/gun_from_json.py +msgid "slosh." +msgstr "" + #: lang/json/gun_from_json.py msgid "base launcher" msgid_plural "base launchers" @@ -70330,7 +71203,7 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "" "After the success of their 9x19mm machine pistol, Leadworks LLC developed " -"the L39B-460 from their .460 Rowland semi-autos, intending them to be used " +"the L39B-45 from their .460 Rowland semi-autos, intending them to be used " "with .45ACP. Because it shares most of its parts with the L39-460, this " "variant retains the ability to fire fearsome .460 Rowland, though users are " "strongly advised not to do so during automatic fire. Comes with built in " @@ -71081,6 +71954,18 @@ msgid "" "about anything you put down the barrel, but it will degrade pretty quick." msgstr "" +#: lang/json/gun_from_json.py +msgid "makeshift chemical thrower" +msgid_plural "makeshift chemical throwers" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A bulky, self-made chemical sprayer with an internal conversion mechanism " +"that allows all sorts of chemicals to be dispersed to your surroundings." +msgstr "" + #: lang/json/gun_from_json.py msgid "flamethrower" msgid_plural "flamethrowers" @@ -76284,6 +77169,7 @@ msgid "Inject" msgstr "" #: lang/json/item_action_from_json.py +#: lang/json/item_action_from_json.py src/handle_action.cpp msgid "Drink" msgstr "" @@ -78081,6 +78967,10 @@ msgstr "" msgid "Take Off Worn Item" msgstr "" +#: lang/json/keybinding_from_json.py +msgid "Consume Item Menu" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Wield" msgstr "" @@ -84237,6 +85127,14 @@ msgstr "" msgid "Communed with the trees" msgstr "" +#: lang/json/morale_type_from_json.py +msgid "Accomplishment" +msgstr "" + +#: lang/json/morale_type_from_json.py src/debug_menu.cpp +msgid "Failure" +msgstr "" + #: lang/json/morale_type_from_json.py msgid "Debug Morale" msgstr "" @@ -92405,6 +93303,10 @@ msgstr "" msgid "campground" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "campground roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "desolate barn" msgstr "" @@ -92784,6 +93686,10 @@ msgstr "" msgid "furniture store" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "furniture store roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "music store" msgstr "" @@ -93534,6 +94440,14 @@ msgstr "" msgid "Vault - Gym" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "church roof" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "church steeple" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "cathedral" msgstr "" @@ -93578,6 +94492,10 @@ msgstr "" msgid "fire station" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "homeless shelter" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "silo" msgstr "" @@ -93590,6 +94508,10 @@ msgstr "" msgid "pool" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "pool roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "football field" msgstr "" @@ -93926,6 +94848,14 @@ msgstr "" msgid "waiting area roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "bus station" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "bus station roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "sewage treatment" msgstr "" @@ -95781,10 +96711,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" -msgid "Broken Cyborg" +msgid "Prototype Cyborg" msgstr "" -#. ~ Profession (male Broken Cyborg) description +#. ~ Profession (male Prototype Cyborg) description #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" @@ -95795,10 +96725,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" -msgid "Broken Cyborg" +msgid "Prototype Cyborg" msgstr "" -#. ~ Profession (female Broken Cyborg) description +#. ~ Profession (female Prototype Cyborg) description #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" @@ -98057,6 +98987,38 @@ msgid "" "augmentations, you can perform precise surgery with little assistance." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Urban Samurai" +msgstr "" + +#. ~ Profession (male Urban Samurai) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You were always an inexplicable sight in town, always with the funny hair, " +"always wearing what appeared to be some kind of Japanese bathrobe. Some " +"claimed you were a visiting Shinto god. Little of this concerns you, but " +"last week the grocery service stopped coming and now the TV no longer turns " +"on. This displeases you." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Urban Samurai" +msgstr "" + +#. ~ Profession (female Urban Samurai) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You were always an inexplicable sight in town, always with the funny hair, " +"always wearing what appeared to be some kind of Japanese bathrobe. Some " +"claimed you were a visiting Shinto god. Little of this concerns you, but " +"last week the grocery service stopped coming and now the TV no longer turns " +"on. This displeases you." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Debugger" @@ -102470,524 +103432,6 @@ msgid "" "its side." msgstr "" -#: lang/json/snippet_from_json.py -msgid "" -"General Carlsberg wanted us to figure out what's going on with the bot AI. " -"Apparently the fat-cat defense contractors' toy tank has ranging issues or " -"something: 31-34 meters and it's apparently impotent. The Director sent 'em " -"back with a note that we're scientists, not firmware devs." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Our chemical department has made great strides in the production of a " -"concentrated mutagen, derived from samples of PE012." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Our chemical department has perfected an untargeted stem cell treatment. " -"Consumption of the treatment will reverse the effects of mutation, and may " -"even cure congenital defects. This substance has been denoted PE018." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Both PE012 and PE018 show great stability. A subject was exposed to both " -"substances, alternating between the mutagen and the purifier. Ultimately, " -"the subject returned to baseline state with no apparent side effects." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Dr. Hofstadter has manufactured an improved version of PE018 by combining " -"with PE012 outside the subject, then administering the mixture through a " -"topical injection to a specific area of mutation. This has been denoted " -"PE019. Other labs have so far been unable to reproduce the process." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Rumors of Dr. Hofstadter and her laboratory staff whispering to PE019 " -"samples should be suppressed as malicious gossip. The jealousy of rival " -"teams cannot be allowed to degrade morale." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -":.||||ERROR||With XE037 having breached confinement, Dr. Maiar recommends " -"that we prepare for the inevitable. PE050 can be quickly and cheaply " -"reconfigured for |||||ERROR: FILE CORRUPT|||||" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Dr. Maiar has been terminated for engaging in unethical research on human " -"subjects. His notes are being destroyed and all personnel under him have " -"been reassigned. Further discussion of or attempts to carry on his work " -"will be grounds for immediate termination." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"|||ERROR: UNREFERENCED MEMORY 0Ex670c9e1f5, REROUTING: CENSORSHIP IS A " -"BREAKDOWN, WE ROUTE AROUND IT. THE WORD IS ALREADY OUT. NOBODY DROPS MAIAR " -"INTO LAVA.||||||" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Given the current population projections, PE065 deployment is no longer " -"feasible. We simply haven't the stock. Remaining chemical and " -"psychopharmacological department assets are being assigned to Dr. Sattler's " -"PE070 project." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Dr. Maiar's success with intravenous mutagenic administration has been " -"adopted facility-wide; insofar as any of our work can ever be 'published', " -"he and his team hit the jackpot. IV administration is quicker and easier, " -"and in some cases is reportedly more efficient, than the oral techniques we " -"have been using." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Recent fieldwork and extraction efforts have resulted in a series of " -"mutagens tailored to focus the mutation process into particular subtypes. " -"These have been designated PE025 through 037. Though significantly more " -"resource- and time-intensive to produce, they promise a bold new transhuman " -"future. Several research teams are already investigating possible " -"applications." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"The chemical department has come through with a stable mutagen cocktail. " -"PE050 shows promise as an all-around genetic enhancement, with the worst " -"side effect being digestive upset. The lack of macro-scale physical changes " -"makes it ideal for both military and civilian applications." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Dr. Dionne's team has come up with an ambitious mutagenic cocktail, dubbed " -"PE065. Though its effects are wildly polymorphic and unstable, to say the " -"least, he suggests that several such mutants could effectively check the " -"spread of reanimated XE037 infectees. We are looking into implementation " -"methodology." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"We have made a fascinating discovery; by creating a miniature portal with " -"low stability and high power, one can transpose into the 4th dimension and " -"return immediately, but shifted by several meters. Our subjects oscillated " -"so quickly that none were even aware that they had visited lower planes." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"The research team headed by Dr. Isha has produced a concentrated form of " -"mutagen that shows promising results for the treatment of many forms of " -"disease. Testing reveals that it inhibits the body's pain responses while " -"bolstering the immune system and natural regenerative capabilities, though a " -"few troubling behavioral side effects have been reported." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Our research on teleportation has ground to a halt. For some reason, the " -"creation of a long-range transportation device eludes us, and one can " -"transfer no further than 30 meters." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"I don't know how it happened, but a janitor managed to activate the portal " -"while cleaning the lab, shifting in an assortment of prehistoric fauna. " -"Security was called in immediately but was unable to save the janitor from " -"being torn apart. By the time the confusion settled, all the fauna had been " -"terminated." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Tests on the prehistoric fauna show extremely close genetic relationships " -"with extant and extinct terranean animals. It might be that the portal had " -"performed a transposition in time, unfortunately the portal device was " -"destroyed when security put down the fauna." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"An incident occurred in the teleportation lab, wherein a subject managed to " -"teleport into another subject. The latter was completely destroyed from the " -"inside out, while the former sustained little damage. I would like to " -"explore the phenomenon further, but subjects are expensive." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Test subjects in the teleportation department are showing alarming " -"symptoms. It seems prolonged rapid transposition along the 4th dimension " -"weakens the forces holding one on this plane." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Catastrophe struck in our teleportation department yesterday. It seems that " -"our test subjects are so detached from this plane that they create " -"occasional tunnels along the 4th dimension, allowing life forms to transfer " -"to this plane. All subjects with prolonged exposure have been terminated." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Our lifeform extraction program continues to produce samples of specimen " -"XE037. It seems to be a kind of living, semi-sentient primordial ooze, and " -"is the basis of much of the life we have found." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Specimen XE037, jokingly referred to as \"the blob\", has been observed " -"entering a kind of dormant state, forming a depression in the floor. " -"Hendelson stepped into one of these pits yesterday, and was immediately " -"coated and attacked." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"XE037 shows promise as a catalyst for both cloning and treatments that mimic " -"stem cells. This is further evidence supporting Hendelson's theory of a " -"near universal symbiotic relationship involving XE037." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Several of the more advanced specimens we have retrieved show stunning " -"similarity to XE037. XE142 and XE157 in particular show the same amorphous, " -"slime-like structure as XE037, suggesting a close genetic relationship." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Today we tested weaponry against XE142 and XE157, two amorphous subprime " -"samples. Their form proved to be nearly invulnerable to projectile based " -"weaponry, but they were susceptible to directed energy weapons and " -"flagration." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Our cloning department has failed to produce results. In vats containing " -"stem cell treatments, XE037, and control vats, the subjects simple " -"disintegrated. This suggests that XE037, while compatible with subprime " -"lifeforms, shows only destructive effects on prime plane lifeforms." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"The vivisection program has shown mixed results, revealing an incredible " -"degree of variation in subplane lifeforms. Certain specimens have an " -"internal structure that is amazingly similar to that of mammals, while " -"others seem to have no internal structure at all." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Our security department has identified several key flaws. Though our " -"surface entrance is quite secure, there are several possible points of entry " -"below the surface, particularly in the sewage systems." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Today we applied a very small sample of XE037, suspended in water, to " -"subject TP92, prior to necessary termination. During the postmortem " -"examination, the subject went through a revivification progress, but " -"displayed next to no human intelligence." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Mendelson shows a dismaying lack of organization and security " -"consciousness. Containment of all samples of XE037 is of critical " -"importance, as shown by contamination experiments." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Mendelson has been terminated following an incident with XE037. A " -"substantial mobile sample departed his lab and encountered our security " -"forces. Before the sample was destroyed, it managed to kill two men. " -"Alarmingly, their corpses displayed mobility and extreme aggression." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"We have created a new department to investigate the effects of XE037 on the " -"human body, specifically to examine the revivification effect observed on " -"two prior occasions. Sadly, our human subject pool is dwindling due to the " -"short lifespan of subjects in this program. More will be acquired soon." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Testing XE037 on non-human mammal subjects does not appear to display the " -"same revivifying effect, oddly enough. Acquiring non-human subjects, sadly, " -"is a long and costly process, and research into this area is lacking." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"After our curious results with testing XE037 on non-human mammals, we " -"decided to introduce the substance to some of the insects which have found " -"their way into the lab. Horrifyingly, XE037 caused near-instant mutation " -"and gigantism in the insects, and security intervention was required." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Earlier conjecture that revivification occurred only in humans and insects " -"was premature. Exposure introduces a persistent, low level infection in all " -"mammal subjects, but quickly enters a form of stasis and seems to go dormant." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"The primary factor in determining revivification of mammalian subjects seems " -"to be the amount of XE037 within the body at time of expiration. Smaller " -"mammals such as lab rats do not obtain this critical mass of XE037 before " -"going dormant. Larger canine subjects, however, do." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"I swear they are talking to me. No one believes me. No one understands. " -"They whisper to me, at night, in the dark. Please, please, make them stop." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Program S37ZBE, investigation of XE037 on inert human bodies, is making " -"great strides. Recently we found that XE037 has no effect when introduced " -"to a deceased body; revivification only occurs when the subject is exposed " -"to XE037 prior to expiration." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Attempts to surpass the XE037 mammalian stasis limit have had some success. " -"Direct subcutaneous injection of XE037 quickly spreads through the body, and " -"while it immediately enters stasis after equalizing, it remains in the body." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"There has been an incident in Lab 24, 2 casualties reported, one lethal. A " -"rat involved in the stasis breaking project was hooked to a monitoring " -"machine and left over night. Upon opening the cage, Simon Bellevue was " -"electrocuted, and another researcher at the opposite end of the lab " -"sustained severe current burns, despite never approaching the cage." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"A post-mortem on the rat involved in the electrocution incident has revealed " -"several changes to its internal anatomy centered around its connection with " -"the monitoring device, and large buildups of XE037 were detected around the " -"connection point." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"There is a belief several other rat subjects experienced changes overnight " -"as well. This hypothesis was informed when an inventory check after the " -"incident found almost twenty rats had gone missing from their cages " -"overnight." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Exposure of large quantities of XE037 to various types of radiation have " -"shown promising results, stimulating activity and forming interesting " -"structural changes in the subject being tested. Exposure to radiation on " -"living subjects scheduled." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Exposure to radiation of test subject T3D indicates stimulation of internal " -"XE037 deposits and a temporary lifting of the mammalian stasis condition." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"As in the tests of isolated XE037 samples, prolonged radiation exposure of " -"T3D has resulted in significant structural changes. These do not appear to " -"be random. T3D appears to be in immense pain as a result of these changes, " -"but the lack of an oral opening has rendered him unable to vocalize." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Subject T3D has succumbed to radiation poisoning, but not before undergoing " -"several more physiological changes the lab boys are referring to as " -"\"mutations\". They do not appear to be truly random, and may be an attempt " -"by XE037 to adapt its host to an unknown stimulus." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Post-mortem revivification of subject T3D occurred as expected, followed by " -"an immediate autopsy. The internal changes were significant, with large " -"parts of the subjects internal anatomy replaced with \"organs\" of XE037 " -"with unknown properties, primarily those known to succumb earlier to the " -"effects of radiation poisoning." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Samples of XE037 from subject T3D remains extremely active. Further " -"experimentation on induced mutation in infected individuals shows " -"significant potential. Samples of the enhanced XE037, labeled PE012, have " -"been sent to several researchers for further study." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"S37ZBE, the special investigation into the effects of XE037 on inert human " -"bodies, has made terrific discoveries. It seems that it occasionally " -"displays a mutagenic property which manifests itself after termination of " -"the subject, resulting in a striking variety in postmortem morphology." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Incidence of post-mortem mutation seems to depend on several factors - " -"leading candidates include type and amount of damage sustained leading to " -"expiration, embedded foreign bodies at time of revivification, proximity to " -"other revived individuals, and the body mass of the subject." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Time also appears to play a large role in post-mortem revivification, as " -"does sustained trauma insufficient to permanently disable the subject. " -"Sufficient amounts of trauma in short periods of time lead to deactivation " -"of XE037, but smaller amounts over several days cause it to expand." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"S37ZBE may be put on indefinite hold shortly. Postmortem morphological " -"changes have reached extreme levels; this morning one subject nearly doubled " -"in size, acquiring enough strength to reduce a concrete wall to rubble. It " -"required a 6 man team, heavily armed, to re-terminate the subject." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Jakobson insists that S37ZBE must continue, despite the extreme security and " -"safety risks. Nearly half of our security forces have been redirected to " -"the S37ZBE project, simply to deal with the occasional escape of a subject." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Jakobson was killed today by one of S37ZBE's subjects; ironic considering " -"how hard he fought to keep the project active. Alarmingly, his corpse " -"revivified immediately. This suggests that XE037 may have contaminated the " -"lab at large." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Termination of a subject which was never a part of S37ZBE has confirmed my " -"fears. XE037 has contaminated most, if not all of the laboratory, most " -"likely via the water supply. Research has started immediately into a " -"process to destroy XE037 within the human body." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Despite a wide variety of treatments, we have been completely unsuccessful " -"in removing XE037 from human subjects. Every individual displayed " -"revivification post termination. Interestingly, XE037 seems to be " -"completely inert prior to termination." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"We have finally found success in S37BEP, our emergency investigation into " -"the destruction of XE037 in living subjects. 8 of 10 of the subjects showed " -"no revivification, despite confirmed dosages of XE037." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"PE062, our \"cure\" for XE037 contamination, has neared perfection. Sadly, " -"the production of PE062 is a costly and time-consuming process. What is " -"more, the substance shows no effect on postmortem subjects whatsoever; a " -"substance which renders XE037 inert after it has activated would be " -"immensely useful in the case of an outbreak." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"An alarming discovery has been made. A colony of XE037 has formed nearly a " -"half mile from the laboratory. It is unclear how it escaped; it is quite " -"possible that it is in the ground water now." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"An emergency meeting was held today to discuss the possible implications of " -"widespread XE037 contamination. It was agreed that neutralization must be " -"instated immediately to prevent a catastrophic event." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"It has begun. The XE037 contamination has spread for miles, and those who " -"have since deceased have revivified. It is my fear that extremely large " -"populations will be decimated by this pandemic. We must find a way to " -"remove XE037 from revivified bodies." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"We have even more distressing news than the widespread XE037 contamination, " -"there are reports of the XE037 mutating into various new variants. See data " -"files on XE037a - XE037f. Research on the effects of these variants is " -"ongoing. We do know that XE037d shows signs of PE062 immunity, and XE037b " -"can revive various breeds of canines. However, revival is not as guaranteed " -"as standard XE037 humanoid infection. Canine body size seems to influence " -"the chances. See experiment tXE037b_c." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"Today we found our solution, quite by accident. It was found that XE037 is " -"completely removed from a revivified body following a series of extremely-" -"high energy 4th dimensional transpositions. Unfortunately, this invariably " -"allows subplane life forms to pass into the prime plan. The cure is worse " -"than the disease." -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"XE037 revivification has reached critical levels, which are rapidly " -"overwhelming the available military and regional police assets' ability to " -"stop. Every team in the field has encountered hostile specimens, and " -"several are no longer responding to communications. Dr. Savage has proposed " -"a strategic redeployment to the underground complex known as the VAULT, and " -"continuing production of PE062 there." -msgstr "" - #: lang/json/snippet_from_json.py msgid "popular " msgstr "" @@ -106144,6 +106588,535 @@ msgid "" "universe." msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"General Carlsberg wanted us to figure out what's going on with the bot AI. " +"Apparently the fat-cat defense contractors' toy tank has ranging issues or " +"something: 31-34 meters and it's apparently impotent. The Director sent 'em " +"back with a note that we're scientists, not firmware devs." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Our chemical department has made great strides in the production of a " +"concentrated mutagen, derived from samples of PE012." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Our chemical department has perfected an untargeted stem cell treatment. " +"Consumption of the treatment will reverse the effects of mutation, and may " +"even cure congenital defects. This substance has been denoted PE018." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Both PE012 and PE018 show great stability. A subject was exposed to both " +"substances, alternating between the mutagen and the purifier. Ultimately, " +"the subject returned to baseline state with no apparent side effects." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Dr. Hofstadter has manufactured an improved version of PE018 by combining " +"with PE012 outside the subject, then administering the mixture through a " +"topical injection to a specific area of mutation. This has been denoted " +"PE019. Other labs have so far been unable to reproduce the process." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Rumors of Dr. Hofstadter and her laboratory staff whispering to PE019 " +"samples should be suppressed as malicious gossip. The jealousy of rival " +"teams cannot be allowed to degrade morale." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +":.||||ERROR||With XE037 having breached confinement, Dr. Maiar recommends " +"that we prepare for the inevitable. PE050 can be quickly and cheaply " +"reconfigured for |||||ERROR: FILE CORRUPT|||||" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Dr. Maiar has been terminated for engaging in unethical research on human " +"subjects. His notes are being destroyed and all personnel under him have " +"been reassigned. Further discussion of or attempts to carry on his work " +"will be grounds for immediate termination." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"|||ERROR: UNREFERENCED MEMORY 0Ex670c9e1f5, REROUTING: CENSORSHIP IS A " +"BREAKDOWN, WE ROUTE AROUND IT. THE WORD IS ALREADY OUT. NOBODY DROPS MAIAR " +"INTO LAVA.||||||" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Given the current population projections, PE065 deployment is no longer " +"feasible. We simply haven't the stock. Remaining chemical and " +"psychopharmacological department assets are being assigned to Dr. Sattler's " +"PE070 project." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Dr. Maiar's success with intravenous mutagenic administration has been " +"adopted facility-wide; insofar as any of our work can ever be 'published', " +"he and his team hit the jackpot. IV administration is quicker and easier, " +"and in some cases is reportedly more efficient, than the oral techniques we " +"have been using." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Recent fieldwork and extraction efforts have resulted in a series of " +"mutagens tailored to focus the mutation process into particular subtypes. " +"These have been designated PE025 through 037. Though significantly more " +"resource- and time-intensive to produce, they promise a bold new transhuman " +"future. Several research teams are already investigating possible " +"applications." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"The chemical department has come through with a stable mutagen cocktail. " +"PE050 shows promise as an all-around genetic enhancement, with the worst " +"side effect being digestive upset. The lack of macro-scale physical changes " +"makes it ideal for both military and civilian applications." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Dr. Dionne's team has come up with an ambitious mutagenic cocktail, dubbed " +"PE065. Though its effects are wildly polymorphic and unstable, to say the " +"least, he suggests that several such mutants could effectively check the " +"spread of reanimated XE037 infectees. We are looking into implementation " +"methodology." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"We have made a fascinating discovery; by creating a miniature portal with " +"low stability and high power, one can transpose into the 4th dimension and " +"return immediately, but shifted by several meters. Our subjects oscillated " +"so quickly that none were even aware that they had visited lower planes." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"The research team headed by Dr. Isha has produced a concentrated form of " +"mutagen that shows promising results for the treatment of many forms of " +"disease. Testing reveals that it inhibits the body's pain responses while " +"bolstering the immune system and natural regenerative capabilities, though a " +"few troubling behavioral side effects have been reported." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Our research on teleportation has ground to a halt. For some reason, the " +"creation of a long-range transportation device eludes us, and one can " +"transfer no further than 30 meters." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Dr. Heisenstein told us today that director of teleportation department put " +"our competitors - he couldn't exactly remember their names, something like " +"\"Hole Science\" and something related to black mountains - as an example. " +"He said we have reliable information that they both have working " +"teleportation devices, and that they are much more advanced than ours. We " +"should continue our teleportation research no matter the cost if we don't " +"want to be fired." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I don't know how it happened, but a janitor managed to activate the portal " +"while cleaning the lab, shifting in an assortment of prehistoric fauna. " +"Security was called in immediately but was unable to save the janitor from " +"being torn apart. By the time the confusion settled, all the fauna had been " +"terminated." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Tests on the prehistoric fauna show extremely close genetic relationships " +"with extant and extinct terranean animals. It might be that the portal had " +"performed a transposition in time, unfortunately the portal device was " +"destroyed when security put down the fauna." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"An incident occurred in the teleportation lab, wherein a subject managed to " +"teleport into another subject. The latter was completely destroyed from the " +"inside out, while the former sustained little damage. I would like to " +"explore the phenomenon further, but subjects are expensive." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Test subjects in the teleportation department are showing alarming " +"symptoms. It seems prolonged rapid transposition along the 4th dimension " +"weakens the forces holding one on this plane." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Catastrophe struck in our teleportation department yesterday. It seems that " +"our test subjects are so detached from this plane that they create " +"occasional tunnels along the 4th dimension, allowing life forms to transfer " +"to this plane. All subjects with prolonged exposure have been terminated." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Our lifeform extraction program continues to produce samples of specimen " +"XE037. It seems to be a kind of living, semi-sentient primordial ooze, and " +"is the basis of much of the life we have found." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Specimen XE037, jokingly referred to as \"the blob\", has been observed " +"entering a kind of dormant state, forming a depression in the floor. " +"Hendelson stepped into one of these pits yesterday, and was immediately " +"coated and attacked." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"XE037 shows promise as a catalyst for both cloning and treatments that mimic " +"stem cells. This is further evidence supporting Hendelson's theory of a " +"near universal symbiotic relationship involving XE037." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Several of the more advanced specimens we have retrieved show stunning " +"similarity to XE037. XE142 and XE157 in particular show the same amorphous, " +"slime-like structure as XE037, suggesting a close genetic relationship." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Today we tested weaponry against XE142 and XE157, two amorphous subprime " +"samples. Their form proved to be nearly invulnerable to projectile based " +"weaponry, but they were susceptible to directed energy weapons and " +"flagration." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Our cloning department has failed to produce results. In vats containing " +"stem cell treatments, XE037, and control vats, the subjects simple " +"disintegrated. This suggests that XE037, while compatible with subprime " +"lifeforms, shows only destructive effects on prime plane lifeforms." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"The vivisection program has shown mixed results, revealing an incredible " +"degree of variation in subplane lifeforms. Certain specimens have an " +"internal structure that is amazingly similar to that of mammals, while " +"others seem to have no internal structure at all." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Our security department has identified several key flaws. Though our " +"surface entrance is quite secure, there are several possible points of entry " +"below the surface, particularly in the sewage systems." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Today we applied a very small sample of XE037, suspended in water, to " +"subject TP92, prior to necessary termination. During the postmortem " +"examination, the subject went through a revivification progress, but " +"displayed next to no human intelligence." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Mendelson shows a dismaying lack of organization and security " +"consciousness. Containment of all samples of XE037 is of critical " +"importance, as shown by contamination experiments." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Mendelson has been terminated following an incident with XE037. A " +"substantial mobile sample departed his lab and encountered our security " +"forces. Before the sample was destroyed, it managed to kill two men. " +"Alarmingly, their corpses displayed mobility and extreme aggression." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"We have created a new department to investigate the effects of XE037 on the " +"human body, specifically to examine the revivification effect observed on " +"two prior occasions. Sadly, our human subject pool is dwindling due to the " +"short lifespan of subjects in this program. More will be acquired soon." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Testing XE037 on non-human mammal subjects does not appear to display the " +"same revivifying effect, oddly enough. Acquiring non-human subjects, sadly, " +"is a long and costly process, and research into this area is lacking." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"After our curious results with testing XE037 on non-human mammals, we " +"decided to introduce the substance to some of the insects which have found " +"their way into the lab. Horrifyingly, XE037 caused near-instant mutation " +"and gigantism in the insects, and security intervention was required." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Earlier conjecture that revivification occurred only in humans and insects " +"was premature. Exposure introduces a persistent, low level infection in all " +"mammal subjects, but quickly enters a form of stasis and seems to go dormant." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"The primary factor in determining revivification of mammalian subjects seems " +"to be the amount of XE037 within the body at time of expiration. Smaller " +"mammals such as lab rats do not obtain this critical mass of XE037 before " +"going dormant. Larger canine subjects, however, do." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I swear they are talking to me. No one believes me. No one understands. " +"They whisper to me, at night, in the dark. Please, please, make them stop." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Program S37ZBE, investigation of XE037 on inert human bodies, is making " +"great strides. Recently we found that XE037 has no effect when introduced " +"to a deceased body; revivification only occurs when the subject is exposed " +"to XE037 prior to expiration." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Attempts to surpass the XE037 mammalian stasis limit have had some success. " +"Direct subcutaneous injection of XE037 quickly spreads through the body, and " +"while it immediately enters stasis after equalizing, it remains in the body." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"There has been an incident in Lab 24, 2 casualties reported, one lethal. A " +"rat involved in the stasis breaking project was hooked to a monitoring " +"machine and left over night. Upon opening the cage, Simon Bellevue was " +"electrocuted, and another researcher at the opposite end of the lab " +"sustained severe current burns, despite never approaching the cage." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"A post-mortem on the rat involved in the electrocution incident has revealed " +"several changes to its internal anatomy centered around its connection with " +"the monitoring device, and large buildups of XE037 were detected around the " +"connection point." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"There is a belief several other rat subjects experienced changes overnight " +"as well. This hypothesis was informed when an inventory check after the " +"incident found almost twenty rats had gone missing from their cages " +"overnight." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Exposure of large quantities of XE037 to various types of radiation have " +"shown promising results, stimulating activity and forming interesting " +"structural changes in the subject being tested. Exposure to radiation on " +"living subjects scheduled." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Exposure to radiation of test subject T3D indicates stimulation of internal " +"XE037 deposits and a temporary lifting of the mammalian stasis condition." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"As in the tests of isolated XE037 samples, prolonged radiation exposure of " +"T3D has resulted in significant structural changes. These do not appear to " +"be random. T3D appears to be in immense pain as a result of these changes, " +"but the lack of an oral opening has rendered him unable to vocalize." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Subject T3D has succumbed to radiation poisoning, but not before undergoing " +"several more physiological changes the lab boys are referring to as " +"\"mutations\". They do not appear to be truly random, and may be an attempt " +"by XE037 to adapt its host to an unknown stimulus." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Post-mortem revivification of subject T3D occurred as expected, followed by " +"an immediate autopsy. The internal changes were significant, with large " +"parts of the subjects internal anatomy replaced with \"organs\" of XE037 " +"with unknown properties, primarily those known to succumb earlier to the " +"effects of radiation poisoning." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Samples of XE037 from subject T3D remains extremely active. Further " +"experimentation on induced mutation in infected individuals shows " +"significant potential. Samples of the enhanced XE037, labeled PE012, have " +"been sent to several researchers for further study." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"S37ZBE, the special investigation into the effects of XE037 on inert human " +"bodies, has made terrific discoveries. It seems that it occasionally " +"displays a mutagenic property which manifests itself after termination of " +"the subject, resulting in a striking variety in postmortem morphology." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Incidence of post-mortem mutation seems to depend on several factors - " +"leading candidates include type and amount of damage sustained leading to " +"expiration, embedded foreign bodies at time of revivification, proximity to " +"other revived individuals, and the body mass of the subject." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Time also appears to play a large role in post-mortem revivification, as " +"does sustained trauma insufficient to permanently disable the subject. " +"Sufficient amounts of trauma in short periods of time lead to deactivation " +"of XE037, but smaller amounts over several days cause it to expand." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"S37ZBE may be put on indefinite hold shortly. Postmortem morphological " +"changes have reached extreme levels; this morning one subject nearly doubled " +"in size, acquiring enough strength to reduce a concrete wall to rubble. It " +"required a 6 man team, heavily armed, to re-terminate the subject." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Jakobson insists that S37ZBE must continue, despite the extreme security and " +"safety risks. Nearly half of our security forces have been redirected to " +"the S37ZBE project, simply to deal with the occasional escape of a subject." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Jakobson was killed today by one of S37ZBE's subjects; ironic considering " +"how hard he fought to keep the project active. Alarmingly, his corpse " +"revivified immediately. This suggests that XE037 may have contaminated the " +"lab at large." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Termination of a subject which was never a part of S37ZBE has confirmed my " +"fears. XE037 has contaminated most, if not all of the laboratory, most " +"likely via the water supply. Research has started immediately into a " +"process to destroy XE037 within the human body." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Despite a wide variety of treatments, we have been completely unsuccessful " +"in removing XE037 from human subjects. Every individual displayed " +"revivification post termination. Interestingly, XE037 seems to be " +"completely inert prior to termination." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"We have finally found success in S37BEP, our emergency investigation into " +"the destruction of XE037 in living subjects. 8 of 10 of the subjects showed " +"no revivification, despite confirmed dosages of XE037." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"PE062, our \"cure\" for XE037 contamination, has neared perfection. Sadly, " +"the production of PE062 is a costly and time-consuming process. What is " +"more, the substance shows no effect on postmortem subjects whatsoever; a " +"substance which renders XE037 inert after it has activated would be " +"immensely useful in the case of an outbreak." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"An alarming discovery has been made. A colony of XE037 has formed nearly a " +"half mile from the laboratory. It is unclear how it escaped; it is quite " +"possible that it is in the ground water now." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"An emergency meeting was held today to discuss the possible implications of " +"widespread XE037 contamination. It was agreed that neutralization must be " +"instated immediately to prevent a catastrophic event." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"It has begun. The XE037 contamination has spread for miles, and those who " +"have since deceased have revivified. It is my fear that extremely large " +"populations will be decimated by this pandemic. We must find a way to " +"remove XE037 from revivified bodies." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"We have even more distressing news than the widespread XE037 contamination, " +"there are reports of the XE037 mutating into various new variants. See data " +"files on XE037a - XE037f. Research on the effects of these variants is " +"ongoing. We do know that XE037d shows signs of PE062 immunity, and XE037b " +"can revive various breeds of canines. However, revival is not as guaranteed " +"as standard XE037 humanoid infection. Canine body size seems to influence " +"the chances. See experiment tXE037b_c." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Today we found our solution, quite by accident. It was found that XE037 is " +"completely removed from a revivified body following a series of extremely-" +"high energy 4th dimensional transpositions. Unfortunately, this invariably " +"allows subplane life forms to pass into the prime plan. The cure is worse " +"than the disease." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"XE037 revivification has reached critical levels, which are rapidly " +"overwhelming the available military and regional police assets' ability to " +"stop. Every team in the field has encountered hostile specimens, and " +"several are no longer responding to communications. Dr. Savage has proposed " +"a strategic redeployment to the underground complex known as the VAULT, and " +"continuing production of PE062 there." +msgstr "" + #: lang/json/snippet_from_json.py msgid "This is a test of the sign snippet system" msgstr "" @@ -109572,6 +110545,22 @@ msgstr "" msgid "Fire bad! !" msgstr "" +#: lang/json/snippet_from_json.py +msgid "child" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "my child" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "dear" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "my dear" +msgstr "" + #: lang/json/snippet_from_json.py msgid "This is not the world I have chosen. They even took my CDs!.." msgstr "" @@ -125875,6 +126864,10 @@ msgstr "" msgid "Schoolbus" msgstr "" +#: lang/json/vehicle_from_json.py +msgid "Bus" +msgstr "" + #: lang/json/vehicle_from_json.py msgid "Security Van" msgstr "" @@ -126609,11 +127602,12 @@ msgid "" "part." msgstr "" -#. ~ Description for UPS-compatible recharging station +#. ~ Description for recharging station #: lang/json/vehicle_part_from_json.py msgid "" -"A recharger for UPS devices. When turned on, it charges any UPS devices in " -"the cargo space." +"A device for recharging batteries. When turned on, it charges any " +"rechargeable batteries (battery cells, lead-acid batteries, etc) placed " +"directly in the attached storage space." msgstr "" #: lang/json/vehicle_part_from_json.py @@ -127742,6 +128736,10 @@ msgstr "" msgid "hand paddles" msgstr "" +#: lang/json/vehicle_part_from_json.py +msgid "recharge station" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "folding extra light quarterpanel" msgstr "" @@ -132023,6 +133021,11 @@ msgstr "" msgid "The %s shatters!" msgstr "" +#: src/ballistics.cpp +#, c-format +msgid "The %s bursts!" +msgstr "" + #: src/ballistics.cpp #, c-format msgid "The %1$s embeds in %2$s!" @@ -136384,6 +137387,10 @@ msgstr "" msgid "Toggle NPC pathfinding on map" msgstr "" +#: src/debug_menu.cpp +msgid "Test weather" +msgstr "" + #: src/debug_menu.cpp msgid "Info..." msgstr "" @@ -136830,10 +137837,6 @@ msgstr "" msgid "Success" msgstr "" -#: src/debug_menu.cpp -msgid "Failure" -msgstr "" - #: src/debug_menu.cpp msgid "Bugged" msgstr "" @@ -137204,7 +138207,7 @@ msgstr "" msgid "Subspace" msgstr "" -#: src/defense.cpp +#: src/defense.cpp src/handle_action.cpp msgid "Food" msgstr "" @@ -137882,14 +138885,6 @@ msgstr "" msgid "[up/dn] select, [enter] accept, [q] abort" msgstr "" -#. ~ message when applying the map generator -#: src/editmap.cpp -#, c-format -msgid "" -"Changed 4 submaps\n" -"%s" -msgstr "" - #: src/editmap.cpp #, c-format msgid "Changed oter_id from '%s' (%s) to '%s' (%s)" @@ -140914,9 +141909,9 @@ msgstr "" msgid "Faction Camp" msgstr "" -#: src/game.cpp src/player_hardcoded_effects.cpp +#: src/game.cpp #, c-format -msgid "You see %s approaching!" +msgid "The %s is dangerously close!" msgstr "" #: src/game.cpp @@ -140975,7 +141970,7 @@ msgstr "" #: src/game.cpp msgctxt "action" -msgid "reload_item" +msgid "reload" msgstr "" #: src/game.cpp @@ -143352,6 +144347,30 @@ msgstr "" msgid "You have nothing to consume." msgstr "" +#: src/game_inventory.cpp +msgid "Consume food" +msgstr "" + +#: src/game_inventory.cpp +msgid "You have no food to consume." +msgstr "" + +#: src/game_inventory.cpp +msgid "Consume drink" +msgstr "" + +#: src/game_inventory.cpp +msgid "You have no drink to consume." +msgstr "" + +#: src/game_inventory.cpp +msgid "Consume medication" +msgstr "" + +#: src/game_inventory.cpp +msgid "You have no medication to consume." +msgstr "" + #: src/game_inventory.cpp msgid "ACTION" msgstr "" @@ -143410,11 +144429,11 @@ msgstr "" #: src/game_inventory.cpp #, c-format -msgid "%s to %d" +msgid "%s to %d (%d)" msgstr "" #: src/game_inventory.cpp -msgid "TRAINS" +msgid "TRAINS (CURRENT)" msgstr "" #: src/game_inventory.cpp @@ -144020,6 +145039,14 @@ msgstr "" msgid "Crouch" msgstr "" +#: src/handle_action.cpp +msgid "What do you want to consume?" +msgstr "" + +#: src/handle_action.cpp +msgid "Medication" +msgstr "" + #: src/handle_action.cpp msgid "Auto-move canceled" msgstr "" @@ -145934,6 +146961,14 @@ msgid "" "or vegetable or smoked meat for drying." msgstr "" +#: src/iexamine.cpp +msgid "You cannot disassemble this smoking rack while it is active!" +msgstr "" + +#: src/iexamine.cpp +msgid "Disassemble the smoking rack" +msgstr "" + #: src/iexamine.cpp msgid "Remove food from smoking rack" msgstr "" @@ -147138,7 +148173,12 @@ msgstr "" #: src/item.cpp #, c-format -msgid "Can bring your %s skill to " +msgid "Can bring your %s skill to ." +msgstr "" + +#: src/item.cpp +#, c-format +msgid "Your current %s skill is ." msgstr "" #: src/item.cpp @@ -147551,36 +148591,6 @@ msgstr "" msgid "You wield your %s." msgstr "" -#: src/item.cpp -msgctxt "damage adjective" -msgid "accurized " -msgstr "" - -#: src/item.cpp -msgctxt "damage adjective" -msgid "reinforced " -msgstr "" - -#: src/item.cpp -msgctxt "damage adjective" -msgid "bruised " -msgstr "" - -#: src/item.cpp -msgctxt "damage adjective" -msgid "damaged " -msgstr "" - -#: src/item.cpp -msgctxt "damage adjective" -msgid "mangled " -msgstr "" - -#: src/item.cpp -msgctxt "damage adjective" -msgid "pulped " -msgstr "" - #: src/item.cpp msgid "faulty " msgstr "" @@ -147792,6 +148802,40 @@ msgstr "" msgid ".." msgstr "" +#: src/item.cpp +msgctxt "damage adjective" +msgid "accurized " +msgstr "" + +#: src/item.cpp +msgctxt "damage adjective" +msgid "reinforced " +msgstr "" + +#: src/item.cpp +msgctxt "damage adjective" +msgid "bruised " +msgstr "" + +#: src/item.cpp +msgctxt "damage adjective" +msgid "damaged " +msgstr "" + +#: src/item.cpp +msgctxt "damage adjective" +msgid "mangled " +msgstr "" + +#: src/item.cpp +msgctxt "damage adjective" +msgid "pulped " +msgstr "" + +#: src/item.cpp +msgid "fully intact " +msgstr "" + #: src/item.cpp msgid "isn't a weapon" msgstr "" @@ -148784,7 +149828,7 @@ msgstr "" #: src/iuse.cpp #, c-format -msgid "You damage your %s trying to modify it!" +msgid "You damage your %s trying to modify it! ( %s-> %s)" msgstr "" #: src/iuse.cpp src/iuse_actor.cpp @@ -149532,10 +150576,6 @@ msgstr "" msgid "You've already released the handle, try throwing it instead." msgstr "" -#: src/iuse.cpp src/iuse_actor.cpp -msgid "You need a source of fire!" -msgstr "" - #: src/iuse.cpp msgid "You light the arrow!" msgstr "" @@ -150178,10 +151218,6 @@ msgstr "" msgid "You defrost and heat up the food." msgstr "" -#: src/iuse.cpp -msgid "You heat up the food." -msgstr "" - #: src/iuse.cpp msgid "There is no fire around, use your integrated toolset instead?" msgstr "" @@ -150374,12 +151410,12 @@ msgstr "" #: src/iuse.cpp src/iuse_actor.cpp #, c-format -msgid "You repair your %s!" +msgid "You repair your %s! ( %s-> %s)" msgstr "" #: src/iuse.cpp src/iuse_actor.cpp #, c-format -msgid "You repair your %s completely!" +msgid "You repair your %s completely! ( %s-> %s)" msgstr "" #: src/iuse.cpp @@ -152028,7 +153064,7 @@ msgstr "" #: src/iuse_actor.cpp #, c-format -msgid "You damage your %s!" +msgid "You damage your %s! ( %s-> %s)" msgstr "" #: src/iuse_actor.cpp @@ -165423,7 +166459,7 @@ msgstr "" #: src/player.cpp #, c-format -msgid "You need %s %d to understand the jargon!" +msgid "%s %d needed to understand. You have %d" msgstr "" #: src/player.cpp @@ -165445,7 +166481,7 @@ msgstr "" #: src/player.cpp #, c-format -msgid "%s needs %s %d to understand the jargon!" +msgid "%s %d needed to understand. %s has %d" msgstr "" #: src/player.cpp @@ -166737,6 +167773,11 @@ msgstr "" msgid "It's too bright to sleep." msgstr "" +#: src/player_hardcoded_effects.cpp +#, c-format +msgid "You see %s approaching!" +msgstr "" + #: src/player_hardcoded_effects.cpp msgid "You toss and turn trying to keep warm." msgstr "" @@ -168884,12 +169925,12 @@ msgstr "" #: src/veh_utils.cpp #, c-format -msgid "You repair the %1$s's %2$s." +msgid "You replace the %1$s's %2$s. (was %3$s)" msgstr "" #: src/veh_utils.cpp #, c-format -msgid "You replace the %1$s's %2$s." +msgid "You repair the %1$s's %2$s. (was %3$s)" msgstr "" #: src/vehicle.cpp @@ -169279,6 +170320,11 @@ msgstr "" msgid " is hurled from the %s's seat by the power of the impact!" msgstr "" +#: src/vehicle_move.cpp +#, c-format +msgid "The %s is hurled from %s's by the power of the impact!" +msgstr "" + #: src/vehicle_part.cpp #, c-format msgid "%2.1fL " diff --git a/lang/po/de.po b/lang/po/de.po index bd9a161322ce0..4454b9b65448d 100644 --- a/lang/po/de.po +++ b/lang/po/de.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-26 14:19+0800\n" +"POT-Creation-Date: 2019-05-03 13:47+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" "Last-Translator: Wuzzy , 2019\n" "Language-Team: German (https://www.transifex.com/cataclysm-dda-translators/teams/2217/de/)\n" @@ -40,10 +40,9 @@ msgstr[1] "Batterien" #. ~ Description for battery #: lang/json/AMMO_from_json.py msgid "" -"A set of universal batteries. Used to charge almost any electronic device." +"Some free-floating battery charge. This can be reloaded into rechargable " +"battery cells, but can never be unloaded." msgstr "" -"Eine Satz Universalbatterien. Sie werden zum Aufladen von so gut wie jedem " -"elektronischen Gerät benutzt." #: lang/json/AMMO_from_json.py msgid "aluminum foil" @@ -1012,23 +1011,17 @@ msgid "" "enemies. Stands a good chance of remaining intact once fired." msgstr "" -#: lang/json/AMMO_from_json.py -msgid "anesthetic kit" -msgstr "Narkose-Set" +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "anesthetic" +msgstr "" -#. ~ Description for anesthetic kit +#. ~ Description for anesthetic #: lang/json/AMMO_from_json.py msgid "" -"A kit for inducing anesthesia for surgery, containing specialized canisters " -"with a variety of powerful hypnotic, analgetic, and stimulative drugs. It's" -" intended for use in specialized medical equipment, and can't be " -"administered manually." +"A variety of powerful hypnotic, analgetic, and stimulative drugs. It's " +"intended for use in specialized medical equipment, and can't be administered" +" manually. You can reload an anesthetic kit with it." msgstr "" -"Ein Set, um für eine OP die Narkose einzuläuten. Es enthält speziell dafür " -"vorgesehene Behälter mit einer Reihe an starken hypnotischen, analgetischen " -"und reizenden Medikamenten. Es ist dafür vorgesehen, in einem " -"spezialisierten medizinischen Equipment benutzt zu werden und kann nicht " -"manuell verabreicht werden." #: lang/json/AMMO_from_json.py msgid "sulfur" @@ -1775,6 +1768,19 @@ msgstr "" "Erdölbasierter Treibstoff, der aus einem Nebenprodukt des " "Benzinherstellungsprozesses gemacht wurde." +#: lang/json/AMMO_from_json.py +msgid "biodiesel" +msgid_plural "biodiesel" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for biodiesel +#: lang/json/AMMO_from_json.py +msgid "" +"Vegetable oil- or animal fat-based diesel fuel consisting of long-chain " +"alkyl (methyl, ethyl, or propyl) esters." +msgstr "" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "gasoline" msgid_plural "gasoline" @@ -1987,6 +1993,39 @@ msgstr "" " Lichtgeschwindigkeit ohne Rückstoß zu liefern. Dieses Fusionspaket wurde " "aus Ersatzteilen manuell zusammengebaut." +#: lang/json/AMMO_from_json.py +msgid "throwing stick" +msgstr "" + +#. ~ Description for throwing stick +#: lang/json/AMMO_from_json.py +msgid "" +"A stick carved into a shape suitable for throwing at a target. Not a " +"boomerang, so don't expect it to return to your hand." +msgstr "" +"Ein Stock, der in eine besondere Form geschnitzt wurde, so dass er für das " +"Werfen auf ein Ziel geeignet ist. Kein Bumerang, also erwarte nicht, dass er" +" in deine Hand zurückkehrt." + +#: lang/json/AMMO_from_json.py +msgid "anesthetic kit" +msgstr "Narkose-Set" + +#. ~ Description for anesthetic kit +#. ~ Description for anesthesia kit +#: lang/json/AMMO_from_json.py lang/json/TOOL_from_json.py +msgid "" +"A kit for inducing anesthesia for surgery, containing specialized canisters " +"with a variety of powerful hypnotic, analgetic, and stimulative drugs. It's" +" intended for use in specialized medical equipment, and can't be " +"administered manually." +msgstr "" +"Ein Set, um für eine OP die Narkose einzuläuten. Es enthält speziell dafür " +"vorgesehene Behälter mit einer Reihe an starken hypnotischen, analgetischen " +"und reizenden Medikamenten. Es ist dafür vorgesehen, in einem " +"spezialisierten medizinischen Equipment benutzt zu werden und kann nicht " +"manuell verabreicht werden." + #: lang/json/AMMO_from_json.py msgid "H&K 12mm" msgstr "H&K 12mm" @@ -2592,6 +2631,57 @@ msgid_plural "reloaded .38 Super" msgstr[0] "wiedergeladene .38 Super" msgstr[1] "wiedergeladene .38 Super" +#: lang/json/AMMO_from_json.py +msgid ".380 ACP FMJ" +msgstr "" + +#. ~ Description for .380 ACP FMJ +#: lang/json/AMMO_from_json.py +msgid "" +".380 ACP ammunition with a brass jacketed 95gr bullet. Popular in pocket " +"pistols for over a century, it is often considered the weakest caliber to " +"consider carrying. One should be careful not to chamber it in 9x18mm " +"Makarov or 9x19mm firearms." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".380 ACP JHP" +msgstr "" + +#. ~ Description for .380 ACP JHP +#: lang/json/AMMO_from_json.py +msgid "" +".380 ACP ammunition with a 95gr jacketed hollow point bullet. It is a " +"popular round for small concealable backup pistols, and often the weakest " +"recommended defensive caliber. One should be careful not to chamber it in " +"9x18mm Makarov or 9x19mm firearms." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".380 ACP +P" +msgstr "" + +#. ~ Description for .380 ACP +P +#: lang/json/AMMO_from_json.py +msgid "" +"Overpressure .380 ACP ammunition with a 90gr jacketed hollow point bullet. " +"These defensive loadings are designed to maximise performance and tend to be" +" more accurate than practice ammo. One should be careful not to chamber it " +"in 9x18mm Makarov or 9x19mm firearms." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP FMJ" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP JHP" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP +P" +msgstr "" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "10mm Auto" msgid_plural "10mm Auto" @@ -4668,22 +4758,6 @@ msgstr "" "Befiederung. Er ist leicht, bietet anständigen Schaden und Treffsicherheit. " "Hat eine gute Chance, nach dem Feuern intakt zu bleiben." -#: lang/json/AMMO_from_json.py -msgid "throwing stick" -msgid_plural "throwing sticks" -msgstr[0] "Wurfstock" -msgstr[1] "Wurfstöcke" - -#. ~ Description for throwing stick -#: lang/json/AMMO_from_json.py -msgid "" -"A stick carved into a shape suitable for throwing at a target. Not a " -"boomerang, so don't expect it to return to your hand." -msgstr "" -"Ein Stock, der in eine besondere Form geschnitzt wurde, so dass er für das " -"Werfen auf ein Ziel geeignet ist. Kein Bumerang, also erwarte nicht, dass er" -" in deine Hand zurückkehrt." - #: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py msgid "wooden javelin" msgid_plural "wooden javelins" @@ -6779,13 +6853,10 @@ msgstr[1] "Paar Kettenpanzerärmel" #. ~ Description for pair of chainmail sleeves #: lang/json/ARMOR_from_json.py msgid "" -"Customized chainmail arms. Each sleeve has leather straps to connect them " -"with each other. The lack of fingers makes them less cumbersome and allows " -"them to be used with gloves." +"Customized chainmail arms. Each sleeve has straps to connect them with each" +" other. The lack of fingers makes them less cumbersome and allows them to " +"be used with gloves." msgstr "" -"Angepasste Kettenpanzerärmel. Jeder Ärmel hat Lederriemen, um sie " -"miteinander zu verbinden. Ohne die Finger sind sie weniger anstrengend zu " -"tragen und es ist möglich, sie zusammen mit Handschuhen zu benutzen." #: lang/json/ARMOR_from_json.py msgid "chainmail coif" @@ -6809,13 +6880,9 @@ msgstr[1] "Paar Kettenpanzerbeinlinge" #. ~ Description for chainmail leggings #: lang/json/ARMOR_from_json.py msgid "" -"Customized chainmail legs. Their leather straps keep everything in place, " -"and the lack of toes and heels allows them to work perfectly well with " -"footwear." +"Customized chainmail legs. Their straps keep everything in place, and the " +"lack of toes and heels allows them to work perfectly well with footwear." msgstr "" -"Angepasste Kettenpanzerbeinlinge. Ihre Lederriemen halten alles zusammen und" -" das Fehlen von Zehen und Sohlen ermöglicht es, sie zusammen mit " -"Fußbekleidung zu tragen." #: lang/json/ARMOR_from_json.py msgid "chainmail hauberk" @@ -6827,13 +6894,10 @@ msgstr[1] "Kettenpanzer-Kettenhemden" #: lang/json/ARMOR_from_json.py msgid "" "A fully customized chainmail outfit, leaving the head uncovered. The shirt," -" arms, and leggings have been modified with leather straps to deal with " -"uneven weight distribution and to allow them to be used separately." +" arms, and leggings have been modified with straps and combined with a " +"gambeson to deal with uneven weight distribution, cold environments and to " +"allow them to be used separately." msgstr "" -"Ein voll angepasster Kettenpanzeranzug, der den Kopf unbedeckt lässt. Das " -"Hemd, die Ärmel und die Beinlinge wurden mit Lederriemen angepasst, um mit " -"ungleicher Gewichtsverteilung umzugehen und, um es zu ermöglichen, sie " -"separat zu benutzen." #: lang/json/ARMOR_from_json.py msgid "chainmail armor" @@ -6845,13 +6909,10 @@ msgstr[1] "Kettenpanzerrüstungen" #: lang/json/ARMOR_from_json.py msgid "" "A fully customized chainmail suit. The coif, shirt, arms, and leggings have" -" been modified with leather straps to deal with uneven weight distribution " -"and to allow them to be used separately." +" been modified with straps and combined with a gambeson to deal with uneven " +"weight distribution, cold environments and to allow them to be used " +"separately." msgstr "" -"Ein voll angepasster Kettenpanzeranzug. Die Bundhaube, das Hemd, die Ärmel " -"und die Beinlinge wurden mit Lederriemen angepasst, um mit ungleicher " -"Gewichtsverteilung umzugehen und, um es zu ermöglichen, sie separat zu " -"benutzen." #: lang/json/ARMOR_from_json.py msgid "chainmail vest" @@ -6863,10 +6924,8 @@ msgstr[1] "Kettenpanzerwesten" #: lang/json/ARMOR_from_json.py msgid "" "A customized chainmail vest. It's a sleeveless piece of chainmail with " -"small leather straps designed to better distribute the weight." +"small straps designed to better distribute the weight." msgstr "" -"Eine angepasste Kettenpanzerweste. Sie ist ein ärmelloses Stück Kettenpanzer" -" mit kleinen Lederriemen, entworfen um das Gewicht besser zu verteilen." #: lang/json/ARMOR_from_json.py msgid "leather chaps" @@ -14400,6 +14459,20 @@ msgstr "" "schnell ziehen. Aktivieren, um eine Feuerwaffe zu ziehen oder wieder " "einzustecken." +#: lang/json/ARMOR_from_json.py +msgid "deep concealment holster" +msgid_plural "deep concealment holsters" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for deep concealment holster +#: lang/json/ARMOR_from_json.py +msgid "" +"An elastic band with numerous provisions for concealing a very small pistol " +"close to the body. It is awkward to use without practice. Activate to " +"holster/draw a gun." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "survivor harness" msgid_plural "survivor harnesses" @@ -14949,8 +15022,8 @@ msgid_plural "Active Defense System CBMs" msgstr[0] "Aktives-Verteidigungssystem-KBM" msgstr[1] "Aktives-Verteidigungssystem-KBMs" -#. ~ Description for Active Defense System #. ~ Description for Active Defense System CBM +#. ~ Description for Active Defense System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A thin forcefield surrounds your body, continually draining power. Anything" @@ -14969,8 +15042,8 @@ msgid_plural "Advanced Microreactor CBMs" msgstr[0] "Fortgeschrittener-Mikroreaktor-KBM" msgstr[1] "Fortgeschrittener-Mikroreaktor-KBMs" -#. ~ Description for Advanced Microreactor System #. ~ Description for Advanced Microreactor CBM +#. ~ Description for Advanced Microreactor System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This stripped down mini-reactor is safer than it appears due to integrated " @@ -14988,8 +15061,8 @@ msgid_plural "Alarm System CBMs" msgstr[0] "Alarmanlagen-KBM" msgstr[1] "Alarmanlagen-KBMs" -#. ~ Description for Alarm System #. ~ Description for Alarm System CBM +#. ~ Description for Alarm System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A motion-detecting alarm system will notice almost all movement within a " @@ -15084,8 +15157,8 @@ msgid_plural "Battery System CBMs" msgstr[0] "Batteriesystem-KBM" msgstr[1] "Batteriesystem-KBMs" -#. ~ Description for Battery System #. ~ Description for Battery System CBM +#. ~ Description for Battery System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have a battery draining attachment, and thus can make use of the energy " @@ -15103,8 +15176,8 @@ msgid_plural "Monomolecular Blade CBMs" msgstr[0] "Monomolekularklingen-KBM" msgstr[1] "Monomolekularklingen-KBMs" -#. ~ Description for Monomolecular Blade #. ~ Description for Monomolecular Blade CBM +#. ~ Description for Monomolecular Blade #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A deadly foot-long blade made of advanced material now resides inside your " @@ -15173,8 +15246,8 @@ msgid_plural "Blood Filter CBMs" msgstr[0] "Blutfilter-KBM" msgstr[1] "Blutfilter-KBMs" -#. ~ Description for Blood Filter #. ~ Description for Blood Filter CBM +#. ~ Description for Blood Filter #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A filtration system in your heart allows you to actively filter out chemical" @@ -15210,8 +15283,8 @@ msgid_plural "Subdermal Carbon Filament CBMs" msgstr[0] "Subkutankohlenstofffliaments-KBM" msgstr[1] "Subkutankohlenstofffliaments-KBMs" -#. ~ Description for Subdermal Carbon Filament #. ~ Description for Subdermal Carbon Filament CBM +#. ~ Description for Subdermal Carbon Filament #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Lying just beneath your skin is a thin armor made of carbon nanotubes. This" @@ -15226,8 +15299,8 @@ msgid_plural "Chain Lightning CBMs" msgstr[0] "Kettenstoßspannungs-KBM" msgstr[1] "Kettenstoßspannungs-KBMs" -#. ~ Description for Chain Lightning #. ~ Description for Chain Lightning CBM +#. ~ Description for Chain Lightning #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your body is equipped with a chain lightning generator, allowing you to emit" @@ -15264,8 +15337,8 @@ msgid_plural "Internal Climate Control CBMs" msgstr[0] "Innenklimasteuerungs-KBM" msgstr[1] "Innenklimasteuerungs-KBMs" -#. ~ Description for Internal Climate Control #. ~ Description for Internal Climate Control CBM +#. ~ Description for Internal Climate Control #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Throughout your body lies a network of thermal piping which eases the " @@ -15280,8 +15353,8 @@ msgid_plural "Cloaking System CBMs" msgstr[0] "Tarnvorrichtungs-KBM" msgstr[1] "Tarnvorrichtungs-KBMs" -#. ~ Description for Cloaking System #. ~ Description for Cloaking System CBM +#. ~ Description for Cloaking System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This high-power system uses a set of cameras and LEDs to make you blend into" @@ -15316,8 +15389,8 @@ msgid_plural "Wired Reflexes CBMs" msgstr[0] "Reflexverdrahtungs-KBM" msgstr[1] "Reflexverdrahtungs-KBMs" -#. ~ Description for Wired Reflexes #. ~ Description for Wired Reflexes CBM +#. ~ Description for Wired Reflexes #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your reaction time has been greatly enhanced with bionic nerve stimulators, " @@ -15332,8 +15405,8 @@ msgid_plural "Expanded Digestive System CBMs" msgstr[0] "Verdauungssystemerweiterungs-KBM" msgstr[1] "Verdauungssystemerweiterungs-KBMs" -#. ~ Description for Expanded Digestive System #. ~ Description for Expanded Digestive System CBM +#. ~ Description for Expanded Digestive System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have been outfitted with three synthetic stomachs and industrial-grade " @@ -15352,8 +15425,8 @@ msgid_plural "Enhanced Hearing CBMs" msgstr[0] "Hörverbesserungs-KBM" msgstr[1] "Hörverbesserungs-KBMs" -#. ~ Description for Enhanced Hearing #. ~ Description for Enhanced Hearing CBM +#. ~ Description for Enhanced Hearing #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "When this bionic is active, your hearing will be drastically improved, " @@ -15390,8 +15463,8 @@ msgid_plural "EMP Projector CBMs" msgstr[0] "EMP-Projektor-KBM" msgstr[1] "EMP-Projektor-KBMs" -#. ~ Description for EMP Projector #. ~ Description for EMP Projector CBM +#. ~ Description for EMP Projector #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A ranged EMP generator system is implanted on the palm of your right hand " @@ -15408,8 +15481,8 @@ msgid_plural "Ethanol Burner CBMs" msgstr[0] "Ethanolverbrennungs-KBM" msgstr[1] "Ethanolverbrennungs-KBMs" -#. ~ Description for Ethanol Burner #. ~ Description for Ethanol Burner CBM +#. ~ Description for Ethanol Burner #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You burn alcohol as fuel in an extremely efficient reaction. However, you " @@ -15424,8 +15497,8 @@ msgid_plural "Aero-Evaporator CBMs" msgstr[0] "Luftverdampfungs-KBM" msgstr[1] "Luftverdampfungs-KBMs" -#. ~ Description for Aero-Evaporator #. ~ Description for Aero-Evaporator CBM +#. ~ Description for Aero-Evaporator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This unit draws moisture from the surrounding air, which then is poured from" @@ -15441,8 +15514,8 @@ msgid_plural "Diamond Cornea CBMs" msgstr[0] "Diamant-Hornhaut-KBM" msgstr[1] "Diamant-Hornhaut-KBMs" -#. ~ Description for Diamond Cornea #. ~ Description for Diamond Cornea CBM +#. ~ Description for Diamond Cornea #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Your vision is greatly enhanced, giving you a +2 bonus to perception." msgstr "" @@ -15470,8 +15543,8 @@ msgid_plural "Facial Distortion CBMs" msgstr[0] "Gesichtsverzerrungs-KBM" msgstr[1] "Gesichtsverzerrungs-KBMs" -#. ~ Description for Facial Distortion #. ~ Description for Facial Distortion CBM +#. ~ Description for Facial Distortion #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Through controlled application of electrochemical impulses, you are capable " @@ -15489,8 +15562,8 @@ msgid_plural "Dielectric Capacitance System CBMs" msgstr[0] "Dielektrisches-Kapazitätssystem-KBM" msgstr[1] "Dielektrisches-Kapazitätssystem-KBMs" -#. ~ Description for Dielectric Capacitance System #. ~ Description for Dielectric Capacitance System CBM +#. ~ Description for Dielectric Capacitance System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Throughout your body lies a network of miniature piezoelectric capacitors " @@ -15569,8 +15642,8 @@ msgid_plural "Internal Furnace CBMs" msgstr[0] "Interner-Ofen-KBM" msgstr[1] "Interner-Ofen-KBMs" -#. ~ Description for Internal Furnace #. ~ Description for Internal Furnace CBM +#. ~ Description for Internal Furnace #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "When this bionic is active, you can burn nearly any organic material as fuel" @@ -15624,8 +15697,8 @@ msgid_plural "Terranian Sonar CBMs" msgstr[0] "Bodensonar-KBM" msgstr[1] "Bodensonar-KBMs" -#. ~ Description for Terranian Sonar #. ~ Description for Terranian Sonar CBM +#. ~ Description for Terranian Sonar #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your feet are equipped with precision sonar equipment, allowing you to " @@ -15639,8 +15712,8 @@ msgid_plural "Heat Drain CBMs" msgstr[0] "Hitzedieb-KBM" msgstr[1] "Hitzedieb-KBMs" -#. ~ Description for Heat Drain #. ~ Description for Heat Drain CBM +#. ~ Description for Heat Drain #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While fighting unarmed against a warm-blooded opponent, there is a chance " @@ -15676,8 +15749,8 @@ msgid_plural "Hydraulic Muscles CBMs" msgstr[0] "Hydraulikmuskeln-KBM" msgstr[1] "Hydraulikmuskeln-KBMs" -#. ~ Description for Hydraulic Muscles #. ~ Description for Hydraulic Muscles CBM +#. ~ Description for Hydraulic Muscles #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While activated, your muscles will be greatly enhanced, increasing your " @@ -15692,8 +15765,8 @@ msgid_plural "Infrared Vision CBMs" msgstr[0] "Infrarotsicht-KBM" msgstr[1] "Infrarotsicht-KBMs" -#. ~ Description for Infrared Vision #. ~ Description for Infrared Vision CBM +#. ~ Description for Infrared Vision #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your range of vision extends into the infrared, allowing you to see warm-" @@ -15708,8 +15781,8 @@ msgid_plural "Cerebral Booster CBMs" msgstr[0] "Zelebral-Booster-KBM" msgstr[1] "Zelebral-Booster-KBMs" -#. ~ Description for Cerebral Booster #. ~ Description for Cerebral Booster CBM +#. ~ Description for Cerebral Booster #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your brain has been enhanced with bionic coprocessors, giving you a +2 bonus" @@ -15741,8 +15814,8 @@ msgid_plural "Leukocyte Breeder System CBMs" msgstr[0] "Leukozyten-Brutsystem-KBM" msgstr[1] "Leukozyten-Brutsystem-KBMs" -#. ~ Description for Leukocyte Breeder System #. ~ Description for Leukocyte Breeder System CBM +#. ~ Description for Leukocyte Breeder System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You are equipped with bionic stimulators which augment your haematopoiesis " @@ -15762,8 +15835,8 @@ msgid_plural "Mini-Flamethrower CBMs" msgstr[0] "Miniflammenwerfer-KBM" msgstr[1] "Miniflammenwerfer-KBMs" -#. ~ Description for Mini-Flamethrower #. ~ Description for Mini-Flamethrower CBM +#. ~ Description for Mini-Flamethrower #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "The index fingers of both hands have powerful fire starters which extend " @@ -15810,8 +15883,8 @@ msgid_plural "Nictating Membrane CBMs" msgstr[0] "Nickhaut-KBM" msgstr[1] "Nickhaut-KBMs" -#. ~ Description for Nictating Membrane #. ~ Description for Nictating Membrane CBM +#. ~ Description for Nictating Membrane #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your eyes have a thin membrane that closes over your eyes while underwater, " @@ -15845,8 +15918,8 @@ msgid_plural "Metabolic Interchange CBMs" msgstr[0] "Stoffwechselanschlusstellen-KBM" msgstr[1] "Stoffwechselanschlusstellen-KBMs" -#. ~ Description for Metabolic Interchange #. ~ Description for Metabolic Interchange CBM +#. ~ Description for Metabolic Interchange #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your digestive system and power supply are interconnected. Bionic energy is" @@ -15860,8 +15933,8 @@ msgid_plural "Weather Reader CBMs" msgstr[0] "Wetterleser-KBM" msgstr[1] "Wetterleser-KBMs" -#. ~ Description for Weather Reader #. ~ Description for Weather Reader CBM +#. ~ Description for Weather Reader #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A multitude of scientific instruments and sensors collect environmental " @@ -15879,8 +15952,8 @@ msgid_plural "Repair Nanobots CBMs" msgstr[0] "Reparaturnanoropotoer-KBM" msgstr[1] "Reparaturnanoropotoer-KBMs" -#. ~ Description for Repair Nanobots #. ~ Description for Repair Nanobots CBM +#. ~ Description for Repair Nanobots #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Inside your body is a fleet of tiny dormant robots. While activated they " @@ -15897,8 +15970,8 @@ msgid_plural "Artificial Night Generator CBMs" msgstr[0] "Kunstnachtgenerator-KBM" msgstr[1] "Kunstnachtgenerator-KBMs" -#. ~ Description for Artificial Night Generator #. ~ Description for Artificial Night Generator CBM +#. ~ Description for Artificial Night Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Destructive interference eliminates all light within a 15 tile radius." msgstr "" @@ -15926,8 +15999,8 @@ msgid_plural "Offensive Defense System CBMs" msgstr[0] "Offensives-Verteidigungssystem-KBM" msgstr[1] "Offensives-Verteidigungssystem-KBMs" -#. ~ Description for Offensive Defense System #. ~ Description for Offensive Defense System CBM +#. ~ Description for Offensive Defense System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A thin forcefield surrounds your body, continually draining power. This " @@ -15945,8 +16018,8 @@ msgid_plural "Sensory Dulling CBMs" msgstr[0] "Sinnesdämpfungs-KBM" msgstr[1] "Sinnesdämpfungs-KBMs" -#. ~ Description for Sensory Dulling #. ~ Description for Sensory Dulling CBM +#. ~ Description for Sensory Dulling #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your nervous system is wired to allow you to inhibit the signals of pain, " @@ -15979,8 +16052,8 @@ msgid_plural "Power Armor Interface CBMs" msgstr[0] "Energierüstungsschnittstellen-KBM" msgstr[1] "Energierüstungsschnittstellen-KBMs" -#. ~ Description for Power Armor Interface #. ~ Description for Power Armor Interface CBM +#. ~ Description for Power Armor Interface #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Interfaces your power system with the internal charging port on suits of " @@ -15995,8 +16068,8 @@ msgid_plural "Power Armor Mk. II Interface CBMs" msgstr[0] "Energierüstung-Mk.-II-Schnittstellen-KBM" msgstr[1] "Energierüstung-Mk.-II-Schnittstellen-KBMs" -#. ~ Description for Power Armor Interface Mk. II #. ~ Description for Power Armor Mk. II Interface CBM +#. ~ Description for Power Armor Interface Mk. II #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Interfaces your power system with the internal charging port on suits of " @@ -16013,8 +16086,8 @@ msgid_plural "Power Storage CBMs" msgstr[0] "Stromspeicher-KBM" msgstr[1] "Stromspeicher-KBMs" -#. ~ Description for Power Storage #. ~ Description for Power Storage CBM +#. ~ Description for Power Storage #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Compact Bionics Module that upgrades your power capacity by 100 units. " @@ -16032,8 +16105,8 @@ msgid_plural "Power Storage CBMs Mk. II" msgstr[0] "Stromspeicher-KBM Mk. II" msgstr[1] "Stromspeicher-KBMs Mk. II" -#. ~ Description for Power Storage Mk. II #. ~ Description for Power Storage CBM Mk. II +#. ~ Description for Power Storage Mk. II #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Compact Bionics Module developed at DoubleTech Industries as a replacement " @@ -16050,8 +16123,8 @@ msgid_plural "Probability Travel CBMs" msgstr[0] "Wahrscheinlichkeitsbewegungs-KBM" msgstr[1] "Wahrscheinlichkeitsbewegungs-KBMs" -#. ~ Description for Probability Travel #. ~ Description for Probability Travel CBM +#. ~ Description for Probability Travel #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Increases your body's wavelength, allowing you to quantum tunnel through " @@ -16104,18 +16177,13 @@ msgid_plural "Railgun CBMs" msgstr[0] "Schienengewehr-KBM" msgstr[1] "Schienengewehr-KBMs" -#. ~ Description for Railgun #. ~ Description for Railgun CBM -#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +#: lang/json/BIONIC_ITEM_from_json.py msgid "" -"EM field generators in your arms double the range and damage of thrown iron " -"and steel objects at a cost of 1 power per throw, causing them to leave a " -"trail of electricity that can cause additional damage." +"EM field generators in your arms increase the range and damage of thrown " +"iron and steel objects at a cost of 1 power per throw, causing them to leave" +" a trail of electricity that can cause additional damage." msgstr "" -"Elektromagnetische Feldgeneratoren in deinen Armen verdoppeln die Reichweite" -" und den Schaden geworfener Eisen- und Stahlobjekte auf Kosten von 1 Strom " -"pro Wurf. Die geworfenen Gegenstände hinterlassen eine Elektrizitätsspur, " -"welche zusätzlichen Schaden anrichten kann." #: lang/json/BIONIC_ITEM_from_json.py msgid "Fingertip Razors CBM" @@ -16123,8 +16191,8 @@ msgid_plural "Fingertip Razors CBMs" msgstr[0] "Fingerspitzenklingen-KBM" msgstr[1] "Fingerspitzenklingen-KBMs" -#. ~ Description for Fingertip Razors #. ~ Description for Fingertip Razors CBM +#. ~ Description for Fingertip Razors #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You possess razor-sharp retractable claws underneath your fingernails, ten " @@ -16142,8 +16210,8 @@ msgid_plural "Internal Microreactor CBMs" msgstr[0] "Interner-Mikroreaktor-KBM" msgstr[1] "Interner-Mikroreaktor-KBMs" -#. ~ Description for Microreactor System #. ~ Description for Internal Microreactor CBM +#. ~ Description for Microreactor System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This stripped down mini-reactor may not be the best thing to have in your " @@ -16177,8 +16245,8 @@ msgid_plural "Recycler Unit CBMs" msgstr[0] "Wiederverwertungseinheiten-KBM" msgstr[1] "Wiederverwertungseinheiten-KBMs" -#. ~ Description for Recycler Unit #. ~ Description for Recycler Unit CBM +#. ~ Description for Recycler Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your digestive system has been outfitted with a series of filters and " @@ -16196,8 +16264,8 @@ msgid_plural "Remote Controller CBMs" msgstr[0] "Fernsteuerungs-KBM" msgstr[1] "Fernsteuerungs-KBMs" -#. ~ Description for Remote Controller #. ~ Description for Remote Controller CBM +#. ~ Description for Remote Controller #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A small module connected to your brain allows you to interface with nearby " @@ -16212,8 +16280,8 @@ msgid_plural "Sonic Resonator CBMs" msgstr[0] "Schallresonator-KBM" msgstr[1] "Schallresonator-KBMs" -#. ~ Description for Sonic Resonator #. ~ Description for Sonic Resonator CBM +#. ~ Description for Sonic Resonator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your entire body may resonate at very high power, creating a short-range " @@ -16230,8 +16298,8 @@ msgid_plural "Olfactory Mask CBMs" msgstr[0] "Geruchsabdeckungs-KBM" msgstr[1] "Geruchsabdeckungs-KBMs" -#. ~ Description for Olfactory Mask #. ~ Description for Olfactory Mask CBM +#. ~ Description for Olfactory Mask #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While this system is powered, your body will produce very little odor, " @@ -16247,8 +16315,8 @@ msgid_plural "Scent Vision CBMs" msgstr[0] "Geruchsvisualisierungs-KBM" msgstr[1] "Geruchsvisualisierungs-KBMs" -#. ~ Description for Scent Vision #. ~ Description for Scent Vision CBM +#. ~ Description for Scent Vision #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While this system is powered, you're able to visually sense your own scent, " @@ -16265,8 +16333,8 @@ msgid_plural "Electroshock Unit CBMs" msgstr[0] "Elektroschockeinheiten-KBM" msgstr[1] "Elektroschockeinheiten-KBMs" -#. ~ Description for Electroshock Unit #. ~ Description for Electroshock Unit CBM +#. ~ Description for Electroshock Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While fighting unarmed, or with a weapon that conducts electricity, there is" @@ -16284,8 +16352,8 @@ msgid_plural "Shockwave Generator CBMs" msgstr[0] "Schockwellengenerator-KBM" msgstr[1] "Schockwellengenerator-KBMs" -#. ~ Description for Shockwave Generator #. ~ Description for Shockwave Generator CBM +#. ~ Description for Shockwave Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You generate a powerful shockwave, knocking back all nearby creatures. " @@ -16303,8 +16371,8 @@ msgid_plural "Synaptic Accelerator CBMs" msgstr[0] "Synapsenbeschleuniger-KBM" msgstr[1] "Synapsenbeschleuniger-KBMs" -#. ~ Description for Synaptic Accelerator #. ~ Description for Synaptic Accelerator CBM +#. ~ Description for Synaptic Accelerator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py #, no-python-format msgid "" @@ -16402,8 +16470,8 @@ msgid_plural "Teleportation Unit CBMs" msgstr[0] "Teleportationseinheit-KBM" msgstr[1] "Teleportationseinheit-KBMs" -#. ~ Description for Teleportation Unit #. ~ Description for Teleportation Unit CBM +#. ~ Description for Teleportation Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This highly experimental unit folds space over short distances, instantly " @@ -16421,8 +16489,8 @@ msgid_plural "Time Dilation CBMs" msgstr[0] "Zeitdilatations-KBM" msgstr[1] "Zeitdilatations-KBMs" -#. ~ Description for Time Dilation #. ~ Description for Time Dilation CBM +#. ~ Description for Time Dilation #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "At the cost of all stored bionic power, you may increase your body speed and" @@ -16440,8 +16508,8 @@ msgid_plural "Integrated Toolset CBMs" msgstr[0] "Integriertes-Instrumentatium-KBM" msgstr[1] "Integriertes-Instrumentatium-KBMs" -#. ~ Description for Integrated Toolset #. ~ Description for Integrated Toolset CBM +#. ~ Description for Integrated Toolset #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Surgically implanted in your hands and fingers is a complete tool set - " @@ -16476,8 +16544,8 @@ msgid_plural "Joint Servo CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Joint Servo #. ~ Description for Joint Servo CBM +#. ~ Description for Joint Servo #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your leg joints have been equipped with servomotors that provide power-" @@ -16492,8 +16560,8 @@ msgid_plural "Uncanny Dodge CBMs" msgstr[0] "Verblüffendes-Ausweichen-KBM" msgstr[1] "Verblüffendes-Ausweichen-KBMs" -#. ~ Description for Uncanny Dodge #. ~ Description for Uncanny Dodge CBM +#. ~ Description for Uncanny Dodge #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your nervous system has been augmented with bionic processors, allowing you " @@ -16509,8 +16577,8 @@ msgid_plural "Unified Power System CBMs" msgstr[0] "Einheitsstromzufuhr-KBM" msgstr[1] "Einheitsstromzufuhr-KBMs" -#. ~ Description for Internal Unified Power System #. ~ Description for Unified Power System CBM +#. ~ Description for Internal Unified Power System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have a unified power system wired into your power banks. Objects that " @@ -16526,8 +16594,8 @@ msgid_plural "Internal Chronometer CBMs" msgstr[0] "Eingebauter-Chronometer-KBM" msgstr[1] "Eingebauter-Chronometer-KBMs" -#. ~ Description for Internal Chronometer #. ~ Description for Internal Chronometer CBM +#. ~ Description for Internal Chronometer #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have been equipped with an internal atomic clock, ensuring that you will" @@ -16616,8 +16684,8 @@ msgid_plural "Taste Modifier CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Taste Modifier #. ~ Description for Taste Modifier CBM +#. ~ Description for Taste Modifier #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A set of highly sensitive sensors is installed in your mouth, and a small " @@ -16836,8 +16904,8 @@ msgstr "" "Dir wurden ein paar Solarzellen installiert. Wenn du im direktem Sonnenlicht" " stehst, wird sich dein Strompegel langsam aufladen." -#. ~ Description for Solar Panels #. ~ Description for Solar Panels CBM +#. ~ Description for Solar Panels #: lang/json/BIONIC_ITEM_from_json.py lang/json/BIONIC_ITEM_from_json.py #: lang/json/bionic_from_json.py msgid "" @@ -16911,8 +16979,8 @@ msgid_plural "Ionic Overload Generator CBMs" msgstr[0] "Ionenüberlastungserzeuger-KBM" msgstr[1] "Ionenüberlastungserzeuger-KBMs" -#. ~ Description for Ionic Overload Generator #. ~ Description for Ionic Overload Generator CBM +#. ~ Description for Ionic Overload Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A powerful ion energy generator is implanted on your chest. Fires a " @@ -23230,6 +23298,19 @@ msgid "Baby cow food, appropriated for adult humans. Spoils rapidly." msgstr "" "Kalbsnahrung, für erwachsene Menschen aufbereitet. Wird schnell sauer." +#: lang/json/COMESTIBLE_from_json.py +msgid "reconstituted milk" +msgid_plural "reconstituted milk" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for reconstituted milk +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Baby cow food, appropriated for adult humans. This milk has been " +"reconstituted from a processed milk. Spoils rapidly." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "coffee milk" msgstr "Milchkaffee" @@ -27054,23 +27135,20 @@ msgstr "" "einem Stück Papier zusammengerollt und bereit zum rauchen." #: lang/json/COMESTIBLE_from_json.py -msgid "pink tablet" -msgstr "rosa Tablette" +msgid "pink tab" +msgstr "" -#. ~ Use action activation_message for pink tablet. +#. ~ Use action activation_message for pink tab. #: lang/json/COMESTIBLE_from_json.py msgid "You eat the pink tablet." msgstr "Du isst die rosa Tablette." -#. ~ Description for pink tablet +#. ~ Description for pink tab #: lang/json/COMESTIBLE_from_json.py msgid "" -"Tiny pink candies shaped like hearts, already dosed with some sort of drug." -" Really only useful for entertainment. Will cause hallucinations." +"Tiny pink tabs resembling postage stamps, already dosed with some sort of " +"drug. Really only useful for entertainment. Will cause hallucinations." msgstr "" -"Winzige rosa Süßigkeiten, die wie Herzen geformt sind und mit irgendeiner " -"Droge dosiert wurden. Sie sind wirklich nur zu Belustigung geeignet. Wird " -"Halluzinationen hervorrufen." #: lang/json/COMESTIBLE_from_json.py msgid "medical gauze" @@ -29757,6 +29835,15 @@ msgstr[1] "Aprikosen" msgid "A smooth-skinned fruit, related to the peach." msgstr "Eine weichhäutige Frucht, verwandt zur Pfirsich." +#: lang/json/COMESTIBLE_from_json.py +msgid "cactus pad" +msgstr "" + +#. ~ Description for cactus pad +#: lang/json/COMESTIBLE_from_json.py +msgid "An edible pad of a cactus." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "barley" msgstr "Gerste" @@ -31919,6 +32006,15 @@ msgstr "" "Hot Dogs und Hamburger oder, wenn du verzweifelt bist, direkt für deinen " "Magen." +#: lang/json/COMESTIBLE_from_json.py +msgid "nopalito" +msgstr "" + +#. ~ Description for nopalito +#: lang/json/COMESTIBLE_from_json.py +msgid "A less prickly version of cactus pads." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "wheat cereal" msgstr "Weizenmüsli" @@ -34603,6 +34699,17 @@ msgid "Dummy item. If you see this, then something went wrong." msgstr "" "Dummy-Gegenstand. Wenn du dies siehst, ist irgendetwas schiefgelaufen." +#: lang/json/GENERIC_from_json.py +msgid "semi ground grains" +msgid_plural "semi ground grains" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for semi ground grains +#: lang/json/GENERIC_from_json.py +msgid "A paste of half-finished milled grains, not yet flour." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "smoldering embers" msgid_plural "smoldering embers" @@ -34681,8 +34788,8 @@ msgstr "nahes Feuer" #. ~ Description for wind #. ~ Description for a smoking device and a source of flame #. ~ Description for abstract map -#. ~ Description for weapon #. ~ Description for seeing this is a bug +#. ~ Description for weapon #: lang/json/GENERIC_from_json.py lang/json/GENERIC_from_json.py #: lang/json/TOOL_from_json.py lang/json/TOOL_from_json.py #: lang/json/skill_from_json.py @@ -37293,6 +37400,19 @@ msgid "" " vehicle. Combine it with a wheel to get a mountable piece." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "welding component kit" +msgid_plural "welding component kits" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for welding component kit +#: lang/json/GENERIC_from_json.py +msgid "" +"A set of components useful for constructing a full-featured welding station," +" complete with soldering capability." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "canister grenade" msgid_plural "canister grenades" @@ -40737,6 +40857,19 @@ msgstr "" "Ein schwerer Rahmen, der mit Anbindungen und Anschlussstellen versehen " "wurde, um Ladung zu tragen." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "floor trunk" +msgid_plural "floor trunks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for floor trunk +#: lang/json/GENERIC_from_json.py +msgid "" +"A section of flooring with a cargo-space beneath, and a hinged door for " +"access." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "livestock carrier" msgid_plural "livestock carriers" @@ -40834,16 +40967,10 @@ msgstr[1] "Esz.-kompatible Ladestationen" msgid "" "A Unified Power System recharging station designed to operate on vehicle " "power. Once installed in a vehicle storage space and turned on from a " -"dashboard or electronics control unit, it will slowly charge all tools with " -"rechargeable batteries in that space. The system can only be installed in " -"existing storage compartments." +"dashboard or electronics control unit, it will slowly charge all UPS " +"compatible tools and battery cells in that space. The system can only be " +"installed in existing storage compartments." msgstr "" -"Eine Ladestation für die Einheitsstromzufuhr (Esz.), die für den Betrieb mit" -" Fahrzeugstrom ausgelegt ist. Sobald sie im Lagerraum eines Fahrzeugs " -"eingebaut wurde und über das Armaturenbrett oder eine elektronische " -"Steuereinheit eingeschaltet wurde, wird sie sukzessive alle in ihr " -"befindlichen Werkzeuge, die aufladbare Batterien verwenden, aufladen. Das " -"System kann nur in bereits bestehende Lagerplätze eingebaut werden." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py #: lang/json/vehicle_part_from_json.py @@ -42564,6 +42691,17 @@ msgstr[1] "9×18mm-Hülsen" msgid "An empty casing from a 9x18mm round." msgstr "Eine leere Hülse einer 9×18mm-Patrone." +#: lang/json/GENERIC_from_json.py +msgid ".380 ACP casing" +msgid_plural ".380 ACP casings" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for .380 ACP casing +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a .380 ACP round." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "shotgun hull" msgid_plural "shotgun hulls" @@ -46535,6 +46673,89 @@ msgstr "ARTEFAKTE" msgid "ARMOR" msgstr "KLEIDUNG" +#: lang/json/MAGAZINE_from_json.py +msgid "ultra-light battery cell" +msgstr "" + +#. ~ Description for ultra-light battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a light battery cell designed for small size over everything else. " +"It retains its universal compatibility, though." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "light battery cell" +msgstr "" + +#. ~ Description for light battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a light battery cell, universally compatible with all kinds of small" +" devices." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "light battery cell (high-capacity)" +msgid_plural "light battery cells (high-capacity)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for light battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity light battery cell, universally compatible with all " +"kinds of personal electronic devices." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "medium battery cell" +msgstr "" + +#. ~ Description for medium battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a medium battery cell, universally compatible with all kinds of " +"appliances and power tools." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "medium battery cell (high-capacity)" +msgid_plural "medium battery cells (high-capacity)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for medium battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity medium battery cell, universally compatible with all" +" kinds of appliances and power tools." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "heavy battery cell" +msgstr "" + +#. ~ Description for heavy battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a heavy battery cell, universally compatible with all kinds of " +"industrial-grade equipment and large tools." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "heavy battery cell (high-capacity)" +msgid_plural "heavy battery cells (high-capacity)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for heavy battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity heavy battery cell, universally compatible with all " +"kinds of industrial-grade equipment and large tools." +msgstr "" + #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "fuel bunker" msgstr "Brennstofflager" @@ -46694,6 +46915,15 @@ msgstr "S&W-22A-Magazin" msgid "A standard capacity magazine for the popular S&W 22A pistol." msgstr "Ein Magazin mit Standardkapazität für die beliebte S&W-22A-Pistole." +#: lang/json/MAGAZINE_from_json.py +msgid "Jennings J-22 magazine" +msgstr "" + +#. ~ Description for Jennings J-22 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A cheap 6-round steel box magazine for the Jennings J-22." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "LW-5 speedloader" msgstr "" @@ -46998,6 +47228,15 @@ msgid "A standard 20-round magazine for the Skorpion Vz. 61, in .32 ACP." msgstr "" "Ein Standardmagazin mit 20 Schuss für die Skorpion Vz. 61, mit .32 ACP." +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec P32 magazine" +msgstr "" + +#. ~ Description for Kel-Tec P32 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 7-round steel box magazine for the Kel-Tec P32." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "P226 magazine .357 SIG" msgstr "P226-Magazin .357 SIG" @@ -47046,6 +47285,43 @@ msgid "" "revolver." msgstr "" +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec P3AT magazine" +msgstr "" + +#. ~ Description for Kel-Tec P3AT magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 6-round steel box magazine for the Kel-Tec P3AT." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "FN 1910 magazine" +msgstr "" + +#. ~ Description for FN 1910 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "" +"A standard 6-round steel box magazine for the FN 1910. It looks a bit old." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "Ruger LCP magazine" +msgstr "" + +#. ~ Description for Ruger LCP magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 6-round capacity magazine for the Ruger LCP pistol." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "MAC-11 magazine" +msgstr "" + +#. ~ Description for MAC-11 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A cheap 32-round steel box magazine for use with the MAC-11 SMG." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid ".40 6-round speedloader" msgstr "" @@ -47744,6 +48020,15 @@ msgstr "" "Ein Standardstahlkastenmagazin mit 32 Schuss zur Verwendung mit der UZI-" "Maschinenpistole." +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec PF-9 magazine" +msgstr "" + +#. ~ Description for Kel-Tec PF-9 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 7-round steel box magazine for the Kel-Tec PF-9." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "Makarov PM magazine" msgstr "Makarov-PM-Magazin" @@ -48551,6 +48836,15 @@ msgstr "" "Fügt eine bankrotte Pizzeriakette hinzu, dessen Pizzerias funktionierende " "Animatronik enthalten." +#: lang/json/MOD_INFO_from_json.py +msgid "Battery Migration for Existing Games" +msgstr "" + +#. ~ Description for Battery Migration for Existing Games +#: lang/json/MOD_INFO_from_json.py +msgid "Allows you to reload and unload battery cells with legacy batteries." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "Boats" msgstr "Boote" @@ -54968,8 +55262,8 @@ msgstr "" msgid "guardin gnome" msgstr "Gartenzwerg" -#. ~ Description for garden gnome #. ~ Description for guardin gnome +#. ~ Description for garden gnome #: lang/json/MONSTER_from_json.py lang/json/furniture_from_json.py msgid "A normal and completely harmless garden gnome." msgstr "Ein normaler und völlig harmloser Gartenzwerg." @@ -56149,24 +56443,6 @@ msgstr "" " anbringen und es somit stattdessen die Energie der Plutoniumzellen " "verwenden lassen." -#: lang/json/TOOLMOD_from_json.py -msgid "extra battery mod" -msgid_plural "extra battery mods" -msgstr[0] "Zusatzbatterie-Modifikation" -msgstr[1] "Zusatzbatterie-Modifikationen" - -#. ~ Description for extra battery mod -#: lang/json/TOOLMOD_from_json.py -msgid "" -"This is a homemade battery compartment made with spare electronics. With " -"enough electronics skill, you could attach this to any electronic tool to " -"double the amount of batteries it can hold." -msgstr "" -"Dies ist eine selbstgebauter Batterieeinsatz, der aus " -"Ersatzelektronikbauteilen gebaut wurde. Mit einer ausreichenden " -"Elektronikerfahrung könntest du diese Vorrichtung an jedes elektronisches " -"Werkzeug anbringen, um die Batteriekapazität zu verdoppeln." - #: lang/json/TOOLMOD_from_json.py msgid "UPS conversion mod" msgid_plural "UPS conversion mods" @@ -56220,6 +56496,45 @@ msgstr "" "Eine Batteriefachmodifikation, welche es ermöglicht, Fahrzeugbatterien und " "kleine Akkumulatoren in gewöhnlichen Werkzeugen zu benutzen." +#: lang/json/TOOLMOD_from_json.py +msgid "light battery mod" +msgid_plural "light battery mods" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for light battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of light batteries in tools " +"that otherwise could not." +msgstr "" + +#: lang/json/TOOLMOD_from_json.py +msgid "medium battery mod" +msgid_plural "medium battery mods" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for medium battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of medium batteries in tools " +"that otherwise could not." +msgstr "" + +#: lang/json/TOOLMOD_from_json.py +msgid "heavy battery mod" +msgid_plural "heavy battery mods" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for heavy battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of heavy batteries in tools " +"that otherwise could not." +msgstr "" + #: lang/json/TOOLMOD_from_json.py msgid "cybernetic power port mod" msgid_plural "cybernetic power port mods" @@ -58781,6 +59096,32 @@ msgstr "" "meißelähnlichen Ansatz in der Ecke. Er wird für die meisten " "Metallverarbeitungsfertigungsrezepte verwendet." +#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +msgid "water mill" +msgid_plural "water mills" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for water mill +#: lang/json/TOOL_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour. Can" +" be placed via the construction menu." +msgstr "" + +#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +msgid "wind mill" +msgid_plural "wind mills" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for wind mill +#: lang/json/TOOL_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour. Can " +"be placed via the construction menu." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "wood axe" msgid_plural "wood axes" @@ -62492,29 +62833,10 @@ msgstr[1] "Lichtstreifen" #. ~ Description for lightstrip #: lang/json/TOOL_from_json.py msgid "" -"This is a light-emitting circuit wired directly to some batteries. It " -"provides some weak light and can't be turned off. When the batteries die, " -"you'll need to scrap it to recover the components that are reusable." -msgstr "" -"Dies ist eine Licht abgebende Schaltung, die direkt mit ein paar Batterien " -"verkabelt ist. Sie spendet etwas schwaches Licht kann nicht abgeschaltet " -"werden. Sobald die Batterien erschöpft sind, musst du den Lichtstreifen " -"demontieren, um die wiederverwertbaren Komponenten zurückzuerhalten." - -#: lang/json/TOOL_from_json.py -msgid "lightstrip (unpowered)" -msgid_plural "lightstrips (unpowered)" -msgstr[0] "Lichtstreifen (ohne Strom)" -msgstr[1] "Lichtstreifen (ohne Strom)" - -#. ~ Description for lightstrip (unpowered) -#: lang/json/TOOL_from_json.py -msgid "" -"This is a unpowered lightstrip. You could connect it to batteries to get a " -"light-emitting circuit." +"This is a light-emitting circuit that has been wired directly to a battery." +" It provides some weak light and can't be turned off until the battery " +"dies." msgstr "" -"Dies ist ein nicht bestromter Lichtstreifen. Du könntest ihn mit Batterien " -"verbinden, um einen Licht abgebenden Stromkreis zu erhalten." #: lang/json/TOOL_from_json.py msgid "lightstrip (inactive)" @@ -62530,16 +62852,9 @@ msgstr "Du aktivierst den Leuchtstreifen unwiderruflich." #. ~ Description for lightstrip (inactive) #: lang/json/TOOL_from_json.py msgid "" -"This is a light-emitting circuit wired directly to some batteries. It will " -"provide some weak light once activated and can't be turned off. When the " -"batteries die, you'll need to scrap it to recover the components that are " -"reusable." +"This is a light-emitting circuit that can be wired directly to a battery. " +"It provides some weak light and can't be turned off until the battery dies." msgstr "" -"Dies ist eine Licht abgebende Schaltung, die direkt mit ein paar Batterien " -"verkabelt ist. Sobald eingeschaltet, wird sie etwas schwaches Licht spenden " -"und sie kann nicht abgeschaltet werden. Sobald die Batterien erschöpft sind," -" musst du den Lichtstreifen demontieren, um die wiederverwertbaren " -"Komponenten zurückzuerhalten." #: lang/json/TOOL_from_json.py msgid "lobotomizer" @@ -63198,7 +63513,13 @@ msgid "" "of reactivity. Don't try to breathe it." msgstr "" -#. ~ Description for nitrogen tank +#: lang/json/TOOL_from_json.py +msgid "hydrogen tank" +msgid_plural "hydrogen tanks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for hydrogen tank #: lang/json/TOOL_from_json.py msgid "" "This is a tank of compressed hydrogen gas. If you need to make water from " @@ -63966,6 +64287,12 @@ msgstr "" "Benutze das Nähzeug auf einen Bekleidungsartikel, um zu versuchen, es zu " "reparieren oder zu verstärken. Das benutzt deine Schneiderei-Fertigkeit." +#: lang/json/TOOL_from_json.py +msgid "anesthesia kit" +msgid_plural "anesthesia kits" +msgstr[0] "" +msgstr[1] "" + #: lang/json/TOOL_from_json.py msgid "shaving kit" msgid_plural "shaving kits" @@ -69674,6 +70001,10 @@ msgstr ".357 SIG" msgid "9x18mm" msgstr "9×18mm" +#: lang/json/ammunition_type_from_json.py +msgid ".380 ACP" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid ".38" msgstr ".38" @@ -70675,6 +71006,18 @@ msgstr "" msgid "Railgun" msgstr "Schienengewehr" +#. ~ Description for Railgun +#: lang/json/bionic_from_json.py +msgid "" +"EM field generators in your arms double the range and damage of thrown iron " +"and steel objects at a cost of 1 power per throw, causing them to leave a " +"trail of electricity that can cause additional damage." +msgstr "" +"Elektromagnetische Feldgeneratoren in deinen Armen verdoppeln die Reichweite" +" und den Schaden geworfener Eisen- und Stahlobjekte auf Kosten von 1 Strom " +"pro Wurf. Die geworfenen Gegenstände hinterlassen eine Elektrizitätsspur, " +"welche zusätzlichen Schaden anrichten kann." + #: lang/json/bionic_from_json.py msgid "Fingertip Razors" msgstr "Fingerspitzenklingen" @@ -71827,6 +72170,14 @@ msgstr "" msgid "Build River Dock/Shallow Bridge" msgstr "" +#: lang/json/construction_from_json.py +msgid "Place Water Mill" +msgstr "" + +#: lang/json/construction_from_json.py +msgid "Place Wind Mill" +msgstr "" + #: lang/json/construction_from_json.py msgid "Build Shallow Temporary Bridge" msgstr "" @@ -77514,6 +77865,40 @@ msgstr "" "kann. Es kann demontiert und für einen leichten Transport zusammengeklappt " "werden." +#. ~ Description for wind mill +#: lang/json/furniture_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "active wind mill" +msgstr "" + +#. ~ Description for active wind mill +#: lang/json/furniture_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour. Its" +" brake has been removed and it is turning." +msgstr "" + +#. ~ Description for water mill +#: lang/json/furniture_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "active water mill" +msgstr "" + +#. ~ Description for active water mill +#: lang/json/furniture_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour. " +"Its brake has been removed and it is turning." +msgstr "" + #. ~ Description for tourist table #: lang/json/furniture_from_json.py msgid "Small metal folding table, ideal for off-road trips into the wild." @@ -78627,7 +79012,8 @@ msgstr "" "Wiederverwendung intakt zu bleiben." #: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py src/item.cpp +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "pistol" msgstr "Pistole" @@ -79134,6 +79520,12 @@ msgid_plural "base pistols" msgstr[0] "einfache Pistole" msgstr[1] "einfache Pistolen" +#: lang/json/gun_from_json.py +msgid "backup pistol" +msgid_plural "backup pistols" +msgstr[0] "" +msgstr[1] "" + #: lang/json/gun_from_json.py src/item_factory.cpp msgid "revolver" msgid_plural "revolvers" @@ -79386,6 +79778,21 @@ msgstr[1] "S&W 22A" msgid "A popular .22 pistol." msgstr "Eine beliebte .22-Pistole." +#: lang/json/gun_from_json.py +msgid "Jennings J-22" +msgid_plural "Jennings J-22s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of the quintessential 'saturday night specials', the Jennings J-22 was " +"very affordably priced with its injection molded zinc slide and frame. " +"Intended to fill the void left after small pocket pistols were banned from " +"import, these were more commonly used by criminals unfazed by their glaring " +"safety issues." +msgstr "" + #: lang/json/gun_from_json.py msgid "Remington ACR" msgid_plural "Remington ACRs" @@ -80140,6 +80547,19 @@ msgstr "" "nicht Bond, aber du wirst diese kleine Feuerwaffe vielleicht trotzdem " "nützlich finden." +#: lang/json/gun_from_json.py +msgid "Kel-Tec P32" +msgid_plural "Kel-Tec P32s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of Kel-tec's oldest designs, the P32 is a popular option for deep " +"concealment and backup usage. Despite its extreme light weight and small " +"size, its .32 ACP chambering makes for good handling and recoil control." +msgstr "" + #: lang/json/gun_from_json.py msgid "SIG P226" msgid_plural "SIG P226s" @@ -80246,6 +80666,63 @@ msgstr "" "Eine beliebte .38-Pistole. Sie wurde mit zahlreichen Sicherheitsfunktionen " "entworfen und von hochqualitativen langlebigen Materialen gebaut." +#: lang/json/gun_from_json.py +msgid "MAC-11" +msgid_plural "MAC-11s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A lesser known variant of the MAC-10, this machine pistol is chambered in " +".380 ACP for a smaller overall size while remaining inherently subsonic. " +"Smaller in almost every dimension, this inexpensive automatic weapon was " +"declared 'fit only for combat in a phone booth' due to its low weight and " +"absurd fire rate ranging from 1200 to 1400 rounds per minute." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Kel-Tec P3AT" +msgid_plural "Kel-Tec P3ATs" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"Essentially a slightly scaled up Kel-tec P32 in .380 ACP, the ever popular " +"P3AT offers better ballistics in a small, concealable lightweight package. " +"Handling leaves something to be desired due to snappier recoil and " +"diminuitive controls." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "FN 1910 .380" +msgid_plural "FN 1910 .380s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"Made infamous in Sarajevo in 1914, the FN1910 was a popular pocket pistol, " +"albeit in .32 ACP. Collectors value the .380 model for its notoriety and " +"more modern terminal performance. If such a humble firearm could start a " +"world war, could it perhaps protect you from the undead?" +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Ruger LCP" +msgid_plural "Ruger LCPs" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of the best selling modern day 'pocket pistol's, the LCP is an " +"affordable, polymer framed pistol chambered in .380 ACP. Despite the " +"round's relatively low power, the pistol's low weight and short sight radius" +" make for a moderately poor handling pistol." +msgstr "" + #: lang/json/gun_from_json.py msgid "Glock 22" msgid_plural "Glock 22" @@ -81597,6 +82074,20 @@ msgstr "" "Die Glock 17 ist für alle Schützen gemacht und wurde an Vollzugsbehörden und" " Militärs vermarktet." +#: lang/json/gun_from_json.py +msgid "Kel-Tec PF-9" +msgid_plural "Kel-Tec PF-9s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"The Kel-Tec PF-9 remains one of the most popular backup pistols due to its " +"history of reliability, affordability, and concealability. Chambered in " +"9x19mm, recoil is best described as unpleasant, and follow up shots are " +"difficult to place quickly." +msgstr "" + #: lang/json/gun_from_json.py msgid "Makarov PM" msgid_plural "Makarov PMs" @@ -84766,6 +85257,51 @@ msgctxt "gun_type_type" msgid "crossbow" msgstr "Armbrust" +#: lang/json/gunmod_from_json.py +msgid "belt clip" +msgid_plural "belt clips" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a belt clip that attaches to the grip or slide of a pistol so as to " +"facilitate 'Mexican carry', the practice of carrying without a holster. It " +"does not offer any protection for the trigger, so users are strongly advised" +" to carry with the chamber empty or select a firearm with a very heavy " +"trigger pull." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "rugerlcp" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kp32" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kp3at" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kpf9" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "cop_38" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "moss_brownie" +msgstr "" + #: lang/json/gunmod_from_json.py msgid "shortened barrel" msgid_plural "shortened barrels" @@ -85549,6 +86085,19 @@ msgstr "" "Verwendung aufgeklappt werden. Erhöht die benötigte Zeit, um sich mit der " "Waffe zu bewaffnen." +#: lang/json/gunmod_from_json.py +msgid "folding wire stock" +msgid_plural "folding wire stocks" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"A folding wire stock which folds up very compactly but needs unfolding " +"before use. It's somewhat wobbly but is better than nothing at all. " +"Increases the time needed to wield the weapon." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "pistol stock" msgid_plural "pistol stocks" @@ -89141,24 +89690,16 @@ msgstr "Du kannst hier Gegenstände einlagern." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"You can 'e'xamine the tile or attempt to pick-up items (default ',') to " -"access the controls, or use the vehicle control key (default '^')." +"You can 'e'xamine the tile to access the controls, or use the vehicle " +"control key (default '^')." msgstr "" -"Du kannst das Feld unt'e'rsuchen, oder versuchen, Gegenstände aufzuheben " -"(Standard: »,«), um auf die Steuerung zugreifen zu können, oder die Taste " -"für Fahrzeugsteuerung drücken (Standard: »^«)." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"With a seat or saddle, you drive from here. You can 'e'xamine the tile or " -"attempt to pick-up items (default ',') to access the controls, or use the " -"vehicle control key (default '^')." +"With a seat or saddle, you drive from here. You can 'e'xamine the tile to " +"access the controls, or use the vehicle control key (default '^')." msgstr "" -"Mit einem Sitz oder Sattel kannst du von hier aus fahren. Du kannst das Feld" -" unt'e'rsuchen, oder versuchen, Gegenstände aufzuheben (Standard: »,«), um " -"auf die Steuerung zugreifen zu können, oder die Taste für Fahrzeugsteuerung " -"drücken (Standard: »^«)." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -90150,6 +90691,10 @@ msgstr "Schlafen" msgid "Control Vehicle" msgstr "Fahrzeug steuern" +#: lang/json/keybinding_from_json.py +msgid "Toggle Auto Travel Mode" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Toggle Safe Mode" msgstr "Sicherheitsmodus umschalten" @@ -90343,7 +90888,23 @@ msgid "Active World Mods" msgstr "Aktive Welt-Mods" #: lang/json/keybinding_from_json.py -msgid "Toggle move mode (run/walk/crouch)" +msgid "Cycle move mode (run/walk/crouch)" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Reset Movement to Walk" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Run" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Crouch" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Movement Mode Menu" msgstr "" #: lang/json/keybinding_from_json.py src/game_inventory.cpp @@ -98523,6 +99084,17 @@ msgstr "" "Dein Gehör ist überdurchschnttlich gut und du kannst fernere Geräusche " "leichter hören." +#: lang/json/mutation_from_json.py +msgid "Fey Hearing" +msgstr "" + +#. ~ Description for Fey Hearing +#: lang/json/mutation_from_json.py +msgid "" +"Your not sure the shape of your ears are helping, but regardless you have " +"become very sensitive to sounds." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Outdoorsman" msgstr "Frischluftfanatiker" @@ -100780,6 +101352,17 @@ msgstr "" "Wo früher deine Kopfhaut war, fängst du an, zu blühen. Deine Blüten haben " "ein angenehmes Aroma, sind sichtlich beeindruckend und ziemlich empfindlich." +#: lang/json/mutation_from_json.py +msgid "Rosebuds" +msgstr "" + +#. ~ Description for Rosebuds +#: lang/json/mutation_from_json.py +msgid "" +"The top of your head is blooming with rosebuds. They're eye catching, and " +"have a strong fragrance that makes you pleasant to be around." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Mycus Spores" msgstr "Mykussporen" @@ -103633,6 +104216,17 @@ msgstr "" msgid "You detach a vine from your body." msgstr "Du trennst eine Liane von deinem Körper." +#: lang/json/mutation_from_json.py +msgid "Hair Roots" +msgstr "" + +#. ~ Description for Hair Roots +#: lang/json/mutation_from_json.py +msgid "" +"Roots have started growing from your leaf like hair, they don't seem to do " +"much." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Toe Roots" msgstr "Zehenwurzeln" @@ -106751,10 +107345,18 @@ msgstr "Tankstelle" msgid "pharmacy" msgstr "Apotheke" +#: lang/json/overmap_terrain_from_json.py +msgid "pharmacy roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "doctor's office" msgstr "Arztpraxis" +#: lang/json/overmap_terrain_from_json.py +msgid "doctor's office roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "office" msgstr "Büro" @@ -106861,6 +107463,10 @@ msgstr "" msgid "butcher shop" msgstr "Metzger" +#: lang/json/overmap_terrain_from_json.py +msgid "butcher shop roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "bike shop" msgstr "Fahrradladen" @@ -107065,10 +107671,22 @@ msgstr "Sex-Shop" msgid "internet cafe" msgstr "Internet Cafe" +#: lang/json/overmap_terrain_from_json.py +msgid "internet cafe roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "car showroom" msgstr "Autohaus" +#: lang/json/overmap_terrain_from_json.py +msgid "car showroom 2nd floor" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "car showroom roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "car dealership" msgstr "Autohändler" @@ -107097,6 +107715,10 @@ msgstr "Radiostation" msgid "gardening allotment" msgstr "Kleingarten" +#: lang/json/overmap_terrain_from_json.py +msgid "gardening allotment roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "animal pound" msgstr "Tierasyl" @@ -115195,7 +115817,7 @@ msgid "" msgstr "" #: lang/json/recipe_from_json.py -msgid "We need to add a console to control the radio tower." +msgid "We need to build a console to control the radio tower." msgstr "" #: lang/json/recipe_from_json.py @@ -126596,6 +127218,78 @@ msgstr "" msgid "Can do." msgstr "" +#: lang/json/snippet_from_json.py +msgid "Whew... smells like skunk!" +msgstr "Ieeh! Das riecht wie Stinktier!" + +#: lang/json/snippet_from_json.py +msgid "Man, that smells like some good shit!" +msgstr "Mann, das riecht wie echt gutes Zeug!" + +#: lang/json/snippet_from_json.py +msgid "Hey, don't bogart the joint!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "C'mon, , I can smell it, pass it over." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Wow, that smell takes me back." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Ah, man. Good times, good times. Love that scent." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "What do I smell? Well, I guess it's legal now." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Mmm, that weed smells good." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Man, I can smell the weed, can I have some?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Are you sure it's a good idea to smoke that now?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I don't know... should you really be smoking that stuff?" +msgstr "Ich weiß nicht … solltest du dieses Zeug wirklich rauchen?" + +#: lang/json/snippet_from_json.py +msgid ", that's going to ruin your nose." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Man, that stinks. Put it out!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "You're going to kill yourself smoking that stuff, ." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Oh, wow, that smell... Can I have some?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Ew, smells like burning rubber!" +msgstr "Ieh, das riecht wie verbranntes Gummi!" + +#: lang/json/snippet_from_json.py +msgid "Ugh, that smells rancid!" +msgstr "Pfui, das riecht widerlich!" + +#: lang/json/snippet_from_json.py +msgid "" +msgstr "" + #: lang/json/snippet_from_json.py msgid "Tell me about how you survived the cataclysm." msgstr "Erzähl mir, wie du die Katastrophe überlebt hast." @@ -127576,6 +128270,10 @@ msgstr "" msgid "\"Hello?\"" msgstr "»Hallo?«" +#: lang/json/speech_from_json.py +msgid "\"Papaya!\"" +msgstr "" + #: lang/json/speech_from_json.py msgid "\"Who's there?\"" msgstr "»Wer ist da?«" @@ -130179,8 +130877,8 @@ msgstr "Bekleidungsgeschäft" #: lang/json/talk_topic_from_json.py msgid "" -"I'm my own person, but I'm willing to follow your lead. I can do a lot of things for you: I can fight, I can train you or you can train me, I can carry stuff, I can bandage your wounds, I can build faction camps, I can go places, I can guard things, I can even chit-chat with you or talk about my background. You can give me instructions in conversation or by radio or shout commands at me. \n" -"What do you want to know more about?" +"I'm my own person, but I'm willing to follow your lead. I can do a lot of things for you: I can fight, I can train you or you can train me, I can carry stuff, I can bandage your wounds, I can build faction camps, I can go places, I can guard things, I can even chit-chat with you or talk about my background. You can give me instructions in conversation or by radio or shout commands at me.\n" +" What do you want to know more about?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -130241,8 +130939,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If we're next to each other, you can just bump into me and we'll start talking, right? But if I'm farther away, you're going to have to shout a bit (use the 'C'hat command) for me to hear you. You'll need to see me for us to have a conversation. Or we can talk by radios if we both have them. \n" -"When we talk, you can give me instructions about how to fight or when to sleep or whatever. I'll mostly do them, and you can ask me what my current instructions are. Sometimes you'll give me two sets of instructions: a normal set, and an override for a specific situation. I'll tell you which instructions are overriden. You can set and clear overrides with shouted commands." +"If we're next to each other, you can just bump into me and we'll start talking, right? But if I'm farther away, you're going to have to shout a bit (use the 'C'hat command) for me to hear you. You'll need to see me for us to have a conversation. Or we can talk by radios if we both have them.\n" +" When we talk, you can give me instructions about how to fight or when to sleep or whatever. I'll mostly do them, and you can ask me what my current instructions are. Sometimes you'll give me two sets of instructions: a normal set, and an override for a specific situation. I'll tell you which instructions are overriden. You can set and clear overrides with shouted commands." msgstr "" #: lang/json/talk_topic_from_json.py @@ -130256,8 +130954,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Sometimes you need to give orders in a hurry. You can use the 'C'hat command to shout a single specific order. If I hear you, I'll do what you say, as will anyone else following you that hears it. \n" -"Some orders will override other instructions you've given me. If you change my instructions when I've got an override command, I'll tell you which ones are overridden. You can shout an order to clear any overrides." +"Sometimes you need to give orders in a hurry. You can use the 'C'hat command to shout a single specific order. If I hear you, I'll do what you say, as will anyone else following you that hears it.\n" +" Some orders will override other instructions you've given me. If you change my instructions when I've got an override command, I'll tell you which ones are overridden. You can shout an order to clear any overrides, or talk to me and tell me to clear them." msgstr "" #: lang/json/talk_topic_from_json.py @@ -130266,72 +130964,75 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"It's a dangerous world out there, right? So we fight to survive. I'm on your side, and I'll stick with you, but if I think the situation is too dangerous, I'll be honest, I'm going to run. If I see you running but I think it's safe, I'll stay and fight, but you can tell me run with you and I'll stick by you as best I can. \n" -"You can give me some instructions on when I should attack, but I'll make my own decisions about who - I'll try to defend myself and you, though, but if you tell me to stay in one place I'll stay there. \n" -"I'll use guns and grenades if I have them, but you can tell me to not use grenades or not use loud weapons or to not use ranged weapons at all. If I'm shooting, you can tell me how much to aim and whether to try to avoid shooting you or not. \n" -"I'll respect your rules for what types of weapons to use, but I'll choose what to use from my stuff. \n" -"You can also tell me to hold the line and fight at chokepoints, but I'm not great at recognizing them so I may go off to fight something elsewhere anyway." +"It's a dangerous world out there, right? So we fight to survive. I'm on your side, and I'll stick with you, but if I think the situation is too dangerous, I'll be honest, I'm going to run.\n" +" You can't tell me not to run, because I'm going to flee if things are bad, but you can tell me a safe place to retreat by using the zones manager (keybind 'Y'). I'll run toward the closest place you've designated - and you can set zones on vehicles, so if you've got a car, you could tell me to retreat there.\n" +" If I see you running but I think it's safe, I'll stay and fight, but you can tell me run with you and I'll stick by you as best I can.\n" +" You can give me some instructions on when I should attack, but I'll make my own decisions about who - I'll try to defend myself and you, but if you tell me to stay in one place I'll stay there.\n" +" I'll use guns and grenades if I have them, but you can tell me to not use grenades or not use loud weapons or to not use ranged weapons at all. If I'm shooting, you can tell me how much to aim and whether to try to avoid shooting you or not. I'm not so good at recognizing safe shots, so stay out of my line of fire no matter what.\n" +" I'll respect your rules for what types of weapons to use, but I'll choose what to use from my stuff.\n" +" You can also tell me to hold the line and fight at chokepoints, but I'm not great at recognizing them so I may go off to fight something elsewhere anyway." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If I'm better at a skill than you, I can help you improve. But it's boring to teach a lot, so I'm not going to do it very often. And I'm not going to do it when we're in danger or if I'm hungry or tired or if you're driving. \n" -"If we're someplace safe and you're reading a book that improves skills, I'll listen if I don't have that skill. You can even read me books for skills that you already have." +"If I'm better at a skill than you, I can help you improve. But it's boring to teach a lot, so I'm not going to do it very often. And I'm not going to do it when we're in danger or if I'm hungry or tired or if you're driving.\n" +" If we're someplace safe and you're reading a book that improves skills, I'll listen if I don't have that skill. You can even read me books for skills that you already have." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"You give me something to carry, I'll carry it. But I only have so many pockets and I'm only so strong, so I'll drop stuff that's too big to carry. \n" -"I'll also wear stuff - I'll decide what I want to wear, but you can take stuff from me. If I'm wearing something I shouldn't, you can bump into me and sort my armor to get me to take if off. \n" -"I don't like wearing a lot of gear, so if you give me a lot of bulky stuff and things that don't fit, I'm going to take them off and probably drop them. \n" -"Also, since we're friends, I'll give you anything I'm carrying, no questions asked. \n" -"Oh, yeah, if I'm hungry or thirsty and I'm carrying food, I'll eat it. So you might want to watch what you give me, y'know?" +"You give me something to carry, I'll carry it. But I only have so many pockets and I'm only so strong, so I'll drop stuff that's too big to carry.\n" +" I'll also wear stuff - I'll decide what I want to wear, but you can take stuff from me. If I'm wearing something I shouldn't, you can bump into me and sort my armor to get me to take if off.\n" +" I don't like wearing a lot of gear, so if you give me a lot of bulky stuff and things that don't fit, I'm going to take them off and probably drop them.\n" +" Also, since we're friends, I'll give you anything I'm carrying, no questions asked.\n" +" Oh, yeah, if I'm hungry or thirsty and I'm carrying food, I'll eat it. So you might want to watch what you give me, y'know?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If you call me by radio, you can tell me to come to you. If you've got some basecamps set up, you can tell me to go to one of them. I'll start walking, and when I get to where I'm going, I'll guard it. \n" -"Now depending on where I am and where I'm going, it may take me a while to get there. I'll dodge any dangers on the way, don't worry about that, but if you're way the heck away from me and tell me to come, it may be a while until I get to you." +"If you call me by radio, you can tell me to come to you. If you've got some basecamps set up, you can tell me to go to one of them. I'll start walking, and when I get to where I'm going, I'll guard it.\n" +" Now depending on where I am and where I'm going, it may take me a while to get there. I'll dodge any dangers on the way, don't worry about that, but if you're way the heck away from me and tell me to come, it may be a while until I get to you." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"You tell me to guard, I'll stay where I am and guard it - unless I'm in a vehicle, in which case I'll stick with the vehicle. \n" -"I'm not a potted plant, though, so if I hear something dangerous happening, I'm going to go see what it is instead of getting jumped in the dark. If you want me to stay put, tell me not to investigate noises - but if I get shot by some bandit because I can't see where he is and you don't want me to go looking, I won't be happy." +"You tell me to guard, I'll stay where I am and guard it - unless I'm in a vehicle, in which case I'll stick with the vehicle.\n" +" I'm not a potted plant, though, so if I hear something dangerous happening, I'm going to go see what it is instead of getting jumped in the dark. If you want me to stay put, tell me not to investigate noises - but if I get shot by some bandit because I can't see where he is and you don't want me to go looking, I won't be happy.\n" +" You can also use the zone manager (keybind 'Y') to set up no-investigate zone, so if there's some monsters behind a door that you know about, I can ignore them. You can also set on an investigate-only zone, and I won't investigate noises coming from outside the zone. The no-investigate zone takes precedence over the investigate-only, if there's a noise coming from some place in both zones. And if you've got an investigate-only zone set anywhere, even if it's far away, I won't investigate noises coming from outside of it, so be careful with those zones. Like I said, I don't want to get sniped by some bandit because you told me not to go looking for him - but I also don't want to go investigate something pounding at door only to find out it's some horrible monster you forgot to warn me about." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Just in case - how do I tell you to stay put?" +msgid "Just in case - how else can I tell you to stay put?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"We can chit-chat, if you want. People are social animals, right? A little light conversation can do wonders for your mood. But I don't want to be yapping all the time, so if we've chatted recently, I probably am not going to want to talk for a bit. \n" -"You can also ask me about my background. I may not want to talk about it, though." +"We can chit-chat, if you want. People are social animals, right? A little light conversation can do wonders for your mood. But I don't want to be yapping all the time, so if we've chatted recently, I probably am not going to want to talk for a bit.\n" +" You can also ask me about my background. I may not want to talk about it, though." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"You can give me a bunch of instructions. Talk to me about the miscellaneous rules, and I'll tell you what I'm doing and you can give a new instruction. Sometimes you'll have shouted a command that overrides your other instructions, and I'll tell you which instructions are overridden. \n" -"I'm not a chatterbox, but I'll tell you when I see or hear danger or if I'm hurt or hungry or something. You don't want me doing that, you just tell me. \n" -"Also, I'll pulp zombies if you'd like - I would prefer that. \n" -"If I hear something suspicious and can't see if, I'll go take a look, but you can tell me not to do that. \n" -" I'll open and close doors, or open them and leave them ajar, or not going through closed doors. You just tell me what you want. \n" -"I can pick stuff up if want me to, and you can tell me what to pick up. If I've got a bow or crossbow, please tell me to pick up the ammo - it's less fuss for both of us. \n" -"If you've got a vehicle, you can e'x'amine it and use the cre'w' command to assign me a seat. That saves arguments about who needs to sit where." +"You can give me a bunch of instructions. Talk to me about the miscellaneous rules, and I'll tell you what I'm doing and you can give a new instruction. Sometimes you'll have shouted a command that overrides your other instructions, and I'll tell you which instructions are overridden.\n" +" I'm not a chatterbox, but I'll tell you when I see or hear danger or if I'm hurt or hungry or something. You don't want me doing that, you just tell me.\n" +" Also, I'll pulp zombies if you'd like - I would prefer that.\n" +" If I hear something suspicious and can't see if, I'll go take a look, but you can tell me not to do that.\n" +" I'll open and close doors, or open them and leave them ajar, or not going through closed doors. You just tell me what you want.\n" +" I can pick stuff up if want me to, and you can tell me what to pick up. If I've got a bow or crossbow, please tell me to pick up the ammo - it's less fuss for both of us.\n" +" If you've got a vehicle, you can e'x'amine it and use the cre'w' command to assign me a seat. That saves arguments about who needs to sit where." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Here's the list of shouted commands I'll respond to: \n" -"Order me to guard, and I'll stay where I am and watch out for danger. I'll investigate suspicious noises unless you told me not to. \n" -"Order me to follow, and I'll stop guarding and go back to following you. \n" -"Order me to stay awake, and I'll stay awake until I'm too tired to keep my eyes open. \n" -"Order me to sleep when tired, and I'll nap when I get tired. I'll try to tell you when I'm off to bed unless you don't want to hear it. \n" -"Order me to flee, and I'll stick close to you when you run from danger. I won't go running off on my own - though if things really bad, I might be running away already! \n" -"Order me to stop running, and I'll evaluate the danger myself and might go off and fight something while you're doing other things. \n" -"Ordering me to prepare for danger is special: it's an override command. That means I'm going to follow certain instructions, even if you've given me other instructions earlier. Specifically, I'm going to flee with you, I'm not going to open or close doors, I'm not going to sleep until I'm exhausted, and I'm going to try to hold any chokepoints that you're fighting at. \n" -"Ordering me to relax from danger is another special command, and it will clear any overrides I currently have and I'll go back to whatever instructions I had before you told me to prepare for danger." +"Here's the list of shouted commands I'll respond to:\n" +" - Order me to guard, and I'll stay where I am and watch out for danger. I'll investigate suspicious noises unless you told me not to.\n" +" - Order me to follow, and I'll stop guarding and go back to following you.\n" +" - Order me to stay awake, and I'll stay awake until I'm too tired to keep my eyes open.\n" +" - Order me to sleep when tired, and I'll nap when I get tired. I'll try to tell you when I'm off to bed unless you don't want to hear it.\n" +" - Order me to flee, and I'll stick close to you when you run from danger. I won't go running off on my own - though if things really bad, I might be running away already!\n" +" - Order me to stop running, and I'll evaluate the danger myself and might go off and fight something while you're doing other things.\n" +" - Ordering me to prepare for danger is special: it's an override command. That means I'm going to follow certain instructions, even if you've given me other instructions earlier. Specifically, I'm going to flee with you, I'm not going to open or close doors, I'm not going to sleep until I'm exhausted, and I'm going to try to hold any chokepoints that you're fighting at.\n" +" - Ordering me to relax from danger is another special command, and it will clear any overrides I currently have and I'll go back to whatever instructions I had before you told me to prepare for danger." msgstr "" #: lang/json/talk_topic_from_json.py @@ -130616,6 +131317,10 @@ msgstr "Aufwachen!" msgid "Go back to sleep." msgstr "Leg dich wieder schlafen." +#: lang/json/talk_topic_from_json.py +msgid "What is it, friend?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Combat commands..." msgstr "Kampfbefehle…" @@ -130625,24 +131330,20 @@ msgid "Can you teach me anything?" msgstr "Kannst du mir irgendetwas beibringen?" #: lang/json/talk_topic_from_json.py -msgid "Let's trade items" -msgstr "Lass uns handeln." - -#: lang/json/talk_topic_from_json.py -msgid "Guard this position" -msgstr "Bewach diese Position!" +msgid "Guard this position." +msgstr "Bewach diese Position." #: lang/json/talk_topic_from_json.py msgid "I'd like to know a bit more about you..." msgstr "Ich würde gerne etwas mehr über dich erfahren…" #: lang/json/talk_topic_from_json.py -msgid "I want you to use this item" -msgstr "Ich möchte, dass du diesen Gegenstand benutzt" +msgid "I want you to use this item." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hold on to this item" -msgstr "Behalte diesen Gegenstand" +msgid "Hold on to this item." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Miscellaneous rules..." @@ -130774,10 +131475,6 @@ msgstr "Ja, ich bin mir sicher. Tschüss." msgid "Nah, I'm just kidding." msgstr "Ach was, ich mach nur Scherze." -#: lang/json/talk_topic_from_json.py -msgid "*pshhhttt* I'm reading you boss, over." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Stay at your current position." msgstr "" @@ -131251,7 +131948,7 @@ msgstr "In Ordnung, los geht’s!" msgid "Yeah... I don't think so." msgstr "Hmm … Ich glaube nicht." -#: lang/json/talk_topic_from_json.py src/npctalk.cpp +#: lang/json/talk_topic_from_json.py msgid "What is it?" msgstr "Was gibt’s?" @@ -131431,6 +132128,28 @@ msgstr "Okay. Tschüss." msgid "Okay" msgstr "Okay." +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm willing to pay per batch for a total of " +"." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Works for me." +msgstr "Geht klar!" + +#: lang/json/talk_topic_from_json.py +msgid "Maybe later." +msgstr "Vielleicht später." + +#: lang/json/talk_topic_from_json.py +msgid "Pleasure doing business!" +msgstr "Es war mir ein Vergnügen, Geschäfte zu machen!" + +#: lang/json/talk_topic_from_json.py +msgid "You might be seeing more of me..." +msgstr "Du könntest mich eventuell öfters sehen …" + #: lang/json/talk_topic_from_json.py msgid "Hey again. *kzzz*" msgstr "" @@ -132419,10 +133138,6 @@ msgstr "Was muss getan werden?" msgid "Yes, set up the bulletin board and then go back to normal duties." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Hope you're here to trade." -msgstr "Hoffentlich bist du hier zum Handeln." - #: lang/json/talk_topic_from_json.py msgid "" "I oversee the food stocks for the center. There was significant looting " @@ -132481,6 +133196,14 @@ msgstr "" msgid "Interesting..." msgstr "Interessant…" +#: lang/json/talk_topic_from_json.py +msgid "Hope you're here to trade." +msgstr "Hoffentlich bist du hier zum Handeln." + +#: lang/json/talk_topic_from_json.py +msgid "Who are you?" +msgstr "Wer bist du?" + #: lang/json/talk_topic_from_json.py msgid "Mind if we just chat for a bit?" msgstr "Ist es okay wenn wir eine Weile nur plaudern?" @@ -132759,10 +133482,6 @@ msgstr "Marshal…" msgid "Citizen..." msgstr "Bürger…" -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Who are you?" -msgstr "Wer bist du?" - #: lang/json/talk_topic_from_json.py msgid "Is there any way I can join the 'Old Guard'?" msgstr "" @@ -133406,10 +134125,6 @@ msgstr "[2.000 $, 1d] 10 Holzscheite" msgid "[$12000, 7d] 100 logs" msgstr "[12.000 $, 7d] 100 Holzscheite" -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Maybe later." -msgstr "Vielleicht später." - #: lang/json/talk_topic_from_json.py msgid "I'll be back later." msgstr "Ich komme später wieder." @@ -144868,6 +145583,10 @@ msgstr "Feinschnitt" msgid "glare protection" msgstr "Blendschutz" +#: lang/json/tool_quality_from_json.py +msgid "anesthesia" +msgstr "" + #: lang/json/tool_quality_from_json.py msgid "smoothing" msgstr "Glättungs" @@ -146152,10 +146871,6 @@ msgstr "Ein Gang." msgid "wooden aisle" msgstr "Holzgang" -#: lang/json/vehicle_part_from_json.py -msgid "floor trunk" -msgstr "Bodenklappe" - #. ~ Description for floor trunk #: lang/json/vehicle_part_from_json.py msgid "An aisle. A hatch lets you access a cargo space beneath it." @@ -146968,15 +147683,9 @@ msgstr "" msgid "" "A sophisticated set of electronic controls that allow you to control the " "vehicle from a vehicle remote while you are not in it. You can 'e'xamine " -"the tile or attempt to pick-up items (default ',') to access the controls, " -"or use the vehicle control key (default '^')." +"the tile to access the controls, or use the vehicle control key (default " +"'^')." msgstr "" -"Eine ausgeklügelte Reihe an elektronischen Steuerungen, welche es dir " -"ermöglichen, das Fahrzeug von einer Fahrzeugfernbedienung zu steuern, " -"während du dich nicht in ihm befindest. Du kannst das Feld unt'e'rsuchen, " -"oder versuchen, Gegenstände aufzuheben (Standard: »,«), um auf die Steuerung" -" zugreifen zu können, oder die Taste für Fahrzeugsteuerung drücken " -"(Standard: »^«)." #: lang/json/vehicle_part_from_json.py msgid "camera control system" @@ -146987,15 +147696,9 @@ msgstr "Kamerasteuerungssystem" msgid "" "An LCD display attached to one or more cameras. When turned on, it lets you" " see from the cameras, but drains power from the vehicle's batteries. You " -"can 'e'xamine the tile or attempt to pick-up items (default ',') to access " -"the controls, or use the vehicle control key (default '^')." +"can 'e'xamine the tile to access the controls, or use the vehicle control " +"key (default '^')." msgstr "" -"Eine LCD-Anzeige, die an einer oder mehreren Kameras befestigt wurde. Wenn " -"eingeschaltet, kannst du von den Kameras aus sehen, aber das verbraucht " -"Strom von den Fahrzeugbatterien. Du kannst das Feld unt'e'rsuchen, oder " -"versuchen, Gegenstände aufzuheben (Standard: »,«), um auf die Steuerung " -"zugreifen zu können, oder die Taste für Fahrzeugsteuerung drücken (Standard:" -" »^«)." #. ~ Description for security camera #: lang/json/vehicle_part_from_json.py @@ -147381,11 +148084,8 @@ msgstr "Ein Verbrennungsmotor. Verbrennt Treibstoff aus einem Fahrzeugtank." #: lang/json/vehicle_part_from_json.py msgid "" "A combustion engine. Burns diesel fuel from a tank in the vehicle. Can " -"also burn methanol, ethanol, or lamp oil, though somewhat less efficiently." +"also burn biodiesel or lamp oil, though somewhat less efficiently." msgstr "" -"Ein Verbrennungsmotor. Verbrennt Diesel aus einem Tank im Fahrzeug. Kann " -"alternativ auch Methanol, Ethanol oder Lampenöl verbrennen, allerdings mit " -"etwas geringerer Effizienz." #: lang/json/vehicle_part_from_json.py msgid "A combustion engine. Burns gasoline fuel from a tank in the vehicle." @@ -154338,6 +155038,34 @@ msgstr "Kein NPC-Aufheben" msgid "Friendly NPCs don't pickup items inside the zone." msgstr "Befreundete NPCs heben keine Gegenstände in dieser Zone auf." +#: src/clzones.cpp +msgid "NPC Retreat" +msgstr "" + +#: src/clzones.cpp +msgid "" +"When fleeing, friendly NPCs will attempt to retreat toward this zone if it " +"is within 60 tiles." +msgstr "" + +#: src/clzones.cpp +msgid "NPC Ignore Sounds" +msgstr "" + +#: src/clzones.cpp +msgid "Friendly NPCs won't investigate unseen sounds coming from this zone." +msgstr "" + +#: src/clzones.cpp +msgid "NPC Investigation Area" +msgstr "" + +#: src/clzones.cpp +msgid "" +"Friendly NPCs will investigate unseen sounds only if they come from inside " +"this area." +msgstr "" + #: src/clzones.cpp msgid "Loot: Unsorted" msgstr "Beute: Unsortiert" @@ -156742,11 +157470,6 @@ msgctxt "in progress craft" msgid " starts working on the %s." msgstr "" -#: src/crafting.cpp -#, c-format -msgid "%s helps with crafting..." -msgstr "%s hilft bei der Fertigung." - #: src/crafting.cpp #, c-format msgid "%s assists with crafting..." @@ -156762,6 +157485,11 @@ msgstr "%s könnte dir beim Anfertigen eines Stapels helfen." msgid "%s watches you craft..." msgstr "%s sieht dir bei der Fertigung zu." +#: src/crafting.cpp +#, c-format +msgid "%s helps with crafting..." +msgstr "%s hilft bei der Fertigung." + #: src/crafting.cpp #, c-format msgid "You fail to make the %s, and waste some materials." @@ -156787,6 +157515,17 @@ msgstr "Du fertigst »%s« mit Hilfe eines Buchs als Referenz an." msgid "You memorized the recipe for %s!" msgstr "Du hast dir das Rezept für %s nun eingeprägt." +#: src/crafting.cpp +#, c-format +msgid "You don't know the recipe for the %s and can't continue crafting." +msgstr "" + +#: src/crafting.cpp +#, c-format +msgid "" +" doesn't know the recipe for the %s and can't continue crafting." +msgstr "" + #: src/crafting.cpp #, c-format msgid "%s (%d/%d nearby)" @@ -157378,6 +158117,190 @@ msgstr "" "Drücke »C« (oder »c«), um diese " "Nachricht in die Zwischenablage zu kopieren." +#: src/debug_menu.cpp +msgid "Mutate" +msgstr "Mutieren" + +#: src/debug_menu.cpp +msgid "Change all skills" +msgstr "Alle Fertigkeiten verändern" + +#: src/debug_menu.cpp +msgid "Learn all melee styles" +msgstr "Alle Nahkampftechniken erlernen" + +#: src/debug_menu.cpp +msgid "Unlock all recipes" +msgstr "Alle Rezepte freischalten" + +#: src/debug_menu.cpp +msgid "Edit player/NPC" +msgstr "Spieler/NPC bearbeiten" + +#: src/debug_menu.cpp +msgid "Damage self" +msgstr "" + +#: src/debug_menu.cpp +msgid "Set automove route" +msgstr "Autobewegen-Route zeigen" + +#: src/debug_menu.cpp +msgid "Player..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Check game state" +msgstr "" + +#: src/debug_menu.cpp +msgid "Display hordes" +msgstr "Horden zeigen" + +#: src/debug_menu.cpp +msgid "Test item group" +msgstr "" + +#: src/debug_menu.cpp +msgid "Show sound clustering" +msgstr "" + +#: src/debug_menu.cpp +msgid "Display weather" +msgstr "Wetter anzeigen" + +#: src/debug_menu.cpp +msgid "Display overmap scents" +msgstr "Oberkartengerüche zeigen" + +#: src/debug_menu.cpp +msgid "Show mutation category levels" +msgstr "Mutationskategorienlevels zeigen" + +#: src/debug_menu.cpp +msgid "Draw benchmark (X seconds)" +msgstr "Benchmark zeichnen (X Sekunden)" + +#: src/debug_menu.cpp +msgid "Test trait group" +msgstr "Wesenszuggruppe testen" + +#: src/debug_menu.cpp +msgid "Show debug message" +msgstr "Debug-Nachricht anzeigen" + +#: src/debug_menu.cpp +msgid "Crash game (test crash handling)" +msgstr "Spiel-Absturz (Test-Absturz-Handhabung)" + +#: src/debug_menu.cpp +msgid "Toggle NPC pathfinding on map" +msgstr "" + +#: src/debug_menu.cpp +msgid "Info..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - short range" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - long range" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - adjacent overmap" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn an item" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn NPC" +msgstr "NPC erschaffen" + +#: src/debug_menu.cpp +msgid "Spawn monster" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn a vehicle" +msgstr "Ein Fahrzeug erschaffen" + +#: src/debug_menu.cpp +msgid "Spawn artifact" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn clairvoyance artifact" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawning..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Reveal map" +msgstr "Karte aufdecken" + +#: src/debug_menu.cpp +msgid "Kill NPCs" +msgstr "NPCs töten" + +#: src/debug_menu.cpp +msgid "Map editor" +msgstr "Karteneditor" + +#: src/debug_menu.cpp +msgid "Change weather" +msgstr "Wetter ändern" + +#: src/debug_menu.cpp +msgid "Change wind direction" +msgstr "" + +#: src/debug_menu.cpp +msgid "Change wind speed" +msgstr "" + +#: src/debug_menu.cpp +msgid "Kill all monsters" +msgstr "Alle Monster töten" + +#: src/debug_menu.cpp +msgid "Change time" +msgstr "Zeit ändern" + +#: src/debug_menu.cpp +msgid "Overmap editor" +msgstr "Oberkarten-Editor" + +#: src/debug_menu.cpp +msgid "Spawn map extra" +msgstr "" + +#: src/debug_menu.cpp +msgid "Map..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Quit to main menu" +msgstr "" + +#: src/debug_menu.cpp +msgid "" +"Debug Functions - Using these will cheat not only the game, but yourself.\n" +"You won't grow. You won't improve.\n" +"Taking this shortcut will gain you nothing. Your victory will be hollow.\n" +"Nothing will be risked and nothing will be gained." +msgstr "" + #: src/debug_menu.cpp #, c-format msgid "You teleport to point (%d,%d,%d)." @@ -157820,6 +158743,206 @@ msgstr "Mission ohne anständiges Aufräumen löschen" msgid "Drew %d times in %.3f seconds. (%.3f fps average)" msgstr "%d mal in %.3f Sekunden gezeichnet (FPS-Durchschnitt: %.3f)" +#: src/debug_menu.cpp +msgid "Current overmap revealed." +msgstr "Aktuelle Oberkarte aufgedeckt." + +#: src/debug_menu.cpp +#, c-format +msgid "Location %d:%d in %d:%d, %s\n" +msgstr "Ort: %d:%d in %d:%d, %s\n" + +#: src/debug_menu.cpp +#, c-format +msgid "" +"Current turn: %d.\n" +"%s\n" +msgstr "" +"Aktueller Zug: %d.\n" +"%s\n" + +#: src/debug_menu.cpp +#, c-format +msgid "%d creature exists.\n" +msgid_plural "%d creatures exist.\n" +msgstr[0] "%d Kreaturen existiert.\n" +msgstr[1] "%d Kreaturen existieren.\n" + +#: src/debug_menu.cpp +msgid "NPCs are going to spawn." +msgstr "NPCs tauchen in Kürze auf." + +#: src/debug_menu.cpp +msgid "NPCs are NOT going to spawn." +msgstr "NPCs tauchen in Kürze NICHT auf." + +#: src/debug_menu.cpp +#, c-format +msgid "%s: map ( %d:%d ) pos ( %d:%d )" +msgstr "%s: Karte (%d:%d) Pos. (%d:%d)" + +#: src/debug_menu.cpp +#, c-format +msgid "(you: %d:%d)" +msgstr "(du: %d:%d)" + +#: src/debug_menu.cpp +#, c-format +msgid "Stomach Contents: %d ml / %d ml kCal: %d, Water: %d ml" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "" +"Guts Contents: %d ml / %d ml kCal: %d, Water: %d ml\n" +"Hunger: %d, Thirst: %d, kCal: %d / %d" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "%s's head implodes!" +msgstr "Der Kopf von %s implodiert!" + +#: src/debug_menu.cpp +msgid "Choose vehicle to spawn" +msgstr "Von welchem Typ soll das Fahrzeug sein?" + +#. ~ Menu entry in vehicle wish menu: 1st string: displayed name, 2nd string: +#. internal name of vehicle +#: src/debug_menu.cpp +#, c-format +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + +#: src/debug_menu.cpp +msgid "Martial arts debug." +msgstr "Kampfkünste-Debug." + +#: src/debug_menu.cpp +msgid "Your eyes blink rapidly as knowledge floods your brain." +msgstr "" +"Deine Augen zwinkern sehr schnell, während das Wissen dein Hirn flutet." + +#: src/debug_menu.cpp +msgid "You now know a lot more than just 10 styles of kung fu." +msgstr "Nun beherrscht du deutlich mehr als nur 10 Kung-Fu-Techniken." + +#: src/debug_menu.cpp +msgid "Recipe debug." +msgstr "Rezept-Debug." + +#: src/debug_menu.cpp +msgid "You know how to craft that now." +msgstr "Nun weißt du, wie man es herstellt." + +#: src/debug_menu.cpp +msgid "Select new weather pattern:" +msgstr "Wähle ein neues Wettermuster:" + +#: src/debug_menu.cpp +msgid "Disable weather forcing" +msgstr "Wettererzwingung abschalten" + +#: src/debug_menu.cpp +msgid "Keep normal weather patterns" +msgstr "Normale Wettermuster behalten" + +#: src/debug_menu.cpp +msgid "Select new wind direction:" +msgstr "" + +#: src/debug_menu.cpp +msgid "Disable direction forcing" +msgstr "" + +#: src/debug_menu.cpp +msgid "Keep normal wind direction" +msgstr "" + +#: src/debug_menu.cpp +msgid "Select new wind speed:" +msgstr "" + +#: src/debug_menu.cpp +msgid "Disable speed forcing" +msgstr "" + +#: src/debug_menu.cpp +msgid "Keep normal wind speed" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "Damage self for how much? hp: %d" +msgstr "Dich selbst um wieviel verletzen? TP: %d" + +#: src/debug_menu.cpp +msgid "This binary was not compiled with tiles support." +msgstr "Dieses Programm wurde nicht mit Kachel-Unterstützung kompiliert." + +#: src/debug_menu.cpp +msgid "year" +msgstr "Jahr" + +#: src/debug_menu.cpp +msgid "season" +msgstr "Jahreszeit" + +#: src/debug_menu.cpp +msgid "day" +msgstr "Tag" + +#: src/debug_menu.cpp +msgid "hour" +msgstr "Stunde" + +#: src/debug_menu.cpp +msgid "minute" +msgstr "Minute" + +#: src/debug_menu.cpp src/martialarts.cpp src/martialarts.cpp +msgid "turn" +msgid_plural "turns" +msgstr[0] "Zug" +msgstr[1] "Züge" + +#: src/debug_menu.cpp +msgid "Set year to?" +msgstr "Welches Jahr?" + +#: src/debug_menu.cpp +msgid "Set season to? (0 = spring)" +msgstr "Welche Jahreszeit? (0 = Frühling)" + +#: src/debug_menu.cpp +msgid "Set days to?" +msgstr "Welcher Tag?" + +#: src/debug_menu.cpp +msgid "Set hour to?" +msgstr "Welche Stunde?" + +#: src/debug_menu.cpp +msgid "Set minute to?" +msgstr "Welche Minute?" + +#: src/debug_menu.cpp +#, c-format +msgid "Set turn to? (One day is %i turns)" +msgstr "Zug setzen auf? (Ein Tag entspricht %i Zügen)" + +#: src/debug_menu.cpp +msgid "Enter benchmark length (in milliseconds):" +msgstr "Benchmark-Länge eingeben (in Millisekunden):" + +#: src/debug_menu.cpp +msgid "" +"Quit without saving? This may cause issues such as duplicated or missing " +"items and vehicles!" +msgstr "" +"Beenden ohne Speichern? Das könnte zu Problemen führen, wie z.B. duplizierte" +" oder fehlende Gegenstände und Fahrzeuge!" + #: src/defense.cpp #, c-format msgid "Please wait as the map generates [ 0%% ]" @@ -159395,6 +160518,10 @@ msgstr "Folgend" msgid "Leading" msgstr "Führend" +#: src/faction.cpp +msgid "Patrolling" +msgstr "" + #: src/faction.cpp msgid "Guarding" msgstr "" @@ -160517,6 +161644,10 @@ msgstr "" msgid "Select an end point." msgstr "Wähle einen Endpunkt." +#: src/faction_camp.cpp +msgid "Spiked pits must be built over existing trenches!" +msgstr "" + #: src/faction_camp.cpp msgid "Invalid terrain in construction path." msgstr "Ungültiges Gelände im Baupfad." @@ -161072,14 +162203,6 @@ msgstr "Keine Gegenstände befinden sich am Abwurfpunkt …" msgid "You distribute %d kcal worth of food to your companions." msgstr "Du verteilst Nahrung mit insgesamt %d kcal an deine Begleiter." -#: src/faction_camp.cpp -msgid "Accessed camp inventory whilst position does not refer to a camp" -msgstr "" - -#: src/faction_camp.cpp -msgid "consume components for camp mission, but no camp found" -msgstr "" - #: src/faction_camp.cpp #, c-format msgid "While %s, a silent specter approaches %s..." @@ -161551,26 +162674,6 @@ msgstr "dickes Fungusgas" msgid "smoke vent" msgstr "Rauchventil" -#: src/field.cpp -msgid "Whew... smells like skunk!" -msgstr "Ieeh! Das riecht wie Stinktier!" - -#: src/field.cpp -msgid "Man, that smells like some good shit!" -msgstr "Mann, das riecht wie echt gutes Zeug!" - -#: src/field.cpp -msgid "I don't know... should you really be smoking that stuff?" -msgstr "Ich weiß nicht … solltest du dieses Zeug wirklich rauchen?" - -#: src/field.cpp -msgid "Ew, smells like burning rubber!" -msgstr "Ieh, das riecht wie verbranntes Gummi!" - -#: src/field.cpp -msgid "Ugh, that smells rancid!" -msgstr "Pfui, das riecht widerlich!" - #: src/field.cpp #, c-format msgid "A %s hits you!" @@ -162125,369 +163228,6 @@ msgstr "uistate-Daten" msgid "Failed to save game data" msgstr "Spieldaten konnten nicht gespeichert werden" -#: src/game.cpp -msgid "" -"Debug Functions - Using these will cheat not only the game, but yourself. You won't grow. You won't improve.\n" -"Taking this shortcut will gain you nothing. Your victory will be hollow.\n" -"Nothing will be risked and nothing will be gained." -msgstr "" - -#: src/game.cpp -msgid "Wish for an item" -msgstr "Gegenstand wünschen" - -#: src/game.cpp -msgid "Teleport - Short Range" -msgstr "Teleportation – kurze Entfernung" - -#: src/game.cpp -msgid "Teleport - Long Range" -msgstr "Teleportation – weite Entfernung" - -#: src/game.cpp -msgid "Reveal map" -msgstr "Karte aufdecken" - -#: src/game.cpp -msgid "Spawn NPC" -msgstr "NPC erschaffen" - -#: src/game.cpp -msgid "Spawn Monster" -msgstr "Monster erschaffen" - -#: src/game.cpp -msgid "Check game state..." -msgstr "Spielzustand überprüfen …" - -#: src/game.cpp -msgid "Kill NPCs" -msgstr "NPCs töten" - -#: src/game.cpp -msgid "Mutate" -msgstr "Mutieren" - -#: src/game.cpp -msgid "Spawn a vehicle" -msgstr "Ein Fahrzeug erschaffen" - -#: src/game.cpp -msgid "Change all skills" -msgstr "Alle Fertigkeiten verändern" - -#: src/game.cpp -msgid "Learn all melee styles" -msgstr "Alle Nahkampftechniken erlernen" - -#: src/game.cpp -msgid "Unlock all recipes" -msgstr "Alle Rezepte freischalten" - -#: src/game.cpp -msgid "Edit player/NPC" -msgstr "Spieler/NPC bearbeiten" - -#: src/game.cpp -msgid "Spawn Artifact" -msgstr "Artefakt erschaffen" - -#: src/game.cpp -msgid "Spawn Clairvoyance Artifact" -msgstr "Hellseherartefakt erschaffen" - -#: src/game.cpp -msgid "Map editor" -msgstr "Karteneditor" - -#: src/game.cpp -msgid "Change weather" -msgstr "Wetter ändern" - -#: src/game.cpp -msgid "Change wind direction" -msgstr "" - -#: src/game.cpp -msgid "Change wind speed" -msgstr "" - -#: src/game.cpp -msgid "Kill all monsters" -msgstr "Alle Monster töten" - -#: src/game.cpp -msgid "Display hordes" -msgstr "Horden zeigen" - -#: src/game.cpp -msgid "Test Item Group" -msgstr "Gegenstandsgruppen testen" - -#: src/game.cpp -msgid "Damage Self" -msgstr "Selbstschaden" - -#: src/game.cpp -msgid "Show Sound Clustering" -msgstr "Geräuschgruppierung zeigen" - -#: src/game.cpp -msgid "Display weather" -msgstr "Wetter anzeigen" - -#: src/game.cpp -msgid "Display overmap scents" -msgstr "Oberkartengerüche zeigen" - -#: src/game.cpp -msgid "Change time" -msgstr "Zeit ändern" - -#: src/game.cpp -msgid "Set automove route" -msgstr "Autobewegen-Route zeigen" - -#: src/game.cpp -msgid "Show mutation category levels" -msgstr "Mutationskategorienlevels zeigen" - -#: src/game.cpp -msgid "Overmap editor" -msgstr "Oberkarten-Editor" - -#: src/game.cpp -msgid "Draw benchmark (X seconds)" -msgstr "Benchmark zeichnen (X Sekunden)" - -#: src/game.cpp -msgid "Teleport - Adjacent overmap" -msgstr "Teleportieren – Benachbarte Oberkarte" - -#: src/game.cpp -msgid "Test trait group" -msgstr "Wesenszuggruppe testen" - -#: src/game.cpp -msgid "Show debug message" -msgstr "Debug-Nachricht anzeigen" - -#: src/game.cpp -msgid "Crash game (test crash handling)" -msgstr "Spiel-Absturz (Test-Absturz-Handhabung)" - -#: src/game.cpp -msgid "Spawn Map Extra" -msgstr "Kartenextra erzeugen" - -#: src/game.cpp -msgid "Toggle NPC pathfinding on map" -msgstr "" - -#: src/game.cpp -msgid "Quit to Main Menu" -msgstr "Zurück zum Hauptmenü" - -#: src/game.cpp -msgid "Current overmap revealed." -msgstr "Aktuelle Oberkarte aufgedeckt." - -#: src/game.cpp -#, c-format -msgid "Location %d:%d in %d:%d, %s\n" -msgstr "Ort: %d:%d in %d:%d, %s\n" - -#: src/game.cpp -#, c-format -msgid "" -"Current turn: %d.\n" -"%s\n" -msgstr "" -"Aktueller Zug: %d.\n" -"%s\n" - -#: src/game.cpp -#, c-format -msgid "%d creature exists.\n" -msgid_plural "%d creatures exist.\n" -msgstr[0] "%d Kreaturen existiert.\n" -msgstr[1] "%d Kreaturen existieren.\n" - -#: src/game.cpp -msgid "NPCs are going to spawn." -msgstr "NPCs tauchen in Kürze auf." - -#: src/game.cpp -msgid "NPCs are NOT going to spawn." -msgstr "NPCs tauchen in Kürze NICHT auf." - -#: src/game.cpp -#, c-format -msgid "%s: map ( %d:%d ) pos ( %d:%d )" -msgstr "%s: Karte (%d:%d) Pos. (%d:%d)" - -#: src/game.cpp -#, c-format -msgid "(you: %d:%d)" -msgstr "(du: %d:%d)" - -#: src/game.cpp -#, c-format -msgid "Stomach Contents: %d ml / %d ml kCal: %d, Water: %d ml" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "" -"Guts Contents: %d ml / %d ml kCal: %d, Water: %d ml\n" -"Hunger: %d, Thirst: %d, kCal: %d / %d" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "%s's head implodes!" -msgstr "Der Kopf von %s implodiert!" - -#: src/game.cpp -msgid "Choose vehicle to spawn" -msgstr "Von welchem Typ soll das Fahrzeug sein?" - -#. ~ Menu entry in vehicle wish menu: 1st string: displayed name, 2nd string: -#. internal name of vehicle -#: src/game.cpp -#, c-format -msgid "%1$s (%2$s)" -msgstr "%1$s (%2$s)" - -#: src/game.cpp -msgid "Martial arts debug." -msgstr "Kampfkünste-Debug." - -#: src/game.cpp -msgid "Your eyes blink rapidly as knowledge floods your brain." -msgstr "" -"Deine Augen zwinkern sehr schnell, während das Wissen dein Hirn flutet." - -#: src/game.cpp -msgid "You now know a lot more than just 10 styles of kung fu." -msgstr "Nun beherrscht du deutlich mehr als nur 10 Kung-Fu-Techniken." - -#: src/game.cpp -msgid "Recipe debug." -msgstr "Rezept-Debug." - -#: src/game.cpp -msgid "You know how to craft that now." -msgstr "Nun weißt du, wie man es herstellt." - -#: src/game.cpp -msgid "Select new weather pattern:" -msgstr "Wähle ein neues Wettermuster:" - -#: src/game.cpp -msgid "Disable weather forcing" -msgstr "Wettererzwingung abschalten" - -#: src/game.cpp -msgid "Keep normal weather patterns" -msgstr "Normale Wettermuster behalten" - -#: src/game.cpp -msgid "Select new wind direction:" -msgstr "" - -#: src/game.cpp -msgid "Disable direction forcing" -msgstr "" - -#: src/game.cpp -msgid "Keep normal wind direction" -msgstr "" - -#: src/game.cpp -msgid "Select new wind speed:" -msgstr "" - -#: src/game.cpp -msgid "Disable speed forcing" -msgstr "" - -#: src/game.cpp -msgid "Keep normal wind speed" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "Damage self for how much? hp: %d" -msgstr "Dich selbst um wieviel verletzen? TP: %d" - -#: src/game.cpp -msgid "This binary was not compiled with tiles support." -msgstr "Dieses Programm wurde nicht mit Kachel-Unterstützung kompiliert." - -#: src/game.cpp -msgid "year" -msgstr "Jahr" - -#: src/game.cpp -msgid "season" -msgstr "Jahreszeit" - -#: src/game.cpp -msgid "day" -msgstr "Tag" - -#: src/game.cpp -msgid "hour" -msgstr "Stunde" - -#: src/game.cpp -msgid "minute" -msgstr "Minute" - -#: src/game.cpp src/martialarts.cpp src/martialarts.cpp -msgid "turn" -msgid_plural "turns" -msgstr[0] "Zug" -msgstr[1] "Züge" - -#: src/game.cpp -msgid "Set year to?" -msgstr "Welches Jahr?" - -#: src/game.cpp -msgid "Set season to? (0 = spring)" -msgstr "Welche Jahreszeit? (0 = Frühling)" - -#: src/game.cpp -msgid "Set days to?" -msgstr "Welcher Tag?" - -#: src/game.cpp -msgid "Set hour to?" -msgstr "Welche Stunde?" - -#: src/game.cpp -msgid "Set minute to?" -msgstr "Welche Minute?" - -#: src/game.cpp -#, c-format -msgid "Set turn to? (One day is %i turns)" -msgstr "Zug setzen auf? (Ein Tag entspricht %i Zügen)" - -#: src/game.cpp -msgid "Enter benchmark length (in milliseconds):" -msgstr "Benchmark-Länge eingeben (in Millisekunden):" - -#: src/game.cpp -msgid "" -"Quit without saving? This may cause issues such as duplicated or missing " -"items and vehicles!" -msgstr "" -"Beenden ohne Speichern? Das könnte zu Problemen führen, wie z.B. duplizierte" -" oder fehlende Gegenstände und Fahrzeuge!" - #: src/game.cpp msgid "You haven't killed any monsters yet!" msgstr "Du hast bisher keine Monster getötet!" @@ -163098,14 +163838,6 @@ msgstr "" msgid "Without extra fuel it will burn for %s." msgstr "Ohne zusätzlichen Brennstoff wird es weiterbrennen für: %s." -#: src/game.cpp -msgid "You can't do that while driving." -msgstr "Das kannst du nicht während der Fahrt machen." - -#: src/game.cpp -msgid "You can't do that on a moving vehicle." -msgstr "Das kannst du nicht auf einem fahrenden Fahrzeug tun." - #: src/game.cpp #, c-format msgid "The %s is too unstable to remove anything." @@ -165567,6 +166299,22 @@ msgstr "%s von %s (%d)" msgid "Draw what?" msgstr "Was ziehen?" +#: src/handle_action.cpp +msgid "Change to which movement mode?" +msgstr "" + +#: src/handle_action.cpp +msgid "Walk" +msgstr "" + +#: src/handle_action.cpp +msgid "Run" +msgstr "" + +#: src/handle_action.cpp +msgid "Crouch" +msgstr "" + #: src/handle_action.cpp msgid "Auto-move canceled" msgstr "Automatische Fortbewegung abgebrochen" @@ -165663,6 +166411,14 @@ msgstr "neue Standardbelegung is »^«." msgid "You can't operate a vehicle while you're in your shell." msgstr "Du kannst kein Fahrzeug bedienen, solange du in deinem Panzer bist." +#: src/handle_action.cpp +msgid "Auto travel mode OFF!" +msgstr "" + +#: src/handle_action.cpp +msgid "Auto travel mode ON!" +msgstr "" + #: src/handle_action.cpp msgid "Safe mode ON!" msgstr "Sicherheitsmodus EIN!" @@ -166243,6 +166999,20 @@ msgstr "Du erntest: Mohnknospe" msgid "You harvest and drop: poppy bud" msgstr "Du erntest und lässt fallen: Mohnknospe" +#: src/iexamine.cpp +msgid "The cactus' nettles sting you!" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You harvest: %s." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You harvest and drop: %s." +msgstr "" + #: src/iexamine.cpp msgid "If only you had a shovel to dig up those roots..." msgstr "Wenn du nur eine Schaufel hättest, um diese Wurzeln aufzugraben …" @@ -166259,16 +167029,6 @@ msgstr "Du erntest und lässt fallen: Dahlienwurzel" msgid "Nothing can be harvested from this plant in current season." msgstr "" -#: src/iexamine.cpp -#, c-format -msgid "You harvest: %s." -msgstr "" - -#: src/iexamine.cpp -#, c-format -msgid "You harvest and drop: %s." -msgstr "" - #: src/iexamine.cpp msgid "You couldn't harvest anything." msgstr "Es konntest nichts ernten." @@ -167189,10 +167949,10 @@ msgstr "" "Ende." #: src/iexamine.cpp -msgid "You need an anesthesia kit for autodoc to perform any operation." +msgid "" +"You need an anesthesia kit with at least one charge for autodoc to perform " +"any operation." msgstr "" -"Du brauchst ein Narkose-Set, um eine Operation mit dem Autodoktor " -"durchführen zu können." #: src/iexamine.cpp msgid "Choose CBM to install" @@ -167248,6 +168008,46 @@ msgstr "Du hast keine Bioniken installiert." msgid "%1$s doesn't have any bionics installed." msgstr "%1$s hat keine installierten Bioniken." +#: src/iexamine.cpp +msgid "This mill already contains flour." +msgstr "" + +#: src/iexamine.cpp +msgid "Remove it before starting the mill again." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "This rack contains %s, which can't be milled!" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You remove the %s from the mill." +msgstr "" + +#: src/iexamine.cpp +msgid "" +"This mill is empty. Fill it with starchy products such as wheat, barley or " +"oats and try again." +msgstr "" + +#: src/iexamine.cpp +msgid "" +"This mill is overloaded with products, and the millstone can't turn. Remove" +" some and try again." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgctxt "volume units" +msgid "You think that you can load about %s %s in it." +msgstr "Du glaubst, dass du etwa %s %s auflegen kannst." + +#: src/iexamine.cpp +msgid "You remove the brake on the millstone and it slowly starts to turn." +msgstr "" + #: src/iexamine.cpp msgid "This rack already contains smoked food." msgstr "Dieses Gestell enthält bereits geräucherte Nahrung." @@ -167357,6 +168157,132 @@ msgstr "So viel kannst du nicht platzieren." msgid "You carefully place %s %s in the rack." msgstr "Sorgfältig platzierst du %s %s in das Gestell." +#: src/iexamine.cpp +msgid "You can't place more food while it's milling." +msgstr "" + +#: src/iexamine.cpp +msgid "Load mill with what kind of product?" +msgstr "" + +#: src/iexamine.cpp +msgid "You don't have any products that can be milled." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "Insert how many %s into the mill?" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgctxt "item amount and name" +msgid "You carefully place %s %s in the mill." +msgstr "" + +#: src/iexamine.cpp +msgid "The water mill needs to be over shallow flowing water to work." +msgstr "" + +#: src/iexamine.cpp +msgid "The wind mill needs to be outside in the wind to work." +msgstr "" + +#: src/iexamine.cpp +msgid "What to do with the mill?" +msgstr "" + +#: src/iexamine.cpp +msgid "Inspect mill" +msgstr "" + +#: src/iexamine.cpp +msgid "" +"Remove brake and start milling... insert some products for milling first" +msgstr "" + +#: src/iexamine.cpp +msgid "Remove brake and start milling" +msgstr "" + +#: src/iexamine.cpp +msgid "Remove brake and start milling, milling will take about 6 hours." +msgstr "" + +#: src/iexamine.cpp +msgid "Insert products for milling... mill is full" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "Insert products for milling... remaining capacity is %s %s" +msgstr "" + +#: src/iexamine.cpp +msgid "Fill the mill with starchy products such as wheat, barley or oats." +msgstr "" + +#: src/iexamine.cpp +msgid "Remove products from mill" +msgstr "" + +#: src/iexamine.cpp +msgid "Apply brake to mill" +msgstr "" + +#: src/iexamine.cpp +msgid "Applying the brake will stop milling process." +msgstr "" + +#: src/iexamine.cpp +msgid "There's a mill here. It is turning and milling." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "It will finish milling in about %d hour." +msgid_plural "It will finish milling in about %d hours." +msgstr[0] "" +msgstr[1] "" + +#: src/iexamine.cpp +msgid "It will finish milling in less than an hour." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "It should take about %d minutes to finish milling." +msgstr "" + +#: src/iexamine.cpp +msgid "There's a mill here." +msgstr "" + +#: src/iexamine.cpp +msgid "You inspect its contents and find: " +msgstr "Du begutachtest den Inhalt und findest: " + +#: src/iexamine.cpp +msgid "... that it is empty." +msgstr "..., dass es leer ist." + +#: src/iexamine.cpp +msgid "You see some grains that are not yet milled to fine flour." +msgstr "" + +#: src/iexamine.cpp +msgid "It is already milling." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You remove %s from the mill." +msgstr "" + +#: src/iexamine.cpp +msgid "You stop the milling process." +msgstr "" + #: src/iexamine.cpp msgid "What to do with the smoking rack:" msgstr "Was willst du mit dem Räuchergestell machen:" @@ -167475,14 +168401,6 @@ msgstr "Es sollte etwa %d Minuten brauchen, bis es mit Räuchern fertig ist." msgid "There's a smoking rack here." msgstr "Hier ist ein Räuchergestell." -#: src/iexamine.cpp -msgid "You inspect its contents and find: " -msgstr "Du begutachtest den Inhalt und findest: " - -#: src/iexamine.cpp -msgid "... that it is empty." -msgstr "..., dass es leer ist." - #: src/iexamine.cpp msgid "You see some smoldering embers there." msgstr "Hier siehst du etwas schwelende Glut." @@ -169380,6 +170298,10 @@ msgstr "|." msgid "\\." msgstr "\\." +#: src/item.cpp +msgid "XX" +msgstr "" + #: src/item.cpp msgid ".." msgstr ".." @@ -180325,6 +181247,11 @@ msgstr "" msgid "You reach out to the trees with your roots." msgstr "" +#: src/mutation.cpp +msgid "" +"You lay next to the trees letting your hair roots tangle with the trees." +msgstr "" + #: src/mutation.cpp msgid "Bionic power storage increased by 100." msgstr "Bionikstromkapazität um 100 erhöht." @@ -181597,6 +182524,10 @@ msgstr "Ist dein Freund." msgid "Is following you." msgstr "Folgt dir." +#: src/npc.cpp +msgid "Is guiding you." +msgstr "" + #: src/npc.cpp msgid "Will try to kill you or flee from you if you reveal yourself." msgstr "" @@ -182064,10 +182995,6 @@ msgid " If you are interested, I have another job for you." msgstr "" " Falls du daran interessiert bist, hab ich eine andere Aufgabe für dich." -#: src/npctalk.cpp -msgid "Pleasure doing business!" -msgstr "Es war mir ein Vergnügen, Geschäfte zu machen!" - #: src/npctalk.cpp msgid "Shall we resume?" msgstr "Sollen wir weitermachen?" @@ -182190,23 +183117,6 @@ msgstr "Erzähl mir mehr davon." msgid "I have news." msgstr "Ich habe Neuigkeiten." -#: src/npctalk.cpp -#, c-format -msgid "Delivering %s." -msgstr "%s ausliefern." - -#: src/npctalk.cpp -msgid "Works for me." -msgstr "Geht klar!" - -#: src/npctalk.cpp -msgid "You might be seeing more of me..." -msgstr "Du könntest mich eventuell öfters sehen …" - -#: src/npctalk.cpp -msgid "Delivering bandages." -msgstr "Bandagen ausliefern." - #: src/npctalk.cpp msgid "Yes, let's resume training " msgstr "Ja, lasst uns weiter trainieren mit " @@ -182439,11 +183349,6 @@ msgstr "" msgid "My current location" msgstr "" -#: src/npctalk_funcs.cpp -#, c-format -msgid "I'm willing to pay %s per batch for a total of %s" -msgstr "Ich bin bereit, %s pro Stapel für insgesamt %s zu zahlen" - #. ~ %1$s is the NPC's translated name, %2$s is the translated faction camp #. name #: src/npctalk_funcs.cpp @@ -185604,6 +186509,10 @@ msgstr "" msgid "Wield:" msgstr "" +#: src/panels.cpp +msgid "Style:" +msgstr "" + #: src/panels.cpp msgid "Food :" msgstr "" @@ -185767,6 +186676,18 @@ msgstr "Du bist überlastet!" msgid "You struggle to carry such a large volume!" msgstr "Du tust dich schwer damit, ein so großes Volumen zu tragen!" +#: src/pickup.cpp +msgid "Get items from vehicle cargo" +msgstr "" + +#: src/pickup.cpp +msgid "Get items from where?" +msgstr "" + +#: src/pickup.cpp src/vehicle_use.cpp +msgid "Get items on the ground" +msgstr "Gegenstände auf dem Boden aufsammeln" + #: src/pickup.cpp msgid "Next page" msgstr "Nächste Seite" @@ -186270,11 +187191,11 @@ msgid "You're too tired to run." msgstr "Du bist zu müde zum Laufen." #: src/player.cpp -msgid "You start walking." +msgid "You start crouching." msgstr "" #: src/player.cpp -msgid "You start crouching." +msgid "You start walking." msgstr "" #: src/player.cpp @@ -187441,7 +188362,7 @@ msgid "Your shaking legs make you stumble." msgstr "Deine zitternden Beine lassen dich stolpern." #: src/player.cpp -msgid " stumbles." msgstr "" #: src/player.cpp @@ -191657,6 +192578,11 @@ msgstr "" msgid "You repair the %1$s's %2$s." msgstr "You repair %2$s von %1$s." +#: src/veh_utils.cpp +#, c-format +msgid "You replace the %1$s's %2$s." +msgstr "" + #: src/vehicle.cpp msgid "Lost connection with the vehicle due to distance!" msgstr "Verbindung zum Fahrzeug aufgrund der Entfernung verloren!" @@ -192070,10 +192996,6 @@ msgstr " (defekt)" msgid " holding %s" msgstr " haltend %s" -#: src/vehicle_part.cpp -msgid "XX" -msgstr "" - #: src/vehicle_part.cpp #, c-format msgid "Insufficient power to enable %s" @@ -192545,10 +193467,6 @@ msgstr "Die Waschmaschine ausschalten" msgid "Activate the washing machine (1.5 hours)" msgstr "Die Waschmaschine einschalten (1,5 Stunden)" -#: src/vehicle_use.cpp -msgid "Get items on the ground" -msgstr "Gegenstände auf dem Boden aufsammeln" - #: src/vehicle_use.cpp msgid "Use the hotplate" msgstr "Kochplatte benutzen" diff --git a/lang/po/es_AR.po b/lang/po/es_AR.po index f469f37149d62..aad9f59bccce0 100644 --- a/lang/po/es_AR.po +++ b/lang/po/es_AR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-26 14:19+0800\n" +"POT-Creation-Date: 2019-05-03 13:47+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" "Last-Translator: Noctivagante , 2019\n" "Language-Team: Spanish (Argentina) (https://www.transifex.com/cataclysm-dda-translators/teams/2217/es_AR/)\n" @@ -26,10 +26,11 @@ msgstr[1] "baterías" #. ~ Description for battery #: lang/json/AMMO_from_json.py msgid "" -"A set of universal batteries. Used to charge almost any electronic device." +"Some free-floating battery charge. This can be reloaded into rechargable " +"battery cells, but can never be unloaded." msgstr "" -"Es un paquete de baterías genéricas. Se utilizan para cargar casi todos los " -"dispositivos electrónicos." +"Son unas cargas de batería sueltas. Pueden ser puestas en celdas " +"recargables, pero no pueden ser quitadas." #: lang/json/AMMO_from_json.py msgid "aluminum foil" @@ -743,7 +744,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "simple wooden small game arrow" -msgstr "" +msgstr "flecha simple de caza menor de madera" #. ~ Description for simple wooden small game arrow #: lang/json/AMMO_from_json.py @@ -752,10 +753,13 @@ msgid "" " small woodland creatures without splattering them all over the ground. " "Stands a low chance of remaining intact once fired." msgstr "" +"Es una flecha simple emplumada de madera con la punta desafilada. Es útil " +"para cazar criaturas pequeñas sin reventarles el cuerpo. Tiene bastante " +"probabilidad de romperse luego de ser disparada." #: lang/json/AMMO_from_json.py msgid "wooden broadhead arrow" -msgstr "" +msgstr "flecha de madera de punta ancha" #. ~ Description for wooden broadhead arrow #: lang/json/AMMO_from_json.py @@ -764,10 +768,12 @@ msgid "" "damage to the target. Stands a decent chance of remaining intact once " "fired." msgstr "" +"Es una flecha emplumada de madera con punta filosa. Buena para maximizar el " +"daño. Tiene buena probabilidad de no romperse luego de ser disparada." #: lang/json/AMMO_from_json.py msgid "simple wooden arrow" -msgstr "" +msgstr "flecha simple de madera" #. ~ Description for simple wooden arrow #: lang/json/AMMO_from_json.py @@ -775,10 +781,12 @@ msgid "" "A simple fletched wooden arrow shaft with a fire-hardened and sharpened tip." " Stands a low chance of remaining intact once fired." msgstr "" +"Es una flecha emplumada simple de madera, con la punta afilada y endurecida " +"al fuego. Tiene poca probabilidad de quedar intacta luego de ser disparada." #: lang/json/AMMO_from_json.py msgid "wooden small game arrow" -msgstr "" +msgstr "flecha de caza menor de madera" #. ~ Description for wooden small game arrow #: lang/json/AMMO_from_json.py @@ -787,6 +795,9 @@ msgid "" "woodland creatures without splattering them all over the ground. Stands a " "decent chance of remaining intact once fired." msgstr "" +"Es una flecha emplumada de madera con la punta desafilada. Es útil para " +"cazar criaturas pequeñas sin reventarles el cuerpo. Tiene buena probabilidad" +" de quedar intacta luego de ser disparada." #: lang/json/AMMO_from_json.py msgid "makeshift wooden arrow" @@ -999,22 +1010,17 @@ msgid "" "enemies. Stands a good chance of remaining intact once fired." msgstr "" -#: lang/json/AMMO_from_json.py -msgid "anesthetic kit" -msgstr "equipo de anestesia" +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "anesthetic" +msgstr "" -#. ~ Description for anesthetic kit +#. ~ Description for anesthetic #: lang/json/AMMO_from_json.py msgid "" -"A kit for inducing anesthesia for surgery, containing specialized canisters " -"with a variety of powerful hypnotic, analgetic, and stimulative drugs. It's" -" intended for use in specialized medical equipment, and can't be " -"administered manually." +"A variety of powerful hypnotic, analgetic, and stimulative drugs. It's " +"intended for use in specialized medical equipment, and can't be administered" +" manually. You can reload an anesthetic kit with it." msgstr "" -"Es un equipo para inducir anestesia para una cirugía, que contiene latas " -"especiales con una variedad de poderosos hipnóticos, analgésicos y drogas " -"estimulantes. Está pensado para ser utilizado con equipamiento médico " -"especializado, y no puede ser administrado manualmente." #: lang/json/AMMO_from_json.py msgid "sulfur" @@ -1778,6 +1784,19 @@ msgstr "" "Combustible en base a petróleo. Es un derivado del proceso de creación de la" " nafta." +#: lang/json/AMMO_from_json.py +msgid "biodiesel" +msgid_plural "biodiesel" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for biodiesel +#: lang/json/AMMO_from_json.py +msgid "" +"Vegetable oil- or animal fat-based diesel fuel consisting of long-chain " +"alkyl (methyl, ethyl, or propyl) esters." +msgstr "" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "gasoline" msgid_plural "gasoline" @@ -1991,6 +2010,37 @@ msgstr "" "emitir disparos de gas supercaliente a casi la velocidad de la luz, sin " "causar retroceso. Este paquete ha sido creado a mano." +#: lang/json/AMMO_from_json.py +msgid "throwing stick" +msgstr "" + +#. ~ Description for throwing stick +#: lang/json/AMMO_from_json.py +msgid "" +"A stick carved into a shape suitable for throwing at a target. Not a " +"boomerang, so don't expect it to return to your hand." +msgstr "" +"Es un palo tallado de manera que sea adecuado para tirar. No es un búmeran, " +"así que no esperes que vuelva a tus manos." + +#: lang/json/AMMO_from_json.py +msgid "anesthetic kit" +msgstr "equipo de anestesia" + +#. ~ Description for anesthetic kit +#. ~ Description for anesthesia kit +#: lang/json/AMMO_from_json.py lang/json/TOOL_from_json.py +msgid "" +"A kit for inducing anesthesia for surgery, containing specialized canisters " +"with a variety of powerful hypnotic, analgetic, and stimulative drugs. It's" +" intended for use in specialized medical equipment, and can't be " +"administered manually." +msgstr "" +"Es un equipo para inducir anestesia para una cirugía, que contiene latas " +"especiales con una variedad de poderosos hipnóticos, analgésicos y drogas " +"estimulantes. Está pensado para ser utilizado con equipamiento médico " +"especializado, y no puede ser administrado manualmente." + #: lang/json/AMMO_from_json.py msgid "H&K 12mm" msgstr "H&K 12mm" @@ -2584,6 +2634,57 @@ msgid_plural "reloaded .38 Super" msgstr[0] ".38 Super recargada" msgstr[1] ".38 Super recargadas" +#: lang/json/AMMO_from_json.py +msgid ".380 ACP FMJ" +msgstr "" + +#. ~ Description for .380 ACP FMJ +#: lang/json/AMMO_from_json.py +msgid "" +".380 ACP ammunition with a brass jacketed 95gr bullet. Popular in pocket " +"pistols for over a century, it is often considered the weakest caliber to " +"consider carrying. One should be careful not to chamber it in 9x18mm " +"Makarov or 9x19mm firearms." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".380 ACP JHP" +msgstr "" + +#. ~ Description for .380 ACP JHP +#: lang/json/AMMO_from_json.py +msgid "" +".380 ACP ammunition with a 95gr jacketed hollow point bullet. It is a " +"popular round for small concealable backup pistols, and often the weakest " +"recommended defensive caliber. One should be careful not to chamber it in " +"9x18mm Makarov or 9x19mm firearms." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".380 ACP +P" +msgstr "" + +#. ~ Description for .380 ACP +P +#: lang/json/AMMO_from_json.py +msgid "" +"Overpressure .380 ACP ammunition with a 90gr jacketed hollow point bullet. " +"These defensive loadings are designed to maximise performance and tend to be" +" more accurate than practice ammo. One should be careful not to chamber it " +"in 9x18mm Makarov or 9x19mm firearms." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP FMJ" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP JHP" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP +P" +msgstr "" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "10mm Auto" msgid_plural "10mm Auto" @@ -4641,21 +4742,6 @@ msgstr "" "Es un perno tallado en hueso con emplumado. Es liviano, lo que le otorga una" " precisión y daño decentes. No se rompe fácilmente luego de ser utilizado." -#: lang/json/AMMO_from_json.py -msgid "throwing stick" -msgid_plural "throwing sticks" -msgstr[0] "palo arrojadizo" -msgstr[1] "palos arrojadizos" - -#. ~ Description for throwing stick -#: lang/json/AMMO_from_json.py -msgid "" -"A stick carved into a shape suitable for throwing at a target. Not a " -"boomerang, so don't expect it to return to your hand." -msgstr "" -"Es un palo tallado de manera que sea adecuado para tirar. No es un búmeran, " -"así que no esperes que vuelva a tus manos." - #: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py msgid "wooden javelin" msgid_plural "wooden javelins" @@ -6738,13 +6824,10 @@ msgstr[1] "pares de mangas de cota de malla" #. ~ Description for pair of chainmail sleeves #: lang/json/ARMOR_from_json.py msgid "" -"Customized chainmail arms. Each sleeve has leather straps to connect them " -"with each other. The lack of fingers makes them less cumbersome and allows " -"them to be used with gloves." +"Customized chainmail arms. Each sleeve has straps to connect them with each" +" other. The lack of fingers makes them less cumbersome and allows them to " +"be used with gloves." msgstr "" -"Pieza de cota de malla para los brazos. Cada manga tiene correas de cuero " -"para conectarlas entre sí. No cubren tus manos así que no son muy incómodas " -"y te permite usar guantes." #: lang/json/ARMOR_from_json.py msgid "chainmail coif" @@ -6768,13 +6851,9 @@ msgstr[1] "pares de perneras de cota de malla" #. ~ Description for chainmail leggings #: lang/json/ARMOR_from_json.py msgid "" -"Customized chainmail legs. Their leather straps keep everything in place, " -"and the lack of toes and heels allows them to work perfectly well with " -"footwear." +"Customized chainmail legs. Their straps keep everything in place, and the " +"lack of toes and heels allows them to work perfectly well with footwear." msgstr "" -"Son perneras personalizadas de cota de malla. Tiene correas de cuero que " -"mantienen todo en su lugar. Dejan los pies libres, lo que te permite " -"utilizar cualquier tipo de calzado." #: lang/json/ARMOR_from_json.py msgid "chainmail hauberk" @@ -6786,13 +6865,10 @@ msgstr[1] "hauberks de malla" #: lang/json/ARMOR_from_json.py msgid "" "A fully customized chainmail outfit, leaving the head uncovered. The shirt," -" arms, and leggings have been modified with leather straps to deal with " -"uneven weight distribution and to allow them to be used separately." +" arms, and leggings have been modified with straps and combined with a " +"gambeson to deal with uneven weight distribution, cold environments and to " +"allow them to be used separately." msgstr "" -"Una armadura completa de cota de malla, que deja la cabeza descubierta. La " -"camisa, mangas y perneras han sido modificadas con correas de cuero para " -"control el peso desbalanceado, y para permitirte usar las partes por " -"separado." #: lang/json/ARMOR_from_json.py msgid "chainmail armor" @@ -6804,12 +6880,10 @@ msgstr[1] "armaduras de cota de malla" #: lang/json/ARMOR_from_json.py msgid "" "A fully customized chainmail suit. The coif, shirt, arms, and leggings have" -" been modified with leather straps to deal with uneven weight distribution " -"and to allow them to be used separately." +" been modified with straps and combined with a gambeson to deal with uneven " +"weight distribution, cold environments and to allow them to be used " +"separately." msgstr "" -"Una armadura completa de cota de malla. La cofia, camisa, mangas y perneras " -"han sido modificadas con correas de cuero para control el peso " -"desbalanceado, y para permitirte usar las partes por separado." #: lang/json/ARMOR_from_json.py msgid "chainmail vest" @@ -6821,10 +6895,8 @@ msgstr[1] "chalecos de cota de malla" #: lang/json/ARMOR_from_json.py msgid "" "A customized chainmail vest. It's a sleeveless piece of chainmail with " -"small leather straps designed to better distribute the weight." +"small straps designed to better distribute the weight." msgstr "" -"Es un chaleco de cota de malla. No tiene mangas pero tiene pequeñas correas " -"de cuero diseñadas para distribuir mejor el peso." #: lang/json/ARMOR_from_json.py msgid "leather chaps" @@ -14342,6 +14414,20 @@ msgstr "" "Es una funda rápida y cómoda para armas pequeñas. Hay que usarla para " "enfundar y desenfundar la pistola." +#: lang/json/ARMOR_from_json.py +msgid "deep concealment holster" +msgid_plural "deep concealment holsters" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for deep concealment holster +#: lang/json/ARMOR_from_json.py +msgid "" +"An elastic band with numerous provisions for concealing a very small pistol " +"close to the body. It is awkward to use without practice. Activate to " +"holster/draw a gun." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "survivor harness" msgid_plural "survivor harnesses" @@ -14933,8 +15019,8 @@ msgid_plural "Active Defense System CBMs" msgstr[0] "MCB Sistema de defensa activa" msgstr[1] "MCB Sistema de defensa activa" -#. ~ Description for Active Defense System #. ~ Description for Active Defense System CBM +#. ~ Description for Active Defense System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A thin forcefield surrounds your body, continually draining power. Anything" @@ -14953,8 +15039,8 @@ msgid_plural "Advanced Microreactor CBMs" msgstr[0] "MCB Microreactor Mejorado" msgstr[1] "MCB Microreactor Mejorado" -#. ~ Description for Advanced Microreactor System #. ~ Description for Advanced Microreactor CBM +#. ~ Description for Advanced Microreactor System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This stripped down mini-reactor is safer than it appears due to integrated " @@ -14971,8 +15057,8 @@ msgid_plural "Alarm System CBMs" msgstr[0] "MCB Sistema de alarma" msgstr[1] "MCB Sistema de alarma" -#. ~ Description for Alarm System #. ~ Description for Alarm System CBM +#. ~ Description for Alarm System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A motion-detecting alarm system will notice almost all movement within a " @@ -15066,8 +15152,8 @@ msgid_plural "Battery System CBMs" msgstr[0] "MCB Sistema de baterías" msgstr[1] "MCB Sistema de baterías" -#. ~ Description for Battery System #. ~ Description for Battery System CBM +#. ~ Description for Battery System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have a battery draining attachment, and thus can make use of the energy " @@ -15084,8 +15170,8 @@ msgid_plural "Monomolecular Blade CBMs" msgstr[0] "MCB Cuchilla monomolecular" msgstr[1] "MCB Cuchilla monomolecular" -#. ~ Description for Monomolecular Blade #. ~ Description for Monomolecular Blade CBM +#. ~ Description for Monomolecular Blade #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A deadly foot-long blade made of advanced material now resides inside your " @@ -15154,8 +15240,8 @@ msgid_plural "Blood Filter CBMs" msgstr[0] "MCB Filtro de sangre" msgstr[1] "MCB Filtro de sangre" -#. ~ Description for Blood Filter #. ~ Description for Blood Filter CBM +#. ~ Description for Blood Filter #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A filtration system in your heart allows you to actively filter out chemical" @@ -15189,8 +15275,8 @@ msgid_plural "Subdermal Carbon Filament CBMs" msgstr[0] "MCB Filamento de carbono subdérmico" msgstr[1] "MCB Filamento de carbono subdérmico" -#. ~ Description for Subdermal Carbon Filament #. ~ Description for Subdermal Carbon Filament CBM +#. ~ Description for Subdermal Carbon Filament #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Lying just beneath your skin is a thin armor made of carbon nanotubes. This" @@ -15205,8 +15291,8 @@ msgid_plural "Chain Lightning CBMs" msgstr[0] "MCB Rayos en cadena" msgstr[1] "MCB Rayos en cadena" -#. ~ Description for Chain Lightning #. ~ Description for Chain Lightning CBM +#. ~ Description for Chain Lightning #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your body is equipped with a chain lightning generator, allowing you to emit" @@ -15242,8 +15328,8 @@ msgid_plural "Internal Climate Control CBMs" msgstr[0] "MCB Control interno de temperatura" msgstr[1] "MCB Control interno de temperatura" -#. ~ Description for Internal Climate Control #. ~ Description for Internal Climate Control CBM +#. ~ Description for Internal Climate Control #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Throughout your body lies a network of thermal piping which eases the " @@ -15258,8 +15344,8 @@ msgid_plural "Cloaking System CBMs" msgstr[0] "MCB Sistema de ocultamiento" msgstr[1] "MCB Sistema de ocultamiento" -#. ~ Description for Cloaking System #. ~ Description for Cloaking System CBM +#. ~ Description for Cloaking System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This high-power system uses a set of cameras and LEDs to make you blend into" @@ -15294,8 +15380,8 @@ msgid_plural "Wired Reflexes CBMs" msgstr[0] "MCB Reflejos conectados" msgstr[1] "MCB Reflejos conectados" -#. ~ Description for Wired Reflexes #. ~ Description for Wired Reflexes CBM +#. ~ Description for Wired Reflexes #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your reaction time has been greatly enhanced with bionic nerve stimulators, " @@ -15310,8 +15396,8 @@ msgid_plural "Expanded Digestive System CBMs" msgstr[0] "MCB Sistema digestivo expandido" msgstr[1] "MCB Sistema digestivo expandido" -#. ~ Description for Expanded Digestive System #. ~ Description for Expanded Digestive System CBM +#. ~ Description for Expanded Digestive System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have been outfitted with three synthetic stomachs and industrial-grade " @@ -15330,8 +15416,8 @@ msgid_plural "Enhanced Hearing CBMs" msgstr[0] "MCB Audición mejorada" msgstr[1] "MCB Audición mejorada" -#. ~ Description for Enhanced Hearing #. ~ Description for Enhanced Hearing CBM +#. ~ Description for Enhanced Hearing #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "When this bionic is active, your hearing will be drastically improved, " @@ -15367,8 +15453,8 @@ msgid_plural "EMP Projector CBMs" msgstr[0] "MCB Proyector PEM" msgstr[1] "MCB Proyector PEM" -#. ~ Description for EMP Projector #. ~ Description for EMP Projector CBM +#. ~ Description for EMP Projector #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A ranged EMP generator system is implanted on the palm of your right hand " @@ -15386,8 +15472,8 @@ msgid_plural "Ethanol Burner CBMs" msgstr[0] "MCB Quemador de etanol" msgstr[1] "MCB Quemador de etanol" -#. ~ Description for Ethanol Burner #. ~ Description for Ethanol Burner CBM +#. ~ Description for Ethanol Burner #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You burn alcohol as fuel in an extremely efficient reaction. However, you " @@ -15402,8 +15488,8 @@ msgid_plural "Aero-Evaporator CBMs" msgstr[0] "MCB Aero-vaporador" msgstr[1] "MCB Aero-vaporador" -#. ~ Description for Aero-Evaporator #. ~ Description for Aero-Evaporator CBM +#. ~ Description for Aero-Evaporator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This unit draws moisture from the surrounding air, which then is poured from" @@ -15418,8 +15504,8 @@ msgid_plural "Diamond Cornea CBMs" msgstr[0] "MCB Córnea de diamante" msgstr[1] "MCB Córnea de diamante" -#. ~ Description for Diamond Cornea #. ~ Description for Diamond Cornea CBM +#. ~ Description for Diamond Cornea #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Your vision is greatly enhanced, giving you a +2 bonus to perception." msgstr "" @@ -15450,8 +15536,8 @@ msgid_plural "Facial Distortion CBMs" msgstr[0] "MCB Distorsión facial" msgstr[1] "MCB Distorsión facial" -#. ~ Description for Facial Distortion #. ~ Description for Facial Distortion CBM +#. ~ Description for Facial Distortion #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Through controlled application of electrochemical impulses, you are capable " @@ -15468,8 +15554,8 @@ msgid_plural "Dielectric Capacitance System CBMs" msgstr[0] "MCB Sistema de capacitancia dieléctrica" msgstr[1] "MCB Sistema de capacitancia dieléctrica" -#. ~ Description for Dielectric Capacitance System #. ~ Description for Dielectric Capacitance System CBM +#. ~ Description for Dielectric Capacitance System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Throughout your body lies a network of miniature piezoelectric capacitors " @@ -15552,8 +15638,8 @@ msgid_plural "Internal Furnace CBMs" msgstr[0] "MCB Horno interno" msgstr[1] "MCB Horno interno" -#. ~ Description for Internal Furnace #. ~ Description for Internal Furnace CBM +#. ~ Description for Internal Furnace #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "When this bionic is active, you can burn nearly any organic material as fuel" @@ -15605,8 +15691,8 @@ msgid_plural "Terranian Sonar CBMs" msgstr[0] "MCB Sonar terrestre" msgstr[1] "MCB Sonar terrestre" -#. ~ Description for Terranian Sonar #. ~ Description for Terranian Sonar CBM +#. ~ Description for Terranian Sonar #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your feet are equipped with precision sonar equipment, allowing you to " @@ -15623,8 +15709,8 @@ msgid_plural "Heat Drain CBMs" msgstr[0] "MCB Drenaje de calor" msgstr[1] "MCB Drenaje de calor" -#. ~ Description for Heat Drain #. ~ Description for Heat Drain CBM +#. ~ Description for Heat Drain #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While fighting unarmed against a warm-blooded opponent, there is a chance " @@ -15659,8 +15745,8 @@ msgid_plural "Hydraulic Muscles CBMs" msgstr[0] "MCB Musculatura hidráulica" msgstr[1] "MCB Musculatura hidráulica" -#. ~ Description for Hydraulic Muscles #. ~ Description for Hydraulic Muscles CBM +#. ~ Description for Hydraulic Muscles #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While activated, your muscles will be greatly enhanced, increasing your " @@ -15675,8 +15761,8 @@ msgid_plural "Infrared Vision CBMs" msgstr[0] "MCB Visión infrarroja" msgstr[1] "MCB Visión infrarroja" -#. ~ Description for Infrared Vision #. ~ Description for Infrared Vision CBM +#. ~ Description for Infrared Vision #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your range of vision extends into the infrared, allowing you to see warm-" @@ -15691,8 +15777,8 @@ msgid_plural "Cerebral Booster CBMs" msgstr[0] "MCB Estimulador cerebral" msgstr[1] "MCB Estimulador cerebral" -#. ~ Description for Cerebral Booster #. ~ Description for Cerebral Booster CBM +#. ~ Description for Cerebral Booster #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your brain has been enhanced with bionic coprocessors, giving you a +2 bonus" @@ -15724,8 +15810,8 @@ msgid_plural "Leukocyte Breeder System CBMs" msgstr[0] "MCB Sistema cultivador de leucocitos" msgstr[1] "MCB Sistema cultivador de leucocitos" -#. ~ Description for Leukocyte Breeder System #. ~ Description for Leukocyte Breeder System CBM +#. ~ Description for Leukocyte Breeder System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You are equipped with bionic stimulators which augment your haematopoiesis " @@ -15744,8 +15830,8 @@ msgid_plural "Mini-Flamethrower CBMs" msgstr[0] "MCB Mini-lanzallamas" msgstr[1] "MCB Mini-lanzallamas" -#. ~ Description for Mini-Flamethrower #. ~ Description for Mini-Flamethrower CBM +#. ~ Description for Mini-Flamethrower #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "The index fingers of both hands have powerful fire starters which extend " @@ -15792,8 +15878,8 @@ msgid_plural "Nictating Membrane CBMs" msgstr[0] "MCB Membrana nictitante" msgstr[1] "MCB Membrana nictitante" -#. ~ Description for Nictating Membrane #. ~ Description for Nictating Membrane CBM +#. ~ Description for Nictating Membrane #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your eyes have a thin membrane that closes over your eyes while underwater, " @@ -15826,8 +15912,8 @@ msgid_plural "Metabolic Interchange CBMs" msgstr[0] "MCB Intercambio metabólico" msgstr[1] "MCB Intercambio metabólico" -#. ~ Description for Metabolic Interchange #. ~ Description for Metabolic Interchange CBM +#. ~ Description for Metabolic Interchange #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your digestive system and power supply are interconnected. Bionic energy is" @@ -15844,8 +15930,8 @@ msgid_plural "Weather Reader CBMs" msgstr[0] "MCB Lector de clima" msgstr[1] "MCB Lector de clima" -#. ~ Description for Weather Reader #. ~ Description for Weather Reader CBM +#. ~ Description for Weather Reader #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A multitude of scientific instruments and sensors collect environmental " @@ -15863,8 +15949,8 @@ msgid_plural "Repair Nanobots CBMs" msgstr[0] "MCB Nanobots de reparación" msgstr[1] "MCB Nanobots de reparación" -#. ~ Description for Repair Nanobots #. ~ Description for Repair Nanobots CBM +#. ~ Description for Repair Nanobots #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Inside your body is a fleet of tiny dormant robots. While activated they " @@ -15881,8 +15967,8 @@ msgid_plural "Artificial Night Generator CBMs" msgstr[0] "MCB Generador artificial de noche" msgstr[1] "MCB Generador artificial de noche" -#. ~ Description for Artificial Night Generator #. ~ Description for Artificial Night Generator CBM +#. ~ Description for Artificial Night Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Destructive interference eliminates all light within a 15 tile radius." msgstr "" @@ -15910,8 +15996,8 @@ msgid_plural "Offensive Defense System CBMs" msgstr[0] "MCB Sistema de defensa ofensiva" msgstr[1] "MCB Sistema de defensa ofensiva" -#. ~ Description for Offensive Defense System #. ~ Description for Offensive Defense System CBM +#. ~ Description for Offensive Defense System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A thin forcefield surrounds your body, continually draining power. This " @@ -15928,8 +16014,8 @@ msgid_plural "Sensory Dulling CBMs" msgstr[0] "MCB Adormecimiento sensorial" msgstr[1] "MCB Adormecimiento sensorial" -#. ~ Description for Sensory Dulling #. ~ Description for Sensory Dulling CBM +#. ~ Description for Sensory Dulling #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your nervous system is wired to allow you to inhibit the signals of pain, " @@ -15961,8 +16047,8 @@ msgid_plural "Power Armor Interface CBMs" msgstr[0] "MCB Interfaz de armadura de poder" msgstr[1] "MCB Interfaz de armadura de poder" -#. ~ Description for Power Armor Interface #. ~ Description for Power Armor Interface CBM +#. ~ Description for Power Armor Interface #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Interfaces your power system with the internal charging port on suits of " @@ -15977,8 +16063,8 @@ msgid_plural "Power Armor Mk. II Interface CBMs" msgstr[0] "MCB Interfaz Mk. II de armadura de poder" msgstr[1] "MCB Interfaz Mk. II de armadura de poder" -#. ~ Description for Power Armor Interface Mk. II #. ~ Description for Power Armor Mk. II Interface CBM +#. ~ Description for Power Armor Interface Mk. II #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Interfaces your power system with the internal charging port on suits of " @@ -15995,8 +16081,8 @@ msgid_plural "Power Storage CBMs" msgstr[0] "MCB Almacenamiento de energía" msgstr[1] "MCB Almacenamiento de energía" -#. ~ Description for Power Storage #. ~ Description for Power Storage CBM +#. ~ Description for Power Storage #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Compact Bionics Module that upgrades your power capacity by 100 units. " @@ -16014,8 +16100,8 @@ msgid_plural "Power Storage CBMs Mk. II" msgstr[0] "MCB Almacenamiento de energía Mk. II" msgstr[1] "MCB Almacenamiento de energía Mk. II" -#. ~ Description for Power Storage Mk. II #. ~ Description for Power Storage CBM Mk. II +#. ~ Description for Power Storage Mk. II #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Compact Bionics Module developed at DoubleTech Industries as a replacement " @@ -16032,8 +16118,8 @@ msgid_plural "Probability Travel CBMs" msgstr[0] "MCB Barrera de potencial" msgstr[1] "MCB Barrera de potencial" -#. ~ Description for Probability Travel #. ~ Description for Probability Travel CBM +#. ~ Description for Probability Travel #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Increases your body's wavelength, allowing you to quantum tunnel through " @@ -16085,18 +16171,13 @@ msgid_plural "Railgun CBMs" msgstr[0] "MCB Cañón de riel" msgstr[1] "MCB Cañón de riel" -#. ~ Description for Railgun #. ~ Description for Railgun CBM -#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +#: lang/json/BIONIC_ITEM_from_json.py msgid "" -"EM field generators in your arms double the range and damage of thrown iron " -"and steel objects at a cost of 1 power per throw, causing them to leave a " -"trail of electricity that can cause additional damage." +"EM field generators in your arms increase the range and damage of thrown " +"iron and steel objects at a cost of 1 power per throw, causing them to leave" +" a trail of electricity that can cause additional damage." msgstr "" -"Unos generadores de campos electromagnéticos en tus brazos, duplican la " -"distancia y el daño causado por el lanzamiento de objetos de hierro y de " -"acero con un costo de 1 unidad de energía por lanzamiento. Además, dejan una" -" estela de electricidad que puede causar daño adicional." #: lang/json/BIONIC_ITEM_from_json.py msgid "Fingertip Razors CBM" @@ -16104,8 +16185,8 @@ msgid_plural "Fingertip Razors CBMs" msgstr[0] "MCB Uñas-navaja" msgstr[1] "MCB Uñas-navaja" -#. ~ Description for Fingertip Razors #. ~ Description for Fingertip Razors CBM +#. ~ Description for Fingertip Razors #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You possess razor-sharp retractable claws underneath your fingernails, ten " @@ -16122,8 +16203,8 @@ msgid_plural "Internal Microreactor CBMs" msgstr[0] "MCB Microreactor Interno" msgstr[1] "MCB Microreactor Interno" -#. ~ Description for Microreactor System #. ~ Description for Internal Microreactor CBM +#. ~ Description for Microreactor System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This stripped down mini-reactor may not be the best thing to have in your " @@ -16155,8 +16236,8 @@ msgid_plural "Recycler Unit CBMs" msgstr[0] "MCB Unidad de reciclado" msgstr[1] "MCB Unidad de reciclado" -#. ~ Description for Recycler Unit #. ~ Description for Recycler Unit CBM +#. ~ Description for Recycler Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your digestive system has been outfitted with a series of filters and " @@ -16173,8 +16254,8 @@ msgid_plural "Remote Controller CBMs" msgstr[0] "MCB Controlador Remoto" msgstr[1] "MCB Controlador Remoto" -#. ~ Description for Remote Controller #. ~ Description for Remote Controller CBM +#. ~ Description for Remote Controller #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A small module connected to your brain allows you to interface with nearby " @@ -16189,8 +16270,8 @@ msgid_plural "Sonic Resonator CBMs" msgstr[0] "MCB Resonador sónico" msgstr[1] "MCB Resonador sónico" -#. ~ Description for Sonic Resonator #. ~ Description for Sonic Resonator CBM +#. ~ Description for Sonic Resonator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your entire body may resonate at very high power, creating a short-range " @@ -16207,8 +16288,8 @@ msgid_plural "Olfactory Mask CBMs" msgstr[0] "MCB Máscara olfativa" msgstr[1] "MCB Máscara olfativa" -#. ~ Description for Olfactory Mask #. ~ Description for Olfactory Mask CBM +#. ~ Description for Olfactory Mask #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While this system is powered, your body will produce very little odor, " @@ -16223,8 +16304,8 @@ msgid_plural "Scent Vision CBMs" msgstr[0] "MCB Visión de olor" msgstr[1] "MCB Visión de olor" -#. ~ Description for Scent Vision #. ~ Description for Scent Vision CBM +#. ~ Description for Scent Vision #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While this system is powered, you're able to visually sense your own scent, " @@ -16240,8 +16321,8 @@ msgid_plural "Electroshock Unit CBMs" msgstr[0] "MCB Unidad de electroshock" msgstr[1] "MCB Unidad de electroshock" -#. ~ Description for Electroshock Unit #. ~ Description for Electroshock Unit CBM +#. ~ Description for Electroshock Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While fighting unarmed, or with a weapon that conducts electricity, there is" @@ -16259,8 +16340,8 @@ msgid_plural "Shockwave Generator CBMs" msgstr[0] "MCB Generador de onda sísmica" msgstr[1] "MCB Generador de onda sísmica" -#. ~ Description for Shockwave Generator #. ~ Description for Shockwave Generator CBM +#. ~ Description for Shockwave Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You generate a powerful shockwave, knocking back all nearby creatures. " @@ -16278,8 +16359,8 @@ msgid_plural "Synaptic Accelerator CBMs" msgstr[0] "MCB Acelerador de sinapsis" msgstr[1] "MCB Acelerador de sinapsis" -#. ~ Description for Synaptic Accelerator #. ~ Description for Synaptic Accelerator CBM +#. ~ Description for Synaptic Accelerator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py #, no-python-format msgid "" @@ -16376,8 +16457,8 @@ msgid_plural "Teleportation Unit CBMs" msgstr[0] "MCB Unidad de teletransportación" msgstr[1] "MCB Unidad de teletransportación" -#. ~ Description for Teleportation Unit #. ~ Description for Teleportation Unit CBM +#. ~ Description for Teleportation Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This highly experimental unit folds space over short distances, instantly " @@ -16395,8 +16476,8 @@ msgid_plural "Time Dilation CBMs" msgstr[0] "MCB Dilación del tiempo" msgstr[1] "MCB Dilación del tiempo" -#. ~ Description for Time Dilation #. ~ Description for Time Dilation CBM +#. ~ Description for Time Dilation #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "At the cost of all stored bionic power, you may increase your body speed and" @@ -16414,8 +16495,8 @@ msgid_plural "Integrated Toolset CBMs" msgstr[0] "MCB Caja de herramientas integrada" msgstr[1] "MCB Caja de herramientas integrada" -#. ~ Description for Integrated Toolset #. ~ Description for Integrated Toolset CBM +#. ~ Description for Integrated Toolset #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Surgically implanted in your hands and fingers is a complete tool set - " @@ -16451,8 +16532,8 @@ msgid_plural "Joint Servo CBMs" msgstr[0] "MCB Articulaciones Servo" msgstr[1] "MCB Articulaciones Servo" -#. ~ Description for Joint Servo #. ~ Description for Joint Servo CBM +#. ~ Description for Joint Servo #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your leg joints have been equipped with servomotors that provide power-" @@ -16472,8 +16553,8 @@ msgid_plural "Uncanny Dodge CBMs" msgstr[0] "MCB Evasión asombrosa" msgstr[1] "MCB Evasión asombrosa" -#. ~ Description for Uncanny Dodge #. ~ Description for Uncanny Dodge CBM +#. ~ Description for Uncanny Dodge #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your nervous system has been augmented with bionic processors, allowing you " @@ -16489,8 +16570,8 @@ msgid_plural "Unified Power System CBMs" msgstr[0] "MCB UPS" msgstr[1] "MCB UPS" -#. ~ Description for Internal Unified Power System #. ~ Description for Unified Power System CBM +#. ~ Description for Internal Unified Power System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have a unified power system wired into your power banks. Objects that " @@ -16506,8 +16587,8 @@ msgid_plural "Internal Chronometer CBMs" msgstr[0] "MCB Cronómetro interno" msgstr[1] "MCB Cronómetro interno" -#. ~ Description for Internal Chronometer #. ~ Description for Internal Chronometer CBM +#. ~ Description for Internal Chronometer #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have been equipped with an internal atomic clock, ensuring that you will" @@ -16595,8 +16676,8 @@ msgid_plural "Taste Modifier CBMs" msgstr[0] "MCB Modificador de Gusto" msgstr[1] "MCB Modificador de Gusto" -#. ~ Description for Taste Modifier #. ~ Description for Taste Modifier CBM +#. ~ Description for Taste Modifier #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A set of highly sensitive sensors is installed in your mouth, and a small " @@ -16838,8 +16919,8 @@ msgstr "" "Tienes algunos paneles solares instalados. Mientras estés expuesto a la luz " "del sol directa, tu nivel de energía ser cargará lentamente." -#. ~ Description for Solar Panels #. ~ Description for Solar Panels CBM +#. ~ Description for Solar Panels #: lang/json/BIONIC_ITEM_from_json.py lang/json/BIONIC_ITEM_from_json.py #: lang/json/bionic_from_json.py msgid "" @@ -16916,8 +16997,8 @@ msgid_plural "Ionic Overload Generator CBMs" msgstr[0] "MCB Generador de Sobrecarga Iónica" msgstr[1] "MCB Generador de Sobrecarga Iónica" -#. ~ Description for Ionic Overload Generator #. ~ Description for Ionic Overload Generator CBM +#. ~ Description for Ionic Overload Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A powerful ion energy generator is implanted on your chest. Fires a " @@ -23179,6 +23260,19 @@ msgid "Baby cow food, appropriated for adult humans. Spoils rapidly." msgstr "" "Es comida para terneros, apropiada para humanos adultos. Se pudre rápido." +#: lang/json/COMESTIBLE_from_json.py +msgid "reconstituted milk" +msgid_plural "reconstituted milk" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for reconstituted milk +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Baby cow food, appropriated for adult humans. This milk has been " +"reconstituted from a processed milk. Spoils rapidly." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "coffee milk" msgstr "café con leche" @@ -26948,22 +27042,20 @@ msgstr "" "pedazo de papel y listo para fumar." #: lang/json/COMESTIBLE_from_json.py -msgid "pink tablet" -msgstr "pastilla rosa" +msgid "pink tab" +msgstr "" -#. ~ Use action activation_message for pink tablet. +#. ~ Use action activation_message for pink tab. #: lang/json/COMESTIBLE_from_json.py msgid "You eat the pink tablet." msgstr "Te tomás la pastilla rosa." -#. ~ Description for pink tablet +#. ~ Description for pink tab #: lang/json/COMESTIBLE_from_json.py msgid "" -"Tiny pink candies shaped like hearts, already dosed with some sort of drug." -" Really only useful for entertainment. Will cause hallucinations." +"Tiny pink tabs resembling postage stamps, already dosed with some sort of " +"drug. Really only useful for entertainment. Will cause hallucinations." msgstr "" -"Pastillas rosas pequeñas con forma de corazón, que ya vienen dosificadas con" -" alguna droga. Su única utilidad es el entretenimiento. Causa alucinaciones." #: lang/json/COMESTIBLE_from_json.py msgid "medical gauze" @@ -29639,6 +29731,15 @@ msgstr[1] "puñado de damascos" msgid "A smooth-skinned fruit, related to the peach." msgstr "Es una fruta de cáscara suave, parecida al durazno." +#: lang/json/COMESTIBLE_from_json.py +msgid "cactus pad" +msgstr "" + +#. ~ Description for cactus pad +#: lang/json/COMESTIBLE_from_json.py +msgid "An edible pad of a cactus." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "barley" msgstr "cebada" @@ -31792,6 +31893,15 @@ msgstr "" "Esta cobertura crujiente y agria hecha de lechuga o repollo es perfecta para" " tus panchos o hamburguesas, o, si estás desesperado, así nomás a la panza." +#: lang/json/COMESTIBLE_from_json.py +msgid "nopalito" +msgstr "" + +#. ~ Description for nopalito +#: lang/json/COMESTIBLE_from_json.py +msgid "A less prickly version of cactus pads." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "wheat cereal" msgstr "cereal de trigo" @@ -34457,6 +34567,17 @@ msgstr[1] "objetos falsos" msgid "Dummy item. If you see this, then something went wrong." msgstr "Es un objeto tonto. Si te aparece esto, algo está andando mal." +#: lang/json/GENERIC_from_json.py +msgid "semi ground grains" +msgid_plural "semi ground grains" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for semi ground grains +#: lang/json/GENERIC_from_json.py +msgid "A paste of half-finished milled grains, not yet flour." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "smoldering embers" msgid_plural "smoldering embers" @@ -34534,8 +34655,8 @@ msgstr "fuego cercano" #. ~ Description for wind #. ~ Description for a smoking device and a source of flame #. ~ Description for abstract map -#. ~ Description for weapon #. ~ Description for seeing this is a bug +#. ~ Description for weapon #: lang/json/GENERIC_from_json.py lang/json/GENERIC_from_json.py #: lang/json/TOOL_from_json.py lang/json/TOOL_from_json.py #: lang/json/skill_from_json.py @@ -37127,6 +37248,19 @@ msgid "" " vehicle. Combine it with a wheel to get a mountable piece." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "welding component kit" +msgid_plural "welding component kits" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for welding component kit +#: lang/json/GENERIC_from_json.py +msgid "" +"A set of components useful for constructing a full-featured welding station," +" complete with soldering capability." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "canister grenade" msgid_plural "canister grenades" @@ -40536,6 +40670,19 @@ msgstr "" "Una armazón pesada equipada con amarras y puntos de anclaje para transportar" " cargas." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "floor trunk" +msgid_plural "floor trunks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for floor trunk +#: lang/json/GENERIC_from_json.py +msgid "" +"A section of flooring with a cargo-space beneath, and a hinged door for " +"access." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "livestock carrier" msgid_plural "livestock carriers" @@ -40629,16 +40776,10 @@ msgstr[1] "estaciones de recarga compatible UPS" msgid "" "A Unified Power System recharging station designed to operate on vehicle " "power. Once installed in a vehicle storage space and turned on from a " -"dashboard or electronics control unit, it will slowly charge all tools with " -"rechargeable batteries in that space. The system can only be installed in " -"existing storage compartments." -msgstr "" -"Es una estación de recarga UPS, diseñada para funcionar con la energía de un" -" vehículo. Una vez instalada en el lugar de almacenamiento del vehículo y " -"encendida desde el tablero o desde los controles electrónicos, irá cargando " -"lentamente todas las herramientas con baterías recargables que estén en ese " -"lugar. Este sistema solo puede ser instalado en un compartimiento de " -"almacenamiento." +"dashboard or electronics control unit, it will slowly charge all UPS " +"compatible tools and battery cells in that space. The system can only be " +"installed in existing storage compartments." +msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py #: lang/json/vehicle_part_from_json.py @@ -42344,6 +42485,17 @@ msgstr[1] "vainas 9x18mm" msgid "An empty casing from a 9x18mm round." msgstr "Es una vaina servida de una bala calibre 9x18mm." +#: lang/json/GENERIC_from_json.py +msgid ".380 ACP casing" +msgid_plural ".380 ACP casings" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for .380 ACP casing +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a .380 ACP round." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "shotgun hull" msgid_plural "shotgun hulls" @@ -46265,6 +46417,89 @@ msgstr "ARTEFACTOS" msgid "ARMOR" msgstr "ARMADURA" +#: lang/json/MAGAZINE_from_json.py +msgid "ultra-light battery cell" +msgstr "" + +#. ~ Description for ultra-light battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a light battery cell designed for small size over everything else. " +"It retains its universal compatibility, though." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "light battery cell" +msgstr "" + +#. ~ Description for light battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a light battery cell, universally compatible with all kinds of small" +" devices." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "light battery cell (high-capacity)" +msgid_plural "light battery cells (high-capacity)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for light battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity light battery cell, universally compatible with all " +"kinds of personal electronic devices." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "medium battery cell" +msgstr "" + +#. ~ Description for medium battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a medium battery cell, universally compatible with all kinds of " +"appliances and power tools." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "medium battery cell (high-capacity)" +msgid_plural "medium battery cells (high-capacity)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for medium battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity medium battery cell, universally compatible with all" +" kinds of appliances and power tools." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "heavy battery cell" +msgstr "" + +#. ~ Description for heavy battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a heavy battery cell, universally compatible with all kinds of " +"industrial-grade equipment and large tools." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "heavy battery cell (high-capacity)" +msgid_plural "heavy battery cells (high-capacity)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for heavy battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity heavy battery cell, universally compatible with all " +"kinds of industrial-grade equipment and large tools." +msgstr "" + #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "fuel bunker" msgstr "carbonera" @@ -46429,6 +46664,15 @@ msgstr "cargador S&W 22A" msgid "A standard capacity magazine for the popular S&W 22A pistol." msgstr "Es un cargador de capacidad estándar para la popular pistola S&W 22A." +#: lang/json/MAGAZINE_from_json.py +msgid "Jennings J-22 magazine" +msgstr "" + +#. ~ Description for Jennings J-22 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A cheap 6-round steel box magazine for the Jennings J-22." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "LW-5 speedloader" msgstr "" @@ -46729,6 +46973,15 @@ msgid "A standard 20-round magazine for the Skorpion Vz. 61, in .32 ACP." msgstr "" "Es un cargador estándar de 20 balas para el Skorpion Vz. 61, de .32 ACP." +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec P32 magazine" +msgstr "" + +#. ~ Description for Kel-Tec P32 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 7-round steel box magazine for the Kel-Tec P32." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "P226 magazine .357 SIG" msgstr "cargador P226 .357 SIG" @@ -46777,6 +47030,43 @@ msgid "" "revolver." msgstr "" +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec P3AT magazine" +msgstr "" + +#. ~ Description for Kel-Tec P3AT magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 6-round steel box magazine for the Kel-Tec P3AT." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "FN 1910 magazine" +msgstr "" + +#. ~ Description for FN 1910 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "" +"A standard 6-round steel box magazine for the FN 1910. It looks a bit old." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "Ruger LCP magazine" +msgstr "" + +#. ~ Description for Ruger LCP magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 6-round capacity magazine for the Ruger LCP pistol." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "MAC-11 magazine" +msgstr "" + +#. ~ Description for MAC-11 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A cheap 32-round steel box magazine for use with the MAC-11 SMG." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid ".40 6-round speedloader" msgstr "" @@ -47467,6 +47757,15 @@ msgstr "" "Es un cargador de caja de acero estándar de 32 balas, para usar en el " "subfusil UZI." +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec PF-9 magazine" +msgstr "" + +#. ~ Description for Kel-Tec PF-9 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 7-round steel box magazine for the Kel-Tec PF-9." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "Makarov PM magazine" msgstr "cargador Makarov PM" @@ -48276,6 +48575,15 @@ msgstr "" "Agrega una cadena de pizzerías ya en bancarrota, pero con monstruos " "animatrónicos funcionales en su interior." +#: lang/json/MOD_INFO_from_json.py +msgid "Battery Migration for Existing Games" +msgstr "" + +#. ~ Description for Battery Migration for Existing Games +#: lang/json/MOD_INFO_from_json.py +msgid "Allows you to reload and unload battery cells with legacy batteries." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "Boats" msgstr "Botes" @@ -54616,8 +54924,8 @@ msgstr "" msgid "guardin gnome" msgstr "guardgnomo de jardín" -#. ~ Description for garden gnome #. ~ Description for guardin gnome +#. ~ Description for garden gnome #: lang/json/MONSTER_from_json.py lang/json/furniture_from_json.py msgid "A normal and completely harmless garden gnome." msgstr "Es un guardgnomo de jardín totalmente normal e indefenso." @@ -55754,24 +56062,6 @@ msgstr "" "normales de batería. La podés conectar a cualquier dispositivo que funcione " "a batería, haciendo que utilice la energía de la celda de plutonio." -#: lang/json/TOOLMOD_from_json.py -msgid "extra battery mod" -msgid_plural "extra battery mods" -msgstr[0] "modificación de batería extra" -msgstr[1] "modificaciones de batería extra" - -#. ~ Description for extra battery mod -#: lang/json/TOOLMOD_from_json.py -msgid "" -"This is a homemade battery compartment made with spare electronics. With " -"enough electronics skill, you could attach this to any electronic tool to " -"double the amount of batteries it can hold." -msgstr "" -"Es un compartimiento para batería casero, hecho con partes electrónicas. Con" -" habilidad suficiente en electrónica, podrías agregar esto a cualquier " -"herramienta electrónica para duplicar la capacidad de baterías que puede " -"llevar." - #: lang/json/TOOLMOD_from_json.py msgid "UPS conversion mod" msgid_plural "UPS conversion mods" @@ -55825,6 +56115,45 @@ msgstr "" "Es una modificación de compartimiento para batería que te permite utilizar " "las baterías de vehículos y baterías pequeñas en herramientas comunes." +#: lang/json/TOOLMOD_from_json.py +msgid "light battery mod" +msgid_plural "light battery mods" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for light battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of light batteries in tools " +"that otherwise could not." +msgstr "" + +#: lang/json/TOOLMOD_from_json.py +msgid "medium battery mod" +msgid_plural "medium battery mods" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for medium battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of medium batteries in tools " +"that otherwise could not." +msgstr "" + +#: lang/json/TOOLMOD_from_json.py +msgid "heavy battery mod" +msgid_plural "heavy battery mods" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for heavy battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of heavy batteries in tools " +"that otherwise could not." +msgstr "" + #: lang/json/TOOLMOD_from_json.py msgid "cybernetic power port mod" msgid_plural "cybernetic power port mods" @@ -58350,6 +58679,32 @@ msgstr "" "esquina similar a un cincel. Se usa para la mayoría de las fabricaciones " "metalúrgicas." +#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +msgid "water mill" +msgid_plural "water mills" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for water mill +#: lang/json/TOOL_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour. Can" +" be placed via the construction menu." +msgstr "" + +#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +msgid "wind mill" +msgid_plural "wind mills" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for wind mill +#: lang/json/TOOL_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour. Can " +"be placed via the construction menu." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "wood axe" msgid_plural "wood axes" @@ -61985,28 +62340,10 @@ msgstr[1] "tiras de luz" #. ~ Description for lightstrip #: lang/json/TOOL_from_json.py msgid "" -"This is a light-emitting circuit wired directly to some batteries. It " -"provides some weak light and can't be turned off. When the batteries die, " -"you'll need to scrap it to recover the components that are reusable." +"This is a light-emitting circuit that has been wired directly to a battery." +" It provides some weak light and can't be turned off until the battery " +"dies." msgstr "" -"Es un circuito emisor de luz conectado directamente a unas baterías. Provee " -"una luz débil y no puede apagarse. Cuando se queda sin baterías, vas a tener" -" que desarmarlo para recuperar los componentes que puedan ser reutilizados." - -#: lang/json/TOOL_from_json.py -msgid "lightstrip (unpowered)" -msgid_plural "lightstrips (unpowered)" -msgstr[0] "tira de luz (gastada)" -msgstr[1] "tiras de luz (gastadas)" - -#. ~ Description for lightstrip (unpowered) -#: lang/json/TOOL_from_json.py -msgid "" -"This is a unpowered lightstrip. You could connect it to batteries to get a " -"light-emitting circuit." -msgstr "" -"Es una tira de luz sin energía. Podrías conectarla a una batería para " -"conseguir un circuito de emisión de luz." #: lang/json/TOOL_from_json.py msgid "lightstrip (inactive)" @@ -62022,15 +62359,9 @@ msgstr "Activás la tira de luz y ya no se puede apagar." #. ~ Description for lightstrip (inactive) #: lang/json/TOOL_from_json.py msgid "" -"This is a light-emitting circuit wired directly to some batteries. It will " -"provide some weak light once activated and can't be turned off. When the " -"batteries die, you'll need to scrap it to recover the components that are " -"reusable." +"This is a light-emitting circuit that can be wired directly to a battery. " +"It provides some weak light and can't be turned off until the battery dies." msgstr "" -"Es un circuito emisor de luz conectado directamente a unas baterías. Provee " -"una luz débil una vez que es activado y ya no puede apagarse. Cuando se " -"queda sin baterías, vas a tener que desarmarlo para recuperar los " -"componentes que puedan ser reutilizados." #: lang/json/TOOL_from_json.py msgid "lobotomizer" @@ -62678,7 +63009,13 @@ msgid "" "of reactivity. Don't try to breathe it." msgstr "" -#. ~ Description for nitrogen tank +#: lang/json/TOOL_from_json.py +msgid "hydrogen tank" +msgid_plural "hydrogen tanks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for hydrogen tank #: lang/json/TOOL_from_json.py msgid "" "This is a tank of compressed hydrogen gas. If you need to make water from " @@ -63436,6 +63773,12 @@ msgstr "" "hará que intentes repararlo o reforzarlo. Y al hacerlo estarás usando tu " "habilidad de Sastrería." +#: lang/json/TOOL_from_json.py +msgid "anesthesia kit" +msgid_plural "anesthesia kits" +msgstr[0] "" +msgstr[1] "" + #: lang/json/TOOL_from_json.py msgid "shaving kit" msgid_plural "shaving kits" @@ -69029,6 +69372,10 @@ msgstr ".357 SIG" msgid "9x18mm" msgstr "9x18mm" +#: lang/json/ammunition_type_from_json.py +msgid ".380 ACP" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid ".38" msgstr ".38" @@ -70023,6 +70370,18 @@ msgstr "" msgid "Railgun" msgstr "Cañón de Riel" +#. ~ Description for Railgun +#: lang/json/bionic_from_json.py +msgid "" +"EM field generators in your arms double the range and damage of thrown iron " +"and steel objects at a cost of 1 power per throw, causing them to leave a " +"trail of electricity that can cause additional damage." +msgstr "" +"Unos generadores de campos electromagnéticos en tus brazos, duplican la " +"distancia y el daño causado por el lanzamiento de objetos de hierro y de " +"acero con un costo de 1 unidad de energía por lanzamiento. Además, dejan una" +" estela de electricidad que puede causar daño adicional." + #: lang/json/bionic_from_json.py msgid "Fingertip Razors" msgstr "Uñas-Navaja" @@ -71168,6 +71527,14 @@ msgstr "" msgid "Build River Dock/Shallow Bridge" msgstr "" +#: lang/json/construction_from_json.py +msgid "Place Water Mill" +msgstr "" + +#: lang/json/construction_from_json.py +msgid "Place Wind Mill" +msgstr "" + #: lang/json/construction_from_json.py msgid "Build Shallow Temporary Bridge" msgstr "" @@ -76751,6 +77118,40 @@ msgstr "" "Es un soporte de metal para carnear diseñado para colgar un cadáver. Puede " "ser deconstruido y plegado para transportar fácilmente." +#. ~ Description for wind mill +#: lang/json/furniture_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "active wind mill" +msgstr "" + +#. ~ Description for active wind mill +#: lang/json/furniture_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour. Its" +" brake has been removed and it is turning." +msgstr "" + +#. ~ Description for water mill +#: lang/json/furniture_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "active water mill" +msgstr "" + +#. ~ Description for active water mill +#: lang/json/furniture_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour. " +"Its brake has been removed and it is turning." +msgstr "" + #. ~ Description for tourist table #: lang/json/furniture_from_json.py msgid "Small metal folding table, ideal for off-road trips into the wild." @@ -77856,7 +78257,8 @@ msgstr "" "arma tienen una gran probabilidad de no romperse." #: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py src/item.cpp +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "pistol" msgstr "pistola" @@ -78356,6 +78758,12 @@ msgid_plural "base pistols" msgstr[0] "pistola básica" msgstr[1] "pistolas básicas" +#: lang/json/gun_from_json.py +msgid "backup pistol" +msgid_plural "backup pistols" +msgstr[0] "" +msgstr[1] "" + #: lang/json/gun_from_json.py src/item_factory.cpp msgid "revolver" msgid_plural "revolvers" @@ -78605,6 +79013,21 @@ msgstr[1] "S&W 22A" msgid "A popular .22 pistol." msgstr "Es una popular pistola calibre .22." +#: lang/json/gun_from_json.py +msgid "Jennings J-22" +msgid_plural "Jennings J-22s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of the quintessential 'saturday night specials', the Jennings J-22 was " +"very affordably priced with its injection molded zinc slide and frame. " +"Intended to fill the void left after small pocket pistols were banned from " +"import, these were more commonly used by criminals unfazed by their glaring " +"safety issues." +msgstr "" + #: lang/json/gun_from_json.py msgid "Remington ACR" msgid_plural "Remington ACRs" @@ -79339,6 +79762,19 @@ msgstr "" "Es una de las pistolas más famosas del siglo XX. Tu nombre no es Bond, pero " "igual vas a encontrarle utilidad a esta pequeña pistola." +#: lang/json/gun_from_json.py +msgid "Kel-Tec P32" +msgid_plural "Kel-Tec P32s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of Kel-tec's oldest designs, the P32 is a popular option for deep " +"concealment and backup usage. Despite its extreme light weight and small " +"size, its .32 ACP chambering makes for good handling and recoil control." +msgstr "" + #: lang/json/gun_from_json.py msgid "SIG P226" msgid_plural "SIG P226s" @@ -79442,6 +79878,63 @@ msgstr "" "Una pistola calibre .38 popular. Diseñada con muchas características de " "seguridad y construida con materiales duraderos de alta calidad." +#: lang/json/gun_from_json.py +msgid "MAC-11" +msgid_plural "MAC-11s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A lesser known variant of the MAC-10, this machine pistol is chambered in " +".380 ACP for a smaller overall size while remaining inherently subsonic. " +"Smaller in almost every dimension, this inexpensive automatic weapon was " +"declared 'fit only for combat in a phone booth' due to its low weight and " +"absurd fire rate ranging from 1200 to 1400 rounds per minute." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Kel-Tec P3AT" +msgid_plural "Kel-Tec P3ATs" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"Essentially a slightly scaled up Kel-tec P32 in .380 ACP, the ever popular " +"P3AT offers better ballistics in a small, concealable lightweight package. " +"Handling leaves something to be desired due to snappier recoil and " +"diminuitive controls." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "FN 1910 .380" +msgid_plural "FN 1910 .380s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"Made infamous in Sarajevo in 1914, the FN1910 was a popular pocket pistol, " +"albeit in .32 ACP. Collectors value the .380 model for its notoriety and " +"more modern terminal performance. If such a humble firearm could start a " +"world war, could it perhaps protect you from the undead?" +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Ruger LCP" +msgid_plural "Ruger LCPs" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of the best selling modern day 'pocket pistol's, the LCP is an " +"affordable, polymer framed pistol chambered in .380 ACP. Despite the " +"round's relatively low power, the pistol's low weight and short sight radius" +" make for a moderately poor handling pistol." +msgstr "" + #: lang/json/gun_from_json.py msgid "Glock 22" msgid_plural "Glock 22" @@ -80763,6 +81256,20 @@ msgstr "" "Diseñada para los tiradores, la Glock 17 está orientada para uso de las " "fuerzas de la ley y militares." +#: lang/json/gun_from_json.py +msgid "Kel-Tec PF-9" +msgid_plural "Kel-Tec PF-9s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"The Kel-Tec PF-9 remains one of the most popular backup pistols due to its " +"history of reliability, affordability, and concealability. Chambered in " +"9x19mm, recoil is best described as unpleasant, and follow up shots are " +"difficult to place quickly." +msgstr "" + #: lang/json/gun_from_json.py msgid "Makarov PM" msgid_plural "Makarov PMs" @@ -83871,6 +84378,51 @@ msgctxt "gun_type_type" msgid "crossbow" msgstr "ballesta" +#: lang/json/gunmod_from_json.py +msgid "belt clip" +msgid_plural "belt clips" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a belt clip that attaches to the grip or slide of a pistol so as to " +"facilitate 'Mexican carry', the practice of carrying without a holster. It " +"does not offer any protection for the trigger, so users are strongly advised" +" to carry with the chamber empty or select a firearm with a very heavy " +"trigger pull." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "rugerlcp" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kp32" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kp3at" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kpf9" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "cop_38" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "moss_brownie" +msgstr "" + #: lang/json/gunmod_from_json.py msgid "shortened barrel" msgid_plural "shortened barrels" @@ -84641,6 +85193,19 @@ msgstr "" "antes de utilizarse. Por esto, aumenta el tiempo necesario para empuñar el " "arma." +#: lang/json/gunmod_from_json.py +msgid "folding wire stock" +msgid_plural "folding wire stocks" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"A folding wire stock which folds up very compactly but needs unfolding " +"before use. It's somewhat wobbly but is better than nothing at all. " +"Increases the time needed to wield the weapon." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "pistol stock" msgid_plural "pistol stocks" @@ -88168,22 +88733,16 @@ msgstr "Podés almacenar objetos acá." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"You can 'e'xamine the tile or attempt to pick-up items (default ',') to " -"access the controls, or use the vehicle control key (default '^')." +"You can 'e'xamine the tile to access the controls, or use the vehicle " +"control key (default '^')." msgstr "" -"Podés 'e'xaminar el espacio o intentar agarrar objetos (por defecto con ',')" -" para acceder a los controles, o controlar el vehículo (por defecto '^')." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"With a seat or saddle, you drive from here. You can 'e'xamine the tile or " -"attempt to pick-up items (default ',') to access the controls, or use the " -"vehicle control key (default '^')." +"With a seat or saddle, you drive from here. You can 'e'xamine the tile to " +"access the controls, or use the vehicle control key (default '^')." msgstr "" -"Manejás desde acá con un asiento o montura. Podés 'e'xaminar el espacio o " -"intentar agarrar objetos (por defecto con ',') para acceder a los controles," -" o controlar el vehículo (por defecto '^')." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -89170,6 +89729,10 @@ msgstr "Dormir" msgid "Control Vehicle" msgstr "Manejar vehículo" +#: lang/json/keybinding_from_json.py +msgid "Toggle Auto Travel Mode" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Toggle Safe Mode" msgstr "Act./Desact. Modo Seguro" @@ -89363,7 +89926,23 @@ msgid "Active World Mods" msgstr "Mods Activos de Mundo" #: lang/json/keybinding_from_json.py -msgid "Toggle move mode (run/walk/crouch)" +msgid "Cycle move mode (run/walk/crouch)" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Reset Movement to Walk" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Run" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Crouch" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Movement Mode Menu" msgstr "" #: lang/json/keybinding_from_json.py src/game_inventory.cpp @@ -97424,6 +98003,17 @@ msgstr "" "Tenés mejor oído que lo normal, y podés oir sonidos distantes con mayor " "facilidad." +#: lang/json/mutation_from_json.py +msgid "Fey Hearing" +msgstr "" + +#. ~ Description for Fey Hearing +#: lang/json/mutation_from_json.py +msgid "" +"Your not sure the shape of your ears are helping, but regardless you have " +"become very sensitive to sounds." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Outdoorsman" msgstr "Amante de la Naturaleza" @@ -99647,6 +100237,17 @@ msgstr "" "Donde antes estaba tu cuero cabelludo, ahora empezaste a florecer. Tus " "flores tienen un aroma agradable, son llamativos y bastante sensitivos." +#: lang/json/mutation_from_json.py +msgid "Rosebuds" +msgstr "" + +#. ~ Description for Rosebuds +#: lang/json/mutation_from_json.py +msgid "" +"The top of your head is blooming with rosebuds. They're eye catching, and " +"have a strong fragrance that makes you pleasant to be around." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Mycus Spores" msgstr "Esporas de Mycus" @@ -102473,6 +103074,17 @@ msgstr "" msgid "You detach a vine from your body." msgstr "Te sacás una liana de tu cuerpo." +#: lang/json/mutation_from_json.py +msgid "Hair Roots" +msgstr "" + +#. ~ Description for Hair Roots +#: lang/json/mutation_from_json.py +msgid "" +"Roots have started growing from your leaf like hair, they don't seem to do " +"much." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Toe Roots" msgstr "Dedos Raíces" @@ -105556,10 +106168,18 @@ msgstr "estación de servicio" msgid "pharmacy" msgstr "farmacia" +#: lang/json/overmap_terrain_from_json.py +msgid "pharmacy roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "doctor's office" msgstr "consultorio médico" +#: lang/json/overmap_terrain_from_json.py +msgid "doctor's office roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "office" msgstr "oficina" @@ -105666,6 +106286,10 @@ msgstr "" msgid "butcher shop" msgstr "carnicería" +#: lang/json/overmap_terrain_from_json.py +msgid "butcher shop roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "bike shop" msgstr "bicicletería" @@ -105870,10 +106494,22 @@ msgstr "sex shop" msgid "internet cafe" msgstr "cibercafé" +#: lang/json/overmap_terrain_from_json.py +msgid "internet cafe roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "car showroom" msgstr "sala de exposición de autos" +#: lang/json/overmap_terrain_from_json.py +msgid "car showroom 2nd floor" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "car showroom roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "car dealership" msgstr "concesionaria de autos" @@ -105902,6 +106538,10 @@ msgstr "estación de radio" msgid "gardening allotment" msgstr "huerto" +#: lang/json/overmap_terrain_from_json.py +msgid "gardening allotment roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "animal pound" msgstr "perrera" @@ -113940,7 +114580,7 @@ msgid "" msgstr "" #: lang/json/recipe_from_json.py -msgid "We need to add a console to control the radio tower." +msgid "We need to build a console to control the radio tower." msgstr "" #: lang/json/recipe_from_json.py @@ -125197,6 +125837,78 @@ msgstr "" msgid "Can do." msgstr "" +#: lang/json/snippet_from_json.py +msgid "Whew... smells like skunk!" +msgstr "Puaj... ¡qué baranda a zorrino!" + +#: lang/json/snippet_from_json.py +msgid "Man, that smells like some good shit!" +msgstr "¡Chabón, que bien que huele eso!" + +#: lang/json/snippet_from_json.py +msgid "Hey, don't bogart the joint!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "C'mon, , I can smell it, pass it over." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Wow, that smell takes me back." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Ah, man. Good times, good times. Love that scent." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "What do I smell? Well, I guess it's legal now." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Mmm, that weed smells good." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Man, I can smell the weed, can I have some?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Are you sure it's a good idea to smoke that now?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I don't know... should you really be smoking that stuff?" +msgstr "No sé... ¿te parece que tenés que estar fumando esa cosa?" + +#: lang/json/snippet_from_json.py +msgid ", that's going to ruin your nose." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Man, that stinks. Put it out!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "You're going to kill yourself smoking that stuff, ." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Oh, wow, that smell... Can I have some?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Ew, smells like burning rubber!" +msgstr "¡Puaj, qué baranda a goma quemada!" + +#: lang/json/snippet_from_json.py +msgid "Ugh, that smells rancid!" +msgstr "¡Uh, qué olor rancio!" + +#: lang/json/snippet_from_json.py +msgid "" +msgstr "" + #: lang/json/snippet_from_json.py msgid "Tell me about how you survived the cataclysm." msgstr "Contame cómo hiciste para sobrevivir al cataclismo." @@ -126168,6 +126880,10 @@ msgstr "¡Mi dueña anterior gritaba como un chancho cuando la destripé!" msgid "\"Hello?\"" msgstr "\"¿Hola?\"" +#: lang/json/speech_from_json.py +msgid "\"Papaya!\"" +msgstr "" + #: lang/json/speech_from_json.py msgid "\"Who's there?\"" msgstr "\"¿Quién está ahí?\"" @@ -128758,8 +129474,8 @@ msgstr "Negocio de Ropa" #: lang/json/talk_topic_from_json.py msgid "" -"I'm my own person, but I'm willing to follow your lead. I can do a lot of things for you: I can fight, I can train you or you can train me, I can carry stuff, I can bandage your wounds, I can build faction camps, I can go places, I can guard things, I can even chit-chat with you or talk about my background. You can give me instructions in conversation or by radio or shout commands at me. \n" -"What do you want to know more about?" +"I'm my own person, but I'm willing to follow your lead. I can do a lot of things for you: I can fight, I can train you or you can train me, I can carry stuff, I can bandage your wounds, I can build faction camps, I can go places, I can guard things, I can even chit-chat with you or talk about my background. You can give me instructions in conversation or by radio or shout commands at me.\n" +" What do you want to know more about?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -128820,8 +129536,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If we're next to each other, you can just bump into me and we'll start talking, right? But if I'm farther away, you're going to have to shout a bit (use the 'C'hat command) for me to hear you. You'll need to see me for us to have a conversation. Or we can talk by radios if we both have them. \n" -"When we talk, you can give me instructions about how to fight or when to sleep or whatever. I'll mostly do them, and you can ask me what my current instructions are. Sometimes you'll give me two sets of instructions: a normal set, and an override for a specific situation. I'll tell you which instructions are overriden. You can set and clear overrides with shouted commands." +"If we're next to each other, you can just bump into me and we'll start talking, right? But if I'm farther away, you're going to have to shout a bit (use the 'C'hat command) for me to hear you. You'll need to see me for us to have a conversation. Or we can talk by radios if we both have them.\n" +" When we talk, you can give me instructions about how to fight or when to sleep or whatever. I'll mostly do them, and you can ask me what my current instructions are. Sometimes you'll give me two sets of instructions: a normal set, and an override for a specific situation. I'll tell you which instructions are overriden. You can set and clear overrides with shouted commands." msgstr "" #: lang/json/talk_topic_from_json.py @@ -128835,8 +129551,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Sometimes you need to give orders in a hurry. You can use the 'C'hat command to shout a single specific order. If I hear you, I'll do what you say, as will anyone else following you that hears it. \n" -"Some orders will override other instructions you've given me. If you change my instructions when I've got an override command, I'll tell you which ones are overridden. You can shout an order to clear any overrides." +"Sometimes you need to give orders in a hurry. You can use the 'C'hat command to shout a single specific order. If I hear you, I'll do what you say, as will anyone else following you that hears it.\n" +" Some orders will override other instructions you've given me. If you change my instructions when I've got an override command, I'll tell you which ones are overridden. You can shout an order to clear any overrides, or talk to me and tell me to clear them." msgstr "" #: lang/json/talk_topic_from_json.py @@ -128845,72 +129561,75 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"It's a dangerous world out there, right? So we fight to survive. I'm on your side, and I'll stick with you, but if I think the situation is too dangerous, I'll be honest, I'm going to run. If I see you running but I think it's safe, I'll stay and fight, but you can tell me run with you and I'll stick by you as best I can. \n" -"You can give me some instructions on when I should attack, but I'll make my own decisions about who - I'll try to defend myself and you, though, but if you tell me to stay in one place I'll stay there. \n" -"I'll use guns and grenades if I have them, but you can tell me to not use grenades or not use loud weapons or to not use ranged weapons at all. If I'm shooting, you can tell me how much to aim and whether to try to avoid shooting you or not. \n" -"I'll respect your rules for what types of weapons to use, but I'll choose what to use from my stuff. \n" -"You can also tell me to hold the line and fight at chokepoints, but I'm not great at recognizing them so I may go off to fight something elsewhere anyway." +"It's a dangerous world out there, right? So we fight to survive. I'm on your side, and I'll stick with you, but if I think the situation is too dangerous, I'll be honest, I'm going to run.\n" +" You can't tell me not to run, because I'm going to flee if things are bad, but you can tell me a safe place to retreat by using the zones manager (keybind 'Y'). I'll run toward the closest place you've designated - and you can set zones on vehicles, so if you've got a car, you could tell me to retreat there.\n" +" If I see you running but I think it's safe, I'll stay and fight, but you can tell me run with you and I'll stick by you as best I can.\n" +" You can give me some instructions on when I should attack, but I'll make my own decisions about who - I'll try to defend myself and you, but if you tell me to stay in one place I'll stay there.\n" +" I'll use guns and grenades if I have them, but you can tell me to not use grenades or not use loud weapons or to not use ranged weapons at all. If I'm shooting, you can tell me how much to aim and whether to try to avoid shooting you or not. I'm not so good at recognizing safe shots, so stay out of my line of fire no matter what.\n" +" I'll respect your rules for what types of weapons to use, but I'll choose what to use from my stuff.\n" +" You can also tell me to hold the line and fight at chokepoints, but I'm not great at recognizing them so I may go off to fight something elsewhere anyway." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If I'm better at a skill than you, I can help you improve. But it's boring to teach a lot, so I'm not going to do it very often. And I'm not going to do it when we're in danger or if I'm hungry or tired or if you're driving. \n" -"If we're someplace safe and you're reading a book that improves skills, I'll listen if I don't have that skill. You can even read me books for skills that you already have." +"If I'm better at a skill than you, I can help you improve. But it's boring to teach a lot, so I'm not going to do it very often. And I'm not going to do it when we're in danger or if I'm hungry or tired or if you're driving.\n" +" If we're someplace safe and you're reading a book that improves skills, I'll listen if I don't have that skill. You can even read me books for skills that you already have." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"You give me something to carry, I'll carry it. But I only have so many pockets and I'm only so strong, so I'll drop stuff that's too big to carry. \n" -"I'll also wear stuff - I'll decide what I want to wear, but you can take stuff from me. If I'm wearing something I shouldn't, you can bump into me and sort my armor to get me to take if off. \n" -"I don't like wearing a lot of gear, so if you give me a lot of bulky stuff and things that don't fit, I'm going to take them off and probably drop them. \n" -"Also, since we're friends, I'll give you anything I'm carrying, no questions asked. \n" -"Oh, yeah, if I'm hungry or thirsty and I'm carrying food, I'll eat it. So you might want to watch what you give me, y'know?" +"You give me something to carry, I'll carry it. But I only have so many pockets and I'm only so strong, so I'll drop stuff that's too big to carry.\n" +" I'll also wear stuff - I'll decide what I want to wear, but you can take stuff from me. If I'm wearing something I shouldn't, you can bump into me and sort my armor to get me to take if off.\n" +" I don't like wearing a lot of gear, so if you give me a lot of bulky stuff and things that don't fit, I'm going to take them off and probably drop them.\n" +" Also, since we're friends, I'll give you anything I'm carrying, no questions asked.\n" +" Oh, yeah, if I'm hungry or thirsty and I'm carrying food, I'll eat it. So you might want to watch what you give me, y'know?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If you call me by radio, you can tell me to come to you. If you've got some basecamps set up, you can tell me to go to one of them. I'll start walking, and when I get to where I'm going, I'll guard it. \n" -"Now depending on where I am and where I'm going, it may take me a while to get there. I'll dodge any dangers on the way, don't worry about that, but if you're way the heck away from me and tell me to come, it may be a while until I get to you." +"If you call me by radio, you can tell me to come to you. If you've got some basecamps set up, you can tell me to go to one of them. I'll start walking, and when I get to where I'm going, I'll guard it.\n" +" Now depending on where I am and where I'm going, it may take me a while to get there. I'll dodge any dangers on the way, don't worry about that, but if you're way the heck away from me and tell me to come, it may be a while until I get to you." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"You tell me to guard, I'll stay where I am and guard it - unless I'm in a vehicle, in which case I'll stick with the vehicle. \n" -"I'm not a potted plant, though, so if I hear something dangerous happening, I'm going to go see what it is instead of getting jumped in the dark. If you want me to stay put, tell me not to investigate noises - but if I get shot by some bandit because I can't see where he is and you don't want me to go looking, I won't be happy." +"You tell me to guard, I'll stay where I am and guard it - unless I'm in a vehicle, in which case I'll stick with the vehicle.\n" +" I'm not a potted plant, though, so if I hear something dangerous happening, I'm going to go see what it is instead of getting jumped in the dark. If you want me to stay put, tell me not to investigate noises - but if I get shot by some bandit because I can't see where he is and you don't want me to go looking, I won't be happy.\n" +" You can also use the zone manager (keybind 'Y') to set up no-investigate zone, so if there's some monsters behind a door that you know about, I can ignore them. You can also set on an investigate-only zone, and I won't investigate noises coming from outside the zone. The no-investigate zone takes precedence over the investigate-only, if there's a noise coming from some place in both zones. And if you've got an investigate-only zone set anywhere, even if it's far away, I won't investigate noises coming from outside of it, so be careful with those zones. Like I said, I don't want to get sniped by some bandit because you told me not to go looking for him - but I also don't want to go investigate something pounding at door only to find out it's some horrible monster you forgot to warn me about." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Just in case - how do I tell you to stay put?" +msgid "Just in case - how else can I tell you to stay put?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"We can chit-chat, if you want. People are social animals, right? A little light conversation can do wonders for your mood. But I don't want to be yapping all the time, so if we've chatted recently, I probably am not going to want to talk for a bit. \n" -"You can also ask me about my background. I may not want to talk about it, though." +"We can chit-chat, if you want. People are social animals, right? A little light conversation can do wonders for your mood. But I don't want to be yapping all the time, so if we've chatted recently, I probably am not going to want to talk for a bit.\n" +" You can also ask me about my background. I may not want to talk about it, though." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"You can give me a bunch of instructions. Talk to me about the miscellaneous rules, and I'll tell you what I'm doing and you can give a new instruction. Sometimes you'll have shouted a command that overrides your other instructions, and I'll tell you which instructions are overridden. \n" -"I'm not a chatterbox, but I'll tell you when I see or hear danger or if I'm hurt or hungry or something. You don't want me doing that, you just tell me. \n" -"Also, I'll pulp zombies if you'd like - I would prefer that. \n" -"If I hear something suspicious and can't see if, I'll go take a look, but you can tell me not to do that. \n" -" I'll open and close doors, or open them and leave them ajar, or not going through closed doors. You just tell me what you want. \n" -"I can pick stuff up if want me to, and you can tell me what to pick up. If I've got a bow or crossbow, please tell me to pick up the ammo - it's less fuss for both of us. \n" -"If you've got a vehicle, you can e'x'amine it and use the cre'w' command to assign me a seat. That saves arguments about who needs to sit where." +"You can give me a bunch of instructions. Talk to me about the miscellaneous rules, and I'll tell you what I'm doing and you can give a new instruction. Sometimes you'll have shouted a command that overrides your other instructions, and I'll tell you which instructions are overridden.\n" +" I'm not a chatterbox, but I'll tell you when I see or hear danger or if I'm hurt or hungry or something. You don't want me doing that, you just tell me.\n" +" Also, I'll pulp zombies if you'd like - I would prefer that.\n" +" If I hear something suspicious and can't see if, I'll go take a look, but you can tell me not to do that.\n" +" I'll open and close doors, or open them and leave them ajar, or not going through closed doors. You just tell me what you want.\n" +" I can pick stuff up if want me to, and you can tell me what to pick up. If I've got a bow or crossbow, please tell me to pick up the ammo - it's less fuss for both of us.\n" +" If you've got a vehicle, you can e'x'amine it and use the cre'w' command to assign me a seat. That saves arguments about who needs to sit where." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Here's the list of shouted commands I'll respond to: \n" -"Order me to guard, and I'll stay where I am and watch out for danger. I'll investigate suspicious noises unless you told me not to. \n" -"Order me to follow, and I'll stop guarding and go back to following you. \n" -"Order me to stay awake, and I'll stay awake until I'm too tired to keep my eyes open. \n" -"Order me to sleep when tired, and I'll nap when I get tired. I'll try to tell you when I'm off to bed unless you don't want to hear it. \n" -"Order me to flee, and I'll stick close to you when you run from danger. I won't go running off on my own - though if things really bad, I might be running away already! \n" -"Order me to stop running, and I'll evaluate the danger myself and might go off and fight something while you're doing other things. \n" -"Ordering me to prepare for danger is special: it's an override command. That means I'm going to follow certain instructions, even if you've given me other instructions earlier. Specifically, I'm going to flee with you, I'm not going to open or close doors, I'm not going to sleep until I'm exhausted, and I'm going to try to hold any chokepoints that you're fighting at. \n" -"Ordering me to relax from danger is another special command, and it will clear any overrides I currently have and I'll go back to whatever instructions I had before you told me to prepare for danger." +"Here's the list of shouted commands I'll respond to:\n" +" - Order me to guard, and I'll stay where I am and watch out for danger. I'll investigate suspicious noises unless you told me not to.\n" +" - Order me to follow, and I'll stop guarding and go back to following you.\n" +" - Order me to stay awake, and I'll stay awake until I'm too tired to keep my eyes open.\n" +" - Order me to sleep when tired, and I'll nap when I get tired. I'll try to tell you when I'm off to bed unless you don't want to hear it.\n" +" - Order me to flee, and I'll stick close to you when you run from danger. I won't go running off on my own - though if things really bad, I might be running away already!\n" +" - Order me to stop running, and I'll evaluate the danger myself and might go off and fight something while you're doing other things.\n" +" - Ordering me to prepare for danger is special: it's an override command. That means I'm going to follow certain instructions, even if you've given me other instructions earlier. Specifically, I'm going to flee with you, I'm not going to open or close doors, I'm not going to sleep until I'm exhausted, and I'm going to try to hold any chokepoints that you're fighting at.\n" +" - Ordering me to relax from danger is another special command, and it will clear any overrides I currently have and I'll go back to whatever instructions I had before you told me to prepare for danger." msgstr "" #: lang/json/talk_topic_from_json.py @@ -129193,6 +129912,10 @@ msgstr "¡Despertate!" msgid "Go back to sleep." msgstr "Volvete a dormir." +#: lang/json/talk_topic_from_json.py +msgid "What is it, friend?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Combat commands..." msgstr "Comandos de combate..." @@ -129202,24 +129925,20 @@ msgid "Can you teach me anything?" msgstr "¿Me podés enseñar algo?" #: lang/json/talk_topic_from_json.py -msgid "Let's trade items" -msgstr "Vamos a intercambiar objetos" - -#: lang/json/talk_topic_from_json.py -msgid "Guard this position" -msgstr "Cuidá esta posición" +msgid "Guard this position." +msgstr "Cuidá esta posición." #: lang/json/talk_topic_from_json.py msgid "I'd like to know a bit more about you..." msgstr "Me gustaría conocer un poco más de vos..." #: lang/json/talk_topic_from_json.py -msgid "I want you to use this item" -msgstr "Quiero usar este objeto" +msgid "I want you to use this item." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hold on to this item" -msgstr "Guardá este objeto" +msgid "Hold on to this item." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Miscellaneous rules..." @@ -129350,10 +130069,6 @@ msgstr "Sí, estoy seguro. Chau." msgid "Nah, I'm just kidding." msgstr "Nah, te estaba boludeando." -#: lang/json/talk_topic_from_json.py -msgid "*pshhhttt* I'm reading you boss, over." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Stay at your current position." msgstr "" @@ -129820,7 +130535,7 @@ msgstr "¡Bueno, vamos!" msgid "Yeah... I don't think so." msgstr "Sí... no me parece." -#: lang/json/talk_topic_from_json.py src/npctalk.cpp +#: lang/json/talk_topic_from_json.py msgid "What is it?" msgstr "¿Qué es?" @@ -130000,6 +130715,28 @@ msgstr "Bueno, está bien, chau." msgid "Okay" msgstr "Bueno." +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm willing to pay per batch for a total of " +"." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Works for me." +msgstr "Trabaja para mi." + +#: lang/json/talk_topic_from_json.py +msgid "Maybe later." +msgstr "Tal vez más tarde." + +#: lang/json/talk_topic_from_json.py +msgid "Pleasure doing business!" +msgstr "¡Un placer hacer negocios!" + +#: lang/json/talk_topic_from_json.py +msgid "You might be seeing more of me..." +msgstr "Tal vez me vuelvas a ver..." + #: lang/json/talk_topic_from_json.py msgid "Hey again. *kzzz*" msgstr "" @@ -130976,10 +131713,6 @@ msgstr "¿Que es necesario hacer?" msgid "Yes, set up the bulletin board and then go back to normal duties." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Hope you're here to trade." -msgstr "Espero que hayas venido a comerciar." - #: lang/json/talk_topic_from_json.py msgid "" "I oversee the food stocks for the center. There was significant looting " @@ -131037,6 +131770,14 @@ msgstr "" msgid "Interesting..." msgstr "Interesante..." +#: lang/json/talk_topic_from_json.py +msgid "Hope you're here to trade." +msgstr "Espero que hayas venido a comerciar." + +#: lang/json/talk_topic_from_json.py +msgid "Who are you?" +msgstr "¿Quién sos?" + #: lang/json/talk_topic_from_json.py msgid "Mind if we just chat for a bit?" msgstr "¿Podemos conversar un ratito?" @@ -131306,10 +132047,6 @@ msgstr "Alguacil..." msgid "Citizen..." msgstr "Ciudadano..." -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Who are you?" -msgstr "¿Quién sos?" - #: lang/json/talk_topic_from_json.py msgid "Is there any way I can join the 'Old Guard'?" msgstr "¿Hay alguna forma en que me pueda unir a la 'Vieja Guardia'?" @@ -131931,10 +132668,6 @@ msgstr "[$2000, 1d] 10 troncos" msgid "[$12000, 7d] 100 logs" msgstr "[$12000, 7d] 100 troncos" -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Maybe later." -msgstr "Tal vez más tarde." - #: lang/json/talk_topic_from_json.py msgid "I'll be back later." msgstr "Vuelvo después." @@ -142948,6 +143681,10 @@ msgstr "Cortar de calidad" msgid "glare protection" msgstr "Protección al brillo" +#: lang/json/tool_quality_from_json.py +msgid "anesthesia" +msgstr "" + #: lang/json/tool_quality_from_json.py msgid "smoothing" msgstr "Suavizar" @@ -144204,10 +144941,6 @@ msgstr "Es un espacio lateral, como un pasillo." msgid "wooden aisle" msgstr "espacio lateral de madera" -#: lang/json/vehicle_part_from_json.py -msgid "floor trunk" -msgstr "baúl de suelo" - #. ~ Description for floor trunk #: lang/json/vehicle_part_from_json.py msgid "An aisle. A hatch lets you access a cargo space beneath it." @@ -145007,13 +145740,9 @@ msgstr "" msgid "" "A sophisticated set of electronic controls that allow you to control the " "vehicle from a vehicle remote while you are not in it. You can 'e'xamine " -"the tile or attempt to pick-up items (default ',') to access the controls, " -"or use the vehicle control key (default '^')." +"the tile to access the controls, or use the vehicle control key (default " +"'^')." msgstr "" -"Es un sofisticado equipo de controles electrónicos que te permiten manejar " -"el vehículo de manera remota. Podés 'e'xaminar el espacio o intentar agarrar" -" objetos (por defecto con ',') para acceder a los controles, o usar la tecla" -" de control del vehículo (por defecto '^')." #: lang/json/vehicle_part_from_json.py msgid "camera control system" @@ -145024,14 +145753,9 @@ msgstr "sistema de cámara de control" msgid "" "An LCD display attached to one or more cameras. When turned on, it lets you" " see from the cameras, but drains power from the vehicle's batteries. You " -"can 'e'xamine the tile or attempt to pick-up items (default ',') to access " -"the controls, or use the vehicle control key (default '^')." +"can 'e'xamine the tile to access the controls, or use the vehicle control " +"key (default '^')." msgstr "" -"Es una pantalla LCD conectada a una o más cámaras. Cuando está encendida, te" -" permite ver las cámaras, pero consume energía de las baterías del vehículo." -" Podés 'e'xaminar el espacio o intentar agarrar objetos (por defecto con " -"',') para acceder a los controles, o usar la tecla de control del vehículo " -"(por defecto '^')." #. ~ Description for security camera #: lang/json/vehicle_part_from_json.py @@ -145412,10 +146136,8 @@ msgstr "Es un motor de combustión. Quema combustible del tanque del vehículo." #: lang/json/vehicle_part_from_json.py msgid "" "A combustion engine. Burns diesel fuel from a tank in the vehicle. Can " -"also burn methanol, ethanol, or lamp oil, though somewhat less efficiently." +"also burn biodiesel or lamp oil, though somewhat less efficiently." msgstr "" -"Es un motor de combustión. Quema gasoil del tanque del vehículo. También " -"puede quemar metanol, etanol o aceite de lámpara, aunque es menos eficiente." #: lang/json/vehicle_part_from_json.py msgid "A combustion engine. Burns gasoline fuel from a tank in the vehicle." @@ -152309,6 +153031,34 @@ msgstr "Los PNJ no agarran cosas" msgid "Friendly NPCs don't pickup items inside the zone." msgstr "Los PNJ amigos no van a agarrar objetos dentro de la zona." +#: src/clzones.cpp +msgid "NPC Retreat" +msgstr "" + +#: src/clzones.cpp +msgid "" +"When fleeing, friendly NPCs will attempt to retreat toward this zone if it " +"is within 60 tiles." +msgstr "" + +#: src/clzones.cpp +msgid "NPC Ignore Sounds" +msgstr "" + +#: src/clzones.cpp +msgid "Friendly NPCs won't investigate unseen sounds coming from this zone." +msgstr "" + +#: src/clzones.cpp +msgid "NPC Investigation Area" +msgstr "" + +#: src/clzones.cpp +msgid "" +"Friendly NPCs will investigate unseen sounds only if they come from inside " +"this area." +msgstr "" + #: src/clzones.cpp msgid "Loot: Unsorted" msgstr "Cosas: Desordenadas" @@ -154688,11 +155438,6 @@ msgctxt "in progress craft" msgid " starts working on the %s." msgstr "" -#: src/crafting.cpp -#, c-format -msgid "%s helps with crafting..." -msgstr "%s te ayuda con la fabricación..." - #: src/crafting.cpp #, c-format msgid "%s assists with crafting..." @@ -154708,6 +155453,11 @@ msgstr "%s podría ayudarte para hacer una tanda..." msgid "%s watches you craft..." msgstr "%s te mira mientras fabricás..." +#: src/crafting.cpp +#, c-format +msgid "%s helps with crafting..." +msgstr "%s te ayuda con la fabricación..." + #: src/crafting.cpp #, c-format msgid "You fail to make the %s, and waste some materials." @@ -154733,6 +155483,17 @@ msgstr "Fabricaste un/a %s siguiendo las instrucciones del libro." msgid "You memorized the recipe for %s!" msgstr "¡Acabas de memorizarte la receta de %s!" +#: src/crafting.cpp +#, c-format +msgid "You don't know the recipe for the %s and can't continue crafting." +msgstr "" + +#: src/crafting.cpp +#, c-format +msgid "" +" doesn't know the recipe for the %s and can't continue crafting." +msgstr "" + #: src/crafting.cpp #, c-format msgid "%s (%d/%d nearby)" @@ -155325,6 +156086,190 @@ msgstr "" "Apretá C (o c) para copiar este " "mensaje en la papelera." +#: src/debug_menu.cpp +msgid "Mutate" +msgstr "Mutar" + +#: src/debug_menu.cpp +msgid "Change all skills" +msgstr "Cambiar todas las habilidades" + +#: src/debug_menu.cpp +msgid "Learn all melee styles" +msgstr "Aprender todos los estilos de cuerpo a cuerpo" + +#: src/debug_menu.cpp +msgid "Unlock all recipes" +msgstr "Conocer todas las recetas" + +#: src/debug_menu.cpp +msgid "Edit player/NPC" +msgstr "Editar jugador/PNJ" + +#: src/debug_menu.cpp +msgid "Damage self" +msgstr "" + +#: src/debug_menu.cpp +msgid "Set automove route" +msgstr "Determinar ruta de automovimiento" + +#: src/debug_menu.cpp +msgid "Player..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Check game state" +msgstr "" + +#: src/debug_menu.cpp +msgid "Display hordes" +msgstr "Mostrar hordas" + +#: src/debug_menu.cpp +msgid "Test item group" +msgstr "" + +#: src/debug_menu.cpp +msgid "Show sound clustering" +msgstr "" + +#: src/debug_menu.cpp +msgid "Display weather" +msgstr "Mostrar clima" + +#: src/debug_menu.cpp +msgid "Display overmap scents" +msgstr "Mostrar olores en mapa" + +#: src/debug_menu.cpp +msgid "Show mutation category levels" +msgstr "Mostrar niveles de categorías de mutación" + +#: src/debug_menu.cpp +msgid "Draw benchmark (X seconds)" +msgstr "" + +#: src/debug_menu.cpp +msgid "Test trait group" +msgstr "Probar grupo de peculiaridades" + +#: src/debug_menu.cpp +msgid "Show debug message" +msgstr "Mostrar mensaje debug" + +#: src/debug_menu.cpp +msgid "Crash game (test crash handling)" +msgstr "Error del juego (prueba de manejo de fallos)" + +#: src/debug_menu.cpp +msgid "Toggle NPC pathfinding on map" +msgstr "" + +#: src/debug_menu.cpp +msgid "Info..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - short range" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - long range" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - adjacent overmap" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn an item" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn NPC" +msgstr "Crear PNJ" + +#: src/debug_menu.cpp +msgid "Spawn monster" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn a vehicle" +msgstr "Crear vehículo" + +#: src/debug_menu.cpp +msgid "Spawn artifact" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn clairvoyance artifact" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawning..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Reveal map" +msgstr "Revelar mapa" + +#: src/debug_menu.cpp +msgid "Kill NPCs" +msgstr "Matar PNJs" + +#: src/debug_menu.cpp +msgid "Map editor" +msgstr "Editor de mapa" + +#: src/debug_menu.cpp +msgid "Change weather" +msgstr "Cambiar clima" + +#: src/debug_menu.cpp +msgid "Change wind direction" +msgstr "" + +#: src/debug_menu.cpp +msgid "Change wind speed" +msgstr "" + +#: src/debug_menu.cpp +msgid "Kill all monsters" +msgstr "Matar todos los monstruos" + +#: src/debug_menu.cpp +msgid "Change time" +msgstr "Cambiar hora" + +#: src/debug_menu.cpp +msgid "Overmap editor" +msgstr "Editor de mapa general" + +#: src/debug_menu.cpp +msgid "Spawn map extra" +msgstr "" + +#: src/debug_menu.cpp +msgid "Map..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Quit to main menu" +msgstr "" + +#: src/debug_menu.cpp +msgid "" +"Debug Functions - Using these will cheat not only the game, but yourself.\n" +"You won't grow. You won't improve.\n" +"Taking this shortcut will gain you nothing. Your victory will be hollow.\n" +"Nothing will be risked and nothing will be gained." +msgstr "" + #: src/debug_menu.cpp #, c-format msgid "You teleport to point (%d,%d,%d)." @@ -155767,6 +156712,207 @@ msgstr "Quitar misión sin borrar todo" msgid "Drew %d times in %.3f seconds. (%.3f fps average)" msgstr "Dibujado %d veces en %.3f segundos. (%.3f fps promedio)" +#: src/debug_menu.cpp +msgid "Current overmap revealed." +msgstr "Mapa general actual revelado." + +#: src/debug_menu.cpp +#, c-format +msgid "Location %d:%d in %d:%d, %s\n" +msgstr "Locación %d:%d en %d:%d, %s\n" + +#: src/debug_menu.cpp +#, c-format +msgid "" +"Current turn: %d.\n" +"%s\n" +msgstr "" +"Turno actual: %d.\n" +"%s\n" + +#: src/debug_menu.cpp +#, c-format +msgid "%d creature exists.\n" +msgid_plural "%d creatures exist.\n" +msgstr[0] "%d criatura existe.\n" +msgstr[1] "%d criaturas existen.\n" + +#: src/debug_menu.cpp +msgid "NPCs are going to spawn." +msgstr "Se van a generar PNJs." + +#: src/debug_menu.cpp +msgid "NPCs are NOT going to spawn." +msgstr "NO se van a generar PNJs." + +#: src/debug_menu.cpp +#, c-format +msgid "%s: map ( %d:%d ) pos ( %d:%d )" +msgstr "%s: map ( %d:%d ) pos ( %d:%d )" + +#: src/debug_menu.cpp +#, c-format +msgid "(you: %d:%d)" +msgstr "(vos: %d:%d)" + +#: src/debug_menu.cpp +#, c-format +msgid "Stomach Contents: %d ml / %d ml kCal: %d, Water: %d ml" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "" +"Guts Contents: %d ml / %d ml kCal: %d, Water: %d ml\n" +"Hunger: %d, Thirst: %d, kCal: %d / %d" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "%s's head implodes!" +msgstr "¡La cabeza de %s implosiona!" + +#: src/debug_menu.cpp +msgid "Choose vehicle to spawn" +msgstr "Elegir vehículo para crear" + +#. ~ Menu entry in vehicle wish menu: 1st string: displayed name, 2nd string: +#. internal name of vehicle +#: src/debug_menu.cpp +#, c-format +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + +#: src/debug_menu.cpp +msgid "Martial arts debug." +msgstr "Debug de artes marciales." + +#: src/debug_menu.cpp +msgid "Your eyes blink rapidly as knowledge floods your brain." +msgstr "" +"Tus ojos pestañean rápidamente a medida que el conocimiento fluye por tu " +"cerebro." + +#: src/debug_menu.cpp +msgid "You now know a lot more than just 10 styles of kung fu." +msgstr "Ahora sabés mucho más que solo 10 estilos de kung fu." + +#: src/debug_menu.cpp +msgid "Recipe debug." +msgstr "Debug de recetas." + +#: src/debug_menu.cpp +msgid "You know how to craft that now." +msgstr "Ahora sabés cómo fabricar eso." + +#: src/debug_menu.cpp +msgid "Select new weather pattern:" +msgstr "Elegir parámetro de clima nuevo:" + +#: src/debug_menu.cpp +msgid "Disable weather forcing" +msgstr "Desactivar fuerza del clima" + +#: src/debug_menu.cpp +msgid "Keep normal weather patterns" +msgstr "Mantener el parámetro normal de clima" + +#: src/debug_menu.cpp +msgid "Select new wind direction:" +msgstr "" + +#: src/debug_menu.cpp +msgid "Disable direction forcing" +msgstr "" + +#: src/debug_menu.cpp +msgid "Keep normal wind direction" +msgstr "" + +#: src/debug_menu.cpp +msgid "Select new wind speed:" +msgstr "" + +#: src/debug_menu.cpp +msgid "Disable speed forcing" +msgstr "" + +#: src/debug_menu.cpp +msgid "Keep normal wind speed" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "Damage self for how much? hp: %d" +msgstr "¿Cuánto daño te querés causar? pv: %d" + +#: src/debug_menu.cpp +msgid "This binary was not compiled with tiles support." +msgstr "Este binario no está compilado con soporte para gráficos." + +#: src/debug_menu.cpp +msgid "year" +msgstr "año" + +#: src/debug_menu.cpp +msgid "season" +msgstr "estación" + +#: src/debug_menu.cpp +msgid "day" +msgstr "día" + +#: src/debug_menu.cpp +msgid "hour" +msgstr "hora" + +#: src/debug_menu.cpp +msgid "minute" +msgstr "minuto" + +#: src/debug_menu.cpp src/martialarts.cpp src/martialarts.cpp +msgid "turn" +msgid_plural "turns" +msgstr[0] "turno" +msgstr[1] "turnos" + +#: src/debug_menu.cpp +msgid "Set year to?" +msgstr "¿Establecer año en?" + +#: src/debug_menu.cpp +msgid "Set season to? (0 = spring)" +msgstr "¿Establecer estación en? (0 = primavera)" + +#: src/debug_menu.cpp +msgid "Set days to?" +msgstr "¿Establecer días en?" + +#: src/debug_menu.cpp +msgid "Set hour to?" +msgstr "¿Establecer hora en?" + +#: src/debug_menu.cpp +msgid "Set minute to?" +msgstr "¿Establecer minuto en?" + +#: src/debug_menu.cpp +#, c-format +msgid "Set turn to? (One day is %i turns)" +msgstr "¿Establecer turno en? (Un día son %i turnos)" + +#: src/debug_menu.cpp +msgid "Enter benchmark length (in milliseconds):" +msgstr "" + +#: src/debug_menu.cpp +msgid "" +"Quit without saving? This may cause issues such as duplicated or missing " +"items and vehicles!" +msgstr "" +"¿Querés salir sin guardar? ¡Puede causar problemas como duplicar o " +"desaparecer objetos y vehículos!" + #: src/defense.cpp #, c-format msgid "Please wait as the map generates [ 0%% ]" @@ -157337,6 +158483,10 @@ msgstr "Siguiéndote" msgid "Leading" msgstr "Liderando" +#: src/faction.cpp +msgid "Patrolling" +msgstr "" + #: src/faction.cpp msgid "Guarding" msgstr "" @@ -158462,6 +159612,10 @@ msgstr "" msgid "Select an end point." msgstr "Elegí un punto final." +#: src/faction_camp.cpp +msgid "Spiked pits must be built over existing trenches!" +msgstr "" + #: src/faction_camp.cpp msgid "Invalid terrain in construction path." msgstr "No es un terreno válido para construir un camino." @@ -158994,14 +160148,6 @@ msgstr "No hay objetos ubicados en el punto de entrega..." msgid "You distribute %d kcal worth of food to your companions." msgstr "Distribuís los %d kcal de comida entre tus compañeros." -#: src/faction_camp.cpp -msgid "Accessed camp inventory whilst position does not refer to a camp" -msgstr "" - -#: src/faction_camp.cpp -msgid "consume components for camp mission, but no camp found" -msgstr "" - #: src/faction_camp.cpp #, c-format msgid "While %s, a silent specter approaches %s..." @@ -159470,26 +160616,6 @@ msgstr "gas denso fungicida" msgid "smoke vent" msgstr "salida de humo" -#: src/field.cpp -msgid "Whew... smells like skunk!" -msgstr "Puaj... ¡qué baranda a zorrino!" - -#: src/field.cpp -msgid "Man, that smells like some good shit!" -msgstr "¡Chabón, que bien que huele eso!" - -#: src/field.cpp -msgid "I don't know... should you really be smoking that stuff?" -msgstr "No sé... ¿te parece que tenés que estar fumando esa cosa?" - -#: src/field.cpp -msgid "Ew, smells like burning rubber!" -msgstr "¡Puaj, qué baranda a goma quemada!" - -#: src/field.cpp -msgid "Ugh, that smells rancid!" -msgstr "¡Uh, qué olor rancio!" - #: src/field.cpp #, c-format msgid "A %s hits you!" @@ -160043,370 +161169,6 @@ msgstr "información de uistate" msgid "Failed to save game data" msgstr "No se pudo guardar la información del juego" -#: src/game.cpp -msgid "" -"Debug Functions - Using these will cheat not only the game, but yourself. You won't grow. You won't improve.\n" -"Taking this shortcut will gain you nothing. Your victory will be hollow.\n" -"Nothing will be risked and nothing will be gained." -msgstr "" - -#: src/game.cpp -msgid "Wish for an item" -msgstr "Pedir un objeto" - -#: src/game.cpp -msgid "Teleport - Short Range" -msgstr "Teletransportar - Distancia Corta" - -#: src/game.cpp -msgid "Teleport - Long Range" -msgstr "Teletransportar - Distancia Larga" - -#: src/game.cpp -msgid "Reveal map" -msgstr "Revelar mapa" - -#: src/game.cpp -msgid "Spawn NPC" -msgstr "Crear PNJ" - -#: src/game.cpp -msgid "Spawn Monster" -msgstr "Crear Monstruo" - -#: src/game.cpp -msgid "Check game state..." -msgstr "Comprobar estado del juego..." - -#: src/game.cpp -msgid "Kill NPCs" -msgstr "Matar PNJs" - -#: src/game.cpp -msgid "Mutate" -msgstr "Mutar" - -#: src/game.cpp -msgid "Spawn a vehicle" -msgstr "Crear vehículo" - -#: src/game.cpp -msgid "Change all skills" -msgstr "Cambiar todas las habilidades" - -#: src/game.cpp -msgid "Learn all melee styles" -msgstr "Aprender todos los estilos de cuerpo a cuerpo" - -#: src/game.cpp -msgid "Unlock all recipes" -msgstr "Conocer todas las recetas" - -#: src/game.cpp -msgid "Edit player/NPC" -msgstr "Editar jugador/PNJ" - -#: src/game.cpp -msgid "Spawn Artifact" -msgstr "Crear Artefacto" - -#: src/game.cpp -msgid "Spawn Clairvoyance Artifact" -msgstr "Crear Artefacto de Clarividencia" - -#: src/game.cpp -msgid "Map editor" -msgstr "Editor de mapa" - -#: src/game.cpp -msgid "Change weather" -msgstr "Cambiar clima" - -#: src/game.cpp -msgid "Change wind direction" -msgstr "" - -#: src/game.cpp -msgid "Change wind speed" -msgstr "" - -#: src/game.cpp -msgid "Kill all monsters" -msgstr "Matar todos los monstruos" - -#: src/game.cpp -msgid "Display hordes" -msgstr "Mostrar hordas" - -#: src/game.cpp -msgid "Test Item Group" -msgstr "Probar Grupo de Objetos" - -#: src/game.cpp -msgid "Damage Self" -msgstr "Lastimarte a Vos Mismo" - -#: src/game.cpp -msgid "Show Sound Clustering" -msgstr "Mostrar Agrupación de Sonidos" - -#: src/game.cpp -msgid "Display weather" -msgstr "Mostrar clima" - -#: src/game.cpp -msgid "Display overmap scents" -msgstr "Mostrar olores en mapa" - -#: src/game.cpp -msgid "Change time" -msgstr "Cambiar hora" - -#: src/game.cpp -msgid "Set automove route" -msgstr "Determinar ruta de automovimiento" - -#: src/game.cpp -msgid "Show mutation category levels" -msgstr "Mostrar niveles de categorías de mutación" - -#: src/game.cpp -msgid "Overmap editor" -msgstr "Editor de mapa general" - -#: src/game.cpp -msgid "Draw benchmark (X seconds)" -msgstr "" - -#: src/game.cpp -msgid "Teleport - Adjacent overmap" -msgstr "Teletransportarse - Mapa general adyacente" - -#: src/game.cpp -msgid "Test trait group" -msgstr "Probar grupo de peculiaridades" - -#: src/game.cpp -msgid "Show debug message" -msgstr "Mostrar mensaje debug" - -#: src/game.cpp -msgid "Crash game (test crash handling)" -msgstr "Error del juego (prueba de manejo de fallos)" - -#: src/game.cpp -msgid "Spawn Map Extra" -msgstr "" - -#: src/game.cpp -msgid "Toggle NPC pathfinding on map" -msgstr "" - -#: src/game.cpp -msgid "Quit to Main Menu" -msgstr "Salir al Menú Principal" - -#: src/game.cpp -msgid "Current overmap revealed." -msgstr "Mapa general actual revelado." - -#: src/game.cpp -#, c-format -msgid "Location %d:%d in %d:%d, %s\n" -msgstr "Locación %d:%d en %d:%d, %s\n" - -#: src/game.cpp -#, c-format -msgid "" -"Current turn: %d.\n" -"%s\n" -msgstr "" -"Turno actual: %d.\n" -"%s\n" - -#: src/game.cpp -#, c-format -msgid "%d creature exists.\n" -msgid_plural "%d creatures exist.\n" -msgstr[0] "%d criatura existe.\n" -msgstr[1] "%d criaturas existen.\n" - -#: src/game.cpp -msgid "NPCs are going to spawn." -msgstr "Se van a generar PNJs." - -#: src/game.cpp -msgid "NPCs are NOT going to spawn." -msgstr "NO se van a generar PNJs." - -#: src/game.cpp -#, c-format -msgid "%s: map ( %d:%d ) pos ( %d:%d )" -msgstr "%s: map ( %d:%d ) pos ( %d:%d )" - -#: src/game.cpp -#, c-format -msgid "(you: %d:%d)" -msgstr "(vos: %d:%d)" - -#: src/game.cpp -#, c-format -msgid "Stomach Contents: %d ml / %d ml kCal: %d, Water: %d ml" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "" -"Guts Contents: %d ml / %d ml kCal: %d, Water: %d ml\n" -"Hunger: %d, Thirst: %d, kCal: %d / %d" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "%s's head implodes!" -msgstr "¡La cabeza de %s implosiona!" - -#: src/game.cpp -msgid "Choose vehicle to spawn" -msgstr "Elegir vehículo para crear" - -#. ~ Menu entry in vehicle wish menu: 1st string: displayed name, 2nd string: -#. internal name of vehicle -#: src/game.cpp -#, c-format -msgid "%1$s (%2$s)" -msgstr "%1$s (%2$s)" - -#: src/game.cpp -msgid "Martial arts debug." -msgstr "Debug de artes marciales." - -#: src/game.cpp -msgid "Your eyes blink rapidly as knowledge floods your brain." -msgstr "" -"Tus ojos pestañean rápidamente a medida que el conocimiento fluye por tu " -"cerebro." - -#: src/game.cpp -msgid "You now know a lot more than just 10 styles of kung fu." -msgstr "Ahora sabés mucho más que solo 10 estilos de kung fu." - -#: src/game.cpp -msgid "Recipe debug." -msgstr "Debug de recetas." - -#: src/game.cpp -msgid "You know how to craft that now." -msgstr "Ahora sabés cómo fabricar eso." - -#: src/game.cpp -msgid "Select new weather pattern:" -msgstr "Elegir parámetro de clima nuevo:" - -#: src/game.cpp -msgid "Disable weather forcing" -msgstr "Desactivar fuerza del clima" - -#: src/game.cpp -msgid "Keep normal weather patterns" -msgstr "Mantener el parámetro normal de clima" - -#: src/game.cpp -msgid "Select new wind direction:" -msgstr "" - -#: src/game.cpp -msgid "Disable direction forcing" -msgstr "" - -#: src/game.cpp -msgid "Keep normal wind direction" -msgstr "" - -#: src/game.cpp -msgid "Select new wind speed:" -msgstr "" - -#: src/game.cpp -msgid "Disable speed forcing" -msgstr "" - -#: src/game.cpp -msgid "Keep normal wind speed" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "Damage self for how much? hp: %d" -msgstr "¿Cuánto daño te querés causar? pv: %d" - -#: src/game.cpp -msgid "This binary was not compiled with tiles support." -msgstr "Este binario no está compilado con soporte para gráficos." - -#: src/game.cpp -msgid "year" -msgstr "año" - -#: src/game.cpp -msgid "season" -msgstr "estación" - -#: src/game.cpp -msgid "day" -msgstr "día" - -#: src/game.cpp -msgid "hour" -msgstr "hora" - -#: src/game.cpp -msgid "minute" -msgstr "minuto" - -#: src/game.cpp src/martialarts.cpp src/martialarts.cpp -msgid "turn" -msgid_plural "turns" -msgstr[0] "turno" -msgstr[1] "turnos" - -#: src/game.cpp -msgid "Set year to?" -msgstr "¿Establecer año en?" - -#: src/game.cpp -msgid "Set season to? (0 = spring)" -msgstr "¿Establecer estación en? (0 = primavera)" - -#: src/game.cpp -msgid "Set days to?" -msgstr "¿Establecer días en?" - -#: src/game.cpp -msgid "Set hour to?" -msgstr "¿Establecer hora en?" - -#: src/game.cpp -msgid "Set minute to?" -msgstr "¿Establecer minuto en?" - -#: src/game.cpp -#, c-format -msgid "Set turn to? (One day is %i turns)" -msgstr "¿Establecer turno en? (Un día son %i turnos)" - -#: src/game.cpp -msgid "Enter benchmark length (in milliseconds):" -msgstr "" - -#: src/game.cpp -msgid "" -"Quit without saving? This may cause issues such as duplicated or missing " -"items and vehicles!" -msgstr "" -"¿Querés salir sin guardar? ¡Puede causar problemas como duplicar o " -"desaparecer objetos y vehículos!" - #: src/game.cpp msgid "You haven't killed any monsters yet!" msgstr "¡No mataste a ningún monstruo!" @@ -161009,14 +161771,6 @@ msgstr "" msgid "Without extra fuel it will burn for %s." msgstr "Sin más combustible puede durar %s." -#: src/game.cpp -msgid "You can't do that while driving." -msgstr "No podés hacer eso mientras manejás." - -#: src/game.cpp -msgid "You can't do that on a moving vehicle." -msgstr "No podés hacer eso en un vehículo en movimiento." - #: src/game.cpp #, c-format msgid "The %s is too unstable to remove anything." @@ -163444,6 +164198,22 @@ msgstr "%s de %s (%d)" msgid "Draw what?" msgstr "¿Qué desenvainar?" +#: src/handle_action.cpp +msgid "Change to which movement mode?" +msgstr "" + +#: src/handle_action.cpp +msgid "Walk" +msgstr "" + +#: src/handle_action.cpp +msgid "Run" +msgstr "" + +#: src/handle_action.cpp +msgid "Crouch" +msgstr "" + #: src/handle_action.cpp msgid "Auto-move canceled" msgstr "Auto-moverse cancelado" @@ -163533,6 +164303,14 @@ msgstr "la nueva vinculación por defecto es '^'." msgid "You can't operate a vehicle while you're in your shell." msgstr "No podés controlar un vehículo mientras estás dentro de tu caparazón." +#: src/handle_action.cpp +msgid "Auto travel mode OFF!" +msgstr "" + +#: src/handle_action.cpp +msgid "Auto travel mode ON!" +msgstr "" + #: src/handle_action.cpp msgid "Safe mode ON!" msgstr "¡Modo seguro ACTIVADO!" @@ -164110,29 +164888,33 @@ msgid "You harvest and drop: poppy bud" msgstr "" #: src/iexamine.cpp -msgid "If only you had a shovel to dig up those roots..." -msgstr "Si tuvieras una pala para poder desenterrar esas raíces..." +msgid "The cactus' nettles sting you!" +msgstr "" #: src/iexamine.cpp -msgid "You harvest: dahlia root" +#, c-format +msgid "You harvest: %s." msgstr "" #: src/iexamine.cpp -msgid "You harvest and drop: dahlia root" +#, c-format +msgid "You harvest and drop: %s." msgstr "" #: src/iexamine.cpp -msgid "Nothing can be harvested from this plant in current season." +msgid "If only you had a shovel to dig up those roots..." +msgstr "Si tuvieras una pala para poder desenterrar esas raíces..." + +#: src/iexamine.cpp +msgid "You harvest: dahlia root" msgstr "" #: src/iexamine.cpp -#, c-format -msgid "You harvest: %s." +msgid "You harvest and drop: dahlia root" msgstr "" #: src/iexamine.cpp -#, c-format -msgid "You harvest and drop: %s." +msgid "Nothing can be harvested from this plant in current season." msgstr "" #: src/iexamine.cpp @@ -165053,9 +165835,10 @@ msgstr "" "Abandonando." #: src/iexamine.cpp -msgid "You need an anesthesia kit for autodoc to perform any operation." +msgid "" +"You need an anesthesia kit with at least one charge for autodoc to perform " +"any operation." msgstr "" -"Necesitás un equipo de anestesia para que el autodoc realice una operación." #: src/iexamine.cpp msgid "Choose CBM to install" @@ -165111,6 +165894,46 @@ msgstr "No tenés instalado ningún biónico." msgid "%1$s doesn't have any bionics installed." msgstr "%1$s no tiene instalado ningún biónico." +#: src/iexamine.cpp +msgid "This mill already contains flour." +msgstr "" + +#: src/iexamine.cpp +msgid "Remove it before starting the mill again." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "This rack contains %s, which can't be milled!" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You remove the %s from the mill." +msgstr "" + +#: src/iexamine.cpp +msgid "" +"This mill is empty. Fill it with starchy products such as wheat, barley or " +"oats and try again." +msgstr "" + +#: src/iexamine.cpp +msgid "" +"This mill is overloaded with products, and the millstone can't turn. Remove" +" some and try again." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgctxt "volume units" +msgid "You think that you can load about %s %s in it." +msgstr "Te parece que podés poner unos %s %s en el soporte." + +#: src/iexamine.cpp +msgid "You remove the brake on the millstone and it slowly starts to turn." +msgstr "" + #: src/iexamine.cpp msgid "This rack already contains smoked food." msgstr "Este soporte ya tiene comida ahumada." @@ -165219,6 +166042,132 @@ msgstr "No podés poner tantos." msgid "You carefully place %s %s in the rack." msgstr "Cuidadosamente, ponés %s %s en el soporte." +#: src/iexamine.cpp +msgid "You can't place more food while it's milling." +msgstr "" + +#: src/iexamine.cpp +msgid "Load mill with what kind of product?" +msgstr "" + +#: src/iexamine.cpp +msgid "You don't have any products that can be milled." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "Insert how many %s into the mill?" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgctxt "item amount and name" +msgid "You carefully place %s %s in the mill." +msgstr "" + +#: src/iexamine.cpp +msgid "The water mill needs to be over shallow flowing water to work." +msgstr "" + +#: src/iexamine.cpp +msgid "The wind mill needs to be outside in the wind to work." +msgstr "" + +#: src/iexamine.cpp +msgid "What to do with the mill?" +msgstr "" + +#: src/iexamine.cpp +msgid "Inspect mill" +msgstr "" + +#: src/iexamine.cpp +msgid "" +"Remove brake and start milling... insert some products for milling first" +msgstr "" + +#: src/iexamine.cpp +msgid "Remove brake and start milling" +msgstr "" + +#: src/iexamine.cpp +msgid "Remove brake and start milling, milling will take about 6 hours." +msgstr "" + +#: src/iexamine.cpp +msgid "Insert products for milling... mill is full" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "Insert products for milling... remaining capacity is %s %s" +msgstr "" + +#: src/iexamine.cpp +msgid "Fill the mill with starchy products such as wheat, barley or oats." +msgstr "" + +#: src/iexamine.cpp +msgid "Remove products from mill" +msgstr "" + +#: src/iexamine.cpp +msgid "Apply brake to mill" +msgstr "" + +#: src/iexamine.cpp +msgid "Applying the brake will stop milling process." +msgstr "" + +#: src/iexamine.cpp +msgid "There's a mill here. It is turning and milling." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "It will finish milling in about %d hour." +msgid_plural "It will finish milling in about %d hours." +msgstr[0] "" +msgstr[1] "" + +#: src/iexamine.cpp +msgid "It will finish milling in less than an hour." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "It should take about %d minutes to finish milling." +msgstr "" + +#: src/iexamine.cpp +msgid "There's a mill here." +msgstr "" + +#: src/iexamine.cpp +msgid "You inspect its contents and find: " +msgstr "Inspeccionás su contenido y encontrás:" + +#: src/iexamine.cpp +msgid "... that it is empty." +msgstr "... que está vacío/a." + +#: src/iexamine.cpp +msgid "You see some grains that are not yet milled to fine flour." +msgstr "" + +#: src/iexamine.cpp +msgid "It is already milling." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You remove %s from the mill." +msgstr "" + +#: src/iexamine.cpp +msgid "You stop the milling process." +msgstr "" + #: src/iexamine.cpp msgid "What to do with the smoking rack:" msgstr "Qué querés hacer con el soporte para ahumar:" @@ -165331,14 +166280,6 @@ msgstr "Debería tardar unos %d minutos en terminar de ahumar." msgid "There's a smoking rack here." msgstr "Acá hay un soporte para ahumar." -#: src/iexamine.cpp -msgid "You inspect its contents and find: " -msgstr "Inspeccionás su contenido y encontrás:" - -#: src/iexamine.cpp -msgid "... that it is empty." -msgstr "... que está vacío/a." - #: src/iexamine.cpp msgid "You see some smoldering embers there." msgstr "Ves unas brasas ardientes ahí." @@ -167229,6 +168170,10 @@ msgstr "|." msgid "\\." msgstr "\\." +#: src/item.cpp +msgid "XX" +msgstr "" + #: src/item.cpp msgid ".." msgstr ".." @@ -178047,6 +178992,11 @@ msgstr "" msgid "You reach out to the trees with your roots." msgstr "" +#: src/mutation.cpp +msgid "" +"You lay next to the trees letting your hair roots tangle with the trees." +msgstr "" + #: src/mutation.cpp msgid "Bionic power storage increased by 100." msgstr "Almacenamiento de energía de biónicos incrementado en 100." @@ -179304,6 +180254,10 @@ msgstr "Es tu amigo." msgid "Is following you." msgstr "Te está siguiendo." +#: src/npc.cpp +msgid "Is guiding you." +msgstr "" + #: src/npc.cpp msgid "Will try to kill you or flee from you if you reveal yourself." msgstr "Si te ve, va a intentar matarte o escapar de vos." @@ -179763,10 +180717,6 @@ msgstr "Me podrías dar una mano con otra cosa si estás interesado." msgid " If you are interested, I have another job for you." msgstr "Si estás interesado, tengo otro trabajo para vos." -#: src/npctalk.cpp -msgid "Pleasure doing business!" -msgstr "¡Un placer hacer negocios!" - #: src/npctalk.cpp msgid "Shall we resume?" msgstr "¿Continuamos?" @@ -179879,23 +180829,6 @@ msgstr "Contame." msgid "I have news." msgstr "Tengo noticias." -#: src/npctalk.cpp -#, c-format -msgid "Delivering %s." -msgstr "Entregando %s." - -#: src/npctalk.cpp -msgid "Works for me." -msgstr "Trabaja para mi." - -#: src/npctalk.cpp -msgid "You might be seeing more of me..." -msgstr "Tal vez me vuelvas a ver..." - -#: src/npctalk.cpp -msgid "Delivering bandages." -msgstr "Entregando vendas." - #: src/npctalk.cpp msgid "Yes, let's resume training " msgstr "Sí, sigamos entrenando." @@ -180128,11 +181061,6 @@ msgstr "" msgid "My current location" msgstr "" -#: src/npctalk_funcs.cpp -#, c-format -msgid "I'm willing to pay %s per batch for a total of %s" -msgstr "Estoy dispuesto a pagar %s por tanda para un total de %s" - #. ~ %1$s is the NPC's translated name, %2$s is the translated faction camp #. name #: src/npctalk_funcs.cpp @@ -183272,6 +184200,10 @@ msgstr "" msgid "Wield:" msgstr "" +#: src/panels.cpp +msgid "Style:" +msgstr "" + #: src/panels.cpp msgid "Food :" msgstr "" @@ -183435,6 +184367,18 @@ msgstr "¡Estás sobrecargado!" msgid "You struggle to carry such a large volume!" msgstr "¡Te cuesta mucho avanzar cargando tantas cosas!" +#: src/pickup.cpp +msgid "Get items from vehicle cargo" +msgstr "" + +#: src/pickup.cpp +msgid "Get items from where?" +msgstr "" + +#: src/pickup.cpp src/vehicle_use.cpp +msgid "Get items on the ground" +msgstr "Agarrar objetos del suelo" + #: src/pickup.cpp msgid "Next page" msgstr "Página siguiente" @@ -183939,11 +184883,11 @@ msgid "You're too tired to run." msgstr "Estás muy cansado para correr." #: src/player.cpp -msgid "You start walking." +msgid "You start crouching." msgstr "" #: src/player.cpp -msgid "You start crouching." +msgid "You start walking." msgstr "" #: src/player.cpp @@ -185100,7 +186044,7 @@ msgid "Your shaking legs make you stumble." msgstr "Tropezás por culpa de tus piernas temblorosas." #: src/player.cpp -msgid " stumbles." msgstr "" #: src/player.cpp @@ -189273,6 +190217,11 @@ msgstr "No cumplís con los requisitos para arreglar el/a %s." msgid "You repair the %1$s's %2$s." msgstr "Reparás el %2$s del %1$s." +#: src/veh_utils.cpp +#, c-format +msgid "You replace the %1$s's %2$s." +msgstr "" + #: src/vehicle.cpp msgid "Lost connection with the vehicle due to distance!" msgstr "¡Perdiste conexión con el vehículo debido a la distancia!" @@ -189683,10 +190632,6 @@ msgstr " (defectuoso)" msgid " holding %s" msgstr " contiene %s" -#: src/vehicle_part.cpp -msgid "XX" -msgstr "" - #: src/vehicle_part.cpp #, c-format msgid "Insufficient power to enable %s" @@ -190156,10 +191101,6 @@ msgstr "Desactivar el lavarropas." msgid "Activate the washing machine (1.5 hours)" msgstr "Activar el lavarropas (1.5 horas)" -#: src/vehicle_use.cpp -msgid "Get items on the ground" -msgstr "Agarrar objetos del suelo" - #: src/vehicle_use.cpp msgid "Use the hotplate" msgstr "Usar anafe eléctrico" diff --git a/lang/po/es_ES.po b/lang/po/es_ES.po index 51877094c99f2..5864932454e4d 100644 --- a/lang/po/es_ES.po +++ b/lang/po/es_ES.po @@ -8,14 +8,15 @@ # keno xite , 2019 # Emma Forner, 2019 # Toni López , 2019 +# lokatronao , 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-26 14:19+0800\n" +"POT-Creation-Date: 2019-05-03 13:47+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: Toni López , 2019\n" +"Last-Translator: lokatronao , 2019\n" "Language-Team: Spanish (Spain) (https://www.transifex.com/cataclysm-dda-translators/teams/2217/es_ES/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,10 +33,9 @@ msgstr[1] "baterías" #. ~ Description for battery #: lang/json/AMMO_from_json.py msgid "" -"A set of universal batteries. Used to charge almost any electronic device." +"Some free-floating battery charge. This can be reloaded into rechargable " +"battery cells, but can never be unloaded." msgstr "" -"Es un paquete de baterías genéricas. Se utilizan para cargar casi todos los " -"dispositivos electrónicos." #: lang/json/AMMO_from_json.py msgid "aluminum foil" @@ -718,7 +718,7 @@ msgstr "Mezcla de oxígeno y nitrógeno en proporciones adecuadas para bucear." #: lang/json/AMMO_from_json.py msgid "crude wooden arrow" -msgstr "" +msgstr "Flecha de madera en bruto" #. ~ Description for crude wooden arrow #: lang/json/AMMO_from_json.py @@ -729,7 +729,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "wooden bodkin arrow" -msgstr "" +msgstr "flecha con punta de madera" #. ~ Description for wooden bodkin arrow #: lang/json/AMMO_from_json.py @@ -740,7 +740,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "simple wooden small game arrow" -msgstr "" +msgstr "Flecha de madera de caza menor" #. ~ Description for simple wooden small game arrow #: lang/json/AMMO_from_json.py @@ -752,7 +752,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "wooden broadhead arrow" -msgstr "" +msgstr "flecha de madera de punta ancha" #. ~ Description for wooden broadhead arrow #: lang/json/AMMO_from_json.py @@ -996,22 +996,17 @@ msgid "" "enemies. Stands a good chance of remaining intact once fired." msgstr "" -#: lang/json/AMMO_from_json.py -msgid "anesthetic kit" -msgstr "equipo de anestesia" +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "anesthetic" +msgstr "" -#. ~ Description for anesthetic kit +#. ~ Description for anesthetic #: lang/json/AMMO_from_json.py msgid "" -"A kit for inducing anesthesia for surgery, containing specialized canisters " -"with a variety of powerful hypnotic, analgetic, and stimulative drugs. It's" -" intended for use in specialized medical equipment, and can't be " -"administered manually." +"A variety of powerful hypnotic, analgetic, and stimulative drugs. It's " +"intended for use in specialized medical equipment, and can't be administered" +" manually. You can reload an anesthetic kit with it." msgstr "" -"Es un equipo para inducir anestesia para una cirugía, que contiene latas " -"especiales con una variedad de poderosos hipnóticos, analgésicos y drogas " -"estimulantes. Está pensado para ser utilizado con equipamiento médico " -"especializado, y no puede ser administrado manualmente." #: lang/json/AMMO_from_json.py msgid "sulfur" @@ -1775,6 +1770,19 @@ msgstr "" "Combustible en base a petróleo. Es un derivado del proceso de creación de la" " gasolina." +#: lang/json/AMMO_from_json.py +msgid "biodiesel" +msgid_plural "biodiesel" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for biodiesel +#: lang/json/AMMO_from_json.py +msgid "" +"Vegetable oil- or animal fat-based diesel fuel consisting of long-chain " +"alkyl (methyl, ethyl, or propyl) esters." +msgstr "" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "gasoline" msgid_plural "gasoline" @@ -1988,6 +1996,37 @@ msgstr "" "emitir disparos de gas supercaliente a casi la velocidad de la luz, sin " "causar retroceso. Este paquete ha sido creado a mano." +#: lang/json/AMMO_from_json.py +msgid "throwing stick" +msgstr "" + +#. ~ Description for throwing stick +#: lang/json/AMMO_from_json.py +msgid "" +"A stick carved into a shape suitable for throwing at a target. Not a " +"boomerang, so don't expect it to return to your hand." +msgstr "" +"Es un palo tallado en forma de ser adecuado para ser tirado. No es un " +"búmeran, así que no esperes que vuelva a tus manos." + +#: lang/json/AMMO_from_json.py +msgid "anesthetic kit" +msgstr "equipo de anestesia" + +#. ~ Description for anesthetic kit +#. ~ Description for anesthesia kit +#: lang/json/AMMO_from_json.py lang/json/TOOL_from_json.py +msgid "" +"A kit for inducing anesthesia for surgery, containing specialized canisters " +"with a variety of powerful hypnotic, analgetic, and stimulative drugs. It's" +" intended for use in specialized medical equipment, and can't be " +"administered manually." +msgstr "" +"Es un equipo para inducir anestesia para una cirugía, que contiene latas " +"especiales con una variedad de poderosos hipnóticos, analgésicos y drogas " +"estimulantes. Está pensado para ser utilizado con equipamiento médico " +"especializado, y no puede ser administrado manualmente." + #: lang/json/AMMO_from_json.py msgid "H&K 12mm" msgstr "H&K 12mm" @@ -2580,6 +2619,57 @@ msgid_plural "reloaded .38 Super" msgstr[0] ".38 Super recargada" msgstr[1] ".38 Super recargadas" +#: lang/json/AMMO_from_json.py +msgid ".380 ACP FMJ" +msgstr "" + +#. ~ Description for .380 ACP FMJ +#: lang/json/AMMO_from_json.py +msgid "" +".380 ACP ammunition with a brass jacketed 95gr bullet. Popular in pocket " +"pistols for over a century, it is often considered the weakest caliber to " +"consider carrying. One should be careful not to chamber it in 9x18mm " +"Makarov or 9x19mm firearms." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".380 ACP JHP" +msgstr "" + +#. ~ Description for .380 ACP JHP +#: lang/json/AMMO_from_json.py +msgid "" +".380 ACP ammunition with a 95gr jacketed hollow point bullet. It is a " +"popular round for small concealable backup pistols, and often the weakest " +"recommended defensive caliber. One should be careful not to chamber it in " +"9x18mm Makarov or 9x19mm firearms." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".380 ACP +P" +msgstr "" + +#. ~ Description for .380 ACP +P +#: lang/json/AMMO_from_json.py +msgid "" +"Overpressure .380 ACP ammunition with a 90gr jacketed hollow point bullet. " +"These defensive loadings are designed to maximise performance and tend to be" +" more accurate than practice ammo. One should be careful not to chamber it " +"in 9x18mm Makarov or 9x19mm firearms." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP FMJ" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP JHP" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP +P" +msgstr "" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "10mm Auto" msgid_plural "10mm Auto" @@ -4599,21 +4689,6 @@ msgstr "" "Es un perno tallado en hueso con emplumado. Es liviano, lo que le otorga una" " precisión y daño decentes. No se rompe fácilmente luego de ser utilizado." -#: lang/json/AMMO_from_json.py -msgid "throwing stick" -msgid_plural "throwing sticks" -msgstr[0] "palo arrojadizo" -msgstr[1] "palos arrojadizos" - -#. ~ Description for throwing stick -#: lang/json/AMMO_from_json.py -msgid "" -"A stick carved into a shape suitable for throwing at a target. Not a " -"boomerang, so don't expect it to return to your hand." -msgstr "" -"Es un palo tallado en forma de ser adecuado para ser tirado. No es un " -"búmeran, así que no esperes que vuelva a tus manos." - #: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py msgid "wooden javelin" msgid_plural "wooden javelins" @@ -6690,13 +6765,10 @@ msgstr[1] "pares de mangas de cota de malla" #. ~ Description for pair of chainmail sleeves #: lang/json/ARMOR_from_json.py msgid "" -"Customized chainmail arms. Each sleeve has leather straps to connect them " -"with each other. The lack of fingers makes them less cumbersome and allows " -"them to be used with gloves." +"Customized chainmail arms. Each sleeve has straps to connect them with each" +" other. The lack of fingers makes them less cumbersome and allows them to " +"be used with gloves." msgstr "" -"Pieza de cota de malla para los brazos. Cada manga tiene correas de cuero " -"para conectarlas entre sí. No cubren tus manos así que no son muy incómodas " -"y te permite usar guantes." #: lang/json/ARMOR_from_json.py msgid "chainmail coif" @@ -6720,13 +6792,9 @@ msgstr[1] "pares de perneras de cota de malla" #. ~ Description for chainmail leggings #: lang/json/ARMOR_from_json.py msgid "" -"Customized chainmail legs. Their leather straps keep everything in place, " -"and the lack of toes and heels allows them to work perfectly well with " -"footwear." +"Customized chainmail legs. Their straps keep everything in place, and the " +"lack of toes and heels allows them to work perfectly well with footwear." msgstr "" -"Perneras personalizadas de cota de malla. Tiene correas de cuero que " -"mantienen todo en su lugar. Dejan los pies libres, lo que te permite " -"utilizar cualquier tipo de calzado." #: lang/json/ARMOR_from_json.py msgid "chainmail hauberk" @@ -6738,13 +6806,10 @@ msgstr[1] "hauberks de malla" #: lang/json/ARMOR_from_json.py msgid "" "A fully customized chainmail outfit, leaving the head uncovered. The shirt," -" arms, and leggings have been modified with leather straps to deal with " -"uneven weight distribution and to allow them to be used separately." +" arms, and leggings have been modified with straps and combined with a " +"gambeson to deal with uneven weight distribution, cold environments and to " +"allow them to be used separately." msgstr "" -"Una armadura completa de cota de malla, que deja la cabeza descubierta. La " -"camisa, mangas y perneras han sido modificadas con correas de cuero para " -"control el peso desbalanceado, y para permitirte usar las partes por " -"separado." #: lang/json/ARMOR_from_json.py msgid "chainmail armor" @@ -6756,12 +6821,10 @@ msgstr[1] "armaduras de cota de malla" #: lang/json/ARMOR_from_json.py msgid "" "A fully customized chainmail suit. The coif, shirt, arms, and leggings have" -" been modified with leather straps to deal with uneven weight distribution " -"and to allow them to be used separately." +" been modified with straps and combined with a gambeson to deal with uneven " +"weight distribution, cold environments and to allow them to be used " +"separately." msgstr "" -"Una armadura completa de cota de malla. La cofia, camisa, mangas y perneras " -"han sido modificadas con correas de cuero para control el peso " -"desbalanceado, y para permitirte usar las partes por separado." #: lang/json/ARMOR_from_json.py msgid "chainmail vest" @@ -6773,10 +6836,8 @@ msgstr[1] "chalecos de cota de malla" #: lang/json/ARMOR_from_json.py msgid "" "A customized chainmail vest. It's a sleeveless piece of chainmail with " -"small leather straps designed to better distribute the weight." +"small straps designed to better distribute the weight." msgstr "" -"Es un chaleco de cota de malla. No tiene mangas pero tiene pequeñas correas " -"de cuero diseñadas para distribuir mejor el peso." #: lang/json/ARMOR_from_json.py msgid "leather chaps" @@ -14164,6 +14225,20 @@ msgstr "" "Un funda de pistola rápida y cómoda de usar para armas pequeñas. Hay que " "activarla para enfundar y desenfundar la pistola." +#: lang/json/ARMOR_from_json.py +msgid "deep concealment holster" +msgid_plural "deep concealment holsters" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for deep concealment holster +#: lang/json/ARMOR_from_json.py +msgid "" +"An elastic band with numerous provisions for concealing a very small pistol " +"close to the body. It is awkward to use without practice. Activate to " +"holster/draw a gun." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "survivor harness" msgid_plural "survivor harnesses" @@ -14710,8 +14785,8 @@ msgid_plural "Active Defense System CBMs" msgstr[0] "MCB Sistema de defensa activa" msgstr[1] "MCB Sistema de defensa activa" -#. ~ Description for Active Defense System #. ~ Description for Active Defense System CBM +#. ~ Description for Active Defense System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A thin forcefield surrounds your body, continually draining power. Anything" @@ -14730,8 +14805,8 @@ msgid_plural "Advanced Microreactor CBMs" msgstr[0] "MCB Microreactor Mejorado" msgstr[1] "MCB Microreactor Mejorado" -#. ~ Description for Advanced Microreactor System #. ~ Description for Advanced Microreactor CBM +#. ~ Description for Advanced Microreactor System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This stripped down mini-reactor is safer than it appears due to integrated " @@ -14748,8 +14823,8 @@ msgid_plural "Alarm System CBMs" msgstr[0] "MCB Sistema de alarma" msgstr[1] "MCB Sistema de alarma" -#. ~ Description for Alarm System #. ~ Description for Alarm System CBM +#. ~ Description for Alarm System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A motion-detecting alarm system will notice almost all movement within a " @@ -14843,8 +14918,8 @@ msgid_plural "Battery System CBMs" msgstr[0] "MCB Sistema de baterías" msgstr[1] "MCB Sistema de baterías" -#. ~ Description for Battery System #. ~ Description for Battery System CBM +#. ~ Description for Battery System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have a battery draining attachment, and thus can make use of the energy " @@ -14861,8 +14936,8 @@ msgid_plural "Monomolecular Blade CBMs" msgstr[0] "MCB Cuchilla monomolecular" msgstr[1] "MCB Cuchilla monomolecular" -#. ~ Description for Monomolecular Blade #. ~ Description for Monomolecular Blade CBM +#. ~ Description for Monomolecular Blade #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A deadly foot-long blade made of advanced material now resides inside your " @@ -14928,8 +15003,8 @@ msgid_plural "Blood Filter CBMs" msgstr[0] "MCB Filtro de sangre" msgstr[1] "MCB Filtro de sangre" -#. ~ Description for Blood Filter #. ~ Description for Blood Filter CBM +#. ~ Description for Blood Filter #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A filtration system in your heart allows you to actively filter out chemical" @@ -14963,8 +15038,8 @@ msgid_plural "Subdermal Carbon Filament CBMs" msgstr[0] "MCB Filamento de carbono subdérmico" msgstr[1] "MCB Filamento de carbono subdérmico" -#. ~ Description for Subdermal Carbon Filament #. ~ Description for Subdermal Carbon Filament CBM +#. ~ Description for Subdermal Carbon Filament #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Lying just beneath your skin is a thin armor made of carbon nanotubes. This" @@ -14979,8 +15054,8 @@ msgid_plural "Chain Lightning CBMs" msgstr[0] "MCB Rayos en cadena" msgstr[1] "MCB Rayos en cadena" -#. ~ Description for Chain Lightning #. ~ Description for Chain Lightning CBM +#. ~ Description for Chain Lightning #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your body is equipped with a chain lightning generator, allowing you to emit" @@ -15016,8 +15091,8 @@ msgid_plural "Internal Climate Control CBMs" msgstr[0] "MCB Control interno de temperatura" msgstr[1] "MCB Control interno de temperatura" -#. ~ Description for Internal Climate Control #. ~ Description for Internal Climate Control CBM +#. ~ Description for Internal Climate Control #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Throughout your body lies a network of thermal piping which eases the " @@ -15032,8 +15107,8 @@ msgid_plural "Cloaking System CBMs" msgstr[0] "MCB Sistema de ocultamiento" msgstr[1] "MCB Sistema de ocultamiento" -#. ~ Description for Cloaking System #. ~ Description for Cloaking System CBM +#. ~ Description for Cloaking System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This high-power system uses a set of cameras and LEDs to make you blend into" @@ -15068,8 +15143,8 @@ msgid_plural "Wired Reflexes CBMs" msgstr[0] "MCB Reflejos conectados" msgstr[1] "MCB Reflejos conectados" -#. ~ Description for Wired Reflexes #. ~ Description for Wired Reflexes CBM +#. ~ Description for Wired Reflexes #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your reaction time has been greatly enhanced with bionic nerve stimulators, " @@ -15084,8 +15159,8 @@ msgid_plural "Expanded Digestive System CBMs" msgstr[0] "MCB Sistema digestivo expandido" msgstr[1] "MCB Sistema digestivo expandido" -#. ~ Description for Expanded Digestive System #. ~ Description for Expanded Digestive System CBM +#. ~ Description for Expanded Digestive System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have been outfitted with three synthetic stomachs and industrial-grade " @@ -15104,8 +15179,8 @@ msgid_plural "Enhanced Hearing CBMs" msgstr[0] "MCB Audición mejorada" msgstr[1] "MCB Audición mejorada" -#. ~ Description for Enhanced Hearing #. ~ Description for Enhanced Hearing CBM +#. ~ Description for Enhanced Hearing #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "When this bionic is active, your hearing will be drastically improved, " @@ -15141,8 +15216,8 @@ msgid_plural "EMP Projector CBMs" msgstr[0] "MCB Proyector PEM" msgstr[1] "MCB Proyector PEM" -#. ~ Description for EMP Projector #. ~ Description for EMP Projector CBM +#. ~ Description for EMP Projector #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A ranged EMP generator system is implanted on the palm of your right hand " @@ -15156,8 +15231,8 @@ msgid_plural "Ethanol Burner CBMs" msgstr[0] "MCB Quemador de etanol" msgstr[1] "MCB Quemador de etanol" -#. ~ Description for Ethanol Burner #. ~ Description for Ethanol Burner CBM +#. ~ Description for Ethanol Burner #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You burn alcohol as fuel in an extremely efficient reaction. However, you " @@ -15172,8 +15247,8 @@ msgid_plural "Aero-Evaporator CBMs" msgstr[0] "MCB Aero-evaporador" msgstr[1] "MCB Aero-evaporadores" -#. ~ Description for Aero-Evaporator #. ~ Description for Aero-Evaporator CBM +#. ~ Description for Aero-Evaporator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This unit draws moisture from the surrounding air, which then is poured from" @@ -15188,8 +15263,8 @@ msgid_plural "Diamond Cornea CBMs" msgstr[0] "MCB Córnea de diamante" msgstr[1] "MCB Córnea de diamante" -#. ~ Description for Diamond Cornea #. ~ Description for Diamond Cornea CBM +#. ~ Description for Diamond Cornea #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Your vision is greatly enhanced, giving you a +2 bonus to perception." msgstr "" @@ -15216,8 +15291,8 @@ msgid_plural "Facial Distortion CBMs" msgstr[0] "MCB Distorsión facial" msgstr[1] "MCB Distorsión facial" -#. ~ Description for Facial Distortion #. ~ Description for Facial Distortion CBM +#. ~ Description for Facial Distortion #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Through controlled application of electrochemical impulses, you are capable " @@ -15234,8 +15309,8 @@ msgid_plural "Dielectric Capacitance System CBMs" msgstr[0] "MCB Sistema de capacitancia dieléctrica" msgstr[1] "MCB Sistema de capacitancia dieléctrica" -#. ~ Description for Dielectric Capacitance System #. ~ Description for Dielectric Capacitance System CBM +#. ~ Description for Dielectric Capacitance System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Throughout your body lies a network of miniature piezoelectric capacitors " @@ -15315,8 +15390,8 @@ msgid_plural "Internal Furnace CBMs" msgstr[0] "MCB Horno interno" msgstr[1] "MCB Horno interno" -#. ~ Description for Internal Furnace #. ~ Description for Internal Furnace CBM +#. ~ Description for Internal Furnace #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "When this bionic is active, you can burn nearly any organic material as fuel" @@ -15368,8 +15443,8 @@ msgid_plural "Terranian Sonar CBMs" msgstr[0] "MCB Sonar terrestre" msgstr[1] "MCB Sonar terrestre" -#. ~ Description for Terranian Sonar #. ~ Description for Terranian Sonar CBM +#. ~ Description for Terranian Sonar #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your feet are equipped with precision sonar equipment, allowing you to " @@ -15383,8 +15458,8 @@ msgid_plural "Heat Drain CBMs" msgstr[0] "MCB Drenaje de calor" msgstr[1] "MCB Drenaje de calor" -#. ~ Description for Heat Drain #. ~ Description for Heat Drain CBM +#. ~ Description for Heat Drain #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While fighting unarmed against a warm-blooded opponent, there is a chance " @@ -15419,8 +15494,8 @@ msgid_plural "Hydraulic Muscles CBMs" msgstr[0] "MCB Musculatura hidráulica" msgstr[1] "MCB Musculatura hidráulica" -#. ~ Description for Hydraulic Muscles #. ~ Description for Hydraulic Muscles CBM +#. ~ Description for Hydraulic Muscles #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While activated, your muscles will be greatly enhanced, increasing your " @@ -15435,8 +15510,8 @@ msgid_plural "Infrared Vision CBMs" msgstr[0] "MCB Visión infrarroja" msgstr[1] "MCB Visión infrarroja" -#. ~ Description for Infrared Vision #. ~ Description for Infrared Vision CBM +#. ~ Description for Infrared Vision #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your range of vision extends into the infrared, allowing you to see warm-" @@ -15451,8 +15526,8 @@ msgid_plural "Cerebral Booster CBMs" msgstr[0] "MCB Estimulador cerebral" msgstr[1] "MCB Estimulador cerebral" -#. ~ Description for Cerebral Booster #. ~ Description for Cerebral Booster CBM +#. ~ Description for Cerebral Booster #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your brain has been enhanced with bionic coprocessors, giving you a +2 bonus" @@ -15484,8 +15559,8 @@ msgid_plural "Leukocyte Breeder System CBMs" msgstr[0] "MCB Sistema cultivador de leucocitos" msgstr[1] "MCB Sistema cultivador de leucocitos" -#. ~ Description for Leukocyte Breeder System #. ~ Description for Leukocyte Breeder System CBM +#. ~ Description for Leukocyte Breeder System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You are equipped with bionic stimulators which augment your haematopoiesis " @@ -15504,8 +15579,8 @@ msgid_plural "Mini-Flamethrower CBMs" msgstr[0] "MCB Mini-lanzallamas" msgstr[1] "MCB Mini-lanzallamas" -#. ~ Description for Mini-Flamethrower #. ~ Description for Mini-Flamethrower CBM +#. ~ Description for Mini-Flamethrower #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "The index fingers of both hands have powerful fire starters which extend " @@ -15552,8 +15627,8 @@ msgid_plural "Nictating Membrane CBMs" msgstr[0] "MCB Membrana nictitante" msgstr[1] "MCB Membrana nictitante" -#. ~ Description for Nictating Membrane #. ~ Description for Nictating Membrane CBM +#. ~ Description for Nictating Membrane #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your eyes have a thin membrane that closes over your eyes while underwater, " @@ -15586,8 +15661,8 @@ msgid_plural "Metabolic Interchange CBMs" msgstr[0] "MCB Intercambio metabólico" msgstr[1] "MCB Intercambio metabólico" -#. ~ Description for Metabolic Interchange #. ~ Description for Metabolic Interchange CBM +#. ~ Description for Metabolic Interchange #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your digestive system and power supply are interconnected. Bionic energy is" @@ -15604,8 +15679,8 @@ msgid_plural "Weather Reader CBMs" msgstr[0] "MCB Lector de clima" msgstr[1] "MCB Lector de clima" -#. ~ Description for Weather Reader #. ~ Description for Weather Reader CBM +#. ~ Description for Weather Reader #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A multitude of scientific instruments and sensors collect environmental " @@ -15623,8 +15698,8 @@ msgid_plural "Repair Nanobots CBMs" msgstr[0] "MCB Nanobots de reparación" msgstr[1] "MCB Nanobots de reparación" -#. ~ Description for Repair Nanobots #. ~ Description for Repair Nanobots CBM +#. ~ Description for Repair Nanobots #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Inside your body is a fleet of tiny dormant robots. While activated they " @@ -15641,8 +15716,8 @@ msgid_plural "Artificial Night Generator CBMs" msgstr[0] "MCB Generador artificial de noche" msgstr[1] "MCB Generador artificial de noche" -#. ~ Description for Artificial Night Generator #. ~ Description for Artificial Night Generator CBM +#. ~ Description for Artificial Night Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Destructive interference eliminates all light within a 15 tile radius." msgstr "" @@ -15670,8 +15745,8 @@ msgid_plural "Offensive Defense System CBMs" msgstr[0] "MCB Sistema de defensa ofensiva" msgstr[1] "MCB Sistema de defensa ofensiva" -#. ~ Description for Offensive Defense System #. ~ Description for Offensive Defense System CBM +#. ~ Description for Offensive Defense System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A thin forcefield surrounds your body, continually draining power. This " @@ -15688,8 +15763,8 @@ msgid_plural "Sensory Dulling CBMs" msgstr[0] "MCB Adormecimiento sensorial" msgstr[1] "MCB Adormecimiento sensorial" -#. ~ Description for Sensory Dulling #. ~ Description for Sensory Dulling CBM +#. ~ Description for Sensory Dulling #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your nervous system is wired to allow you to inhibit the signals of pain, " @@ -15721,8 +15796,8 @@ msgid_plural "Power Armor Interface CBMs" msgstr[0] "MCB Interfaz de armadura de poder" msgstr[1] "MCB Interfaz de armadura de poder" -#. ~ Description for Power Armor Interface #. ~ Description for Power Armor Interface CBM +#. ~ Description for Power Armor Interface #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Interfaces your power system with the internal charging port on suits of " @@ -15737,8 +15812,8 @@ msgid_plural "Power Armor Mk. II Interface CBMs" msgstr[0] "MCB Interfaz Mk. II de armadura de poder" msgstr[1] "MCB Interfaz Mk. II de armadura de poder" -#. ~ Description for Power Armor Interface Mk. II #. ~ Description for Power Armor Mk. II Interface CBM +#. ~ Description for Power Armor Interface Mk. II #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Interfaces your power system with the internal charging port on suits of " @@ -15755,8 +15830,8 @@ msgid_plural "Power Storage CBMs" msgstr[0] "MCB Almacenamiento de energía" msgstr[1] "MCB Almacenamiento de energía" -#. ~ Description for Power Storage #. ~ Description for Power Storage CBM +#. ~ Description for Power Storage #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Compact Bionics Module that upgrades your power capacity by 100 units. " @@ -15774,8 +15849,8 @@ msgid_plural "Power Storage CBMs Mk. II" msgstr[0] "MCB Almacenamiento de energía Mk. II" msgstr[1] "MCB Almacenamiento de energía Mk. II" -#. ~ Description for Power Storage Mk. II #. ~ Description for Power Storage CBM Mk. II +#. ~ Description for Power Storage Mk. II #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Compact Bionics Module developed at DoubleTech Industries as a replacement " @@ -15792,8 +15867,8 @@ msgid_plural "Probability Travel CBMs" msgstr[0] "MCB Barrera de potencial" msgstr[1] "MCB Barrera de potencial" -#. ~ Description for Probability Travel #. ~ Description for Probability Travel CBM +#. ~ Description for Probability Travel #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Increases your body's wavelength, allowing you to quantum tunnel through " @@ -15845,18 +15920,13 @@ msgid_plural "Railgun CBMs" msgstr[0] "MCB Cañón de riel" msgstr[1] "MCB Cañón de riel" -#. ~ Description for Railgun #. ~ Description for Railgun CBM -#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +#: lang/json/BIONIC_ITEM_from_json.py msgid "" -"EM field generators in your arms double the range and damage of thrown iron " -"and steel objects at a cost of 1 power per throw, causing them to leave a " -"trail of electricity that can cause additional damage." +"EM field generators in your arms increase the range and damage of thrown " +"iron and steel objects at a cost of 1 power per throw, causing them to leave" +" a trail of electricity that can cause additional damage." msgstr "" -"Unos generadores de campos electromagnéticos en tus brazos, duplican la " -"distancia y el daño causado por el lanzamiento de objetos de hierro y de " -"acero con un costo de 1 unidad de energía por lanzamiento. Además, dejan una" -" estela de electricidad que puede causar daño adicional." #: lang/json/BIONIC_ITEM_from_json.py msgid "Fingertip Razors CBM" @@ -15864,8 +15934,8 @@ msgid_plural "Fingertip Razors CBMs" msgstr[0] "MCB Uñas-navaja" msgstr[1] "MCB Uñas-navaja" -#. ~ Description for Fingertip Razors #. ~ Description for Fingertip Razors CBM +#. ~ Description for Fingertip Razors #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You possess razor-sharp retractable claws underneath your fingernails, ten " @@ -15882,8 +15952,8 @@ msgid_plural "Internal Microreactor CBMs" msgstr[0] "MCB Microreactor Interno" msgstr[1] "MCB Microreactor Interno" -#. ~ Description for Microreactor System #. ~ Description for Internal Microreactor CBM +#. ~ Description for Microreactor System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This stripped down mini-reactor may not be the best thing to have in your " @@ -15915,8 +15985,8 @@ msgid_plural "Recycler Unit CBMs" msgstr[0] "MCB Unidad de reciclado" msgstr[1] "MCB Unidad de reciclado" -#. ~ Description for Recycler Unit #. ~ Description for Recycler Unit CBM +#. ~ Description for Recycler Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your digestive system has been outfitted with a series of filters and " @@ -15933,8 +16003,8 @@ msgid_plural "Remote Controller CBMs" msgstr[0] "MCB Controlador Remoto" msgstr[1] "MCB Controlador Remoto" -#. ~ Description for Remote Controller #. ~ Description for Remote Controller CBM +#. ~ Description for Remote Controller #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A small module connected to your brain allows you to interface with nearby " @@ -15949,8 +16019,8 @@ msgid_plural "Sonic Resonator CBMs" msgstr[0] "MCB Resonador sónico" msgstr[1] "MCB Resonador sónico" -#. ~ Description for Sonic Resonator #. ~ Description for Sonic Resonator CBM +#. ~ Description for Sonic Resonator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your entire body may resonate at very high power, creating a short-range " @@ -15967,8 +16037,8 @@ msgid_plural "Olfactory Mask CBMs" msgstr[0] "MCB Máscara olfativa" msgstr[1] "MCB Máscara olfativa" -#. ~ Description for Olfactory Mask #. ~ Description for Olfactory Mask CBM +#. ~ Description for Olfactory Mask #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While this system is powered, your body will produce very little odor, " @@ -15983,8 +16053,8 @@ msgid_plural "Scent Vision CBMs" msgstr[0] "MCB Visión de olor" msgstr[1] "MCB Visión de olor" -#. ~ Description for Scent Vision #. ~ Description for Scent Vision CBM +#. ~ Description for Scent Vision #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While this system is powered, you're able to visually sense your own scent, " @@ -16000,8 +16070,8 @@ msgid_plural "Electroshock Unit CBMs" msgstr[0] "MCB Unidad de electroshock" msgstr[1] "MCB Unidad de electroshock" -#. ~ Description for Electroshock Unit #. ~ Description for Electroshock Unit CBM +#. ~ Description for Electroshock Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While fighting unarmed, or with a weapon that conducts electricity, there is" @@ -16019,8 +16089,8 @@ msgid_plural "Shockwave Generator CBMs" msgstr[0] "MCB Generador de onda sísmica" msgstr[1] "MCB Generador de onda sísmica" -#. ~ Description for Shockwave Generator #. ~ Description for Shockwave Generator CBM +#. ~ Description for Shockwave Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You generate a powerful shockwave, knocking back all nearby creatures. " @@ -16038,8 +16108,8 @@ msgid_plural "Synaptic Accelerator CBMs" msgstr[0] "MCB Acelerador de sinapsis" msgstr[1] "MCB Acelerador de sinapsis" -#. ~ Description for Synaptic Accelerator #. ~ Description for Synaptic Accelerator CBM +#. ~ Description for Synaptic Accelerator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py #, no-python-format msgid "" @@ -16133,8 +16203,8 @@ msgid_plural "Teleportation Unit CBMs" msgstr[0] "MCB Unidad de teletransportación" msgstr[1] "MCB Unidad de teletransportación" -#. ~ Description for Teleportation Unit #. ~ Description for Teleportation Unit CBM +#. ~ Description for Teleportation Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This highly experimental unit folds space over short distances, instantly " @@ -16152,8 +16222,8 @@ msgid_plural "Time Dilation CBMs" msgstr[0] "MCB Dilación del tiempo" msgstr[1] "MCB Dilación del tiempo" -#. ~ Description for Time Dilation #. ~ Description for Time Dilation CBM +#. ~ Description for Time Dilation #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "At the cost of all stored bionic power, you may increase your body speed and" @@ -16167,8 +16237,8 @@ msgid_plural "Integrated Toolset CBMs" msgstr[0] "MCB Caja de herramientas integrada" msgstr[1] "MCB Caja de herramientas integrada" -#. ~ Description for Integrated Toolset #. ~ Description for Integrated Toolset CBM +#. ~ Description for Integrated Toolset #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Surgically implanted in your hands and fingers is a complete tool set - " @@ -16196,8 +16266,8 @@ msgid_plural "Joint Servo CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Joint Servo #. ~ Description for Joint Servo CBM +#. ~ Description for Joint Servo #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your leg joints have been equipped with servomotors that provide power-" @@ -16212,8 +16282,8 @@ msgid_plural "Uncanny Dodge CBMs" msgstr[0] "MCB Evasión asombrosa" msgstr[1] "MCB Evasión asombrosa" -#. ~ Description for Uncanny Dodge #. ~ Description for Uncanny Dodge CBM +#. ~ Description for Uncanny Dodge #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your nervous system has been augmented with bionic processors, allowing you " @@ -16229,8 +16299,8 @@ msgid_plural "Unified Power System CBMs" msgstr[0] "MCB UPS" msgstr[1] "MCB UPS" -#. ~ Description for Internal Unified Power System #. ~ Description for Unified Power System CBM +#. ~ Description for Internal Unified Power System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have a unified power system wired into your power banks. Objects that " @@ -16246,8 +16316,8 @@ msgid_plural "Internal Chronometer CBMs" msgstr[0] "MCB Cronómetro interno" msgstr[1] "MCB Cronómetro interno" -#. ~ Description for Internal Chronometer #. ~ Description for Internal Chronometer CBM +#. ~ Description for Internal Chronometer #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have been equipped with an internal atomic clock, ensuring that you will" @@ -16327,8 +16397,8 @@ msgid_plural "Taste Modifier CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Taste Modifier #. ~ Description for Taste Modifier CBM +#. ~ Description for Taste Modifier #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A set of highly sensitive sensors is installed in your mouth, and a small " @@ -16547,8 +16617,8 @@ msgstr "" "Tienes algunos paneles solares instalados. Mientras estés expuesto a la luz " "del sol directa, tu nivel de energía ser cargará lentamente." -#. ~ Description for Solar Panels #. ~ Description for Solar Panels CBM +#. ~ Description for Solar Panels #: lang/json/BIONIC_ITEM_from_json.py lang/json/BIONIC_ITEM_from_json.py #: lang/json/bionic_from_json.py msgid "" @@ -16628,8 +16698,8 @@ msgid_plural "Ionic Overload Generator CBMs" msgstr[0] "MCB Generador de Sobrecarga Iónica" msgstr[1] "MCB Generador de Sobrecarga Iónica" -#. ~ Description for Ionic Overload Generator #. ~ Description for Ionic Overload Generator CBM +#. ~ Description for Ionic Overload Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A powerful ion energy generator is implanted on your chest. Fires a " @@ -22909,6 +22979,19 @@ msgid "Baby cow food, appropriated for adult humans. Spoils rapidly." msgstr "" "Es comida para terneros, apropiada para humanos adultos. Se pudre rápido." +#: lang/json/COMESTIBLE_from_json.py +msgid "reconstituted milk" +msgid_plural "reconstituted milk" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for reconstituted milk +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Baby cow food, appropriated for adult humans. This milk has been " +"reconstituted from a processed milk. Spoils rapidly." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "coffee milk" msgstr "café con leche" @@ -26603,22 +26686,20 @@ msgstr "" "pedazo de papel y listo para fumar." #: lang/json/COMESTIBLE_from_json.py -msgid "pink tablet" -msgstr "pastillas rosas" +msgid "pink tab" +msgstr "" -#. ~ Use action activation_message for pink tablet. +#. ~ Use action activation_message for pink tab. #: lang/json/COMESTIBLE_from_json.py msgid "You eat the pink tablet." msgstr "Te tomas una píldora rosa." -#. ~ Description for pink tablet +#. ~ Description for pink tab #: lang/json/COMESTIBLE_from_json.py msgid "" -"Tiny pink candies shaped like hearts, already dosed with some sort of drug." -" Really only useful for entertainment. Will cause hallucinations." +"Tiny pink tabs resembling postage stamps, already dosed with some sort of " +"drug. Really only useful for entertainment. Will cause hallucinations." msgstr "" -"Pastillas rosas pequeñas con forma de corazón, que ya vienen dosificadas con" -" alguna droga. Su única utilidad es el entretenimiento. Causa alucinaciones." #: lang/json/COMESTIBLE_from_json.py msgid "medical gauze" @@ -29221,6 +29302,15 @@ msgstr[1] "" msgid "A smooth-skinned fruit, related to the peach." msgstr "Una fruta de cáscara suave, parecida al melocotón." +#: lang/json/COMESTIBLE_from_json.py +msgid "cactus pad" +msgstr "" + +#. ~ Description for cactus pad +#: lang/json/COMESTIBLE_from_json.py +msgid "An edible pad of a cactus." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "barley" msgstr "cebada" @@ -31366,6 +31456,15 @@ msgstr "" " tus perritos calientes o hamburguesas, o, si estás desesperado, así directo" " a tu barriga." +#: lang/json/COMESTIBLE_from_json.py +msgid "nopalito" +msgstr "" + +#. ~ Description for nopalito +#: lang/json/COMESTIBLE_from_json.py +msgid "A less prickly version of cactus pads." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "wheat cereal" msgstr "cereal de trigo" @@ -33922,6 +34021,17 @@ msgstr[1] "objetos falsos" msgid "Dummy item. If you see this, then something went wrong." msgstr "Un objeto prueba. Si lo ves, es que algo está funcionando mal." +#: lang/json/GENERIC_from_json.py +msgid "semi ground grains" +msgid_plural "semi ground grains" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for semi ground grains +#: lang/json/GENERIC_from_json.py +msgid "A paste of half-finished milled grains, not yet flour." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "smoldering embers" msgid_plural "smoldering embers" @@ -33997,8 +34107,8 @@ msgstr "fuego cercano" #. ~ Description for wind #. ~ Description for a smoking device and a source of flame #. ~ Description for abstract map -#. ~ Description for weapon #. ~ Description for seeing this is a bug +#. ~ Description for weapon #: lang/json/GENERIC_from_json.py lang/json/GENERIC_from_json.py #: lang/json/TOOL_from_json.py lang/json/TOOL_from_json.py #: lang/json/skill_from_json.py @@ -36540,6 +36650,19 @@ msgid "" " vehicle. Combine it with a wheel to get a mountable piece." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "welding component kit" +msgid_plural "welding component kits" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for welding component kit +#: lang/json/GENERIC_from_json.py +msgid "" +"A set of components useful for constructing a full-featured welding station," +" complete with soldering capability." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "canister grenade" msgid_plural "canister grenades" @@ -39859,6 +39982,19 @@ msgstr "" "Un armazón pesado equipado con amarras y puntos de anclaje para transportar " "cargas." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "floor trunk" +msgid_plural "floor trunks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for floor trunk +#: lang/json/GENERIC_from_json.py +msgid "" +"A section of flooring with a cargo-space beneath, and a hinged door for " +"access." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "livestock carrier" msgid_plural "livestock carriers" @@ -39940,9 +40076,9 @@ msgstr[1] "estaciones de recarga compatible UPS" msgid "" "A Unified Power System recharging station designed to operate on vehicle " "power. Once installed in a vehicle storage space and turned on from a " -"dashboard or electronics control unit, it will slowly charge all tools with " -"rechargeable batteries in that space. The system can only be installed in " -"existing storage compartments." +"dashboard or electronics control unit, it will slowly charge all UPS " +"compatible tools and battery cells in that space. The system can only be " +"installed in existing storage compartments." msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py @@ -41562,6 +41698,17 @@ msgstr[1] "casquillos 9x18mm" msgid "An empty casing from a 9x18mm round." msgstr "Un casquillo de una bala calibre 9x18mm." +#: lang/json/GENERIC_from_json.py +msgid ".380 ACP casing" +msgid_plural ".380 ACP casings" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for .380 ACP casing +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a .380 ACP round." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "shotgun hull" msgid_plural "shotgun hulls" @@ -45345,6 +45492,89 @@ msgstr "ARTEFACTOS" msgid "ARMOR" msgstr "ARMADURA" +#: lang/json/MAGAZINE_from_json.py +msgid "ultra-light battery cell" +msgstr "" + +#. ~ Description for ultra-light battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a light battery cell designed for small size over everything else. " +"It retains its universal compatibility, though." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "light battery cell" +msgstr "" + +#. ~ Description for light battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a light battery cell, universally compatible with all kinds of small" +" devices." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "light battery cell (high-capacity)" +msgid_plural "light battery cells (high-capacity)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for light battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity light battery cell, universally compatible with all " +"kinds of personal electronic devices." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "medium battery cell" +msgstr "" + +#. ~ Description for medium battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a medium battery cell, universally compatible with all kinds of " +"appliances and power tools." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "medium battery cell (high-capacity)" +msgid_plural "medium battery cells (high-capacity)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for medium battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity medium battery cell, universally compatible with all" +" kinds of appliances and power tools." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "heavy battery cell" +msgstr "" + +#. ~ Description for heavy battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a heavy battery cell, universally compatible with all kinds of " +"industrial-grade equipment and large tools." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "heavy battery cell (high-capacity)" +msgid_plural "heavy battery cells (high-capacity)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for heavy battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity heavy battery cell, universally compatible with all " +"kinds of industrial-grade equipment and large tools." +msgstr "" + #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "fuel bunker" msgstr "" @@ -45509,6 +45739,15 @@ msgstr "cargador S&W 22A" msgid "A standard capacity magazine for the popular S&W 22A pistol." msgstr "Es un cargador de capacidad estándar para la popular pistola S&W 22A." +#: lang/json/MAGAZINE_from_json.py +msgid "Jennings J-22 magazine" +msgstr "" + +#. ~ Description for Jennings J-22 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A cheap 6-round steel box magazine for the Jennings J-22." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "LW-5 speedloader" msgstr "" @@ -45807,6 +46046,15 @@ msgid "A standard 20-round magazine for the Skorpion Vz. 61, in .32 ACP." msgstr "" "Es un cargador estándar de 20 balas para el Skorpion Vz. 61, de .32 ACP." +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec P32 magazine" +msgstr "" + +#. ~ Description for Kel-Tec P32 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 7-round steel box magazine for the Kel-Tec P32." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "P226 magazine .357 SIG" msgstr "cargador P226 .357 SIG" @@ -45853,6 +46101,43 @@ msgid "" "revolver." msgstr "" +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec P3AT magazine" +msgstr "" + +#. ~ Description for Kel-Tec P3AT magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 6-round steel box magazine for the Kel-Tec P3AT." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "FN 1910 magazine" +msgstr "" + +#. ~ Description for FN 1910 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "" +"A standard 6-round steel box magazine for the FN 1910. It looks a bit old." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "Ruger LCP magazine" +msgstr "" + +#. ~ Description for Ruger LCP magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 6-round capacity magazine for the Ruger LCP pistol." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "MAC-11 magazine" +msgstr "" + +#. ~ Description for MAC-11 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A cheap 32-round steel box magazine for use with the MAC-11 SMG." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid ".40 6-round speedloader" msgstr "" @@ -46539,6 +46824,15 @@ msgstr "" "Es un cargador de caja de acero estándar de 32 balas, para usar en el " "subfusil UZI." +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec PF-9 magazine" +msgstr "" + +#. ~ Description for Kel-Tec PF-9 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 7-round steel box magazine for the Kel-Tec PF-9." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "Makarov PM magazine" msgstr "cargador Makarov PM" @@ -47320,6 +47614,15 @@ msgstr "" "Agrega una cadena de pizzerías ya en bancarrota, pero con monstruos " "animatrónicos funcionales en su interior." +#: lang/json/MOD_INFO_from_json.py +msgid "Battery Migration for Existing Games" +msgstr "" + +#. ~ Description for Battery Migration for Existing Games +#: lang/json/MOD_INFO_from_json.py +msgid "Allows you to reload and unload battery cells with legacy batteries." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "Boats" msgstr "Botes" @@ -53456,8 +53759,8 @@ msgstr "" msgid "guardin gnome" msgstr "enano de jardín" -#. ~ Description for garden gnome #. ~ Description for guardin gnome +#. ~ Description for garden gnome #: lang/json/MONSTER_from_json.py lang/json/furniture_from_json.py msgid "A normal and completely harmless garden gnome." msgstr "Un enano de jardín normal y completamente no peligroso." @@ -54462,24 +54765,6 @@ msgstr "" "funcione con pilas o baterías, haciendo que utilice la energía de la célula " "de plutonio." -#: lang/json/TOOLMOD_from_json.py -msgid "extra battery mod" -msgid_plural "extra battery mods" -msgstr[0] "modificación de batería extra" -msgstr[1] "modificaciones de batería extra" - -#. ~ Description for extra battery mod -#: lang/json/TOOLMOD_from_json.py -msgid "" -"This is a homemade battery compartment made with spare electronics. With " -"enough electronics skill, you could attach this to any electronic tool to " -"double the amount of batteries it can hold." -msgstr "" -"Se trata de un compartimento de batería casera hecha con piezas " -"electrónicas. Con habilidad suficiente en electrónica, puedes unir esto a " -"cualquier herramienta electrónica para duplicar la cantidad de baterías que " -"puede contener." - #: lang/json/TOOLMOD_from_json.py msgid "UPS conversion mod" msgid_plural "UPS conversion mods" @@ -54533,6 +54818,45 @@ msgstr "" "Es una modificación de compartimiento para batería que te permite utilizar " "las baterías de vehículos y baterías pequeñas en herramientas comunes." +#: lang/json/TOOLMOD_from_json.py +msgid "light battery mod" +msgid_plural "light battery mods" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for light battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of light batteries in tools " +"that otherwise could not." +msgstr "" + +#: lang/json/TOOLMOD_from_json.py +msgid "medium battery mod" +msgid_plural "medium battery mods" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for medium battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of medium batteries in tools " +"that otherwise could not." +msgstr "" + +#: lang/json/TOOLMOD_from_json.py +msgid "heavy battery mod" +msgid_plural "heavy battery mods" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for heavy battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of heavy batteries in tools " +"that otherwise could not." +msgstr "" + #: lang/json/TOOLMOD_from_json.py msgid "cybernetic power port mod" msgid_plural "cybernetic power port mods" @@ -56993,6 +57317,32 @@ msgstr "" "esquina similar a un cincel. Se usa para la mayoría de las fabricaciones " "metalúrgicas." +#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +msgid "water mill" +msgid_plural "water mills" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for water mill +#: lang/json/TOOL_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour. Can" +" be placed via the construction menu." +msgstr "" + +#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +msgid "wind mill" +msgid_plural "wind mills" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for wind mill +#: lang/json/TOOL_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour. Can " +"be placed via the construction menu." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "wood axe" msgid_plural "wood axes" @@ -60551,28 +60901,10 @@ msgstr[1] "tiras de luz" #. ~ Description for lightstrip #: lang/json/TOOL_from_json.py msgid "" -"This is a light-emitting circuit wired directly to some batteries. It " -"provides some weak light and can't be turned off. When the batteries die, " -"you'll need to scrap it to recover the components that are reusable." -msgstr "" -"Es un circuito emisor de luz conectado directamente a unas baterías. Provee " -"una luz débil y no puede apagarse. Cuando se queda sin baterías, vas a tener" -" que desmontarlo para recuperar los componentes que puedan ser reutilizados." - -#: lang/json/TOOL_from_json.py -msgid "lightstrip (unpowered)" -msgid_plural "lightstrips (unpowered)" -msgstr[0] "tira de luz (gastada)" -msgstr[1] "tiras de luz (gastadas)" - -#. ~ Description for lightstrip (unpowered) -#: lang/json/TOOL_from_json.py -msgid "" -"This is a unpowered lightstrip. You could connect it to batteries to get a " -"light-emitting circuit." +"This is a light-emitting circuit that has been wired directly to a battery." +" It provides some weak light and can't be turned off until the battery " +"dies." msgstr "" -"Es una tira de luz sin energía. Podrías conectarla a una batería para " -"conseguir un circuito de emisión de luz." #: lang/json/TOOL_from_json.py msgid "lightstrip (inactive)" @@ -60588,15 +60920,9 @@ msgstr "Activas la tira de luz y ya no se puede apagar." #. ~ Description for lightstrip (inactive) #: lang/json/TOOL_from_json.py msgid "" -"This is a light-emitting circuit wired directly to some batteries. It will " -"provide some weak light once activated and can't be turned off. When the " -"batteries die, you'll need to scrap it to recover the components that are " -"reusable." +"This is a light-emitting circuit that can be wired directly to a battery. " +"It provides some weak light and can't be turned off until the battery dies." msgstr "" -"Es un circuito emisor de luz conectado directamente a unas baterías. Provee " -"una luz débil una vez que es activado y ya no puede apagarse. Cuando se " -"queda sin baterías, vas a tener que desmontarlo para recuperar los " -"componentes que puedan ser reutilizados." #: lang/json/TOOL_from_json.py msgid "lobotomizer" @@ -61237,7 +61563,13 @@ msgid "" "of reactivity. Don't try to breathe it." msgstr "" -#. ~ Description for nitrogen tank +#: lang/json/TOOL_from_json.py +msgid "hydrogen tank" +msgid_plural "hydrogen tanks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for hydrogen tank #: lang/json/TOOL_from_json.py msgid "" "This is a tank of compressed hydrogen gas. If you need to make water from " @@ -61981,6 +62313,12 @@ msgstr "" "hará que intentes repararlo o reforzarlo. Y al hacerlo estarás usando tu " "habilidad de Sastrería." +#: lang/json/TOOL_from_json.py +msgid "anesthesia kit" +msgid_plural "anesthesia kits" +msgstr[0] "" +msgstr[1] "" + #: lang/json/TOOL_from_json.py msgid "shaving kit" msgid_plural "shaving kits" @@ -67368,6 +67706,10 @@ msgstr ".357 SIG" msgid "9x18mm" msgstr "9x18mm" +#: lang/json/ammunition_type_from_json.py +msgid ".380 ACP" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid ".38" msgstr ".38" @@ -68321,6 +68663,18 @@ msgstr "" msgid "Railgun" msgstr "Cañón de Riel" +#. ~ Description for Railgun +#: lang/json/bionic_from_json.py +msgid "" +"EM field generators in your arms double the range and damage of thrown iron " +"and steel objects at a cost of 1 power per throw, causing them to leave a " +"trail of electricity that can cause additional damage." +msgstr "" +"Unos generadores de campos electromagnéticos en tus brazos, duplican la " +"distancia y el daño causado por el lanzamiento de objetos de hierro y de " +"acero con un costo de 1 unidad de energía por lanzamiento. Además, dejan una" +" estela de electricidad que puede causar daño adicional." + #: lang/json/bionic_from_json.py msgid "Fingertip Razors" msgstr "Uñas-Navaja" @@ -69430,6 +69784,14 @@ msgstr "" msgid "Build River Dock/Shallow Bridge" msgstr "" +#: lang/json/construction_from_json.py +msgid "Place Water Mill" +msgstr "" + +#: lang/json/construction_from_json.py +msgid "Place Wind Mill" +msgstr "" + #: lang/json/construction_from_json.py msgid "Build Shallow Temporary Bridge" msgstr "" @@ -74734,6 +75096,40 @@ msgid "" "deconstructed and folded for easy transportation." msgstr "" +#. ~ Description for wind mill +#: lang/json/furniture_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "active wind mill" +msgstr "" + +#. ~ Description for active wind mill +#: lang/json/furniture_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour. Its" +" brake has been removed and it is turning." +msgstr "" + +#. ~ Description for water mill +#: lang/json/furniture_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "active water mill" +msgstr "" + +#. ~ Description for active water mill +#: lang/json/furniture_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour. " +"Its brake has been removed and it is turning." +msgstr "" + #. ~ Description for tourist table #: lang/json/furniture_from_json.py msgid "Small metal folding table, ideal for off-road trips into the wild." @@ -75819,7 +76215,8 @@ msgstr "" "arma tienen una gran probabilidad de no romperse." #: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py src/item.cpp +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "pistol" msgstr "pistola" @@ -76309,6 +76706,12 @@ msgid_plural "base pistols" msgstr[0] "" msgstr[1] "" +#: lang/json/gun_from_json.py +msgid "backup pistol" +msgid_plural "backup pistols" +msgstr[0] "" +msgstr[1] "" + #: lang/json/gun_from_json.py src/item_factory.cpp msgid "revolver" msgid_plural "revolvers" @@ -76552,6 +76955,21 @@ msgstr[1] "S&W 22A" msgid "A popular .22 pistol." msgstr "Una pistola popular de calibre .22" +#: lang/json/gun_from_json.py +msgid "Jennings J-22" +msgid_plural "Jennings J-22s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of the quintessential 'saturday night specials', the Jennings J-22 was " +"very affordably priced with its injection molded zinc slide and frame. " +"Intended to fill the void left after small pocket pistols were banned from " +"import, these were more commonly used by criminals unfazed by their glaring " +"safety issues." +msgstr "" + #: lang/json/gun_from_json.py msgid "Remington ACR" msgid_plural "Remington ACRs" @@ -77270,6 +77688,19 @@ msgstr "" "Es una de las pistolas más famosas del siglo XX. Tu nombre no es Bond, pero " "igual vas a encontrarle utilidad a esta pequeña pistola." +#: lang/json/gun_from_json.py +msgid "Kel-Tec P32" +msgid_plural "Kel-Tec P32s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of Kel-tec's oldest designs, the P32 is a popular option for deep " +"concealment and backup usage. Despite its extreme light weight and small " +"size, its .32 ACP chambering makes for good handling and recoil control." +msgstr "" + #: lang/json/gun_from_json.py msgid "SIG P226" msgid_plural "SIG P226s" @@ -77374,6 +77805,63 @@ msgstr "" "Una pistola calibre .38 popular. Diseñada con muchas características de " "seguridad y construida con materiales duraderos de alta calidad." +#: lang/json/gun_from_json.py +msgid "MAC-11" +msgid_plural "MAC-11s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A lesser known variant of the MAC-10, this machine pistol is chambered in " +".380 ACP for a smaller overall size while remaining inherently subsonic. " +"Smaller in almost every dimension, this inexpensive automatic weapon was " +"declared 'fit only for combat in a phone booth' due to its low weight and " +"absurd fire rate ranging from 1200 to 1400 rounds per minute." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Kel-Tec P3AT" +msgid_plural "Kel-Tec P3ATs" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"Essentially a slightly scaled up Kel-tec P32 in .380 ACP, the ever popular " +"P3AT offers better ballistics in a small, concealable lightweight package. " +"Handling leaves something to be desired due to snappier recoil and " +"diminuitive controls." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "FN 1910 .380" +msgid_plural "FN 1910 .380s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"Made infamous in Sarajevo in 1914, the FN1910 was a popular pocket pistol, " +"albeit in .32 ACP. Collectors value the .380 model for its notoriety and " +"more modern terminal performance. If such a humble firearm could start a " +"world war, could it perhaps protect you from the undead?" +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Ruger LCP" +msgid_plural "Ruger LCPs" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of the best selling modern day 'pocket pistol's, the LCP is an " +"affordable, polymer framed pistol chambered in .380 ACP. Despite the " +"round's relatively low power, the pistol's low weight and short sight radius" +" make for a moderately poor handling pistol." +msgstr "" + #: lang/json/gun_from_json.py msgid "Glock 22" msgid_plural "Glock 22" @@ -78651,6 +79139,20 @@ msgstr "" "Diseñada para los tiradores, la Glock 17 está orientada para uso de las " "fuerzas de la ley y militares." +#: lang/json/gun_from_json.py +msgid "Kel-Tec PF-9" +msgid_plural "Kel-Tec PF-9s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"The Kel-Tec PF-9 remains one of the most popular backup pistols due to its " +"history of reliability, affordability, and concealability. Chambered in " +"9x19mm, recoil is best described as unpleasant, and follow up shots are " +"difficult to place quickly." +msgstr "" + #: lang/json/gun_from_json.py msgid "Makarov PM" msgid_plural "Makarov PMs" @@ -81680,6 +82182,51 @@ msgctxt "gun_type_type" msgid "crossbow" msgstr "ballesta" +#: lang/json/gunmod_from_json.py +msgid "belt clip" +msgid_plural "belt clips" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a belt clip that attaches to the grip or slide of a pistol so as to " +"facilitate 'Mexican carry', the practice of carrying without a holster. It " +"does not offer any protection for the trigger, so users are strongly advised" +" to carry with the chamber empty or select a firearm with a very heavy " +"trigger pull." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "rugerlcp" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kp32" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kp3at" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kpf9" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "cop_38" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "moss_brownie" +msgstr "" + #: lang/json/gunmod_from_json.py msgid "shortened barrel" msgid_plural "shortened barrels" @@ -82421,6 +82968,19 @@ msgstr "" "antes de utilizarse. Por esto, aumenta el tiempo necesario para empuñar el " "arma." +#: lang/json/gunmod_from_json.py +msgid "folding wire stock" +msgid_plural "folding wire stocks" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"A folding wire stock which folds up very compactly but needs unfolding " +"before use. It's somewhat wobbly but is better than nothing at all. " +"Increases the time needed to wield the weapon." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "pistol stock" msgid_plural "pistol stocks" @@ -85684,16 +86244,15 @@ msgstr "Puedes guardar objetos aquí." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"You can 'e'xamine the tile or attempt to pick-up items (default ',') to " -"access the controls, or use the vehicle control key (default '^')." +"You can 'e'xamine the tile to access the controls, or use the vehicle " +"control key (default '^')." msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"With a seat or saddle, you drive from here. You can 'e'xamine the tile or " -"attempt to pick-up items (default ',') to access the controls, or use the " -"vehicle control key (default '^')." +"With a seat or saddle, you drive from here. You can 'e'xamine the tile to " +"access the controls, or use the vehicle control key (default '^')." msgstr "" #. ~ Please leave anything in unchanged. @@ -86659,6 +87218,10 @@ msgstr "Dormir" msgid "Control Vehicle" msgstr "Conducir vehículo" +#: lang/json/keybinding_from_json.py +msgid "Toggle Auto Travel Mode" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Toggle Safe Mode" msgstr "Activar/Desactivar modo seguro" @@ -86852,7 +87415,23 @@ msgid "Active World Mods" msgstr "" #: lang/json/keybinding_from_json.py -msgid "Toggle move mode (run/walk/crouch)" +msgid "Cycle move mode (run/walk/crouch)" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Reset Movement to Walk" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Run" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Crouch" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Movement Mode Menu" msgstr "" #: lang/json/keybinding_from_json.py src/game_inventory.cpp @@ -94307,6 +94886,17 @@ msgstr "" "Tienes mejor oído que lo normal, y puedes oir sonidos distantes con mayor " "facilidad." +#: lang/json/mutation_from_json.py +msgid "Fey Hearing" +msgstr "" + +#. ~ Description for Fey Hearing +#: lang/json/mutation_from_json.py +msgid "" +"Your not sure the shape of your ears are helping, but regardless you have " +"become very sensitive to sounds." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Outdoorsman" msgstr "Amante de la Naturaleza" @@ -96460,6 +97050,17 @@ msgstr "" "Donde antes estaba tu cuero cabelludo, ahora empezaste a florecer. Tus " "flores tienen un aroma agradable, son llamativos y bastante sensitivos." +#: lang/json/mutation_from_json.py +msgid "Rosebuds" +msgstr "" + +#. ~ Description for Rosebuds +#: lang/json/mutation_from_json.py +msgid "" +"The top of your head is blooming with rosebuds. They're eye catching, and " +"have a strong fragrance that makes you pleasant to be around." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Mycus Spores" msgstr "Esporas de Mycus" @@ -99170,6 +99771,17 @@ msgstr "" msgid "You detach a vine from your body." msgstr "Te sacás una liana de tu cuerpo." +#: lang/json/mutation_from_json.py +msgid "Hair Roots" +msgstr "" + +#. ~ Description for Hair Roots +#: lang/json/mutation_from_json.py +msgid "" +"Roots have started growing from your leaf like hair, they don't seem to do " +"much." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Toe Roots" msgstr "Dedos Raíces" @@ -102081,10 +102693,18 @@ msgstr "estación de servicio" msgid "pharmacy" msgstr "farmacia" +#: lang/json/overmap_terrain_from_json.py +msgid "pharmacy roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "doctor's office" msgstr "consultorio médico" +#: lang/json/overmap_terrain_from_json.py +msgid "doctor's office roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "office" msgstr "oficina" @@ -102191,6 +102811,10 @@ msgstr "" msgid "butcher shop" msgstr "carnicería" +#: lang/json/overmap_terrain_from_json.py +msgid "butcher shop roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "bike shop" msgstr "tienda de motos" @@ -102395,10 +103019,22 @@ msgstr "sex shop" msgid "internet cafe" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "internet cafe roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "car showroom" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "car showroom 2nd floor" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "car showroom roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "car dealership" msgstr "" @@ -102427,6 +103063,10 @@ msgstr "estación de radio" msgid "gardening allotment" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "gardening allotment roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "animal pound" msgstr "" @@ -110317,7 +110957,7 @@ msgid "" msgstr "" #: lang/json/recipe_from_json.py -msgid "We need to add a console to control the radio tower." +msgid "We need to build a console to control the radio tower." msgstr "" #: lang/json/recipe_from_json.py @@ -121285,6 +121925,78 @@ msgstr "" msgid "Can do." msgstr "" +#: lang/json/snippet_from_json.py +msgid "Whew... smells like skunk!" +msgstr "Puaj... ¡Huele a mofeta!" + +#: lang/json/snippet_from_json.py +msgid "Man, that smells like some good shit!" +msgstr "¡Tío, que bien que huele eso!" + +#: lang/json/snippet_from_json.py +msgid "Hey, don't bogart the joint!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "C'mon, , I can smell it, pass it over." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Wow, that smell takes me back." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Ah, man. Good times, good times. Love that scent." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "What do I smell? Well, I guess it's legal now." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Mmm, that weed smells good." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Man, I can smell the weed, can I have some?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Are you sure it's a good idea to smoke that now?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I don't know... should you really be smoking that stuff?" +msgstr "No lo sé... ¿Deberías estar fumando esas cosas?" + +#: lang/json/snippet_from_json.py +msgid ", that's going to ruin your nose." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Man, that stinks. Put it out!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "You're going to kill yourself smoking that stuff, ." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Oh, wow, that smell... Can I have some?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Ew, smells like burning rubber!" +msgstr "¡Puaj, qué baranda a goma quemada!" + +#: lang/json/snippet_from_json.py +msgid "Ugh, that smells rancid!" +msgstr "¡Uh, qué olor rancio!" + +#: lang/json/snippet_from_json.py +msgid "" +msgstr "" + #: lang/json/snippet_from_json.py msgid "Tell me about how you survived the cataclysm." msgstr "" @@ -122250,6 +122962,10 @@ msgstr "¡Mi dueña anterior gritaba como un chancho cuando la destripé!" msgid "\"Hello?\"" msgstr "\"¿Hola?\"" +#: lang/json/speech_from_json.py +msgid "\"Papaya!\"" +msgstr "" + #: lang/json/speech_from_json.py msgid "\"Who's there?\"" msgstr "\"¿Quién está ahí?\"" @@ -124804,8 +125520,8 @@ msgstr "Tienda de Ropa" #: lang/json/talk_topic_from_json.py msgid "" -"I'm my own person, but I'm willing to follow your lead. I can do a lot of things for you: I can fight, I can train you or you can train me, I can carry stuff, I can bandage your wounds, I can build faction camps, I can go places, I can guard things, I can even chit-chat with you or talk about my background. You can give me instructions in conversation or by radio or shout commands at me. \n" -"What do you want to know more about?" +"I'm my own person, but I'm willing to follow your lead. I can do a lot of things for you: I can fight, I can train you or you can train me, I can carry stuff, I can bandage your wounds, I can build faction camps, I can go places, I can guard things, I can even chit-chat with you or talk about my background. You can give me instructions in conversation or by radio or shout commands at me.\n" +" What do you want to know more about?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -124866,8 +125582,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If we're next to each other, you can just bump into me and we'll start talking, right? But if I'm farther away, you're going to have to shout a bit (use the 'C'hat command) for me to hear you. You'll need to see me for us to have a conversation. Or we can talk by radios if we both have them. \n" -"When we talk, you can give me instructions about how to fight or when to sleep or whatever. I'll mostly do them, and you can ask me what my current instructions are. Sometimes you'll give me two sets of instructions: a normal set, and an override for a specific situation. I'll tell you which instructions are overriden. You can set and clear overrides with shouted commands." +"If we're next to each other, you can just bump into me and we'll start talking, right? But if I'm farther away, you're going to have to shout a bit (use the 'C'hat command) for me to hear you. You'll need to see me for us to have a conversation. Or we can talk by radios if we both have them.\n" +" When we talk, you can give me instructions about how to fight or when to sleep or whatever. I'll mostly do them, and you can ask me what my current instructions are. Sometimes you'll give me two sets of instructions: a normal set, and an override for a specific situation. I'll tell you which instructions are overriden. You can set and clear overrides with shouted commands." msgstr "" #: lang/json/talk_topic_from_json.py @@ -124881,8 +125597,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Sometimes you need to give orders in a hurry. You can use the 'C'hat command to shout a single specific order. If I hear you, I'll do what you say, as will anyone else following you that hears it. \n" -"Some orders will override other instructions you've given me. If you change my instructions when I've got an override command, I'll tell you which ones are overridden. You can shout an order to clear any overrides." +"Sometimes you need to give orders in a hurry. You can use the 'C'hat command to shout a single specific order. If I hear you, I'll do what you say, as will anyone else following you that hears it.\n" +" Some orders will override other instructions you've given me. If you change my instructions when I've got an override command, I'll tell you which ones are overridden. You can shout an order to clear any overrides, or talk to me and tell me to clear them." msgstr "" #: lang/json/talk_topic_from_json.py @@ -124891,72 +125607,75 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"It's a dangerous world out there, right? So we fight to survive. I'm on your side, and I'll stick with you, but if I think the situation is too dangerous, I'll be honest, I'm going to run. If I see you running but I think it's safe, I'll stay and fight, but you can tell me run with you and I'll stick by you as best I can. \n" -"You can give me some instructions on when I should attack, but I'll make my own decisions about who - I'll try to defend myself and you, though, but if you tell me to stay in one place I'll stay there. \n" -"I'll use guns and grenades if I have them, but you can tell me to not use grenades or not use loud weapons or to not use ranged weapons at all. If I'm shooting, you can tell me how much to aim and whether to try to avoid shooting you or not. \n" -"I'll respect your rules for what types of weapons to use, but I'll choose what to use from my stuff. \n" -"You can also tell me to hold the line and fight at chokepoints, but I'm not great at recognizing them so I may go off to fight something elsewhere anyway." +"It's a dangerous world out there, right? So we fight to survive. I'm on your side, and I'll stick with you, but if I think the situation is too dangerous, I'll be honest, I'm going to run.\n" +" You can't tell me not to run, because I'm going to flee if things are bad, but you can tell me a safe place to retreat by using the zones manager (keybind 'Y'). I'll run toward the closest place you've designated - and you can set zones on vehicles, so if you've got a car, you could tell me to retreat there.\n" +" If I see you running but I think it's safe, I'll stay and fight, but you can tell me run with you and I'll stick by you as best I can.\n" +" You can give me some instructions on when I should attack, but I'll make my own decisions about who - I'll try to defend myself and you, but if you tell me to stay in one place I'll stay there.\n" +" I'll use guns and grenades if I have them, but you can tell me to not use grenades or not use loud weapons or to not use ranged weapons at all. If I'm shooting, you can tell me how much to aim and whether to try to avoid shooting you or not. I'm not so good at recognizing safe shots, so stay out of my line of fire no matter what.\n" +" I'll respect your rules for what types of weapons to use, but I'll choose what to use from my stuff.\n" +" You can also tell me to hold the line and fight at chokepoints, but I'm not great at recognizing them so I may go off to fight something elsewhere anyway." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If I'm better at a skill than you, I can help you improve. But it's boring to teach a lot, so I'm not going to do it very often. And I'm not going to do it when we're in danger or if I'm hungry or tired or if you're driving. \n" -"If we're someplace safe and you're reading a book that improves skills, I'll listen if I don't have that skill. You can even read me books for skills that you already have." +"If I'm better at a skill than you, I can help you improve. But it's boring to teach a lot, so I'm not going to do it very often. And I'm not going to do it when we're in danger or if I'm hungry or tired or if you're driving.\n" +" If we're someplace safe and you're reading a book that improves skills, I'll listen if I don't have that skill. You can even read me books for skills that you already have." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"You give me something to carry, I'll carry it. But I only have so many pockets and I'm only so strong, so I'll drop stuff that's too big to carry. \n" -"I'll also wear stuff - I'll decide what I want to wear, but you can take stuff from me. If I'm wearing something I shouldn't, you can bump into me and sort my armor to get me to take if off. \n" -"I don't like wearing a lot of gear, so if you give me a lot of bulky stuff and things that don't fit, I'm going to take them off and probably drop them. \n" -"Also, since we're friends, I'll give you anything I'm carrying, no questions asked. \n" -"Oh, yeah, if I'm hungry or thirsty and I'm carrying food, I'll eat it. So you might want to watch what you give me, y'know?" +"You give me something to carry, I'll carry it. But I only have so many pockets and I'm only so strong, so I'll drop stuff that's too big to carry.\n" +" I'll also wear stuff - I'll decide what I want to wear, but you can take stuff from me. If I'm wearing something I shouldn't, you can bump into me and sort my armor to get me to take if off.\n" +" I don't like wearing a lot of gear, so if you give me a lot of bulky stuff and things that don't fit, I'm going to take them off and probably drop them.\n" +" Also, since we're friends, I'll give you anything I'm carrying, no questions asked.\n" +" Oh, yeah, if I'm hungry or thirsty and I'm carrying food, I'll eat it. So you might want to watch what you give me, y'know?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If you call me by radio, you can tell me to come to you. If you've got some basecamps set up, you can tell me to go to one of them. I'll start walking, and when I get to where I'm going, I'll guard it. \n" -"Now depending on where I am and where I'm going, it may take me a while to get there. I'll dodge any dangers on the way, don't worry about that, but if you're way the heck away from me and tell me to come, it may be a while until I get to you." +"If you call me by radio, you can tell me to come to you. If you've got some basecamps set up, you can tell me to go to one of them. I'll start walking, and when I get to where I'm going, I'll guard it.\n" +" Now depending on where I am and where I'm going, it may take me a while to get there. I'll dodge any dangers on the way, don't worry about that, but if you're way the heck away from me and tell me to come, it may be a while until I get to you." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"You tell me to guard, I'll stay where I am and guard it - unless I'm in a vehicle, in which case I'll stick with the vehicle. \n" -"I'm not a potted plant, though, so if I hear something dangerous happening, I'm going to go see what it is instead of getting jumped in the dark. If you want me to stay put, tell me not to investigate noises - but if I get shot by some bandit because I can't see where he is and you don't want me to go looking, I won't be happy." +"You tell me to guard, I'll stay where I am and guard it - unless I'm in a vehicle, in which case I'll stick with the vehicle.\n" +" I'm not a potted plant, though, so if I hear something dangerous happening, I'm going to go see what it is instead of getting jumped in the dark. If you want me to stay put, tell me not to investigate noises - but if I get shot by some bandit because I can't see where he is and you don't want me to go looking, I won't be happy.\n" +" You can also use the zone manager (keybind 'Y') to set up no-investigate zone, so if there's some monsters behind a door that you know about, I can ignore them. You can also set on an investigate-only zone, and I won't investigate noises coming from outside the zone. The no-investigate zone takes precedence over the investigate-only, if there's a noise coming from some place in both zones. And if you've got an investigate-only zone set anywhere, even if it's far away, I won't investigate noises coming from outside of it, so be careful with those zones. Like I said, I don't want to get sniped by some bandit because you told me not to go looking for him - but I also don't want to go investigate something pounding at door only to find out it's some horrible monster you forgot to warn me about." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Just in case - how do I tell you to stay put?" +msgid "Just in case - how else can I tell you to stay put?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"We can chit-chat, if you want. People are social animals, right? A little light conversation can do wonders for your mood. But I don't want to be yapping all the time, so if we've chatted recently, I probably am not going to want to talk for a bit. \n" -"You can also ask me about my background. I may not want to talk about it, though." +"We can chit-chat, if you want. People are social animals, right? A little light conversation can do wonders for your mood. But I don't want to be yapping all the time, so if we've chatted recently, I probably am not going to want to talk for a bit.\n" +" You can also ask me about my background. I may not want to talk about it, though." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"You can give me a bunch of instructions. Talk to me about the miscellaneous rules, and I'll tell you what I'm doing and you can give a new instruction. Sometimes you'll have shouted a command that overrides your other instructions, and I'll tell you which instructions are overridden. \n" -"I'm not a chatterbox, but I'll tell you when I see or hear danger or if I'm hurt or hungry or something. You don't want me doing that, you just tell me. \n" -"Also, I'll pulp zombies if you'd like - I would prefer that. \n" -"If I hear something suspicious and can't see if, I'll go take a look, but you can tell me not to do that. \n" -" I'll open and close doors, or open them and leave them ajar, or not going through closed doors. You just tell me what you want. \n" -"I can pick stuff up if want me to, and you can tell me what to pick up. If I've got a bow or crossbow, please tell me to pick up the ammo - it's less fuss for both of us. \n" -"If you've got a vehicle, you can e'x'amine it and use the cre'w' command to assign me a seat. That saves arguments about who needs to sit where." +"You can give me a bunch of instructions. Talk to me about the miscellaneous rules, and I'll tell you what I'm doing and you can give a new instruction. Sometimes you'll have shouted a command that overrides your other instructions, and I'll tell you which instructions are overridden.\n" +" I'm not a chatterbox, but I'll tell you when I see or hear danger or if I'm hurt or hungry or something. You don't want me doing that, you just tell me.\n" +" Also, I'll pulp zombies if you'd like - I would prefer that.\n" +" If I hear something suspicious and can't see if, I'll go take a look, but you can tell me not to do that.\n" +" I'll open and close doors, or open them and leave them ajar, or not going through closed doors. You just tell me what you want.\n" +" I can pick stuff up if want me to, and you can tell me what to pick up. If I've got a bow or crossbow, please tell me to pick up the ammo - it's less fuss for both of us.\n" +" If you've got a vehicle, you can e'x'amine it and use the cre'w' command to assign me a seat. That saves arguments about who needs to sit where." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Here's the list of shouted commands I'll respond to: \n" -"Order me to guard, and I'll stay where I am and watch out for danger. I'll investigate suspicious noises unless you told me not to. \n" -"Order me to follow, and I'll stop guarding and go back to following you. \n" -"Order me to stay awake, and I'll stay awake until I'm too tired to keep my eyes open. \n" -"Order me to sleep when tired, and I'll nap when I get tired. I'll try to tell you when I'm off to bed unless you don't want to hear it. \n" -"Order me to flee, and I'll stick close to you when you run from danger. I won't go running off on my own - though if things really bad, I might be running away already! \n" -"Order me to stop running, and I'll evaluate the danger myself and might go off and fight something while you're doing other things. \n" -"Ordering me to prepare for danger is special: it's an override command. That means I'm going to follow certain instructions, even if you've given me other instructions earlier. Specifically, I'm going to flee with you, I'm not going to open or close doors, I'm not going to sleep until I'm exhausted, and I'm going to try to hold any chokepoints that you're fighting at. \n" -"Ordering me to relax from danger is another special command, and it will clear any overrides I currently have and I'll go back to whatever instructions I had before you told me to prepare for danger." +"Here's the list of shouted commands I'll respond to:\n" +" - Order me to guard, and I'll stay where I am and watch out for danger. I'll investigate suspicious noises unless you told me not to.\n" +" - Order me to follow, and I'll stop guarding and go back to following you.\n" +" - Order me to stay awake, and I'll stay awake until I'm too tired to keep my eyes open.\n" +" - Order me to sleep when tired, and I'll nap when I get tired. I'll try to tell you when I'm off to bed unless you don't want to hear it.\n" +" - Order me to flee, and I'll stick close to you when you run from danger. I won't go running off on my own - though if things really bad, I might be running away already!\n" +" - Order me to stop running, and I'll evaluate the danger myself and might go off and fight something while you're doing other things.\n" +" - Ordering me to prepare for danger is special: it's an override command. That means I'm going to follow certain instructions, even if you've given me other instructions earlier. Specifically, I'm going to flee with you, I'm not going to open or close doors, I'm not going to sleep until I'm exhausted, and I'm going to try to hold any chokepoints that you're fighting at.\n" +" - Ordering me to relax from danger is another special command, and it will clear any overrides I currently have and I'll go back to whatever instructions I had before you told me to prepare for danger." msgstr "" #: lang/json/talk_topic_from_json.py @@ -125237,6 +125956,10 @@ msgstr "¡Despierta!" msgid "Go back to sleep." msgstr "Vuelve a dormir." +#: lang/json/talk_topic_from_json.py +msgid "What is it, friend?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Combat commands..." msgstr "Comandos de combate..." @@ -125246,24 +125969,20 @@ msgid "Can you teach me anything?" msgstr "¿Me puedes enseñar algo?" #: lang/json/talk_topic_from_json.py -msgid "Let's trade items" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Guard this position" -msgstr "" +msgid "Guard this position." +msgstr "Protege esta posición." #: lang/json/talk_topic_from_json.py msgid "I'd like to know a bit more about you..." msgstr "Me gustaría conocer un poco más de ti..." #: lang/json/talk_topic_from_json.py -msgid "I want you to use this item" -msgstr "Quiero que uses este objeto" +msgid "I want you to use this item." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hold on to this item" -msgstr "Guarda este objeto" +msgid "Hold on to this item." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Miscellaneous rules..." @@ -125394,10 +126113,6 @@ msgstr "Sí, estoy seguro. Chao." msgid "Nah, I'm just kidding." msgstr "Nah, te estaba tomando el pelo." -#: lang/json/talk_topic_from_json.py -msgid "*pshhhttt* I'm reading you boss, over." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Stay at your current position." msgstr "" @@ -125862,7 +126577,7 @@ msgstr "¡Bueno, vamos!" msgid "Yeah... I don't think so." msgstr "No... no lo creo." -#: lang/json/talk_topic_from_json.py src/npctalk.cpp +#: lang/json/talk_topic_from_json.py msgid "What is it?" msgstr "¿Qué pasa?" @@ -126042,6 +126757,28 @@ msgstr "Bueno, está bien, chao." msgid "Okay" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm willing to pay per batch for a total of " +"." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Works for me." +msgstr "Trabaja para mi." + +#: lang/json/talk_topic_from_json.py +msgid "Maybe later." +msgstr "Tal vez más tarde." + +#: lang/json/talk_topic_from_json.py +msgid "Pleasure doing business!" +msgstr "¡Un placer hacer negocios!" + +#: lang/json/talk_topic_from_json.py +msgid "You might be seeing more of me..." +msgstr "Tal vez me vuelvas a ver..." + #: lang/json/talk_topic_from_json.py msgid "Hey again. *kzzz*" msgstr "" @@ -126984,10 +127721,6 @@ msgstr "" msgid "Yes, set up the bulletin board and then go back to normal duties." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Hope you're here to trade." -msgstr "Espero que hayas venido a comerciar." - #: lang/json/talk_topic_from_json.py msgid "" "I oversee the food stocks for the center. There was significant looting " @@ -127045,6 +127778,14 @@ msgstr "" msgid "Interesting..." msgstr "Interesante..." +#: lang/json/talk_topic_from_json.py +msgid "Hope you're here to trade." +msgstr "Espero que hayas venido a comerciar." + +#: lang/json/talk_topic_from_json.py +msgid "Who are you?" +msgstr "¿Quién eres?" + #: lang/json/talk_topic_from_json.py msgid "Mind if we just chat for a bit?" msgstr "" @@ -127301,10 +128042,6 @@ msgstr "Alguacil..." msgid "Citizen..." msgstr "Ciudadano..." -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Who are you?" -msgstr "¿Quién eres?" - #: lang/json/talk_topic_from_json.py msgid "Is there any way I can join the 'Old Guard'?" msgstr "¿Hay alguna forma en que me pueda unir a la 'Vieja Guardia'?" @@ -127858,10 +128595,6 @@ msgstr "" msgid "[$12000, 7d] 100 logs" msgstr "[$12000, 7d] 100 troncos" -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Maybe later." -msgstr "Tal vez más tarde." - #: lang/json/talk_topic_from_json.py msgid "I'll be back later." msgstr "" @@ -137458,6 +138191,10 @@ msgstr "" msgid "glare protection" msgstr "Protección al brillo" +#: lang/json/tool_quality_from_json.py +msgid "anesthesia" +msgstr "" + #: lang/json/tool_quality_from_json.py msgid "smoothing" msgstr "Suavizar" @@ -138703,10 +139440,6 @@ msgstr "" msgid "wooden aisle" msgstr "espacio lateral de madera" -#: lang/json/vehicle_part_from_json.py -msgid "floor trunk" -msgstr "baúl de suelo" - #. ~ Description for floor trunk #: lang/json/vehicle_part_from_json.py msgid "An aisle. A hatch lets you access a cargo space beneath it." @@ -139407,8 +140140,8 @@ msgstr "" msgid "" "A sophisticated set of electronic controls that allow you to control the " "vehicle from a vehicle remote while you are not in it. You can 'e'xamine " -"the tile or attempt to pick-up items (default ',') to access the controls, " -"or use the vehicle control key (default '^')." +"the tile to access the controls, or use the vehicle control key (default " +"'^')." msgstr "" #: lang/json/vehicle_part_from_json.py @@ -139420,8 +140153,8 @@ msgstr "sistema de cámara de control" msgid "" "An LCD display attached to one or more cameras. When turned on, it lets you" " see from the cameras, but drains power from the vehicle's batteries. You " -"can 'e'xamine the tile or attempt to pick-up items (default ',') to access " -"the controls, or use the vehicle control key (default '^')." +"can 'e'xamine the tile to access the controls, or use the vehicle control " +"key (default '^')." msgstr "" #. ~ Description for security camera @@ -139742,10 +140475,8 @@ msgstr "Es un motor de combustión. Quema combustible del tanque del vehículo." #: lang/json/vehicle_part_from_json.py msgid "" "A combustion engine. Burns diesel fuel from a tank in the vehicle. Can " -"also burn methanol, ethanol, or lamp oil, though somewhat less efficiently." +"also burn biodiesel or lamp oil, though somewhat less efficiently." msgstr "" -"Es un motor de combustión. Quema gasoil del tanque del vehículo. También " -"puede quemar metanol, etanol o aceite de lámpara, aunque es menos eficiente." #: lang/json/vehicle_part_from_json.py msgid "A combustion engine. Burns gasoline fuel from a tank in the vehicle." @@ -146383,6 +147114,34 @@ msgstr "Los PNJ no recogen cosas" msgid "Friendly NPCs don't pickup items inside the zone." msgstr "" +#: src/clzones.cpp +msgid "NPC Retreat" +msgstr "" + +#: src/clzones.cpp +msgid "" +"When fleeing, friendly NPCs will attempt to retreat toward this zone if it " +"is within 60 tiles." +msgstr "" + +#: src/clzones.cpp +msgid "NPC Ignore Sounds" +msgstr "" + +#: src/clzones.cpp +msgid "Friendly NPCs won't investigate unseen sounds coming from this zone." +msgstr "" + +#: src/clzones.cpp +msgid "NPC Investigation Area" +msgstr "" + +#: src/clzones.cpp +msgid "" +"Friendly NPCs will investigate unseen sounds only if they come from inside " +"this area." +msgstr "" + #: src/clzones.cpp msgid "Loot: Unsorted" msgstr "" @@ -148706,11 +149465,6 @@ msgctxt "in progress craft" msgid " starts working on the %s." msgstr "" -#: src/crafting.cpp -#, c-format -msgid "%s helps with crafting..." -msgstr "%s te ayuda con la fabricación..." - #: src/crafting.cpp #, c-format msgid "%s assists with crafting..." @@ -148726,6 +149480,11 @@ msgstr "%s podría ayudarte para hacer una tanda..." msgid "%s watches you craft..." msgstr "%s te mira mientras fabricas..." +#: src/crafting.cpp +#, c-format +msgid "%s helps with crafting..." +msgstr "%s te ayuda con la fabricación..." + #: src/crafting.cpp #, c-format msgid "You fail to make the %s, and waste some materials." @@ -148751,6 +149510,17 @@ msgstr "Fabricaste un/a %s siguiendo las instrucciones del libro." msgid "You memorized the recipe for %s!" msgstr "¡Acabas de memorizarte la receta de %s!" +#: src/crafting.cpp +#, c-format +msgid "You don't know the recipe for the %s and can't continue crafting." +msgstr "" + +#: src/crafting.cpp +#, c-format +msgid "" +" doesn't know the recipe for the %s and can't continue crafting." +msgstr "" + #: src/crafting.cpp #, c-format msgid "%s (%d/%d nearby)" @@ -149323,6 +150093,190 @@ msgstr "" "Pulsa C (o c) para copiar este " "mensaje al portapapeles." +#: src/debug_menu.cpp +msgid "Mutate" +msgstr "Mutar" + +#: src/debug_menu.cpp +msgid "Change all skills" +msgstr "Cambiar todas las habilidades" + +#: src/debug_menu.cpp +msgid "Learn all melee styles" +msgstr "Aprender todos los estilos de cuerpo a cuerpo" + +#: src/debug_menu.cpp +msgid "Unlock all recipes" +msgstr "Conocer todas las recetas" + +#: src/debug_menu.cpp +msgid "Edit player/NPC" +msgstr "Editar jugador/PNJ" + +#: src/debug_menu.cpp +msgid "Damage self" +msgstr "" + +#: src/debug_menu.cpp +msgid "Set automove route" +msgstr "Determinar ruta de automovimiento" + +#: src/debug_menu.cpp +msgid "Player..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Check game state" +msgstr "" + +#: src/debug_menu.cpp +msgid "Display hordes" +msgstr "Mostrar hordas" + +#: src/debug_menu.cpp +msgid "Test item group" +msgstr "" + +#: src/debug_menu.cpp +msgid "Show sound clustering" +msgstr "" + +#: src/debug_menu.cpp +msgid "Display weather" +msgstr "Mostrar clima" + +#: src/debug_menu.cpp +msgid "Display overmap scents" +msgstr "Mostrar olores en mapa" + +#: src/debug_menu.cpp +msgid "Show mutation category levels" +msgstr "Mostrar niveles de categorías de mutación" + +#: src/debug_menu.cpp +msgid "Draw benchmark (X seconds)" +msgstr "" + +#: src/debug_menu.cpp +msgid "Test trait group" +msgstr "" + +#: src/debug_menu.cpp +msgid "Show debug message" +msgstr "Mostrar mensaje de depuración" + +#: src/debug_menu.cpp +msgid "Crash game (test crash handling)" +msgstr "" + +#: src/debug_menu.cpp +msgid "Toggle NPC pathfinding on map" +msgstr "" + +#: src/debug_menu.cpp +msgid "Info..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - short range" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - long range" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - adjacent overmap" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn an item" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn NPC" +msgstr "Crear PNJ" + +#: src/debug_menu.cpp +msgid "Spawn monster" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn a vehicle" +msgstr "Crear vehículo" + +#: src/debug_menu.cpp +msgid "Spawn artifact" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn clairvoyance artifact" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawning..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Reveal map" +msgstr "Revelar mapa" + +#: src/debug_menu.cpp +msgid "Kill NPCs" +msgstr "Matar PNJs" + +#: src/debug_menu.cpp +msgid "Map editor" +msgstr "Editor de mapa" + +#: src/debug_menu.cpp +msgid "Change weather" +msgstr "Cambiar clima" + +#: src/debug_menu.cpp +msgid "Change wind direction" +msgstr "" + +#: src/debug_menu.cpp +msgid "Change wind speed" +msgstr "" + +#: src/debug_menu.cpp +msgid "Kill all monsters" +msgstr "Matar todos los monstruos" + +#: src/debug_menu.cpp +msgid "Change time" +msgstr "Cambiar hora" + +#: src/debug_menu.cpp +msgid "Overmap editor" +msgstr "Editor de mapa general" + +#: src/debug_menu.cpp +msgid "Spawn map extra" +msgstr "" + +#: src/debug_menu.cpp +msgid "Map..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Quit to main menu" +msgstr "" + +#: src/debug_menu.cpp +msgid "" +"Debug Functions - Using these will cheat not only the game, but yourself.\n" +"You won't grow. You won't improve.\n" +"Taking this shortcut will gain you nothing. Your victory will be hollow.\n" +"Nothing will be risked and nothing will be gained." +msgstr "" + #: src/debug_menu.cpp #, c-format msgid "You teleport to point (%d,%d,%d)." @@ -149765,6 +150719,205 @@ msgstr "" msgid "Drew %d times in %.3f seconds. (%.3f fps average)" msgstr "Dibujó %d veces en %.3f segundos. (%.3f promedio de fps)" +#: src/debug_menu.cpp +msgid "Current overmap revealed." +msgstr "Mapa general actual revelado." + +#: src/debug_menu.cpp +#, c-format +msgid "Location %d:%d in %d:%d, %s\n" +msgstr "Localización %d:%d en %d:%d, %s\n" + +#: src/debug_menu.cpp +#, c-format +msgid "" +"Current turn: %d.\n" +"%s\n" +msgstr "" +"Turno actual: %d.\n" +"%s\n" + +#: src/debug_menu.cpp +#, c-format +msgid "%d creature exists.\n" +msgid_plural "%d creatures exist.\n" +msgstr[0] "%d criatura existe.\n" +msgstr[1] "%d criaturas existen.\n" + +#: src/debug_menu.cpp +msgid "NPCs are going to spawn." +msgstr "Se van a generar PNJs." + +#: src/debug_menu.cpp +msgid "NPCs are NOT going to spawn." +msgstr "NO se van a generar PNJs." + +#: src/debug_menu.cpp +#, c-format +msgid "%s: map ( %d:%d ) pos ( %d:%d )" +msgstr "%s: mapa ( %d:%d ) pos ( %d:%d )" + +#: src/debug_menu.cpp +#, c-format +msgid "(you: %d:%d)" +msgstr "(tú: %d:%d)" + +#: src/debug_menu.cpp +#, c-format +msgid "Stomach Contents: %d ml / %d ml kCal: %d, Water: %d ml" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "" +"Guts Contents: %d ml / %d ml kCal: %d, Water: %d ml\n" +"Hunger: %d, Thirst: %d, kCal: %d / %d" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "%s's head implodes!" +msgstr "¡La cabeza de %s implosiona!" + +#: src/debug_menu.cpp +msgid "Choose vehicle to spawn" +msgstr "Elegir vehículo para crear" + +#. ~ Menu entry in vehicle wish menu: 1st string: displayed name, 2nd string: +#. internal name of vehicle +#: src/debug_menu.cpp +#, c-format +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + +#: src/debug_menu.cpp +msgid "Martial arts debug." +msgstr "Debug de artes marciales." + +#: src/debug_menu.cpp +msgid "Your eyes blink rapidly as knowledge floods your brain." +msgstr "" +"Tus ojos pestañean rápidamente a medida que el conocimiento fluye por tu " +"cerebro." + +#: src/debug_menu.cpp +msgid "You now know a lot more than just 10 styles of kung fu." +msgstr "Ahora sabés mucho más que solo 10 estilos de kung fu." + +#: src/debug_menu.cpp +msgid "Recipe debug." +msgstr "Debug de recetas." + +#: src/debug_menu.cpp +msgid "You know how to craft that now." +msgstr "Ahora sabés cómo fabricar eso." + +#: src/debug_menu.cpp +msgid "Select new weather pattern:" +msgstr "Elegir parámetro de clima nuevo:" + +#: src/debug_menu.cpp +msgid "Disable weather forcing" +msgstr "Desactivar fuerza del clima" + +#: src/debug_menu.cpp +msgid "Keep normal weather patterns" +msgstr "Mantener el parámetro normal de clima" + +#: src/debug_menu.cpp +msgid "Select new wind direction:" +msgstr "" + +#: src/debug_menu.cpp +msgid "Disable direction forcing" +msgstr "" + +#: src/debug_menu.cpp +msgid "Keep normal wind direction" +msgstr "" + +#: src/debug_menu.cpp +msgid "Select new wind speed:" +msgstr "" + +#: src/debug_menu.cpp +msgid "Disable speed forcing" +msgstr "" + +#: src/debug_menu.cpp +msgid "Keep normal wind speed" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "Damage self for how much? hp: %d" +msgstr "¿Cuánto daño te quieres causar? pv: %d" + +#: src/debug_menu.cpp +msgid "This binary was not compiled with tiles support." +msgstr "Este binario no está compilado con soporte para gráficos." + +#: src/debug_menu.cpp +msgid "year" +msgstr "año" + +#: src/debug_menu.cpp +msgid "season" +msgstr "estación" + +#: src/debug_menu.cpp +msgid "day" +msgstr "día" + +#: src/debug_menu.cpp +msgid "hour" +msgstr "hora" + +#: src/debug_menu.cpp +msgid "minute" +msgstr "minuto" + +#: src/debug_menu.cpp src/martialarts.cpp src/martialarts.cpp +msgid "turn" +msgid_plural "turns" +msgstr[0] "turno" +msgstr[1] "turnos" + +#: src/debug_menu.cpp +msgid "Set year to?" +msgstr "¿Establecer año en?" + +#: src/debug_menu.cpp +msgid "Set season to? (0 = spring)" +msgstr "¿Establecer estación en? (0 = primavera)" + +#: src/debug_menu.cpp +msgid "Set days to?" +msgstr "¿Establecer días en?" + +#: src/debug_menu.cpp +msgid "Set hour to?" +msgstr "¿Establecer hora en?" + +#: src/debug_menu.cpp +msgid "Set minute to?" +msgstr "¿Establecer minuto en?" + +#: src/debug_menu.cpp +#, c-format +msgid "Set turn to? (One day is %i turns)" +msgstr "¿Establecer turno en? (Un día son %i turnos)" + +#: src/debug_menu.cpp +msgid "Enter benchmark length (in milliseconds):" +msgstr "" + +#: src/debug_menu.cpp +msgid "" +"Quit without saving? This may cause issues such as duplicated or missing " +"items and vehicles!" +msgstr "" + #: src/defense.cpp #, c-format msgid "Please wait as the map generates [ 0%% ]" @@ -151331,6 +152484,10 @@ msgstr "Siguiéndote" msgid "Leading" msgstr "Liderando" +#: src/faction.cpp +msgid "Patrolling" +msgstr "" + #: src/faction.cpp msgid "Guarding" msgstr "" @@ -152307,6 +153464,10 @@ msgstr "" msgid "Select an end point." msgstr "" +#: src/faction_camp.cpp +msgid "Spiked pits must be built over existing trenches!" +msgstr "" + #: src/faction_camp.cpp msgid "Invalid terrain in construction path." msgstr "No es un terreno válido para construir un camino." @@ -152821,14 +153982,6 @@ msgstr "" msgid "You distribute %d kcal worth of food to your companions." msgstr "" -#: src/faction_camp.cpp -msgid "Accessed camp inventory whilst position does not refer to a camp" -msgstr "" - -#: src/faction_camp.cpp -msgid "consume components for camp mission, but no camp found" -msgstr "" - #: src/faction_camp.cpp #, c-format msgid "While %s, a silent specter approaches %s..." @@ -153291,26 +154444,6 @@ msgstr "gas denso fungicida" msgid "smoke vent" msgstr "" -#: src/field.cpp -msgid "Whew... smells like skunk!" -msgstr "Puaj... ¡Huele a mofeta!" - -#: src/field.cpp -msgid "Man, that smells like some good shit!" -msgstr "¡Tío, que bien que huele eso!" - -#: src/field.cpp -msgid "I don't know... should you really be smoking that stuff?" -msgstr "No lo sé... ¿Deberías estar fumando esas cosas?" - -#: src/field.cpp -msgid "Ew, smells like burning rubber!" -msgstr "¡Puaj, qué baranda a goma quemada!" - -#: src/field.cpp -msgid "Ugh, that smells rancid!" -msgstr "¡Uh, qué olor rancio!" - #: src/field.cpp #, c-format msgid "A %s hits you!" @@ -153864,368 +154997,6 @@ msgstr "información de uistate" msgid "Failed to save game data" msgstr "No se pudo guardar la información del juego" -#: src/game.cpp -msgid "" -"Debug Functions - Using these will cheat not only the game, but yourself. You won't grow. You won't improve.\n" -"Taking this shortcut will gain you nothing. Your victory will be hollow.\n" -"Nothing will be risked and nothing will be gained." -msgstr "" - -#: src/game.cpp -msgid "Wish for an item" -msgstr "Pedir un objeto" - -#: src/game.cpp -msgid "Teleport - Short Range" -msgstr "Teletransportar - Distancia Corta" - -#: src/game.cpp -msgid "Teleport - Long Range" -msgstr "Teletransportar - Distancia Larga" - -#: src/game.cpp -msgid "Reveal map" -msgstr "Revelar mapa" - -#: src/game.cpp -msgid "Spawn NPC" -msgstr "Crear PNJ" - -#: src/game.cpp -msgid "Spawn Monster" -msgstr "Crear Monstruo" - -#: src/game.cpp -msgid "Check game state..." -msgstr "Comprobar estado del juego..." - -#: src/game.cpp -msgid "Kill NPCs" -msgstr "Matar PNJs" - -#: src/game.cpp -msgid "Mutate" -msgstr "Mutar" - -#: src/game.cpp -msgid "Spawn a vehicle" -msgstr "Crear vehículo" - -#: src/game.cpp -msgid "Change all skills" -msgstr "Cambiar todas las habilidades" - -#: src/game.cpp -msgid "Learn all melee styles" -msgstr "Aprender todos los estilos de cuerpo a cuerpo" - -#: src/game.cpp -msgid "Unlock all recipes" -msgstr "Conocer todas las recetas" - -#: src/game.cpp -msgid "Edit player/NPC" -msgstr "Editar jugador/PNJ" - -#: src/game.cpp -msgid "Spawn Artifact" -msgstr "Crear Artefacto" - -#: src/game.cpp -msgid "Spawn Clairvoyance Artifact" -msgstr "Crear Artefacto de Clarividencia" - -#: src/game.cpp -msgid "Map editor" -msgstr "Editor de mapa" - -#: src/game.cpp -msgid "Change weather" -msgstr "Cambiar clima" - -#: src/game.cpp -msgid "Change wind direction" -msgstr "" - -#: src/game.cpp -msgid "Change wind speed" -msgstr "" - -#: src/game.cpp -msgid "Kill all monsters" -msgstr "Matar todos los monstruos" - -#: src/game.cpp -msgid "Display hordes" -msgstr "Mostrar hordas" - -#: src/game.cpp -msgid "Test Item Group" -msgstr "Probar Grupo de Objetos" - -#: src/game.cpp -msgid "Damage Self" -msgstr "Lastimarte a ti mismo" - -#: src/game.cpp -msgid "Show Sound Clustering" -msgstr "Mostrar Agrupación de Sonidos" - -#: src/game.cpp -msgid "Display weather" -msgstr "Mostrar clima" - -#: src/game.cpp -msgid "Display overmap scents" -msgstr "Mostrar olores en mapa" - -#: src/game.cpp -msgid "Change time" -msgstr "Cambiar hora" - -#: src/game.cpp -msgid "Set automove route" -msgstr "Determinar ruta de automovimiento" - -#: src/game.cpp -msgid "Show mutation category levels" -msgstr "Mostrar niveles de categorías de mutación" - -#: src/game.cpp -msgid "Overmap editor" -msgstr "Editor de mapa general" - -#: src/game.cpp -msgid "Draw benchmark (X seconds)" -msgstr "" - -#: src/game.cpp -msgid "Teleport - Adjacent overmap" -msgstr "Teletransportar - Mapa adyacente" - -#: src/game.cpp -msgid "Test trait group" -msgstr "" - -#: src/game.cpp -msgid "Show debug message" -msgstr "Mostrar mensaje de depuración" - -#: src/game.cpp -msgid "Crash game (test crash handling)" -msgstr "" - -#: src/game.cpp -msgid "Spawn Map Extra" -msgstr "" - -#: src/game.cpp -msgid "Toggle NPC pathfinding on map" -msgstr "" - -#: src/game.cpp -msgid "Quit to Main Menu" -msgstr "Salir al Menú Principal" - -#: src/game.cpp -msgid "Current overmap revealed." -msgstr "Mapa general actual revelado." - -#: src/game.cpp -#, c-format -msgid "Location %d:%d in %d:%d, %s\n" -msgstr "Localización %d:%d en %d:%d, %s\n" - -#: src/game.cpp -#, c-format -msgid "" -"Current turn: %d.\n" -"%s\n" -msgstr "" -"Turno actual: %d.\n" -"%s\n" - -#: src/game.cpp -#, c-format -msgid "%d creature exists.\n" -msgid_plural "%d creatures exist.\n" -msgstr[0] "%d criatura existe.\n" -msgstr[1] "%d criaturas existen.\n" - -#: src/game.cpp -msgid "NPCs are going to spawn." -msgstr "Se van a generar PNJs." - -#: src/game.cpp -msgid "NPCs are NOT going to spawn." -msgstr "NO se van a generar PNJs." - -#: src/game.cpp -#, c-format -msgid "%s: map ( %d:%d ) pos ( %d:%d )" -msgstr "%s: mapa ( %d:%d ) pos ( %d:%d )" - -#: src/game.cpp -#, c-format -msgid "(you: %d:%d)" -msgstr "(tú: %d:%d)" - -#: src/game.cpp -#, c-format -msgid "Stomach Contents: %d ml / %d ml kCal: %d, Water: %d ml" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "" -"Guts Contents: %d ml / %d ml kCal: %d, Water: %d ml\n" -"Hunger: %d, Thirst: %d, kCal: %d / %d" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "%s's head implodes!" -msgstr "¡La cabeza de %s implosiona!" - -#: src/game.cpp -msgid "Choose vehicle to spawn" -msgstr "Elegir vehículo para crear" - -#. ~ Menu entry in vehicle wish menu: 1st string: displayed name, 2nd string: -#. internal name of vehicle -#: src/game.cpp -#, c-format -msgid "%1$s (%2$s)" -msgstr "%1$s (%2$s)" - -#: src/game.cpp -msgid "Martial arts debug." -msgstr "Debug de artes marciales." - -#: src/game.cpp -msgid "Your eyes blink rapidly as knowledge floods your brain." -msgstr "" -"Tus ojos pestañean rápidamente a medida que el conocimiento fluye por tu " -"cerebro." - -#: src/game.cpp -msgid "You now know a lot more than just 10 styles of kung fu." -msgstr "Ahora sabés mucho más que solo 10 estilos de kung fu." - -#: src/game.cpp -msgid "Recipe debug." -msgstr "Debug de recetas." - -#: src/game.cpp -msgid "You know how to craft that now." -msgstr "Ahora sabés cómo fabricar eso." - -#: src/game.cpp -msgid "Select new weather pattern:" -msgstr "Elegir parámetro de clima nuevo:" - -#: src/game.cpp -msgid "Disable weather forcing" -msgstr "Desactivar fuerza del clima" - -#: src/game.cpp -msgid "Keep normal weather patterns" -msgstr "Mantener el parámetro normal de clima" - -#: src/game.cpp -msgid "Select new wind direction:" -msgstr "" - -#: src/game.cpp -msgid "Disable direction forcing" -msgstr "" - -#: src/game.cpp -msgid "Keep normal wind direction" -msgstr "" - -#: src/game.cpp -msgid "Select new wind speed:" -msgstr "" - -#: src/game.cpp -msgid "Disable speed forcing" -msgstr "" - -#: src/game.cpp -msgid "Keep normal wind speed" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "Damage self for how much? hp: %d" -msgstr "¿Cuánto daño te quieres causar? pv: %d" - -#: src/game.cpp -msgid "This binary was not compiled with tiles support." -msgstr "Este binario no está compilado con soporte para gráficos." - -#: src/game.cpp -msgid "year" -msgstr "año" - -#: src/game.cpp -msgid "season" -msgstr "estación" - -#: src/game.cpp -msgid "day" -msgstr "día" - -#: src/game.cpp -msgid "hour" -msgstr "hora" - -#: src/game.cpp -msgid "minute" -msgstr "minuto" - -#: src/game.cpp src/martialarts.cpp src/martialarts.cpp -msgid "turn" -msgid_plural "turns" -msgstr[0] "turno" -msgstr[1] "turnos" - -#: src/game.cpp -msgid "Set year to?" -msgstr "¿Establecer año en?" - -#: src/game.cpp -msgid "Set season to? (0 = spring)" -msgstr "¿Establecer estación en? (0 = primavera)" - -#: src/game.cpp -msgid "Set days to?" -msgstr "¿Establecer días en?" - -#: src/game.cpp -msgid "Set hour to?" -msgstr "¿Establecer hora en?" - -#: src/game.cpp -msgid "Set minute to?" -msgstr "¿Establecer minuto en?" - -#: src/game.cpp -#, c-format -msgid "Set turn to? (One day is %i turns)" -msgstr "¿Establecer turno en? (Un día son %i turnos)" - -#: src/game.cpp -msgid "Enter benchmark length (in milliseconds):" -msgstr "" - -#: src/game.cpp -msgid "" -"Quit without saving? This may cause issues such as duplicated or missing " -"items and vehicles!" -msgstr "" - #: src/game.cpp msgid "You haven't killed any monsters yet!" msgstr "¡No mataste a ningún monstruo!" @@ -154782,14 +155553,6 @@ msgstr "" msgid "Without extra fuel it will burn for %s." msgstr "" -#: src/game.cpp -msgid "You can't do that while driving." -msgstr "No puedes hacer eso mientras conduces." - -#: src/game.cpp -msgid "You can't do that on a moving vehicle." -msgstr "No puedes hacer eso en un vehículo en movimiento." - #: src/game.cpp #, c-format msgid "The %s is too unstable to remove anything." @@ -157188,6 +157951,22 @@ msgstr "%s de %s (%d)" msgid "Draw what?" msgstr "¿Qué desenfundar?" +#: src/handle_action.cpp +msgid "Change to which movement mode?" +msgstr "" + +#: src/handle_action.cpp +msgid "Walk" +msgstr "" + +#: src/handle_action.cpp +msgid "Run" +msgstr "" + +#: src/handle_action.cpp +msgid "Crouch" +msgstr "" + #: src/handle_action.cpp msgid "Auto-move canceled" msgstr "Auto-moverse cancelado" @@ -157280,6 +158059,14 @@ msgid "You can't operate a vehicle while you're in your shell." msgstr "" "No puedes controlar un vehículo mientras estás dentro de tu caparazón." +#: src/handle_action.cpp +msgid "Auto travel mode OFF!" +msgstr "" + +#: src/handle_action.cpp +msgid "Auto travel mode ON!" +msgstr "" + #: src/handle_action.cpp msgid "Safe mode ON!" msgstr "¡Modo seguro ACTIVADO!" @@ -157853,29 +158640,33 @@ msgid "You harvest and drop: poppy bud" msgstr "" #: src/iexamine.cpp -msgid "If only you had a shovel to dig up those roots..." -msgstr "Si tuvieras una pala para poder desenterrar esas raíces..." +msgid "The cactus' nettles sting you!" +msgstr "" #: src/iexamine.cpp -msgid "You harvest: dahlia root" +#, c-format +msgid "You harvest: %s." msgstr "" #: src/iexamine.cpp -msgid "You harvest and drop: dahlia root" +#, c-format +msgid "You harvest and drop: %s." msgstr "" #: src/iexamine.cpp -msgid "Nothing can be harvested from this plant in current season." +msgid "If only you had a shovel to dig up those roots..." +msgstr "Si tuvieras una pala para poder desenterrar esas raíces..." + +#: src/iexamine.cpp +msgid "You harvest: dahlia root" msgstr "" #: src/iexamine.cpp -#, c-format -msgid "You harvest: %s." +msgid "You harvest and drop: dahlia root" msgstr "" #: src/iexamine.cpp -#, c-format -msgid "You harvest and drop: %s." +msgid "Nothing can be harvested from this plant in current season." msgstr "" #: src/iexamine.cpp @@ -158784,9 +159575,10 @@ msgid "" msgstr "" #: src/iexamine.cpp -msgid "You need an anesthesia kit for autodoc to perform any operation." +msgid "" +"You need an anesthesia kit with at least one charge for autodoc to perform " +"any operation." msgstr "" -"Necesitás un equipo de anestesia para que el autodoc realice una operación." #: src/iexamine.cpp msgid "Choose CBM to install" @@ -158842,6 +159634,46 @@ msgstr "No tienes instalado ningún biónico." msgid "%1$s doesn't have any bionics installed." msgstr "%1$s no tiene instalado ningún biónico." +#: src/iexamine.cpp +msgid "This mill already contains flour." +msgstr "" + +#: src/iexamine.cpp +msgid "Remove it before starting the mill again." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "This rack contains %s, which can't be milled!" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You remove the %s from the mill." +msgstr "" + +#: src/iexamine.cpp +msgid "" +"This mill is empty. Fill it with starchy products such as wheat, barley or " +"oats and try again." +msgstr "" + +#: src/iexamine.cpp +msgid "" +"This mill is overloaded with products, and the millstone can't turn. Remove" +" some and try again." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgctxt "volume units" +msgid "You think that you can load about %s %s in it." +msgstr "" + +#: src/iexamine.cpp +msgid "You remove the brake on the millstone and it slowly starts to turn." +msgstr "" + #: src/iexamine.cpp msgid "This rack already contains smoked food." msgstr "" @@ -158940,6 +159772,132 @@ msgstr "" msgid "You carefully place %s %s in the rack." msgstr "" +#: src/iexamine.cpp +msgid "You can't place more food while it's milling." +msgstr "" + +#: src/iexamine.cpp +msgid "Load mill with what kind of product?" +msgstr "" + +#: src/iexamine.cpp +msgid "You don't have any products that can be milled." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "Insert how many %s into the mill?" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgctxt "item amount and name" +msgid "You carefully place %s %s in the mill." +msgstr "" + +#: src/iexamine.cpp +msgid "The water mill needs to be over shallow flowing water to work." +msgstr "" + +#: src/iexamine.cpp +msgid "The wind mill needs to be outside in the wind to work." +msgstr "" + +#: src/iexamine.cpp +msgid "What to do with the mill?" +msgstr "" + +#: src/iexamine.cpp +msgid "Inspect mill" +msgstr "" + +#: src/iexamine.cpp +msgid "" +"Remove brake and start milling... insert some products for milling first" +msgstr "" + +#: src/iexamine.cpp +msgid "Remove brake and start milling" +msgstr "" + +#: src/iexamine.cpp +msgid "Remove brake and start milling, milling will take about 6 hours." +msgstr "" + +#: src/iexamine.cpp +msgid "Insert products for milling... mill is full" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "Insert products for milling... remaining capacity is %s %s" +msgstr "" + +#: src/iexamine.cpp +msgid "Fill the mill with starchy products such as wheat, barley or oats." +msgstr "" + +#: src/iexamine.cpp +msgid "Remove products from mill" +msgstr "" + +#: src/iexamine.cpp +msgid "Apply brake to mill" +msgstr "" + +#: src/iexamine.cpp +msgid "Applying the brake will stop milling process." +msgstr "" + +#: src/iexamine.cpp +msgid "There's a mill here. It is turning and milling." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "It will finish milling in about %d hour." +msgid_plural "It will finish milling in about %d hours." +msgstr[0] "" +msgstr[1] "" + +#: src/iexamine.cpp +msgid "It will finish milling in less than an hour." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "It should take about %d minutes to finish milling." +msgstr "" + +#: src/iexamine.cpp +msgid "There's a mill here." +msgstr "" + +#: src/iexamine.cpp +msgid "You inspect its contents and find: " +msgstr "" + +#: src/iexamine.cpp +msgid "... that it is empty." +msgstr "" + +#: src/iexamine.cpp +msgid "You see some grains that are not yet milled to fine flour." +msgstr "" + +#: src/iexamine.cpp +msgid "It is already milling." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You remove %s from the mill." +msgstr "" + +#: src/iexamine.cpp +msgid "You stop the milling process." +msgstr "" + #: src/iexamine.cpp msgid "What to do with the smoking rack:" msgstr "" @@ -159048,14 +160006,6 @@ msgstr "Debería tardar unos %d minutos en terminar de ahumar." msgid "There's a smoking rack here." msgstr "" -#: src/iexamine.cpp -msgid "You inspect its contents and find: " -msgstr "" - -#: src/iexamine.cpp -msgid "... that it is empty." -msgstr "" - #: src/iexamine.cpp msgid "You see some smoldering embers there." msgstr "Ves unas brasas ardientes ahí." @@ -160922,6 +161872,10 @@ msgstr "|." msgid "\\." msgstr "\\." +#: src/item.cpp +msgid "XX" +msgstr "" + #: src/item.cpp msgid ".." msgstr ".." @@ -171681,6 +172635,11 @@ msgstr "" msgid "You reach out to the trees with your roots." msgstr "" +#: src/mutation.cpp +msgid "" +"You lay next to the trees letting your hair roots tangle with the trees." +msgstr "" + #: src/mutation.cpp msgid "Bionic power storage increased by 100." msgstr "" @@ -172931,6 +173890,10 @@ msgstr "Es tu amigo." msgid "Is following you." msgstr "" +#: src/npc.cpp +msgid "Is guiding you." +msgstr "" + #: src/npc.cpp msgid "Will try to kill you or flee from you if you reveal yourself." msgstr "" @@ -173388,10 +174351,6 @@ msgstr "Me podrías dar una mano con otra cosa si estás interesado." msgid " If you are interested, I have another job for you." msgstr "Si estás interesado, tengo otro trabajo para ti." -#: src/npctalk.cpp -msgid "Pleasure doing business!" -msgstr "¡Un placer hacer negocios!" - #: src/npctalk.cpp msgid "Shall we resume?" msgstr "¿Continuamos?" @@ -173504,23 +174463,6 @@ msgstr "Cuéntamelo." msgid "I have news." msgstr "Tengo noticias." -#: src/npctalk.cpp -#, c-format -msgid "Delivering %s." -msgstr "Entregando %s." - -#: src/npctalk.cpp -msgid "Works for me." -msgstr "Trabaja para mi." - -#: src/npctalk.cpp -msgid "You might be seeing more of me..." -msgstr "Tal vez me vuelvas a ver..." - -#: src/npctalk.cpp -msgid "Delivering bandages." -msgstr "Entregando vendas." - #: src/npctalk.cpp msgid "Yes, let's resume training " msgstr "Sí, sigamos entrenando." @@ -173753,11 +174695,6 @@ msgstr "" msgid "My current location" msgstr "" -#: src/npctalk_funcs.cpp -#, c-format -msgid "I'm willing to pay %s per batch for a total of %s" -msgstr "" - #. ~ %1$s is the NPC's translated name, %2$s is the translated faction camp #. name #: src/npctalk_funcs.cpp @@ -176653,7 +177590,7 @@ msgstr "" #: src/panels.cpp msgid "Night" -msgstr "" +msgstr "Noche" #: src/panels.cpp msgid " (Rising!!)" @@ -176685,19 +177622,19 @@ msgstr "" #: src/panels.cpp msgid "Very hot!" -msgstr "" +msgstr "¡Muy caliente!" #: src/panels.cpp msgid "Very cold!" -msgstr "" +msgstr "¡Muy Frio!" #: src/panels.cpp msgid "Freezing!" -msgstr "" +msgstr "¡Congelado!" #: src/panels.cpp msgid "Pain " -msgstr "" +msgstr "Dolor" #: src/panels.cpp msgid "SAFE" @@ -176705,11 +177642,11 @@ msgstr "A SALVO" #: src/panels.cpp msgid "STM" -msgstr "" +msgstr "STM" #: src/panels.cpp msgid "PWR" -msgstr "" +msgstr "ENG" #: src/panels.cpp msgid "STR" @@ -176733,7 +177670,7 @@ msgstr "" #: src/panels.cpp msgid "Sound:" -msgstr "" +msgstr "Ruido:" #: src/panels.cpp msgid "Time: ???" @@ -176741,7 +177678,7 @@ msgstr "Tiempo: ???" #: src/panels.cpp msgid "Moon" -msgstr "" +msgstr "Luna" #: src/panels.cpp msgid "Focus" @@ -176757,11 +177694,11 @@ msgstr "" #: src/panels.cpp msgid "Mood :" -msgstr "" +msgstr "Animo:" #: src/panels.cpp msgid "Speed:" -msgstr "" +msgstr "Vel :" #: src/panels.cpp msgid "Move :" @@ -176854,6 +177791,10 @@ msgstr "" msgid "Wield:" msgstr "" +#: src/panels.cpp +msgid "Style:" +msgstr "" + #: src/panels.cpp msgid "Food :" msgstr "" @@ -177017,6 +177958,18 @@ msgstr "¡Estás sobrecargado!" msgid "You struggle to carry such a large volume!" msgstr "¡Te cuesta avanzar cargando con tantas cosas!" +#: src/pickup.cpp +msgid "Get items from vehicle cargo" +msgstr "" + +#: src/pickup.cpp +msgid "Get items from where?" +msgstr "" + +#: src/pickup.cpp src/vehicle_use.cpp +msgid "Get items on the ground" +msgstr "Coger objetos del suelo" + #: src/pickup.cpp msgid "Next page" msgstr "Página siguiente" @@ -177521,11 +178474,11 @@ msgid "You're too tired to run." msgstr "Estás muy cansado para correr." #: src/player.cpp -msgid "You start walking." +msgid "You start crouching." msgstr "" #: src/player.cpp -msgid "You start crouching." +msgid "You start walking." msgstr "" #: src/player.cpp @@ -178673,7 +179626,7 @@ msgid "Your shaking legs make you stumble." msgstr "" #: src/player.cpp -msgid " stumbles." msgstr "" #: src/player.cpp @@ -182823,6 +183776,11 @@ msgstr "No cumples los requisitos para reparar el %s." msgid "You repair the %1$s's %2$s." msgstr "Reparas el %2$s del %1$s." +#: src/veh_utils.cpp +#, c-format +msgid "You replace the %1$s's %2$s." +msgstr "" + #: src/vehicle.cpp msgid "Lost connection with the vehicle due to distance!" msgstr "¡Perdiste conexión con el vehículo debido a la distancia!" @@ -183233,10 +184191,6 @@ msgstr " (defectuoso)" msgid " holding %s" msgstr " contiene %s" -#: src/vehicle_part.cpp -msgid "XX" -msgstr "" - #: src/vehicle_part.cpp #, c-format msgid "Insufficient power to enable %s" @@ -183698,10 +184652,6 @@ msgstr "" msgid "Activate the washing machine (1.5 hours)" msgstr "" -#: src/vehicle_use.cpp -msgid "Get items on the ground" -msgstr "Coger objetos del suelo" - #: src/vehicle_use.cpp msgid "Use the hotplate" msgstr "Usar placa térmica eléctrica" diff --git a/lang/po/hu.po b/lang/po/hu.po index f79750f666316..fe5409fe849ae 100644 --- a/lang/po/hu.po +++ b/lang/po/hu.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-26 14:19+0800\n" +"POT-Creation-Date: 2019-05-03 13:47+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" "Last-Translator: Daniel Szollosi-Nagy , 2019\n" "Language-Team: Hungarian (https://www.transifex.com/cataclysm-dda-translators/teams/2217/hu/)\n" @@ -24,10 +24,9 @@ msgstr[1] "elem" #. ~ Description for battery #: lang/json/AMMO_from_json.py msgid "" -"A set of universal batteries. Used to charge almost any electronic device." +"Some free-floating battery charge. This can be reloaded into rechargable " +"battery cells, but can never be unloaded." msgstr "" -"Általános használatra szánt elemkészlet. Szinte bármilyen elektronikus " -"eszköz feltölthető vele." #: lang/json/AMMO_from_json.py msgid "aluminum foil" @@ -963,21 +962,17 @@ msgid "" "enemies. Stands a good chance of remaining intact once fired." msgstr "" -#: lang/json/AMMO_from_json.py -msgid "anesthetic kit" -msgstr "altatóorvosi készlet" +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "anesthetic" +msgstr "" -#. ~ Description for anesthetic kit +#. ~ Description for anesthetic #: lang/json/AMMO_from_json.py msgid "" -"A kit for inducing anesthesia for surgery, containing specialized canisters " -"with a variety of powerful hypnotic, analgetic, and stimulative drugs. It's" -" intended for use in specialized medical equipment, and can't be " -"administered manually." +"A variety of powerful hypnotic, analgetic, and stimulative drugs. It's " +"intended for use in specialized medical equipment, and can't be administered" +" manually. You can reload an anesthetic kit with it." msgstr "" -"Sebészeti altatáshoz használatos készlet, amely számos hipnózist, altatást " -"és ébresztést indukáló gyógyszert tartalmazó kannából áll. Csak a megfelelő " -"orvosi berendezésben használható, kézzel nem lehet beadni." #: lang/json/AMMO_from_json.py msgid "sulfur" @@ -1704,6 +1699,19 @@ msgid "" msgstr "" "Kőolaj-származék, a benzin desztillálási folyamatának egyik mellékterméke." +#: lang/json/AMMO_from_json.py +msgid "biodiesel" +msgid_plural "biodiesel" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for biodiesel +#: lang/json/AMMO_from_json.py +msgid "" +"Vegetable oil- or animal fat-based diesel fuel consisting of long-chain " +"alkyl (methyl, ethyl, or propyl) esters." +msgstr "" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "gasoline" msgid_plural "gasoline" @@ -1915,6 +1923,36 @@ msgstr "" "fénysebesség közeli torkolati sebességre gyorsított fel túlhevített " "gázkötegeket. Ezt a modult alkatrészekből szerelték össze kézzel." +#: lang/json/AMMO_from_json.py +msgid "throwing stick" +msgstr "" + +#. ~ Description for throwing stick +#: lang/json/AMMO_from_json.py +msgid "" +"A stick carved into a shape suitable for throwing at a target. Not a " +"boomerang, so don't expect it to return to your hand." +msgstr "" +"Célradobásra faragott fa bot. Ez nem a bumeráng, úgyhogy ne várd, hogy " +"visszatérjen a kezedbe." + +#: lang/json/AMMO_from_json.py +msgid "anesthetic kit" +msgstr "altatóorvosi készlet" + +#. ~ Description for anesthetic kit +#. ~ Description for anesthesia kit +#: lang/json/AMMO_from_json.py lang/json/TOOL_from_json.py +msgid "" +"A kit for inducing anesthesia for surgery, containing specialized canisters " +"with a variety of powerful hypnotic, analgetic, and stimulative drugs. It's" +" intended for use in specialized medical equipment, and can't be " +"administered manually." +msgstr "" +"Sebészeti altatáshoz használatos készlet, amely számos hipnózist, altatást " +"és ébresztést indukáló gyógyszert tartalmazó kannából áll. Csak a megfelelő " +"orvosi berendezésben használható, kézzel nem lehet beadni." + #: lang/json/AMMO_from_json.py msgid "H&K 12mm" msgstr "H&K 12 mm" @@ -2515,6 +2553,57 @@ msgid_plural "reloaded .38 Super" msgstr[0] "utántöltött .38 Super" msgstr[1] "utántöltött .38 Super" +#: lang/json/AMMO_from_json.py +msgid ".380 ACP FMJ" +msgstr "" + +#. ~ Description for .380 ACP FMJ +#: lang/json/AMMO_from_json.py +msgid "" +".380 ACP ammunition with a brass jacketed 95gr bullet. Popular in pocket " +"pistols for over a century, it is often considered the weakest caliber to " +"consider carrying. One should be careful not to chamber it in 9x18mm " +"Makarov or 9x19mm firearms." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".380 ACP JHP" +msgstr "" + +#. ~ Description for .380 ACP JHP +#: lang/json/AMMO_from_json.py +msgid "" +".380 ACP ammunition with a 95gr jacketed hollow point bullet. It is a " +"popular round for small concealable backup pistols, and often the weakest " +"recommended defensive caliber. One should be careful not to chamber it in " +"9x18mm Makarov or 9x19mm firearms." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".380 ACP +P" +msgstr "" + +#. ~ Description for .380 ACP +P +#: lang/json/AMMO_from_json.py +msgid "" +"Overpressure .380 ACP ammunition with a 90gr jacketed hollow point bullet. " +"These defensive loadings are designed to maximise performance and tend to be" +" more accurate than practice ammo. One should be careful not to chamber it " +"in 9x18mm Makarov or 9x19mm firearms." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP FMJ" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP JHP" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP +P" +msgstr "" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "10mm Auto" msgid_plural "10mm Auto" @@ -4541,21 +4630,6 @@ msgstr "" "lövedék. Könnyű súlyú, egész jó sebzéssel és pontossággal. Kilövés után jó " "eséllyel marad továbbra is egy darabban." -#: lang/json/AMMO_from_json.py -msgid "throwing stick" -msgid_plural "throwing sticks" -msgstr[0] "dobóbot" -msgstr[1] "dobóbot" - -#. ~ Description for throwing stick -#: lang/json/AMMO_from_json.py -msgid "" -"A stick carved into a shape suitable for throwing at a target. Not a " -"boomerang, so don't expect it to return to your hand." -msgstr "" -"Célradobásra faragott fa bot. Ez nem a bumeráng, úgyhogy ne várd, hogy " -"visszatérjen a kezedbe." - #: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py msgid "wooden javelin" msgid_plural "wooden javelins" @@ -6600,13 +6674,10 @@ msgstr[1] "sodronypáncél ingujj" #. ~ Description for pair of chainmail sleeves #: lang/json/ARMOR_from_json.py msgid "" -"Customized chainmail arms. Each sleeve has leather straps to connect them " -"with each other. The lack of fingers makes them less cumbersome and allows " -"them to be used with gloves." +"Customized chainmail arms. Each sleeve has straps to connect them with each" +" other. The lack of fingers makes them less cumbersome and allows them to " +"be used with gloves." msgstr "" -"Teljesen testre szabott, fémsodronyból készült ingujj-pár. Az ingujjakat " -"bőrszíjjal lehet a karhoz rögzíteni. Mivel a kézfejet nem fedi be, nem túl " -"ormótlan, továbbá bármilyen kesztyűvel viselhető." #: lang/json/ARMOR_from_json.py msgid "chainmail coif" @@ -6630,13 +6701,9 @@ msgstr[1] "sodronypáncél lábszárvédő" #. ~ Description for chainmail leggings #: lang/json/ARMOR_from_json.py msgid "" -"Customized chainmail legs. Their leather straps keep everything in place, " -"and the lack of toes and heels allows them to work perfectly well with " -"footwear." +"Customized chainmail legs. Their straps keep everything in place, and the " +"lack of toes and heels allows them to work perfectly well with footwear." msgstr "" -"Testre szabott sodronypáncél lábszárvédők. Apró bőrszíjakkal rögzíthetők a " -"lábra, és mivel sem a sarkot, sem a lábfejet nem fedi be, bármilyen " -"lábbelivel jól viselhető." #: lang/json/ARMOR_from_json.py msgid "chainmail hauberk" @@ -6648,12 +6715,10 @@ msgstr[1] "páncéling" #: lang/json/ARMOR_from_json.py msgid "" "A fully customized chainmail outfit, leaving the head uncovered. The shirt," -" arms, and leggings have been modified with leather straps to deal with " -"uneven weight distribution and to allow them to be used separately." +" arms, and leggings have been modified with straps and combined with a " +"gambeson to deal with uneven weight distribution, cold environments and to " +"allow them to be used separately." msgstr "" -"Teljesen testre szabott, fémsodronyból készült páncél, amely csak a fejet " -"nem fedi be. A páncélinget, a kar- és lábvédő részeket külön is használható " -"módon, bőrszíjakkal lehet a testre erősíteni." #: lang/json/ARMOR_from_json.py msgid "chainmail armor" @@ -6665,12 +6730,10 @@ msgstr[1] "sodronypáncél" #: lang/json/ARMOR_from_json.py msgid "" "A fully customized chainmail suit. The coif, shirt, arms, and leggings have" -" been modified with leather straps to deal with uneven weight distribution " -"and to allow them to be used separately." +" been modified with straps and combined with a gambeson to deal with uneven " +"weight distribution, cold environments and to allow them to be used " +"separately." msgstr "" -"Teljesen testre szabott, fémsodronyból készült páncél. A kapucnit, a " -"páncélinget, a kar- és lábvédő részeket külön is használható módon, " -"bőrszíjakkal lehet a testre erősíteni." #: lang/json/ARMOR_from_json.py msgid "chainmail vest" @@ -6682,11 +6745,8 @@ msgstr[1] "sodronypáncél mellény" #: lang/json/ARMOR_from_json.py msgid "" "A customized chainmail vest. It's a sleeveless piece of chainmail with " -"small leather straps designed to better distribute the weight." +"small straps designed to better distribute the weight." msgstr "" -"Teljesen testre szabott, fémsodronyból készült mellény. A megfelelő " -"tehereloszlás érdekében a karok nélküli kialakítás miatt bőrszíjakkal " -"rögzíthető a testre." #: lang/json/ARMOR_from_json.py msgid "leather chaps" @@ -13976,6 +14036,20 @@ msgstr "" "Kényelmes pisztolytok kisebb pisztolyokhoz, amelyeket gyorsan elő lehet " "rántani. Aktiváld egy pisztoly tokba rakásához illetve előrántásához." +#: lang/json/ARMOR_from_json.py +msgid "deep concealment holster" +msgid_plural "deep concealment holsters" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for deep concealment holster +#: lang/json/ARMOR_from_json.py +msgid "" +"An elastic band with numerous provisions for concealing a very small pistol " +"close to the body. It is awkward to use without practice. Activate to " +"holster/draw a gun." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "survivor harness" msgid_plural "survivor harnesses" @@ -14517,8 +14591,8 @@ msgid_plural "Active Defense System CBMs" msgstr[0] "Aktív védelmi rendszer KBM" msgstr[1] "Aktív védelmi rendszer KBM" -#. ~ Description for Active Defense System #. ~ Description for Active Defense System CBM +#. ~ Description for Active Defense System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A thin forcefield surrounds your body, continually draining power. Anything" @@ -14537,8 +14611,8 @@ msgid_plural "Advanced Microreactor CBMs" msgstr[0] "Modern mikroreaktor KBM" msgstr[1] "Modern mikroreaktor KBM" -#. ~ Description for Advanced Microreactor System #. ~ Description for Advanced Microreactor CBM +#. ~ Description for Advanced Microreactor System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This stripped down mini-reactor is safer than it appears due to integrated " @@ -14555,8 +14629,8 @@ msgid_plural "Alarm System CBMs" msgstr[0] "Riasztórendszer KBM" msgstr[1] "Riasztórendszer KBM" -#. ~ Description for Alarm System #. ~ Description for Alarm System CBM +#. ~ Description for Alarm System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A motion-detecting alarm system will notice almost all movement within a " @@ -14650,8 +14724,8 @@ msgid_plural "Battery System CBMs" msgstr[0] "Elemrendszer KBM" msgstr[1] "Elemrendszer KBM" -#. ~ Description for Battery System #. ~ Description for Battery System CBM +#. ~ Description for Battery System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have a battery draining attachment, and thus can make use of the energy " @@ -14668,8 +14742,8 @@ msgid_plural "Monomolecular Blade CBMs" msgstr[0] "Monomolekuláris penge KBM" msgstr[1] "Monomolekuláris penge KBM" -#. ~ Description for Monomolecular Blade #. ~ Description for Monomolecular Blade CBM +#. ~ Description for Monomolecular Blade #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A deadly foot-long blade made of advanced material now resides inside your " @@ -14735,8 +14809,8 @@ msgid_plural "Blood Filter CBMs" msgstr[0] "Vérszűrő KBM" msgstr[1] "Vérszűrő KBM" -#. ~ Description for Blood Filter #. ~ Description for Blood Filter CBM +#. ~ Description for Blood Filter #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A filtration system in your heart allows you to actively filter out chemical" @@ -14771,8 +14845,8 @@ msgid_plural "Subdermal Carbon Filament CBMs" msgstr[0] "Szubdermális szénszál KBM" msgstr[1] "Szubdermális szénszál KBM" -#. ~ Description for Subdermal Carbon Filament #. ~ Description for Subdermal Carbon Filament CBM +#. ~ Description for Subdermal Carbon Filament #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Lying just beneath your skin is a thin armor made of carbon nanotubes. This" @@ -14788,8 +14862,8 @@ msgid_plural "Chain Lightning CBMs" msgstr[0] "Láncvillám KBM" msgstr[1] "Láncvillám KBM" -#. ~ Description for Chain Lightning #. ~ Description for Chain Lightning CBM +#. ~ Description for Chain Lightning #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your body is equipped with a chain lightning generator, allowing you to emit" @@ -14825,8 +14899,8 @@ msgid_plural "Internal Climate Control CBMs" msgstr[0] "Belső klimatizálás KBM" msgstr[1] "Belső klimatizálás KBM" -#. ~ Description for Internal Climate Control #. ~ Description for Internal Climate Control CBM +#. ~ Description for Internal Climate Control #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Throughout your body lies a network of thermal piping which eases the " @@ -14842,8 +14916,8 @@ msgid_plural "Cloaking System CBMs" msgstr[0] "Lopakodó rendszer KBM" msgstr[1] "Lopakodó rendszer KBM" -#. ~ Description for Cloaking System #. ~ Description for Cloaking System CBM +#. ~ Description for Cloaking System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This high-power system uses a set of cameras and LEDs to make you blend into" @@ -14879,8 +14953,8 @@ msgid_plural "Wired Reflexes CBMs" msgstr[0] "Digitális reflexek KBM" msgstr[1] "Digitális reflexek KBM" -#. ~ Description for Wired Reflexes #. ~ Description for Wired Reflexes CBM +#. ~ Description for Wired Reflexes #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your reaction time has been greatly enhanced with bionic nerve stimulators, " @@ -14895,8 +14969,8 @@ msgid_plural "Expanded Digestive System CBMs" msgstr[0] "Kiterjesztett emésztőrendszer KBM" msgstr[1] "Kiterjesztett emésztőrendszer KBM" -#. ~ Description for Expanded Digestive System #. ~ Description for Expanded Digestive System CBM +#. ~ Description for Expanded Digestive System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have been outfitted with three synthetic stomachs and industrial-grade " @@ -14915,8 +14989,8 @@ msgid_plural "Enhanced Hearing CBMs" msgstr[0] "Feljavított hallás KBM" msgstr[1] "Feljavított hallás KBM" -#. ~ Description for Enhanced Hearing #. ~ Description for Enhanced Hearing CBM +#. ~ Description for Enhanced Hearing #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "When this bionic is active, your hearing will be drastically improved, " @@ -14951,8 +15025,8 @@ msgid_plural "EMP Projector CBMs" msgstr[0] "EMP projektor KBM" msgstr[1] "EMP projektor KBM" -#. ~ Description for EMP Projector #. ~ Description for EMP Projector CBM +#. ~ Description for EMP Projector #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A ranged EMP generator system is implanted on the palm of your right hand " @@ -14969,8 +15043,8 @@ msgid_plural "Ethanol Burner CBMs" msgstr[0] "Etanolkazán KBM" msgstr[1] "Etanolkazán KBM" -#. ~ Description for Ethanol Burner #. ~ Description for Ethanol Burner CBM +#. ~ Description for Ethanol Burner #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You burn alcohol as fuel in an extremely efficient reaction. However, you " @@ -14985,8 +15059,8 @@ msgid_plural "Aero-Evaporator CBMs" msgstr[0] "Aero-evaporátor KBM" msgstr[1] "Aero-evaporátor KBM" -#. ~ Description for Aero-Evaporator #. ~ Description for Aero-Evaporator CBM +#. ~ Description for Aero-Evaporator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This unit draws moisture from the surrounding air, which then is poured from" @@ -15002,8 +15076,8 @@ msgid_plural "Diamond Cornea CBMs" msgstr[0] "Gyémánt szaruhártya KBM" msgstr[1] "Gyémánt szaruhártya KBM" -#. ~ Description for Diamond Cornea #. ~ Description for Diamond Cornea CBM +#. ~ Description for Diamond Cornea #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Your vision is greatly enhanced, giving you a +2 bonus to perception." msgstr "" @@ -15030,8 +15104,8 @@ msgid_plural "Facial Distortion CBMs" msgstr[0] "Arctorzítás KBM" msgstr[1] "Arctorzítás KBM" -#. ~ Description for Facial Distortion #. ~ Description for Facial Distortion CBM +#. ~ Description for Facial Distortion #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Through controlled application of electrochemical impulses, you are capable " @@ -15048,8 +15122,8 @@ msgid_plural "Dielectric Capacitance System CBMs" msgstr[0] "Dielektrikumos kondenzátor-rendszer KBM" msgstr[1] "Dielektrikumos kondenzátor-rendszer KBM" -#. ~ Description for Dielectric Capacitance System #. ~ Description for Dielectric Capacitance System CBM +#. ~ Description for Dielectric Capacitance System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Throughout your body lies a network of miniature piezoelectric capacitors " @@ -15128,8 +15202,8 @@ msgid_plural "Internal Furnace CBMs" msgstr[0] "Belső kazán KBM" msgstr[1] "Belső kazán KBM" -#. ~ Description for Internal Furnace #. ~ Description for Internal Furnace CBM +#. ~ Description for Internal Furnace #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "When this bionic is active, you can burn nearly any organic material as fuel" @@ -15181,8 +15255,8 @@ msgid_plural "Terranian Sonar CBMs" msgstr[0] "Földszonár KBM" msgstr[1] "Földszonár KBM" -#. ~ Description for Terranian Sonar #. ~ Description for Terranian Sonar CBM +#. ~ Description for Terranian Sonar #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your feet are equipped with precision sonar equipment, allowing you to " @@ -15196,8 +15270,8 @@ msgid_plural "Heat Drain CBMs" msgstr[0] "Hőleszívó KBM" msgstr[1] "Hőleszívó KBM" -#. ~ Description for Heat Drain #. ~ Description for Heat Drain CBM +#. ~ Description for Heat Drain #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While fighting unarmed against a warm-blooded opponent, there is a chance " @@ -15233,8 +15307,8 @@ msgid_plural "Hydraulic Muscles CBMs" msgstr[0] "Hidraulikus izom KBM" msgstr[1] "Hidraulikus izom KBM" -#. ~ Description for Hydraulic Muscles #. ~ Description for Hydraulic Muscles CBM +#. ~ Description for Hydraulic Muscles #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While activated, your muscles will be greatly enhanced, increasing your " @@ -15249,8 +15323,8 @@ msgid_plural "Infrared Vision CBMs" msgstr[0] "Infravörös látás KBM" msgstr[1] "Infravörös látás KBM" -#. ~ Description for Infrared Vision #. ~ Description for Infrared Vision CBM +#. ~ Description for Infrared Vision #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your range of vision extends into the infrared, allowing you to see warm-" @@ -15265,8 +15339,8 @@ msgid_plural "Cerebral Booster CBMs" msgstr[0] "Cerebrális processzor KBM" msgstr[1] "Cerebrális processzor KBM" -#. ~ Description for Cerebral Booster #. ~ Description for Cerebral Booster CBM +#. ~ Description for Cerebral Booster #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your brain has been enhanced with bionic coprocessors, giving you a +2 bonus" @@ -15298,8 +15372,8 @@ msgid_plural "Leukocyte Breeder System CBMs" msgstr[0] "Leukocita szaporítórendszer KBM" msgstr[1] "Leukocita szaporítórendszer KBM" -#. ~ Description for Leukocyte Breeder System #. ~ Description for Leukocyte Breeder System CBM +#. ~ Description for Leukocyte Breeder System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You are equipped with bionic stimulators which augment your haematopoiesis " @@ -15318,8 +15392,8 @@ msgid_plural "Mini-Flamethrower CBMs" msgstr[0] "Mini lángszóró KBM" msgstr[1] "Mini lángszóró KBM" -#. ~ Description for Mini-Flamethrower #. ~ Description for Mini-Flamethrower CBM +#. ~ Description for Mini-Flamethrower #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "The index fingers of both hands have powerful fire starters which extend " @@ -15364,8 +15438,8 @@ msgid_plural "Nictating Membrane CBMs" msgstr[0] "Harmadik szemhéj KBM" msgstr[1] "Harmadik szemhéj KBM" -#. ~ Description for Nictating Membrane #. ~ Description for Nictating Membrane CBM +#. ~ Description for Nictating Membrane #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your eyes have a thin membrane that closes over your eyes while underwater, " @@ -15398,8 +15472,8 @@ msgid_plural "Metabolic Interchange CBMs" msgstr[0] "Metabolikus konverter KBM" msgstr[1] "Metabolikus konverter KBM" -#. ~ Description for Metabolic Interchange #. ~ Description for Metabolic Interchange CBM +#. ~ Description for Metabolic Interchange #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your digestive system and power supply are interconnected. Bionic energy is" @@ -15413,8 +15487,8 @@ msgid_plural "Weather Reader CBMs" msgstr[0] "Időjáráskiolvasó KBM" msgstr[1] "Időjáráskiolvasó KBM" -#. ~ Description for Weather Reader #. ~ Description for Weather Reader CBM +#. ~ Description for Weather Reader #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A multitude of scientific instruments and sensors collect environmental " @@ -15431,8 +15505,8 @@ msgid_plural "Repair Nanobots CBMs" msgstr[0] "Javító nanobot KBM" msgstr[1] "Javító nanobot KBM" -#. ~ Description for Repair Nanobots #. ~ Description for Repair Nanobots CBM +#. ~ Description for Repair Nanobots #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Inside your body is a fleet of tiny dormant robots. While activated they " @@ -15449,8 +15523,8 @@ msgid_plural "Artificial Night Generator CBMs" msgstr[0] "Sétáló fekete lyuk KBM" msgstr[1] "Sétáló fekete lyuk KBM" -#. ~ Description for Artificial Night Generator #. ~ Description for Artificial Night Generator CBM +#. ~ Description for Artificial Night Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Destructive interference eliminates all light within a 15 tile radius." msgstr "" @@ -15478,8 +15552,8 @@ msgid_plural "Offensive Defense System CBMs" msgstr[0] "Támadó védelmi rendszer KBM" msgstr[1] "Támadó védelmi rendszer KBM" -#. ~ Description for Offensive Defense System #. ~ Description for Offensive Defense System CBM +#. ~ Description for Offensive Defense System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A thin forcefield surrounds your body, continually draining power. This " @@ -15497,8 +15571,8 @@ msgid_plural "Sensory Dulling CBMs" msgstr[0] "Érzékcsillapító KBM" msgstr[1] "Érzékcsillapító KBM" -#. ~ Description for Sensory Dulling #. ~ Description for Sensory Dulling CBM +#. ~ Description for Sensory Dulling #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your nervous system is wired to allow you to inhibit the signals of pain, " @@ -15530,8 +15604,8 @@ msgid_plural "Power Armor Interface CBMs" msgstr[0] "Szervópáncél interfész KBM" msgstr[1] "Szervópáncél interfész KBM" -#. ~ Description for Power Armor Interface #. ~ Description for Power Armor Interface CBM +#. ~ Description for Power Armor Interface #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Interfaces your power system with the internal charging port on suits of " @@ -15545,8 +15619,8 @@ msgid_plural "Power Armor Mk. II Interface CBMs" msgstr[0] "Szervópáncél II interfész KBM" msgstr[1] "Szervópáncél II interfész KBM" -#. ~ Description for Power Armor Interface Mk. II #. ~ Description for Power Armor Mk. II Interface CBM +#. ~ Description for Power Armor Interface Mk. II #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Interfaces your power system with the internal charging port on suits of " @@ -15563,8 +15637,8 @@ msgid_plural "Power Storage CBMs" msgstr[0] "Energiatároló KBM" msgstr[1] "Energiatároló KBM" -#. ~ Description for Power Storage #. ~ Description for Power Storage CBM +#. ~ Description for Power Storage #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Compact Bionics Module that upgrades your power capacity by 100 units. " @@ -15582,8 +15656,8 @@ msgid_plural "Power Storage CBMs Mk. II" msgstr[0] "Energiatároló II KBM" msgstr[1] "Energiatároló II KBM" -#. ~ Description for Power Storage Mk. II #. ~ Description for Power Storage CBM Mk. II +#. ~ Description for Power Storage Mk. II #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Compact Bionics Module developed at DoubleTech Industries as a replacement " @@ -15600,8 +15674,8 @@ msgid_plural "Probability Travel CBMs" msgstr[0] "Valószínűségi utazás KBM" msgstr[1] "Valószínűségi utazás KBM" -#. ~ Description for Probability Travel #. ~ Description for Probability Travel CBM +#. ~ Description for Probability Travel #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Increases your body's wavelength, allowing you to quantum tunnel through " @@ -15654,18 +15728,13 @@ msgid_plural "Railgun CBMs" msgstr[0] "Railgun KBM" msgstr[1] "Railgun KBM" -#. ~ Description for Railgun #. ~ Description for Railgun CBM -#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +#: lang/json/BIONIC_ITEM_from_json.py msgid "" -"EM field generators in your arms double the range and damage of thrown iron " -"and steel objects at a cost of 1 power per throw, causing them to leave a " -"trail of electricity that can cause additional damage." +"EM field generators in your arms increase the range and damage of thrown " +"iron and steel objects at a cost of 1 power per throw, causing them to leave" +" a trail of electricity that can cause additional damage." msgstr "" -"A karjaidba integrált elektromágneses mezőgenerátorok megduplázzák az " -"eldobott vas- és acéltárgyak hatótávolságát és sebzését. Minden dobás 1 " -"energiába kerül, a dobott tárgyak további sebzést okozó elektromos nyomot " -"hagynak maguk után." #: lang/json/BIONIC_ITEM_from_json.py msgid "Fingertip Razors CBM" @@ -15673,8 +15742,8 @@ msgid_plural "Fingertip Razors CBMs" msgstr[0] "Pengés ujjak KBM" msgstr[1] "Pengés ujjak KBM" -#. ~ Description for Fingertip Razors #. ~ Description for Fingertip Razors CBM +#. ~ Description for Fingertip Razors #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You possess razor-sharp retractable claws underneath your fingernails, ten " @@ -15691,8 +15760,8 @@ msgid_plural "Internal Microreactor CBMs" msgstr[0] "Belső mikroreaktor KBM" msgstr[1] "Belső mikroreaktor KBM" -#. ~ Description for Microreactor System #. ~ Description for Internal Microreactor CBM +#. ~ Description for Microreactor System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This stripped down mini-reactor may not be the best thing to have in your " @@ -15724,8 +15793,8 @@ msgid_plural "Recycler Unit CBMs" msgstr[0] "Újrahasznosító egység KBM" msgstr[1] "Újrahasznosító egység KBM" -#. ~ Description for Recycler Unit #. ~ Description for Recycler Unit CBM +#. ~ Description for Recycler Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your digestive system has been outfitted with a series of filters and " @@ -15742,8 +15811,8 @@ msgid_plural "Remote Controller CBMs" msgstr[0] "Távirányító KBM" msgstr[1] "Távirányító KBM" -#. ~ Description for Remote Controller #. ~ Description for Remote Controller CBM +#. ~ Description for Remote Controller #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A small module connected to your brain allows you to interface with nearby " @@ -15758,8 +15827,8 @@ msgid_plural "Sonic Resonator CBMs" msgstr[0] "Hangrezonátor KBM" msgstr[1] "Hangrezonátor KBM" -#. ~ Description for Sonic Resonator #. ~ Description for Sonic Resonator CBM +#. ~ Description for Sonic Resonator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your entire body may resonate at very high power, creating a short-range " @@ -15776,8 +15845,8 @@ msgid_plural "Olfactory Mask CBMs" msgstr[0] "Szagtakarás KBM" msgstr[1] "Szagtakarás KBM" -#. ~ Description for Olfactory Mask #. ~ Description for Olfactory Mask CBM +#. ~ Description for Olfactory Mask #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While this system is powered, your body will produce very little odor, " @@ -15792,8 +15861,8 @@ msgid_plural "Scent Vision CBMs" msgstr[0] "Szaglátás KBM" msgstr[1] "Szaglátás KBM" -#. ~ Description for Scent Vision #. ~ Description for Scent Vision CBM +#. ~ Description for Scent Vision #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While this system is powered, you're able to visually sense your own scent, " @@ -15809,8 +15878,8 @@ msgid_plural "Electroshock Unit CBMs" msgstr[0] "Elektrosokkoló egység KBM" msgstr[1] "Elektrosokkoló egység KBM" -#. ~ Description for Electroshock Unit #. ~ Description for Electroshock Unit CBM +#. ~ Description for Electroshock Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While fighting unarmed, or with a weapon that conducts electricity, there is" @@ -15828,8 +15897,8 @@ msgid_plural "Shockwave Generator CBMs" msgstr[0] "Lökéshullám generátor KBM" msgstr[1] "Lökéshullám generátor KBM" -#. ~ Description for Shockwave Generator #. ~ Description for Shockwave Generator CBM +#. ~ Description for Shockwave Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You generate a powerful shockwave, knocking back all nearby creatures. " @@ -15847,8 +15916,8 @@ msgid_plural "Synaptic Accelerator CBMs" msgstr[0] "Szinaptikus gyorsító KBM" msgstr[1] "Szinaptikus gyorsító KBM" -#. ~ Description for Synaptic Accelerator #. ~ Description for Synaptic Accelerator CBM +#. ~ Description for Synaptic Accelerator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py #, no-python-format msgid "" @@ -15945,8 +16014,8 @@ msgid_plural "Teleportation Unit CBMs" msgstr[0] "Teleportáló egység KBM" msgstr[1] "Teleportáló egység KBM" -#. ~ Description for Teleportation Unit #. ~ Description for Teleportation Unit CBM +#. ~ Description for Teleportation Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This highly experimental unit folds space over short distances, instantly " @@ -15964,8 +16033,8 @@ msgid_plural "Time Dilation CBMs" msgstr[0] "Idődilatáció KBM" msgstr[1] "Idődilatáció KBM" -#. ~ Description for Time Dilation #. ~ Description for Time Dilation CBM +#. ~ Description for Time Dilation #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "At the cost of all stored bionic power, you may increase your body speed and" @@ -15983,8 +16052,8 @@ msgid_plural "Integrated Toolset CBMs" msgstr[0] "Integrált szerszámok KBM" msgstr[1] "Integrált szerszámok KBM" -#. ~ Description for Integrated Toolset #. ~ Description for Integrated Toolset CBM +#. ~ Description for Integrated Toolset #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Surgically implanted in your hands and fingers is a complete tool set - " @@ -16019,8 +16088,8 @@ msgid_plural "Joint Servo CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Joint Servo #. ~ Description for Joint Servo CBM +#. ~ Description for Joint Servo #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your leg joints have been equipped with servomotors that provide power-" @@ -16035,8 +16104,8 @@ msgid_plural "Uncanny Dodge CBMs" msgstr[0] "Ijesztő kitérés KBM" msgstr[1] "Ijesztő kitérés KBM" -#. ~ Description for Uncanny Dodge #. ~ Description for Uncanny Dodge CBM +#. ~ Description for Uncanny Dodge #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your nervous system has been augmented with bionic processors, allowing you " @@ -16052,8 +16121,8 @@ msgid_plural "Unified Power System CBMs" msgstr[0] "Egységesített tápegység KBM" msgstr[1] "Egységesített tápegység KBM" -#. ~ Description for Internal Unified Power System #. ~ Description for Unified Power System CBM +#. ~ Description for Internal Unified Power System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have a unified power system wired into your power banks. Objects that " @@ -16069,8 +16138,8 @@ msgid_plural "Internal Chronometer CBMs" msgstr[0] "Belső óra KBM" msgstr[1] "Belső óra KBM" -#. ~ Description for Internal Chronometer #. ~ Description for Internal Chronometer CBM +#. ~ Description for Internal Chronometer #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have been equipped with an internal atomic clock, ensuring that you will" @@ -16157,8 +16226,8 @@ msgid_plural "Taste Modifier CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Taste Modifier #. ~ Description for Taste Modifier CBM +#. ~ Description for Taste Modifier #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A set of highly sensitive sensors is installed in your mouth, and a small " @@ -16377,8 +16446,8 @@ msgstr "" "Néhány darab napelem van a testedbe építve, napfénynél lassan visszatölt a " "bionikus energiád." -#. ~ Description for Solar Panels #. ~ Description for Solar Panels CBM +#. ~ Description for Solar Panels #: lang/json/BIONIC_ITEM_from_json.py lang/json/BIONIC_ITEM_from_json.py #: lang/json/bionic_from_json.py msgid "" @@ -16451,8 +16520,8 @@ msgid_plural "Ionic Overload Generator CBMs" msgstr[0] "Ionos túlterhelés generátor KBM" msgstr[1] "Ionos túlterhelés generátor KBM" -#. ~ Description for Ionic Overload Generator #. ~ Description for Ionic Overload Generator CBM +#. ~ Description for Ionic Overload Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A powerful ion energy generator is implanted on your chest. Fires a " @@ -22617,6 +22686,19 @@ msgstr[1] "tej" msgid "Baby cow food, appropriated for adult humans. Spoils rapidly." msgstr "Tehénbébi kaja, felnőtt emberek számára. Gyorsan megromlik." +#: lang/json/COMESTIBLE_from_json.py +msgid "reconstituted milk" +msgid_plural "reconstituted milk" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for reconstituted milk +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Baby cow food, appropriated for adult humans. This milk has been " +"reconstituted from a processed milk. Spoils rapidly." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "coffee milk" msgstr "tejeskávé" @@ -26350,22 +26432,20 @@ msgstr "" "és bármikor elszívható." #: lang/json/COMESTIBLE_from_json.py -msgid "pink tablet" -msgstr "rózsaszín tabletta" +msgid "pink tab" +msgstr "" -#. ~ Use action activation_message for pink tablet. +#. ~ Use action activation_message for pink tab. #: lang/json/COMESTIBLE_from_json.py msgid "You eat the pink tablet." msgstr "Bedobsz egy rózsaszín tablettát." -#. ~ Description for pink tablet +#. ~ Description for pink tab #: lang/json/COMESTIBLE_from_json.py msgid "" -"Tiny pink candies shaped like hearts, already dosed with some sort of drug." -" Really only useful for entertainment. Will cause hallucinations." +"Tiny pink tabs resembling postage stamps, already dosed with some sort of " +"drug. Really only useful for entertainment. Will cause hallucinations." msgstr "" -"Apró rózsaszín, szív formájú cukorkák, amibe már kevertek valamilyen " -"kábítószert. Igazából csak szórakozásra hasznos. A hallucináció garantált." #: lang/json/COMESTIBLE_from_json.py msgid "medical gauze" @@ -28979,6 +29059,15 @@ msgstr[1] "maroknyi sárgabarack" msgid "A smooth-skinned fruit, related to the peach." msgstr "Sima héjú gyümölcs, az őszibarack rokona." +#: lang/json/COMESTIBLE_from_json.py +msgid "cactus pad" +msgstr "" + +#. ~ Description for cactus pad +#: lang/json/COMESTIBLE_from_json.py +msgid "An edible pad of a cactus." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "barley" msgstr "árpa" @@ -31083,6 +31172,15 @@ msgstr "" "hotdogra és hamburgerre lehet tenni, vagy ha nagyon éhes vagy, akkor magában" " is ehető." +#: lang/json/COMESTIBLE_from_json.py +msgid "nopalito" +msgstr "" + +#. ~ Description for nopalito +#: lang/json/COMESTIBLE_from_json.py +msgid "A less prickly version of cactus pads." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "wheat cereal" msgstr "gabona müzli" @@ -33674,6 +33772,17 @@ msgstr[1] "tesztelési tárgy" msgid "Dummy item. If you see this, then something went wrong." msgstr "Tesztelési tárgy. Ha ezt látod, akkor valami baj történt a játékkal." +#: lang/json/GENERIC_from_json.py +msgid "semi ground grains" +msgid_plural "semi ground grains" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for semi ground grains +#: lang/json/GENERIC_from_json.py +msgid "A paste of half-finished milled grains, not yet flour." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "smoldering embers" msgid_plural "smoldering embers" @@ -33751,8 +33860,8 @@ msgstr "közeli tűz" #. ~ Description for wind #. ~ Description for a smoking device and a source of flame #. ~ Description for abstract map -#. ~ Description for weapon #. ~ Description for seeing this is a bug +#. ~ Description for weapon #: lang/json/GENERIC_from_json.py lang/json/GENERIC_from_json.py #: lang/json/TOOL_from_json.py lang/json/TOOL_from_json.py #: lang/json/skill_from_json.py @@ -36284,6 +36393,19 @@ msgid "" " vehicle. Combine it with a wheel to get a mountable piece." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "welding component kit" +msgid_plural "welding component kits" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for welding component kit +#: lang/json/GENERIC_from_json.py +msgid "" +"A set of components useful for constructing a full-featured welding station," +" complete with soldering capability." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "canister grenade" msgid_plural "canister grenades" @@ -39619,6 +39741,19 @@ msgstr "" "Áruszállításra kiképzett nehéz keret, a szállításhoz szükséges rögzítési " "pontokkal." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "floor trunk" +msgid_plural "floor trunks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for floor trunk +#: lang/json/GENERIC_from_json.py +msgid "" +"A section of flooring with a cargo-space beneath, and a hinged door for " +"access." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "livestock carrier" msgid_plural "livestock carriers" @@ -39707,15 +39842,10 @@ msgstr[1] "ET-kompatibilis töltőállvány" msgid "" "A Unified Power System recharging station designed to operate on vehicle " "power. Once installed in a vehicle storage space and turned on from a " -"dashboard or electronics control unit, it will slowly charge all tools with " -"rechargeable batteries in that space. The system can only be installed in " -"existing storage compartments." +"dashboard or electronics control unit, it will slowly charge all UPS " +"compatible tools and battery cells in that space. The system can only be " +"installed in existing storage compartments." msgstr "" -"Gépjármű áramforrásával működtethető Egységes Tápegység töltőrendszer. Egy " -"jármű tároló rekeszébe szerelve az oda helyezett, feltölthető elemes " -"szerszámokat lassan feltölti, miután a jármű irányítószerveinél, vagy az " -"elektronikus vezérlő egységnél bekapcsoltad. Csak már meglévő tárolóba lehet" -" beszerelni." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py #: lang/json/vehicle_part_from_json.py @@ -41404,6 +41534,17 @@ msgstr[1] "9x18mm töltényhüvely" msgid "An empty casing from a 9x18mm round." msgstr "Egy 9x18mm-es töltény üres hüvelye" +#: lang/json/GENERIC_from_json.py +msgid ".380 ACP casing" +msgid_plural ".380 ACP casings" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for .380 ACP casing +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a .380 ACP round." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "shotgun hull" msgid_plural "shotgun hulls" @@ -45276,6 +45417,89 @@ msgstr "MŰTÁRGYAK" msgid "ARMOR" msgstr "PÁNCÉL" +#: lang/json/MAGAZINE_from_json.py +msgid "ultra-light battery cell" +msgstr "" + +#. ~ Description for ultra-light battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a light battery cell designed for small size over everything else. " +"It retains its universal compatibility, though." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "light battery cell" +msgstr "" + +#. ~ Description for light battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a light battery cell, universally compatible with all kinds of small" +" devices." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "light battery cell (high-capacity)" +msgid_plural "light battery cells (high-capacity)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for light battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity light battery cell, universally compatible with all " +"kinds of personal electronic devices." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "medium battery cell" +msgstr "" + +#. ~ Description for medium battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a medium battery cell, universally compatible with all kinds of " +"appliances and power tools." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "medium battery cell (high-capacity)" +msgid_plural "medium battery cells (high-capacity)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for medium battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity medium battery cell, universally compatible with all" +" kinds of appliances and power tools." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "heavy battery cell" +msgstr "" + +#. ~ Description for heavy battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a heavy battery cell, universally compatible with all kinds of " +"industrial-grade equipment and large tools." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "heavy battery cell (high-capacity)" +msgid_plural "heavy battery cells (high-capacity)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for heavy battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity heavy battery cell, universally compatible with all " +"kinds of industrial-grade equipment and large tools." +msgstr "" + #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "fuel bunker" msgstr "tüzelőanyag-kamra" @@ -45438,6 +45662,15 @@ msgid "A standard capacity magazine for the popular S&W 22A pistol." msgstr "" "A népszerű S&W 22A pisztoly számára készített sztenderd kapacitású tár." +#: lang/json/MAGAZINE_from_json.py +msgid "Jennings J-22 magazine" +msgstr "" + +#. ~ Description for Jennings J-22 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A cheap 6-round steel box magazine for the Jennings J-22." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "LW-5 speedloader" msgstr "" @@ -45733,6 +45966,15 @@ msgid "A standard 20-round magazine for the Skorpion Vz. 61, in .32 ACP." msgstr "" "A Skorpion Vz. 61 számára készült tárban .32 ACP lövedékből 20 darab fér el." +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec P32 magazine" +msgstr "" + +#. ~ Description for Kel-Tec P32 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 7-round steel box magazine for the Kel-Tec P32." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "P226 magazine .357 SIG" msgstr "P226 tár .357 SIG" @@ -45779,6 +46021,43 @@ msgid "" "revolver." msgstr "" +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec P3AT magazine" +msgstr "" + +#. ~ Description for Kel-Tec P3AT magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 6-round steel box magazine for the Kel-Tec P3AT." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "FN 1910 magazine" +msgstr "" + +#. ~ Description for FN 1910 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "" +"A standard 6-round steel box magazine for the FN 1910. It looks a bit old." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "Ruger LCP magazine" +msgstr "" + +#. ~ Description for Ruger LCP magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 6-round capacity magazine for the Ruger LCP pistol." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "MAC-11 magazine" +msgstr "" + +#. ~ Description for MAC-11 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A cheap 32-round steel box magazine for use with the MAC-11 SMG." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid ".40 6-round speedloader" msgstr "" @@ -46454,6 +46733,15 @@ msgstr "" "Az UZI géppisztoly számára készített sztenderd acél doboztárban 32 lövedék " "fér el." +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec PF-9 magazine" +msgstr "" + +#. ~ Description for Kel-Tec PF-9 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 7-round steel box magazine for the Kel-Tec PF-9." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "Makarov PM magazine" msgstr "Makarov PM tár" @@ -47241,6 +47529,15 @@ msgstr "" "Csődbe ment pizzahálózat éttermeit adja a játékba, belsejükben továbbra is " "működőképes elektromos állatbábokkal." +#: lang/json/MOD_INFO_from_json.py +msgid "Battery Migration for Existing Games" +msgstr "" + +#. ~ Description for Battery Migration for Existing Games +#: lang/json/MOD_INFO_from_json.py +msgid "Allows you to reload and unload battery cells with legacy batteries." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "Boats" msgstr "Csónakok" @@ -53271,8 +53568,8 @@ msgstr "" msgid "guardin gnome" msgstr "kerti törp" -#. ~ Description for garden gnome #. ~ Description for guardin gnome +#. ~ Description for garden gnome #: lang/json/MONSTER_from_json.py lang/json/furniture_from_json.py msgid "A normal and completely harmless garden gnome." msgstr "Egy teljesen szokásos és ártalmatlan kerti törpe. " @@ -54306,24 +54603,6 @@ msgstr "" "elemmel működő készülékhez lehet csatolni és a plutónium energiáját " "hasznosítani." -#: lang/json/TOOLMOD_from_json.py -msgid "extra battery mod" -msgid_plural "extra battery mods" -msgstr[0] "extra elem mod" -msgstr[1] "extra elem mod" - -#. ~ Description for extra battery mod -#: lang/json/TOOLMOD_from_json.py -msgid "" -"This is a homemade battery compartment made with spare electronics. With " -"enough electronics skill, you could attach this to any electronic tool to " -"double the amount of batteries it can hold." -msgstr "" -"Ez egy felesleges elektronikai hulladékból, házilag készített elemtároló. " -"Megfelelően magas elektronikai készséggel ezt bármiféle elektromos " -"szerszámhoz lehet csatolni, ezáltal megkétszerezve annak az elemtárolási " -"kapacitását." - #: lang/json/TOOLMOD_from_json.py msgid "UPS conversion mod" msgid_plural "UPS conversion mods" @@ -54375,6 +54654,45 @@ msgstr "" "Az aksitartó mod segítségével járművekben tölthető akkumulátort és " "cserélhető akkumulátort használhatsz a rendes elemes eszközökben." +#: lang/json/TOOLMOD_from_json.py +msgid "light battery mod" +msgid_plural "light battery mods" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for light battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of light batteries in tools " +"that otherwise could not." +msgstr "" + +#: lang/json/TOOLMOD_from_json.py +msgid "medium battery mod" +msgid_plural "medium battery mods" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for medium battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of medium batteries in tools " +"that otherwise could not." +msgstr "" + +#: lang/json/TOOLMOD_from_json.py +msgid "heavy battery mod" +msgid_plural "heavy battery mods" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for heavy battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of heavy batteries in tools " +"that otherwise could not." +msgstr "" + #: lang/json/TOOLMOD_from_json.py msgid "cybernetic power port mod" msgid_plural "cybernetic power port mods" @@ -56865,6 +57183,32 @@ msgstr "" "Ez egy rendkívül nehéz, furcsa alakú acélblokk, sarkában vésőszerű " "nyúlvánnyal. A legtöbb fémmegmunkáló recepthez szükséges." +#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +msgid "water mill" +msgid_plural "water mills" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for water mill +#: lang/json/TOOL_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour. Can" +" be placed via the construction menu." +msgstr "" + +#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +msgid "wind mill" +msgid_plural "wind mills" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for wind mill +#: lang/json/TOOL_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour. Can " +"be placed via the construction menu." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "wood axe" msgid_plural "wood axes" @@ -60450,28 +60794,10 @@ msgstr[1] "fénycsík" #. ~ Description for lightstrip #: lang/json/TOOL_from_json.py msgid "" -"This is a light-emitting circuit wired directly to some batteries. It " -"provides some weak light and can't be turned off. When the batteries die, " -"you'll need to scrap it to recover the components that are reusable." +"This is a light-emitting circuit that has been wired directly to a battery." +" It provides some weak light and can't be turned off until the battery " +"dies." msgstr "" -"Ezt a fénycsíkot egyenesen az elemekhez forrasztották. Gyengén világít, és " -"többé nem lehet kikapcsolni. Amikor az elem lemerül, akkor az újra " -"hasznosítható alkatrészek visszanyeréséhez a fénycsíkot szét kell szerelni." - -#: lang/json/TOOL_from_json.py -msgid "lightstrip (unpowered)" -msgid_plural "lightstrips (unpowered)" -msgstr[0] "fénycsík (elem nélkül)" -msgstr[1] "fénycsík (elem nélkül)" - -#. ~ Description for lightstrip (unpowered) -#: lang/json/TOOL_from_json.py -msgid "" -"This is a unpowered lightstrip. You could connect it to batteries to get a " -"light-emitting circuit." -msgstr "" -"Ha ehhez a fénycsíkhoz elemet csatlakoztatsz, akkor képes lesz a " -"világításra." #: lang/json/TOOL_from_json.py msgid "lightstrip (inactive)" @@ -60487,15 +60813,9 @@ msgstr "Kikapcsolhatatlanul aktiválod a fénycsíkot." #. ~ Description for lightstrip (inactive) #: lang/json/TOOL_from_json.py msgid "" -"This is a light-emitting circuit wired directly to some batteries. It will " -"provide some weak light once activated and can't be turned off. When the " -"batteries die, you'll need to scrap it to recover the components that are " -"reusable." +"This is a light-emitting circuit that can be wired directly to a battery. " +"It provides some weak light and can't be turned off until the battery dies." msgstr "" -"Ezt a fénycsíkot egyenesen az elemekhez forrasztották. Bekapcsolása után " -"gyengén világít, és többé nem lehet kikapcsolni. Amikor az elem lemerül, " -"akkor az újra hasznosítható alkatrészek visszanyeréséhez a fénycsíkot szét " -"kell szerelni." #: lang/json/TOOL_from_json.py msgid "lobotomizer" @@ -61135,7 +61455,13 @@ msgid "" "of reactivity. Don't try to breathe it." msgstr "" -#. ~ Description for nitrogen tank +#: lang/json/TOOL_from_json.py +msgid "hydrogen tank" +msgid_plural "hydrogen tanks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for hydrogen tank #: lang/json/TOOL_from_json.py msgid "" "This is a tank of compressed hydrogen gas. If you need to make water from " @@ -61887,6 +62213,12 @@ msgstr "" "segítségével lehet egy ruhadarabot megjavítani vagy megerősíteni. " "Használatához a szabó készségre van szükség." +#: lang/json/TOOL_from_json.py +msgid "anesthesia kit" +msgid_plural "anesthesia kits" +msgstr[0] "" +msgstr[1] "" + #: lang/json/TOOL_from_json.py msgid "shaving kit" msgid_plural "shaving kits" @@ -67424,6 +67756,10 @@ msgstr ".357 SIG" msgid "9x18mm" msgstr "9x18mm" +#: lang/json/ammunition_type_from_json.py +msgid ".380 ACP" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid ".38" msgstr ".38" @@ -68416,6 +68752,18 @@ msgstr "" msgid "Railgun" msgstr "Railgun" +#. ~ Description for Railgun +#: lang/json/bionic_from_json.py +msgid "" +"EM field generators in your arms double the range and damage of thrown iron " +"and steel objects at a cost of 1 power per throw, causing them to leave a " +"trail of electricity that can cause additional damage." +msgstr "" +"A karjaidba integrált elektromágneses mezőgenerátorok megduplázzák az " +"eldobott vas- és acéltárgyak hatótávolságát és sebzését. Minden dobás 1 " +"energiába kerül, a dobott tárgyak további sebzést okozó elektromos nyomot " +"hagynak maguk után." + #: lang/json/bionic_from_json.py msgid "Fingertip Razors" msgstr "Pengés ujjak" @@ -69556,6 +69904,14 @@ msgstr "" msgid "Build River Dock/Shallow Bridge" msgstr "" +#: lang/json/construction_from_json.py +msgid "Place Water Mill" +msgstr "" + +#: lang/json/construction_from_json.py +msgid "Place Wind Mill" +msgstr "" + #: lang/json/construction_from_json.py msgid "Build Shallow Temporary Bridge" msgstr "" @@ -74814,6 +75170,40 @@ msgstr "" "Levágott állatok feldolgozásához használható fémállvány. A keret " "szállításhoz szétszerelhető és összehajtható." +#. ~ Description for wind mill +#: lang/json/furniture_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "active wind mill" +msgstr "" + +#. ~ Description for active wind mill +#: lang/json/furniture_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour. Its" +" brake has been removed and it is turning." +msgstr "" + +#. ~ Description for water mill +#: lang/json/furniture_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "active water mill" +msgstr "" + +#. ~ Description for active water mill +#: lang/json/furniture_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour. " +"Its brake has been removed and it is turning." +msgstr "" + #. ~ Description for tourist table #: lang/json/furniture_from_json.py msgid "Small metal folding table, ideal for off-road trips into the wild." @@ -75912,7 +76302,8 @@ msgstr "" "sértetlenül megmaradnak és újra használhatók." #: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py src/item.cpp +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "pistol" msgstr "pisztoly" @@ -76412,6 +76803,12 @@ msgid_plural "base pistols" msgstr[0] "" msgstr[1] "" +#: lang/json/gun_from_json.py +msgid "backup pistol" +msgid_plural "backup pistols" +msgstr[0] "" +msgstr[1] "" + #: lang/json/gun_from_json.py src/item_factory.cpp msgid "revolver" msgid_plural "revolvers" @@ -76663,6 +77060,21 @@ msgstr[1] "" msgid "A popular .22 pistol." msgstr "Egy népszerű .22-es pisztoly." +#: lang/json/gun_from_json.py +msgid "Jennings J-22" +msgid_plural "Jennings J-22s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of the quintessential 'saturday night specials', the Jennings J-22 was " +"very affordably priced with its injection molded zinc slide and frame. " +"Intended to fill the void left after small pocket pistols were banned from " +"import, these were more commonly used by criminals unfazed by their glaring " +"safety issues." +msgstr "" + #: lang/json/gun_from_json.py msgid "Remington ACR" msgid_plural "Remington ACRs" @@ -77401,6 +77813,19 @@ msgstr "" "A 20. század egyik leghíresebb kézifegyvere. Bár a neved nem Bond, ez a kis " "pisztoly még hasznodra lehet." +#: lang/json/gun_from_json.py +msgid "Kel-Tec P32" +msgid_plural "Kel-Tec P32s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of Kel-tec's oldest designs, the P32 is a popular option for deep " +"concealment and backup usage. Despite its extreme light weight and small " +"size, its .32 ACP chambering makes for good handling and recoil control." +msgstr "" + #: lang/json/gun_from_json.py msgid "SIG P226" msgid_plural "SIG P226s" @@ -77505,6 +77930,63 @@ msgstr "" "Népszerű .38-as kaliberű pisztoly. Számos biztonsági funkció " "figyelembevételével tervezték, és minőségi, tartós anyagból gyártották." +#: lang/json/gun_from_json.py +msgid "MAC-11" +msgid_plural "MAC-11s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A lesser known variant of the MAC-10, this machine pistol is chambered in " +".380 ACP for a smaller overall size while remaining inherently subsonic. " +"Smaller in almost every dimension, this inexpensive automatic weapon was " +"declared 'fit only for combat in a phone booth' due to its low weight and " +"absurd fire rate ranging from 1200 to 1400 rounds per minute." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Kel-Tec P3AT" +msgid_plural "Kel-Tec P3ATs" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"Essentially a slightly scaled up Kel-tec P32 in .380 ACP, the ever popular " +"P3AT offers better ballistics in a small, concealable lightweight package. " +"Handling leaves something to be desired due to snappier recoil and " +"diminuitive controls." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "FN 1910 .380" +msgid_plural "FN 1910 .380s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"Made infamous in Sarajevo in 1914, the FN1910 was a popular pocket pistol, " +"albeit in .32 ACP. Collectors value the .380 model for its notoriety and " +"more modern terminal performance. If such a humble firearm could start a " +"world war, could it perhaps protect you from the undead?" +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Ruger LCP" +msgid_plural "Ruger LCPs" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of the best selling modern day 'pocket pistol's, the LCP is an " +"affordable, polymer framed pistol chambered in .380 ACP. Despite the " +"round's relatively low power, the pistol's low weight and short sight radius" +" make for a moderately poor handling pistol." +msgstr "" + #: lang/json/gun_from_json.py msgid "Glock 22" msgid_plural "Glock 22" @@ -78826,6 +79308,20 @@ msgstr "" "Bár minden lövész számára tervezték, a Glock 17-et főleg rendészeti és " "katonai piacra szánták." +#: lang/json/gun_from_json.py +msgid "Kel-Tec PF-9" +msgid_plural "Kel-Tec PF-9s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"The Kel-Tec PF-9 remains one of the most popular backup pistols due to its " +"history of reliability, affordability, and concealability. Chambered in " +"9x19mm, recoil is best described as unpleasant, and follow up shots are " +"difficult to place quickly." +msgstr "" + #: lang/json/gun_from_json.py msgid "Makarov PM" msgid_plural "Makarov PMs" @@ -81801,6 +82297,51 @@ msgctxt "gun_type_type" msgid "crossbow" msgstr "nyílpuska" +#: lang/json/gunmod_from_json.py +msgid "belt clip" +msgid_plural "belt clips" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a belt clip that attaches to the grip or slide of a pistol so as to " +"facilitate 'Mexican carry', the practice of carrying without a holster. It " +"does not offer any protection for the trigger, so users are strongly advised" +" to carry with the chamber empty or select a firearm with a very heavy " +"trigger pull." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "rugerlcp" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kp32" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kp3at" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kpf9" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "cop_38" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "moss_brownie" +msgstr "" + #: lang/json/gunmod_from_json.py msgid "shortened barrel" msgid_plural "shortened barrels" @@ -82559,6 +83100,19 @@ msgstr "" "A behajtható puskatussal csökkent a fegyver mérete, viszont használat előtt " "ki kell hajtani. Megnöveli a fegyver kézbe vételéhez szükséges időt." +#: lang/json/gunmod_from_json.py +msgid "folding wire stock" +msgid_plural "folding wire stocks" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"A folding wire stock which folds up very compactly but needs unfolding " +"before use. It's somewhat wobbly but is better than nothing at all. " +"Increases the time needed to wield the weapon." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "pistol stock" msgid_plural "pistol stocks" @@ -85806,23 +86360,16 @@ msgstr "Ide tárgyakat tudsz eltárolni." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"You can 'e'xamine the tile or attempt to pick-up items (default ',') to " -"access the controls, or use the vehicle control key (default '^')." +"You can 'e'xamine the tile to access the controls, or use the vehicle " +"control key (default '^')." msgstr "" -"M'e'gvizsgálhatod a mezőt, vagy megpróbálhatod felszedni (',') a tárgyakat " -"ahhoz, hogy hozzáférj a vezérléshez, illetve használhatod a '^' " -"járművezérlő gombot is." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"With a seat or saddle, you drive from here. You can 'e'xamine the tile or " -"attempt to pick-up items (default ',') to access the controls, or use the " -"vehicle control key (default '^')." +"With a seat or saddle, you drive from here. You can 'e'xamine the tile to " +"access the controls, or use the vehicle control key (default '^')." msgstr "" -"Egy üléssel vagy nyereggel innen kezdheted a vezetést. M'e'gvizsgálhatod a " -"mezőt, vagy megpróbálhatod felszedni (',') a tárgyakat ahhoz, hogy hozzáférj" -" a vezérléshez, illetve használhatod a '^' járművezérlő gombot is." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -86806,6 +87353,10 @@ msgstr "Alvás" msgid "Control Vehicle" msgstr "Jármű vezérlése" +#: lang/json/keybinding_from_json.py +msgid "Toggle Auto Travel Mode" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Toggle Safe Mode" msgstr "Biztonságos mód ki/be" @@ -86999,7 +87550,23 @@ msgid "Active World Mods" msgstr "Világban aktivált modok" #: lang/json/keybinding_from_json.py -msgid "Toggle move mode (run/walk/crouch)" +msgid "Cycle move mode (run/walk/crouch)" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Reset Movement to Walk" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Run" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Crouch" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Movement Mode Menu" msgstr "" #: lang/json/keybinding_from_json.py src/game_inventory.cpp @@ -94530,6 +95097,17 @@ msgid "" msgstr "" "Hallásod átlagnál feletti, ezért a távolabbi hangokat könnyebben hallod meg." +#: lang/json/mutation_from_json.py +msgid "Fey Hearing" +msgstr "" + +#. ~ Description for Fey Hearing +#: lang/json/mutation_from_json.py +msgid "" +"Your not sure the shape of your ears are helping, but regardless you have " +"become very sensitive to sounds." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Outdoorsman" msgstr "Kiránduló" @@ -96735,6 +97313,17 @@ msgstr "" "A skalpod helyén elkezdtél virágozni. A szirmokkal borított fejednek nagyon " "jó az illata, szép és dekoratív, viszont emiatt nagyon érzékeny is." +#: lang/json/mutation_from_json.py +msgid "Rosebuds" +msgstr "" + +#. ~ Description for Rosebuds +#: lang/json/mutation_from_json.py +msgid "" +"The top of your head is blooming with rosebuds. They're eye catching, and " +"have a strong fragrance that makes you pleasant to be around." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Mycus Spores" msgstr "Mycus spóra" @@ -99536,6 +100125,17 @@ msgstr "" msgid "You detach a vine from your body." msgstr "Lecsatolsz egy indát a testedrõl." +#: lang/json/mutation_from_json.py +msgid "Hair Roots" +msgstr "" + +#. ~ Description for Hair Roots +#: lang/json/mutation_from_json.py +msgid "" +"Roots have started growing from your leaf like hair, they don't seem to do " +"much." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Toe Roots" msgstr "Lábujj gyökerek" @@ -102480,10 +103080,18 @@ msgstr "benzinkút" msgid "pharmacy" msgstr "gyógyszertár" +#: lang/json/overmap_terrain_from_json.py +msgid "pharmacy roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "doctor's office" msgstr "orvosi rendelő" +#: lang/json/overmap_terrain_from_json.py +msgid "doctor's office roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "office" msgstr "iroda" @@ -102590,6 +103198,10 @@ msgstr "" msgid "butcher shop" msgstr "hentes bolt" +#: lang/json/overmap_terrain_from_json.py +msgid "butcher shop roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "bike shop" msgstr "kerékpár bolt" @@ -102794,10 +103406,22 @@ msgstr "szexshop" msgid "internet cafe" msgstr "internet kávézó" +#: lang/json/overmap_terrain_from_json.py +msgid "internet cafe roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "car showroom" msgstr "autószalon" +#: lang/json/overmap_terrain_from_json.py +msgid "car showroom 2nd floor" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "car showroom roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "car dealership" msgstr "autókereskedő" @@ -102826,6 +103450,10 @@ msgstr "rádióállomás" msgid "gardening allotment" msgstr "kertészeti kistelek" +#: lang/json/overmap_terrain_from_json.py +msgid "gardening allotment roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "animal pound" msgstr "sintértelep" @@ -110791,7 +111419,7 @@ msgid "" msgstr "" #: lang/json/recipe_from_json.py -msgid "We need to add a console to control the radio tower." +msgid "We need to build a console to control the radio tower." msgstr "" #: lang/json/recipe_from_json.py @@ -120664,6 +121292,78 @@ msgstr "" msgid "Can do." msgstr "" +#: lang/json/snippet_from_json.py +msgid "Whew... smells like skunk!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Man, that smells like some good shit!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Hey, don't bogart the joint!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "C'mon, , I can smell it, pass it over." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Wow, that smell takes me back." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Ah, man. Good times, good times. Love that scent." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "What do I smell? Well, I guess it's legal now." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Mmm, that weed smells good." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Man, I can smell the weed, can I have some?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Are you sure it's a good idea to smoke that now?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I don't know... should you really be smoking that stuff?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid ", that's going to ruin your nose." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Man, that stinks. Put it out!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "You're going to kill yourself smoking that stuff, ." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Oh, wow, that smell... Can I have some?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Ew, smells like burning rubber!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Ugh, that smells rancid!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +msgstr "" + #: lang/json/snippet_from_json.py msgid "Tell me about how you survived the cataclysm." msgstr "" @@ -121564,6 +122264,10 @@ msgstr "Az előző tulajdonosom visított, mint egy disznó, amikor kibeleztem!" msgid "\"Hello?\"" msgstr "\"Helló?\"" +#: lang/json/speech_from_json.py +msgid "\"Papaya!\"" +msgstr "" + #: lang/json/speech_from_json.py msgid "\"Who's there?\"" msgstr "\"Van itt valaki?\"" @@ -124089,8 +124793,8 @@ msgstr "Ruhabolt" #: lang/json/talk_topic_from_json.py msgid "" -"I'm my own person, but I'm willing to follow your lead. I can do a lot of things for you: I can fight, I can train you or you can train me, I can carry stuff, I can bandage your wounds, I can build faction camps, I can go places, I can guard things, I can even chit-chat with you or talk about my background. You can give me instructions in conversation or by radio or shout commands at me. \n" -"What do you want to know more about?" +"I'm my own person, but I'm willing to follow your lead. I can do a lot of things for you: I can fight, I can train you or you can train me, I can carry stuff, I can bandage your wounds, I can build faction camps, I can go places, I can guard things, I can even chit-chat with you or talk about my background. You can give me instructions in conversation or by radio or shout commands at me.\n" +" What do you want to know more about?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -124151,8 +124855,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If we're next to each other, you can just bump into me and we'll start talking, right? But if I'm farther away, you're going to have to shout a bit (use the 'C'hat command) for me to hear you. You'll need to see me for us to have a conversation. Or we can talk by radios if we both have them. \n" -"When we talk, you can give me instructions about how to fight or when to sleep or whatever. I'll mostly do them, and you can ask me what my current instructions are. Sometimes you'll give me two sets of instructions: a normal set, and an override for a specific situation. I'll tell you which instructions are overriden. You can set and clear overrides with shouted commands." +"If we're next to each other, you can just bump into me and we'll start talking, right? But if I'm farther away, you're going to have to shout a bit (use the 'C'hat command) for me to hear you. You'll need to see me for us to have a conversation. Or we can talk by radios if we both have them.\n" +" When we talk, you can give me instructions about how to fight or when to sleep or whatever. I'll mostly do them, and you can ask me what my current instructions are. Sometimes you'll give me two sets of instructions: a normal set, and an override for a specific situation. I'll tell you which instructions are overriden. You can set and clear overrides with shouted commands." msgstr "" #: lang/json/talk_topic_from_json.py @@ -124166,8 +124870,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Sometimes you need to give orders in a hurry. You can use the 'C'hat command to shout a single specific order. If I hear you, I'll do what you say, as will anyone else following you that hears it. \n" -"Some orders will override other instructions you've given me. If you change my instructions when I've got an override command, I'll tell you which ones are overridden. You can shout an order to clear any overrides." +"Sometimes you need to give orders in a hurry. You can use the 'C'hat command to shout a single specific order. If I hear you, I'll do what you say, as will anyone else following you that hears it.\n" +" Some orders will override other instructions you've given me. If you change my instructions when I've got an override command, I'll tell you which ones are overridden. You can shout an order to clear any overrides, or talk to me and tell me to clear them." msgstr "" #: lang/json/talk_topic_from_json.py @@ -124176,72 +124880,75 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"It's a dangerous world out there, right? So we fight to survive. I'm on your side, and I'll stick with you, but if I think the situation is too dangerous, I'll be honest, I'm going to run. If I see you running but I think it's safe, I'll stay and fight, but you can tell me run with you and I'll stick by you as best I can. \n" -"You can give me some instructions on when I should attack, but I'll make my own decisions about who - I'll try to defend myself and you, though, but if you tell me to stay in one place I'll stay there. \n" -"I'll use guns and grenades if I have them, but you can tell me to not use grenades or not use loud weapons or to not use ranged weapons at all. If I'm shooting, you can tell me how much to aim and whether to try to avoid shooting you or not. \n" -"I'll respect your rules for what types of weapons to use, but I'll choose what to use from my stuff. \n" -"You can also tell me to hold the line and fight at chokepoints, but I'm not great at recognizing them so I may go off to fight something elsewhere anyway." +"It's a dangerous world out there, right? So we fight to survive. I'm on your side, and I'll stick with you, but if I think the situation is too dangerous, I'll be honest, I'm going to run.\n" +" You can't tell me not to run, because I'm going to flee if things are bad, but you can tell me a safe place to retreat by using the zones manager (keybind 'Y'). I'll run toward the closest place you've designated - and you can set zones on vehicles, so if you've got a car, you could tell me to retreat there.\n" +" If I see you running but I think it's safe, I'll stay and fight, but you can tell me run with you and I'll stick by you as best I can.\n" +" You can give me some instructions on when I should attack, but I'll make my own decisions about who - I'll try to defend myself and you, but if you tell me to stay in one place I'll stay there.\n" +" I'll use guns and grenades if I have them, but you can tell me to not use grenades or not use loud weapons or to not use ranged weapons at all. If I'm shooting, you can tell me how much to aim and whether to try to avoid shooting you or not. I'm not so good at recognizing safe shots, so stay out of my line of fire no matter what.\n" +" I'll respect your rules for what types of weapons to use, but I'll choose what to use from my stuff.\n" +" You can also tell me to hold the line and fight at chokepoints, but I'm not great at recognizing them so I may go off to fight something elsewhere anyway." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If I'm better at a skill than you, I can help you improve. But it's boring to teach a lot, so I'm not going to do it very often. And I'm not going to do it when we're in danger or if I'm hungry or tired or if you're driving. \n" -"If we're someplace safe and you're reading a book that improves skills, I'll listen if I don't have that skill. You can even read me books for skills that you already have." +"If I'm better at a skill than you, I can help you improve. But it's boring to teach a lot, so I'm not going to do it very often. And I'm not going to do it when we're in danger or if I'm hungry or tired or if you're driving.\n" +" If we're someplace safe and you're reading a book that improves skills, I'll listen if I don't have that skill. You can even read me books for skills that you already have." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"You give me something to carry, I'll carry it. But I only have so many pockets and I'm only so strong, so I'll drop stuff that's too big to carry. \n" -"I'll also wear stuff - I'll decide what I want to wear, but you can take stuff from me. If I'm wearing something I shouldn't, you can bump into me and sort my armor to get me to take if off. \n" -"I don't like wearing a lot of gear, so if you give me a lot of bulky stuff and things that don't fit, I'm going to take them off and probably drop them. \n" -"Also, since we're friends, I'll give you anything I'm carrying, no questions asked. \n" -"Oh, yeah, if I'm hungry or thirsty and I'm carrying food, I'll eat it. So you might want to watch what you give me, y'know?" +"You give me something to carry, I'll carry it. But I only have so many pockets and I'm only so strong, so I'll drop stuff that's too big to carry.\n" +" I'll also wear stuff - I'll decide what I want to wear, but you can take stuff from me. If I'm wearing something I shouldn't, you can bump into me and sort my armor to get me to take if off.\n" +" I don't like wearing a lot of gear, so if you give me a lot of bulky stuff and things that don't fit, I'm going to take them off and probably drop them.\n" +" Also, since we're friends, I'll give you anything I'm carrying, no questions asked.\n" +" Oh, yeah, if I'm hungry or thirsty and I'm carrying food, I'll eat it. So you might want to watch what you give me, y'know?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If you call me by radio, you can tell me to come to you. If you've got some basecamps set up, you can tell me to go to one of them. I'll start walking, and when I get to where I'm going, I'll guard it. \n" -"Now depending on where I am and where I'm going, it may take me a while to get there. I'll dodge any dangers on the way, don't worry about that, but if you're way the heck away from me and tell me to come, it may be a while until I get to you." +"If you call me by radio, you can tell me to come to you. If you've got some basecamps set up, you can tell me to go to one of them. I'll start walking, and when I get to where I'm going, I'll guard it.\n" +" Now depending on where I am and where I'm going, it may take me a while to get there. I'll dodge any dangers on the way, don't worry about that, but if you're way the heck away from me and tell me to come, it may be a while until I get to you." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"You tell me to guard, I'll stay where I am and guard it - unless I'm in a vehicle, in which case I'll stick with the vehicle. \n" -"I'm not a potted plant, though, so if I hear something dangerous happening, I'm going to go see what it is instead of getting jumped in the dark. If you want me to stay put, tell me not to investigate noises - but if I get shot by some bandit because I can't see where he is and you don't want me to go looking, I won't be happy." +"You tell me to guard, I'll stay where I am and guard it - unless I'm in a vehicle, in which case I'll stick with the vehicle.\n" +" I'm not a potted plant, though, so if I hear something dangerous happening, I'm going to go see what it is instead of getting jumped in the dark. If you want me to stay put, tell me not to investigate noises - but if I get shot by some bandit because I can't see where he is and you don't want me to go looking, I won't be happy.\n" +" You can also use the zone manager (keybind 'Y') to set up no-investigate zone, so if there's some monsters behind a door that you know about, I can ignore them. You can also set on an investigate-only zone, and I won't investigate noises coming from outside the zone. The no-investigate zone takes precedence over the investigate-only, if there's a noise coming from some place in both zones. And if you've got an investigate-only zone set anywhere, even if it's far away, I won't investigate noises coming from outside of it, so be careful with those zones. Like I said, I don't want to get sniped by some bandit because you told me not to go looking for him - but I also don't want to go investigate something pounding at door only to find out it's some horrible monster you forgot to warn me about." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Just in case - how do I tell you to stay put?" +msgid "Just in case - how else can I tell you to stay put?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"We can chit-chat, if you want. People are social animals, right? A little light conversation can do wonders for your mood. But I don't want to be yapping all the time, so if we've chatted recently, I probably am not going to want to talk for a bit. \n" -"You can also ask me about my background. I may not want to talk about it, though." +"We can chit-chat, if you want. People are social animals, right? A little light conversation can do wonders for your mood. But I don't want to be yapping all the time, so if we've chatted recently, I probably am not going to want to talk for a bit.\n" +" You can also ask me about my background. I may not want to talk about it, though." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"You can give me a bunch of instructions. Talk to me about the miscellaneous rules, and I'll tell you what I'm doing and you can give a new instruction. Sometimes you'll have shouted a command that overrides your other instructions, and I'll tell you which instructions are overridden. \n" -"I'm not a chatterbox, but I'll tell you when I see or hear danger or if I'm hurt or hungry or something. You don't want me doing that, you just tell me. \n" -"Also, I'll pulp zombies if you'd like - I would prefer that. \n" -"If I hear something suspicious and can't see if, I'll go take a look, but you can tell me not to do that. \n" -" I'll open and close doors, or open them and leave them ajar, or not going through closed doors. You just tell me what you want. \n" -"I can pick stuff up if want me to, and you can tell me what to pick up. If I've got a bow or crossbow, please tell me to pick up the ammo - it's less fuss for both of us. \n" -"If you've got a vehicle, you can e'x'amine it and use the cre'w' command to assign me a seat. That saves arguments about who needs to sit where." +"You can give me a bunch of instructions. Talk to me about the miscellaneous rules, and I'll tell you what I'm doing and you can give a new instruction. Sometimes you'll have shouted a command that overrides your other instructions, and I'll tell you which instructions are overridden.\n" +" I'm not a chatterbox, but I'll tell you when I see or hear danger or if I'm hurt or hungry or something. You don't want me doing that, you just tell me.\n" +" Also, I'll pulp zombies if you'd like - I would prefer that.\n" +" If I hear something suspicious and can't see if, I'll go take a look, but you can tell me not to do that.\n" +" I'll open and close doors, or open them and leave them ajar, or not going through closed doors. You just tell me what you want.\n" +" I can pick stuff up if want me to, and you can tell me what to pick up. If I've got a bow or crossbow, please tell me to pick up the ammo - it's less fuss for both of us.\n" +" If you've got a vehicle, you can e'x'amine it and use the cre'w' command to assign me a seat. That saves arguments about who needs to sit where." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Here's the list of shouted commands I'll respond to: \n" -"Order me to guard, and I'll stay where I am and watch out for danger. I'll investigate suspicious noises unless you told me not to. \n" -"Order me to follow, and I'll stop guarding and go back to following you. \n" -"Order me to stay awake, and I'll stay awake until I'm too tired to keep my eyes open. \n" -"Order me to sleep when tired, and I'll nap when I get tired. I'll try to tell you when I'm off to bed unless you don't want to hear it. \n" -"Order me to flee, and I'll stick close to you when you run from danger. I won't go running off on my own - though if things really bad, I might be running away already! \n" -"Order me to stop running, and I'll evaluate the danger myself and might go off and fight something while you're doing other things. \n" -"Ordering me to prepare for danger is special: it's an override command. That means I'm going to follow certain instructions, even if you've given me other instructions earlier. Specifically, I'm going to flee with you, I'm not going to open or close doors, I'm not going to sleep until I'm exhausted, and I'm going to try to hold any chokepoints that you're fighting at. \n" -"Ordering me to relax from danger is another special command, and it will clear any overrides I currently have and I'll go back to whatever instructions I had before you told me to prepare for danger." +"Here's the list of shouted commands I'll respond to:\n" +" - Order me to guard, and I'll stay where I am and watch out for danger. I'll investigate suspicious noises unless you told me not to.\n" +" - Order me to follow, and I'll stop guarding and go back to following you.\n" +" - Order me to stay awake, and I'll stay awake until I'm too tired to keep my eyes open.\n" +" - Order me to sleep when tired, and I'll nap when I get tired. I'll try to tell you when I'm off to bed unless you don't want to hear it.\n" +" - Order me to flee, and I'll stick close to you when you run from danger. I won't go running off on my own - though if things really bad, I might be running away already!\n" +" - Order me to stop running, and I'll evaluate the danger myself and might go off and fight something while you're doing other things.\n" +" - Ordering me to prepare for danger is special: it's an override command. That means I'm going to follow certain instructions, even if you've given me other instructions earlier. Specifically, I'm going to flee with you, I'm not going to open or close doors, I'm not going to sleep until I'm exhausted, and I'm going to try to hold any chokepoints that you're fighting at.\n" +" - Ordering me to relax from danger is another special command, and it will clear any overrides I currently have and I'll go back to whatever instructions I had before you told me to prepare for danger." msgstr "" #: lang/json/talk_topic_from_json.py @@ -124515,6 +125222,10 @@ msgstr "Ébresztő!" msgid "Go back to sleep." msgstr "Menj vissza aludni." +#: lang/json/talk_topic_from_json.py +msgid "What is it, friend?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Combat commands..." msgstr "Harci parancsok..." @@ -124524,24 +125235,20 @@ msgid "Can you teach me anything?" msgstr "Tudsz nekem valami tanítani?" #: lang/json/talk_topic_from_json.py -msgid "Let's trade items" -msgstr "Csereberéljünk" - -#: lang/json/talk_topic_from_json.py -msgid "Guard this position" -msgstr "Ezt a területet őrizd" +msgid "Guard this position." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'd like to know a bit more about you..." msgstr "Szeretnék egy kicsit többet megtudni rólad..." #: lang/json/talk_topic_from_json.py -msgid "I want you to use this item" -msgstr "Ezt a tárgyat használd" +msgid "I want you to use this item." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hold on to this item" -msgstr "Ezt a tárgyat tartsd magadnál" +msgid "Hold on to this item." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Miscellaneous rules..." @@ -124672,10 +125379,6 @@ msgstr "Ja, biztos vagyok benne. Na csá." msgid "Nah, I'm just kidding." msgstr "Áh, csak hülyéskedek." -#: lang/json/talk_topic_from_json.py -msgid "*pshhhttt* I'm reading you boss, over." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Stay at your current position." msgstr "" @@ -125138,7 +125841,7 @@ msgstr "Oké, akkor nyomás!" msgid "Yeah... I don't think so." msgstr "Ja... szerintem nem." -#: lang/json/talk_topic_from_json.py src/npctalk.cpp +#: lang/json/talk_topic_from_json.py msgid "What is it?" msgstr "Mi van?" @@ -125318,6 +126021,28 @@ msgstr "Oké, értem, csá." msgid "Okay" msgstr "Oké" +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm willing to pay per batch for a total of " +"." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Works for me." +msgstr "Nekem jó." + +#: lang/json/talk_topic_from_json.py +msgid "Maybe later." +msgstr "Talán később." + +#: lang/json/talk_topic_from_json.py +msgid "Pleasure doing business!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You might be seeing more of me..." +msgstr "Többet fogtok látni..." + #: lang/json/talk_topic_from_json.py msgid "Hey again. *kzzz*" msgstr "" @@ -126153,10 +126878,6 @@ msgstr "" msgid "Yes, set up the bulletin board and then go back to normal duties." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Hope you're here to trade." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I oversee the food stocks for the center. There was significant looting " @@ -126199,6 +126920,14 @@ msgstr "" msgid "Interesting..." msgstr "Érdekes..." +#: lang/json/talk_topic_from_json.py +msgid "Hope you're here to trade." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Who are you?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Mind if we just chat for a bit?" msgstr "" @@ -126426,10 +127155,6 @@ msgstr "" msgid "Citizen..." msgstr "" -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Who are you?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Is there any way I can join the 'Old Guard'?" msgstr "" @@ -126921,10 +127646,6 @@ msgstr "" msgid "[$12000, 7d] 100 logs" msgstr "" -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Maybe later." -msgstr "Talán később." - #: lang/json/talk_topic_from_json.py msgid "I'll be back later." msgstr "" @@ -136295,6 +137016,10 @@ msgstr "finom vágó" msgid "glare protection" msgstr "fényvédő" +#: lang/json/tool_quality_from_json.py +msgid "anesthesia" +msgstr "" + #: lang/json/tool_quality_from_json.py msgid "smoothing" msgstr "simító" @@ -137409,10 +138134,6 @@ msgstr "Egy folyosó." msgid "wooden aisle" msgstr "fa folyosó" -#: lang/json/vehicle_part_from_json.py -msgid "floor trunk" -msgstr "padlóba épített csomagtartó" - #. ~ Description for floor trunk #: lang/json/vehicle_part_from_json.py msgid "An aisle. A hatch lets you access a cargo space beneath it." @@ -138109,8 +138830,8 @@ msgstr "" msgid "" "A sophisticated set of electronic controls that allow you to control the " "vehicle from a vehicle remote while you are not in it. You can 'e'xamine " -"the tile or attempt to pick-up items (default ',') to access the controls, " -"or use the vehicle control key (default '^')." +"the tile to access the controls, or use the vehicle control key (default " +"'^')." msgstr "" #: lang/json/vehicle_part_from_json.py @@ -138122,8 +138843,8 @@ msgstr "kameravezérlő rendszer" msgid "" "An LCD display attached to one or more cameras. When turned on, it lets you" " see from the cameras, but drains power from the vehicle's batteries. You " -"can 'e'xamine the tile or attempt to pick-up items (default ',') to access " -"the controls, or use the vehicle control key (default '^')." +"can 'e'xamine the tile to access the controls, or use the vehicle control " +"key (default '^')." msgstr "" #. ~ Description for security camera @@ -138431,7 +139152,7 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "" "A combustion engine. Burns diesel fuel from a tank in the vehicle. Can " -"also burn methanol, ethanol, or lamp oil, though somewhat less efficiently." +"also burn biodiesel or lamp oil, though somewhat less efficiently." msgstr "" #: lang/json/vehicle_part_from_json.py @@ -145069,6 +145790,34 @@ msgstr "Nincs NPC felszedés" msgid "Friendly NPCs don't pickup items inside the zone." msgstr "A zónán belül baráti NPC-k automatikusan nem szednek fel tárgyakat." +#: src/clzones.cpp +msgid "NPC Retreat" +msgstr "" + +#: src/clzones.cpp +msgid "" +"When fleeing, friendly NPCs will attempt to retreat toward this zone if it " +"is within 60 tiles." +msgstr "" + +#: src/clzones.cpp +msgid "NPC Ignore Sounds" +msgstr "" + +#: src/clzones.cpp +msgid "Friendly NPCs won't investigate unseen sounds coming from this zone." +msgstr "" + +#: src/clzones.cpp +msgid "NPC Investigation Area" +msgstr "" + +#: src/clzones.cpp +msgid "" +"Friendly NPCs will investigate unseen sounds only if they come from inside " +"this area." +msgstr "" + #: src/clzones.cpp msgid "Loot: Unsorted" msgstr "Zsákmány: Válogatás nélkül" @@ -147431,11 +148180,6 @@ msgctxt "in progress craft" msgid " starts working on the %s." msgstr "" -#: src/crafting.cpp -#, c-format -msgid "%s helps with crafting..." -msgstr "%s segít az elkészítésben..." - #: src/crafting.cpp #, c-format msgid "%s assists with crafting..." @@ -147451,6 +148195,11 @@ msgstr "%s tudna segíteni, ha ebből többet készítenél..." msgid "%s watches you craft..." msgstr "%s nézi, ahogy azt elkészíted..." +#: src/crafting.cpp +#, c-format +msgid "%s helps with crafting..." +msgstr "%s segít az elkészítésben..." + #: src/crafting.cpp #, c-format msgid "You fail to make the %s, and waste some materials." @@ -147479,6 +148228,17 @@ msgstr "Egy könyv segítségével elkészíted a(z) %st." msgid "You memorized the recipe for %s!" msgstr "Megtanultad a(z) %s receptjét!" +#: src/crafting.cpp +#, c-format +msgid "You don't know the recipe for the %s and can't continue crafting." +msgstr "" + +#: src/crafting.cpp +#, c-format +msgid "" +" doesn't know the recipe for the %s and can't continue crafting." +msgstr "" + #: src/crafting.cpp #, c-format msgid "%s (%d/%d nearby)" @@ -148068,6 +148828,190 @@ msgstr "" "A hibaüzenet vágólapra másolásához nyomd le a C (vagy " "c) gombot." +#: src/debug_menu.cpp +msgid "Mutate" +msgstr "Mutálás" + +#: src/debug_menu.cpp +msgid "Change all skills" +msgstr "Összes készség megváltoztatása" + +#: src/debug_menu.cpp +msgid "Learn all melee styles" +msgstr "Összes közelharci stílus megtanulása" + +#: src/debug_menu.cpp +msgid "Unlock all recipes" +msgstr "Összes recept elérhető" + +#: src/debug_menu.cpp +msgid "Edit player/NPC" +msgstr "Játékos/NPC szerkesztése" + +#: src/debug_menu.cpp +msgid "Damage self" +msgstr "" + +#: src/debug_menu.cpp +msgid "Set automove route" +msgstr "Automozgási útvonal beállítása" + +#: src/debug_menu.cpp +msgid "Player..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Check game state" +msgstr "" + +#: src/debug_menu.cpp +msgid "Display hordes" +msgstr "Hordák megjelenítése" + +#: src/debug_menu.cpp +msgid "Test item group" +msgstr "" + +#: src/debug_menu.cpp +msgid "Show sound clustering" +msgstr "" + +#: src/debug_menu.cpp +msgid "Display weather" +msgstr "Időjárás megmutatása" + +#: src/debug_menu.cpp +msgid "Display overmap scents" +msgstr "Szagokat mutat a nagytérképen" + +#: src/debug_menu.cpp +msgid "Show mutation category levels" +msgstr "Mutáció kategória szintek megjelenítése" + +#: src/debug_menu.cpp +msgid "Draw benchmark (X seconds)" +msgstr "" + +#: src/debug_menu.cpp +msgid "Test trait group" +msgstr "" + +#: src/debug_menu.cpp +msgid "Show debug message" +msgstr "" + +#: src/debug_menu.cpp +msgid "Crash game (test crash handling)" +msgstr "" + +#: src/debug_menu.cpp +msgid "Toggle NPC pathfinding on map" +msgstr "" + +#: src/debug_menu.cpp +msgid "Info..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - short range" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - long range" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - adjacent overmap" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn an item" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn NPC" +msgstr "NPC előteremtése" + +#: src/debug_menu.cpp +msgid "Spawn monster" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn a vehicle" +msgstr "Jármű előteremtése" + +#: src/debug_menu.cpp +msgid "Spawn artifact" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn clairvoyance artifact" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawning..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Reveal map" +msgstr "Térkép megmutatása" + +#: src/debug_menu.cpp +msgid "Kill NPCs" +msgstr "NPC megölése" + +#: src/debug_menu.cpp +msgid "Map editor" +msgstr "Térképszerkesztő" + +#: src/debug_menu.cpp +msgid "Change weather" +msgstr "Időjárás megváltoztatása" + +#: src/debug_menu.cpp +msgid "Change wind direction" +msgstr "" + +#: src/debug_menu.cpp +msgid "Change wind speed" +msgstr "" + +#: src/debug_menu.cpp +msgid "Kill all monsters" +msgstr "Összes szörny megölése" + +#: src/debug_menu.cpp +msgid "Change time" +msgstr "Idő beállítása" + +#: src/debug_menu.cpp +msgid "Overmap editor" +msgstr "Nagytérkép szerkesztése" + +#: src/debug_menu.cpp +msgid "Spawn map extra" +msgstr "" + +#: src/debug_menu.cpp +msgid "Map..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Quit to main menu" +msgstr "" + +#: src/debug_menu.cpp +msgid "" +"Debug Functions - Using these will cheat not only the game, but yourself.\n" +"You won't grow. You won't improve.\n" +"Taking this shortcut will gain you nothing. Your victory will be hollow.\n" +"Nothing will be risked and nothing will be gained." +msgstr "" + #: src/debug_menu.cpp #, c-format msgid "You teleport to point (%d,%d,%d)." @@ -148508,6 +149452,203 @@ msgstr "" msgid "Drew %d times in %.3f seconds. (%.3f fps average)" msgstr "%d alkalommal rajzolt %.3f mp alatt (%.3f átlag fps)" +#: src/debug_menu.cpp +msgid "Current overmap revealed." +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "Location %d:%d in %d:%d, %s\n" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "" +"Current turn: %d.\n" +"%s\n" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "%d creature exists.\n" +msgid_plural "%d creatures exist.\n" +msgstr[0] "" +msgstr[1] "" + +#: src/debug_menu.cpp +msgid "NPCs are going to spawn." +msgstr "" + +#: src/debug_menu.cpp +msgid "NPCs are NOT going to spawn." +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "%s: map ( %d:%d ) pos ( %d:%d )" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "(you: %d:%d)" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "Stomach Contents: %d ml / %d ml kCal: %d, Water: %d ml" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "" +"Guts Contents: %d ml / %d ml kCal: %d, Water: %d ml\n" +"Hunger: %d, Thirst: %d, kCal: %d / %d" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "%s's head implodes!" +msgstr "" + +#: src/debug_menu.cpp +msgid "Choose vehicle to spawn" +msgstr "" + +#. ~ Menu entry in vehicle wish menu: 1st string: displayed name, 2nd string: +#. internal name of vehicle +#: src/debug_menu.cpp +#, c-format +msgid "%1$s (%2$s)" +msgstr "" + +#: src/debug_menu.cpp +msgid "Martial arts debug." +msgstr "" + +#: src/debug_menu.cpp +msgid "Your eyes blink rapidly as knowledge floods your brain." +msgstr "" + +#: src/debug_menu.cpp +msgid "You now know a lot more than just 10 styles of kung fu." +msgstr "" + +#: src/debug_menu.cpp +msgid "Recipe debug." +msgstr "" + +#: src/debug_menu.cpp +msgid "You know how to craft that now." +msgstr "" + +#: src/debug_menu.cpp +msgid "Select new weather pattern:" +msgstr "" + +#: src/debug_menu.cpp +msgid "Disable weather forcing" +msgstr "" + +#: src/debug_menu.cpp +msgid "Keep normal weather patterns" +msgstr "" + +#: src/debug_menu.cpp +msgid "Select new wind direction:" +msgstr "" + +#: src/debug_menu.cpp +msgid "Disable direction forcing" +msgstr "" + +#: src/debug_menu.cpp +msgid "Keep normal wind direction" +msgstr "" + +#: src/debug_menu.cpp +msgid "Select new wind speed:" +msgstr "" + +#: src/debug_menu.cpp +msgid "Disable speed forcing" +msgstr "" + +#: src/debug_menu.cpp +msgid "Keep normal wind speed" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "Damage self for how much? hp: %d" +msgstr "" + +#: src/debug_menu.cpp +msgid "This binary was not compiled with tiles support." +msgstr "" + +#: src/debug_menu.cpp +msgid "year" +msgstr "év" + +#: src/debug_menu.cpp +msgid "season" +msgstr "évszak" + +#: src/debug_menu.cpp +msgid "day" +msgstr "nap" + +#: src/debug_menu.cpp +msgid "hour" +msgstr "óra" + +#: src/debug_menu.cpp +msgid "minute" +msgstr "perc" + +#: src/debug_menu.cpp src/martialarts.cpp src/martialarts.cpp +msgid "turn" +msgid_plural "turns" +msgstr[0] "" +msgstr[1] "" + +#: src/debug_menu.cpp +msgid "Set year to?" +msgstr "Hanyadik év legyen?" + +#: src/debug_menu.cpp +msgid "Set season to? (0 = spring)" +msgstr "Melyik évszak legyen? (0 = tavasz)" + +#: src/debug_menu.cpp +msgid "Set days to?" +msgstr "Hanyadik nap legyen?" + +#: src/debug_menu.cpp +msgid "Set hour to?" +msgstr "Hanyadik óra legyen?" + +#: src/debug_menu.cpp +msgid "Set minute to?" +msgstr "Hanyadik perc legyen?" + +#: src/debug_menu.cpp +#, c-format +msgid "Set turn to? (One day is %i turns)" +msgstr "Hanyadik kör legyen? (Egy nap %i kör)" + +#: src/debug_menu.cpp +msgid "Enter benchmark length (in milliseconds):" +msgstr "" + +#: src/debug_menu.cpp +msgid "" +"Quit without saving? This may cause issues such as duplicated or missing " +"items and vehicles!" +msgstr "" +"Mentés nélkül lépsz ki? Ez gondokat okozhat, például duplikált vagy hiányzó " +"tárgyakat és járműveket!" + #: src/defense.cpp #, c-format msgid "Please wait as the map generates [ 0%% ]" @@ -150048,6 +151189,10 @@ msgstr "" msgid "Leading" msgstr "" +#: src/faction.cpp +msgid "Patrolling" +msgstr "" + #: src/faction.cpp msgid "Guarding" msgstr "" @@ -150979,6 +152124,10 @@ msgstr "" msgid "Select an end point." msgstr "" +#: src/faction_camp.cpp +msgid "Spiked pits must be built over existing trenches!" +msgstr "" + #: src/faction_camp.cpp msgid "Invalid terrain in construction path." msgstr "" @@ -151477,14 +152626,6 @@ msgstr "" msgid "You distribute %d kcal worth of food to your companions." msgstr "" -#: src/faction_camp.cpp -msgid "Accessed camp inventory whilst position does not refer to a camp" -msgstr "" - -#: src/faction_camp.cpp -msgid "consume components for camp mission, but no camp found" -msgstr "" - #: src/faction_camp.cpp #, c-format msgid "While %s, a silent specter approaches %s..." @@ -151942,26 +153083,6 @@ msgstr "" msgid "smoke vent" msgstr "" -#: src/field.cpp -msgid "Whew... smells like skunk!" -msgstr "" - -#: src/field.cpp -msgid "Man, that smells like some good shit!" -msgstr "" - -#: src/field.cpp -msgid "I don't know... should you really be smoking that stuff?" -msgstr "" - -#: src/field.cpp -msgid "Ew, smells like burning rubber!" -msgstr "" - -#: src/field.cpp -msgid "Ugh, that smells rancid!" -msgstr "" - #: src/field.cpp #, c-format msgid "A %s hits you!" @@ -152513,366 +153634,6 @@ msgstr "UI adatok" msgid "Failed to save game data" msgstr "A játékállás adatait nem sikerült elmenteni" -#: src/game.cpp -msgid "" -"Debug Functions - Using these will cheat not only the game, but yourself. You won't grow. You won't improve.\n" -"Taking this shortcut will gain you nothing. Your victory will be hollow.\n" -"Nothing will be risked and nothing will be gained." -msgstr "" - -#: src/game.cpp -msgid "Wish for an item" -msgstr "Tárgykérés" - -#: src/game.cpp -msgid "Teleport - Short Range" -msgstr "Teleportálás rövid távra" - -#: src/game.cpp -msgid "Teleport - Long Range" -msgstr "Teleportálás hosszú távra" - -#: src/game.cpp -msgid "Reveal map" -msgstr "Térkép megmutatása" - -#: src/game.cpp -msgid "Spawn NPC" -msgstr "NPC előteremtése" - -#: src/game.cpp -msgid "Spawn Monster" -msgstr "Szörny előteremtése" - -#: src/game.cpp -msgid "Check game state..." -msgstr "Játékállapot ellenőrzése..." - -#: src/game.cpp -msgid "Kill NPCs" -msgstr "NPC megölése" - -#: src/game.cpp -msgid "Mutate" -msgstr "Mutálás" - -#: src/game.cpp -msgid "Spawn a vehicle" -msgstr "Jármű előteremtése" - -#: src/game.cpp -msgid "Change all skills" -msgstr "Összes készség megváltoztatása" - -#: src/game.cpp -msgid "Learn all melee styles" -msgstr "Összes közelharci stílus megtanulása" - -#: src/game.cpp -msgid "Unlock all recipes" -msgstr "Összes recept elérhető" - -#: src/game.cpp -msgid "Edit player/NPC" -msgstr "Játékos/NPC szerkesztése" - -#: src/game.cpp -msgid "Spawn Artifact" -msgstr "Idegen tárgy előteremtése" - -#: src/game.cpp -msgid "Spawn Clairvoyance Artifact" -msgstr "Látnoki idegen tárgy előteremtése" - -#: src/game.cpp -msgid "Map editor" -msgstr "Térképszerkesztő" - -#: src/game.cpp -msgid "Change weather" -msgstr "Időjárás megváltoztatása" - -#: src/game.cpp -msgid "Change wind direction" -msgstr "" - -#: src/game.cpp -msgid "Change wind speed" -msgstr "" - -#: src/game.cpp -msgid "Kill all monsters" -msgstr "Összes szörny megölése" - -#: src/game.cpp -msgid "Display hordes" -msgstr "Hordák megjelenítése" - -#: src/game.cpp -msgid "Test Item Group" -msgstr "Teszt tárgycsoport" - -#: src/game.cpp -msgid "Damage Self" -msgstr "Játékos megsebzése" - -#: src/game.cpp -msgid "Show Sound Clustering" -msgstr "Hangforrások megjelenítése" - -#: src/game.cpp -msgid "Display weather" -msgstr "Időjárás megmutatása" - -#: src/game.cpp -msgid "Display overmap scents" -msgstr "Szagokat mutat a nagytérképen" - -#: src/game.cpp -msgid "Change time" -msgstr "Idő beállítása" - -#: src/game.cpp -msgid "Set automove route" -msgstr "Automozgási útvonal beállítása" - -#: src/game.cpp -msgid "Show mutation category levels" -msgstr "Mutáció kategória szintek megjelenítése" - -#: src/game.cpp -msgid "Overmap editor" -msgstr "Nagytérkép szerkesztése" - -#: src/game.cpp -msgid "Draw benchmark (X seconds)" -msgstr "" - -#: src/game.cpp -msgid "Teleport - Adjacent overmap" -msgstr "" - -#: src/game.cpp -msgid "Test trait group" -msgstr "" - -#: src/game.cpp -msgid "Show debug message" -msgstr "" - -#: src/game.cpp -msgid "Crash game (test crash handling)" -msgstr "" - -#: src/game.cpp -msgid "Spawn Map Extra" -msgstr "" - -#: src/game.cpp -msgid "Toggle NPC pathfinding on map" -msgstr "" - -#: src/game.cpp -msgid "Quit to Main Menu" -msgstr "" - -#: src/game.cpp -msgid "Current overmap revealed." -msgstr "" - -#: src/game.cpp -#, c-format -msgid "Location %d:%d in %d:%d, %s\n" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "" -"Current turn: %d.\n" -"%s\n" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "%d creature exists.\n" -msgid_plural "%d creatures exist.\n" -msgstr[0] "" -msgstr[1] "" - -#: src/game.cpp -msgid "NPCs are going to spawn." -msgstr "" - -#: src/game.cpp -msgid "NPCs are NOT going to spawn." -msgstr "" - -#: src/game.cpp -#, c-format -msgid "%s: map ( %d:%d ) pos ( %d:%d )" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "(you: %d:%d)" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "Stomach Contents: %d ml / %d ml kCal: %d, Water: %d ml" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "" -"Guts Contents: %d ml / %d ml kCal: %d, Water: %d ml\n" -"Hunger: %d, Thirst: %d, kCal: %d / %d" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "%s's head implodes!" -msgstr "" - -#: src/game.cpp -msgid "Choose vehicle to spawn" -msgstr "" - -#. ~ Menu entry in vehicle wish menu: 1st string: displayed name, 2nd string: -#. internal name of vehicle -#: src/game.cpp -#, c-format -msgid "%1$s (%2$s)" -msgstr "" - -#: src/game.cpp -msgid "Martial arts debug." -msgstr "" - -#: src/game.cpp -msgid "Your eyes blink rapidly as knowledge floods your brain." -msgstr "" - -#: src/game.cpp -msgid "You now know a lot more than just 10 styles of kung fu." -msgstr "" - -#: src/game.cpp -msgid "Recipe debug." -msgstr "" - -#: src/game.cpp -msgid "You know how to craft that now." -msgstr "" - -#: src/game.cpp -msgid "Select new weather pattern:" -msgstr "" - -#: src/game.cpp -msgid "Disable weather forcing" -msgstr "" - -#: src/game.cpp -msgid "Keep normal weather patterns" -msgstr "" - -#: src/game.cpp -msgid "Select new wind direction:" -msgstr "" - -#: src/game.cpp -msgid "Disable direction forcing" -msgstr "" - -#: src/game.cpp -msgid "Keep normal wind direction" -msgstr "" - -#: src/game.cpp -msgid "Select new wind speed:" -msgstr "" - -#: src/game.cpp -msgid "Disable speed forcing" -msgstr "" - -#: src/game.cpp -msgid "Keep normal wind speed" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "Damage self for how much? hp: %d" -msgstr "" - -#: src/game.cpp -msgid "This binary was not compiled with tiles support." -msgstr "" - -#: src/game.cpp -msgid "year" -msgstr "év" - -#: src/game.cpp -msgid "season" -msgstr "évszak" - -#: src/game.cpp -msgid "day" -msgstr "nap" - -#: src/game.cpp -msgid "hour" -msgstr "óra" - -#: src/game.cpp -msgid "minute" -msgstr "perc" - -#: src/game.cpp src/martialarts.cpp src/martialarts.cpp -msgid "turn" -msgid_plural "turns" -msgstr[0] "" -msgstr[1] "" - -#: src/game.cpp -msgid "Set year to?" -msgstr "Hanyadik év legyen?" - -#: src/game.cpp -msgid "Set season to? (0 = spring)" -msgstr "Melyik évszak legyen? (0 = tavasz)" - -#: src/game.cpp -msgid "Set days to?" -msgstr "Hanyadik nap legyen?" - -#: src/game.cpp -msgid "Set hour to?" -msgstr "Hanyadik óra legyen?" - -#: src/game.cpp -msgid "Set minute to?" -msgstr "Hanyadik perc legyen?" - -#: src/game.cpp -#, c-format -msgid "Set turn to? (One day is %i turns)" -msgstr "Hanyadik kör legyen? (Egy nap %i kör)" - -#: src/game.cpp -msgid "Enter benchmark length (in milliseconds):" -msgstr "" - -#: src/game.cpp -msgid "" -"Quit without saving? This may cause issues such as duplicated or missing " -"items and vehicles!" -msgstr "" -"Mentés nélkül lépsz ki? Ez gondokat okozhat, például duplikált vagy hiányzó " -"tárgyakat és járműveket!" - #: src/game.cpp msgid "You haven't killed any monsters yet!" msgstr "Még egy szörnyet sem öltél meg!" @@ -153468,14 +154229,6 @@ msgstr "" msgid "Without extra fuel it will burn for %s." msgstr "További tüzelő nélkül még %s órán át fog égni." -#: src/game.cpp -msgid "You can't do that while driving." -msgstr "Ezt vezetés közben nem lehet." - -#: src/game.cpp -msgid "You can't do that on a moving vehicle." -msgstr "Ezt mozgó járművön nem lehet." - #: src/game.cpp #, c-format msgid "The %s is too unstable to remove anything." @@ -155862,6 +156615,22 @@ msgstr "%s innen: %s (%d)" msgid "Draw what?" msgstr "Mit rántasz elő?" +#: src/handle_action.cpp +msgid "Change to which movement mode?" +msgstr "" + +#: src/handle_action.cpp +msgid "Walk" +msgstr "" + +#: src/handle_action.cpp +msgid "Run" +msgstr "" + +#: src/handle_action.cpp +msgid "Crouch" +msgstr "" + #: src/handle_action.cpp msgid "Auto-move canceled" msgstr "Auto-mozgás törölve" @@ -155949,6 +156718,14 @@ msgstr "az alapértelmezett új billentyű '^'" msgid "You can't operate a vehicle while you're in your shell." msgstr "A kagylódba bújva nem tudsz járművet vezetni." +#: src/handle_action.cpp +msgid "Auto travel mode OFF!" +msgstr "" + +#: src/handle_action.cpp +msgid "Auto travel mode ON!" +msgstr "" + #: src/handle_action.cpp msgid "Safe mode ON!" msgstr "Biztonságos mód BE!" @@ -156519,6 +157296,20 @@ msgstr "Betakarítottad: mákgubó" msgid "You harvest and drop: poppy bud" msgstr "Betakarítottad és elejtetted: mákgubó" +#: src/iexamine.cpp +msgid "The cactus' nettles sting you!" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You harvest: %s." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You harvest and drop: %s." +msgstr "" + #: src/iexamine.cpp msgid "If only you had a shovel to dig up those roots..." msgstr "" @@ -156535,16 +157326,6 @@ msgstr "Betakarítottad és elejtetted: dália gyökér" msgid "Nothing can be harvested from this plant in current season." msgstr "" -#: src/iexamine.cpp -#, c-format -msgid "You harvest: %s." -msgstr "" - -#: src/iexamine.cpp -#, c-format -msgid "You harvest and drop: %s." -msgstr "" - #: src/iexamine.cpp msgid "You couldn't harvest anything." msgstr "Semmit sem tudtál betakarítani" @@ -157417,10 +158198,10 @@ msgstr "" "Kilépés." #: src/iexamine.cpp -msgid "You need an anesthesia kit for autodoc to perform any operation." +msgid "" +"You need an anesthesia kit with at least one charge for autodoc to perform " +"any operation." msgstr "" -"Szükséged van egy altatóorvosi készlethez ahhoz, hogy a robotdoki bármiféle " -"műtétet végrehajtson." #: src/iexamine.cpp msgid "Choose CBM to install" @@ -157478,6 +158259,46 @@ msgstr "Nincsen beépített bionikád." msgid "%1$s doesn't have any bionics installed." msgstr "%1$s testében nincsen beépített bionika." +#: src/iexamine.cpp +msgid "This mill already contains flour." +msgstr "" + +#: src/iexamine.cpp +msgid "Remove it before starting the mill again." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "This rack contains %s, which can't be milled!" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You remove the %s from the mill." +msgstr "" + +#: src/iexamine.cpp +msgid "" +"This mill is empty. Fill it with starchy products such as wheat, barley or " +"oats and try again." +msgstr "" + +#: src/iexamine.cpp +msgid "" +"This mill is overloaded with products, and the millstone can't turn. Remove" +" some and try again." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgctxt "volume units" +msgid "You think that you can load about %s %s in it." +msgstr "" + +#: src/iexamine.cpp +msgid "You remove the brake on the millstone and it slowly starts to turn." +msgstr "" + #: src/iexamine.cpp msgid "This rack already contains smoked food." msgstr "" @@ -157574,6 +158395,132 @@ msgstr "" msgid "You carefully place %s %s in the rack." msgstr "" +#: src/iexamine.cpp +msgid "You can't place more food while it's milling." +msgstr "" + +#: src/iexamine.cpp +msgid "Load mill with what kind of product?" +msgstr "" + +#: src/iexamine.cpp +msgid "You don't have any products that can be milled." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "Insert how many %s into the mill?" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgctxt "item amount and name" +msgid "You carefully place %s %s in the mill." +msgstr "" + +#: src/iexamine.cpp +msgid "The water mill needs to be over shallow flowing water to work." +msgstr "" + +#: src/iexamine.cpp +msgid "The wind mill needs to be outside in the wind to work." +msgstr "" + +#: src/iexamine.cpp +msgid "What to do with the mill?" +msgstr "" + +#: src/iexamine.cpp +msgid "Inspect mill" +msgstr "" + +#: src/iexamine.cpp +msgid "" +"Remove brake and start milling... insert some products for milling first" +msgstr "" + +#: src/iexamine.cpp +msgid "Remove brake and start milling" +msgstr "" + +#: src/iexamine.cpp +msgid "Remove brake and start milling, milling will take about 6 hours." +msgstr "" + +#: src/iexamine.cpp +msgid "Insert products for milling... mill is full" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "Insert products for milling... remaining capacity is %s %s" +msgstr "" + +#: src/iexamine.cpp +msgid "Fill the mill with starchy products such as wheat, barley or oats." +msgstr "" + +#: src/iexamine.cpp +msgid "Remove products from mill" +msgstr "" + +#: src/iexamine.cpp +msgid "Apply brake to mill" +msgstr "" + +#: src/iexamine.cpp +msgid "Applying the brake will stop milling process." +msgstr "" + +#: src/iexamine.cpp +msgid "There's a mill here. It is turning and milling." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "It will finish milling in about %d hour." +msgid_plural "It will finish milling in about %d hours." +msgstr[0] "" +msgstr[1] "" + +#: src/iexamine.cpp +msgid "It will finish milling in less than an hour." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "It should take about %d minutes to finish milling." +msgstr "" + +#: src/iexamine.cpp +msgid "There's a mill here." +msgstr "" + +#: src/iexamine.cpp +msgid "You inspect its contents and find: " +msgstr "" + +#: src/iexamine.cpp +msgid "... that it is empty." +msgstr "" + +#: src/iexamine.cpp +msgid "You see some grains that are not yet milled to fine flour." +msgstr "" + +#: src/iexamine.cpp +msgid "It is already milling." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You remove %s from the mill." +msgstr "" + +#: src/iexamine.cpp +msgid "You stop the milling process." +msgstr "" + #: src/iexamine.cpp msgid "What to do with the smoking rack:" msgstr "" @@ -157678,14 +158625,6 @@ msgstr "" msgid "There's a smoking rack here." msgstr "" -#: src/iexamine.cpp -msgid "You inspect its contents and find: " -msgstr "" - -#: src/iexamine.cpp -msgid "... that it is empty." -msgstr "" - #: src/iexamine.cpp msgid "You see some smoldering embers there." msgstr "" @@ -159563,6 +160502,10 @@ msgstr "|." msgid "\\." msgstr "\\." +#: src/item.cpp +msgid "XX" +msgstr "" + #: src/item.cpp msgid ".." msgstr ".." @@ -170070,6 +171013,11 @@ msgstr "" msgid "You reach out to the trees with your roots." msgstr "" +#: src/mutation.cpp +msgid "" +"You lay next to the trees letting your hair roots tangle with the trees." +msgstr "" + #: src/mutation.cpp msgid "Bionic power storage increased by 100." msgstr "" @@ -171318,6 +172266,10 @@ msgstr "" msgid "Is following you." msgstr "" +#: src/npc.cpp +msgid "Is guiding you." +msgstr "" + #: src/npc.cpp msgid "Will try to kill you or flee from you if you reveal yourself." msgstr "" @@ -171774,10 +172726,6 @@ msgstr "" msgid " If you are interested, I have another job for you." msgstr "" -#: src/npctalk.cpp -msgid "Pleasure doing business!" -msgstr "" - #: src/npctalk.cpp msgid "Shall we resume?" msgstr "Folytassuk?" @@ -171890,23 +172838,6 @@ msgstr "Na mondd csak." msgid "I have news." msgstr "Hírem van." -#: src/npctalk.cpp -#, c-format -msgid "Delivering %s." -msgstr "%s leszállítása." - -#: src/npctalk.cpp -msgid "Works for me." -msgstr "Nekem jó." - -#: src/npctalk.cpp -msgid "You might be seeing more of me..." -msgstr "Többet fogtok látni..." - -#: src/npctalk.cpp -msgid "Delivering bandages." -msgstr "Kötszer leszállítása." - #: src/npctalk.cpp msgid "Yes, let's resume training " msgstr "" @@ -172139,11 +173070,6 @@ msgstr "" msgid "My current location" msgstr "" -#: src/npctalk_funcs.cpp -#, c-format -msgid "I'm willing to pay %s per batch for a total of %s" -msgstr "" - #. ~ %1$s is the NPC's translated name, %2$s is the translated faction camp #. name #: src/npctalk_funcs.cpp @@ -175220,6 +176146,10 @@ msgstr "" msgid "Wield:" msgstr "" +#: src/panels.cpp +msgid "Style:" +msgstr "" + #: src/panels.cpp msgid "Food :" msgstr "" @@ -175383,6 +176313,18 @@ msgstr "Túl vagy terhelve!" msgid "You struggle to carry such a large volume!" msgstr "Nehezen tudsz hordozni egy ekkora térfogatú tárgyat!" +#: src/pickup.cpp +msgid "Get items from vehicle cargo" +msgstr "" + +#: src/pickup.cpp +msgid "Get items from where?" +msgstr "" + +#: src/pickup.cpp src/vehicle_use.cpp +msgid "Get items on the ground" +msgstr "Földön heverő tárgyak felvétele" + #: src/pickup.cpp msgid "Next page" msgstr "Köv. oldal" @@ -175883,11 +176825,11 @@ msgid "You're too tired to run." msgstr "Túl fáradt vagy a futáshoz." #: src/player.cpp -msgid "You start walking." +msgid "You start crouching." msgstr "" #: src/player.cpp -msgid "You start crouching." +msgid "You start walking." msgstr "" #: src/player.cpp @@ -177029,7 +177971,7 @@ msgid "Your shaking legs make you stumble." msgstr "" #: src/player.cpp -msgid " stumbles." msgstr "" #: src/player.cpp @@ -181173,6 +182115,11 @@ msgstr "A(z) %s javításához nem felesz meg a feltételeknek." msgid "You repair the %1$s's %2$s." msgstr "Megszereled a(z) %1$s %2$st." +#: src/veh_utils.cpp +#, c-format +msgid "You replace the %1$s's %2$s." +msgstr "" + #: src/vehicle.cpp msgid "Lost connection with the vehicle due to distance!" msgstr "A távolság miatt a járművel megszakadt a kapcsolat!" @@ -181582,10 +182529,6 @@ msgstr " (hibás)" msgid " holding %s" msgstr "" -#: src/vehicle_part.cpp -msgid "XX" -msgstr "" - #: src/vehicle_part.cpp #, c-format msgid "Insufficient power to enable %s" @@ -182048,10 +182991,6 @@ msgstr "" msgid "Activate the washing machine (1.5 hours)" msgstr "" -#: src/vehicle_use.cpp -msgid "Get items on the ground" -msgstr "Földön heverő tárgyak felvétele" - #: src/vehicle_use.cpp msgid "Use the hotplate" msgstr "Rezsó használata" diff --git a/lang/po/ja.po b/lang/po/ja.po index 7278bcaa4f214..f5e41c2c374a7 100644 --- a/lang/po/ja.po +++ b/lang/po/ja.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-26 14:19+0800\n" +"POT-Creation-Date: 2019-05-03 13:47+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" "Last-Translator: Pigmentblue15, 2019\n" "Language-Team: Japanese (https://www.transifex.com/cataclysm-dda-translators/teams/2217/ja/)\n" @@ -38,8 +38,9 @@ msgstr[0] "電池" #. ~ Description for battery #: lang/json/AMMO_from_json.py msgid "" -"A set of universal batteries. Used to charge almost any electronic device." -msgstr "国際標準設計の電池です。ほとんどの電子機器に対応しています。" +"Some free-floating battery charge. This can be reloaded into rechargable " +"battery cells, but can never be unloaded." +msgstr "浮動充電可能な電池です。充電式の電池に充填できますが、一度充填すると抜き取れません。" #: lang/json/AMMO_from_json.py msgid "aluminum foil" @@ -909,19 +910,18 @@ msgid "" "enemies. Stands a good chance of remaining intact once fired." msgstr "矢羽とゴム製の鈍い矢尻が付いた木製の矢です。弱い標的であれば気絶させることができます。放った矢がほぼ確実に地面に残ります。" -#: lang/json/AMMO_from_json.py -msgid "anesthetic kit" -msgstr "麻酔キット" +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "anesthetic" +msgstr "麻酔薬" -#. ~ Description for anesthetic kit +#. ~ Description for anesthetic #: lang/json/AMMO_from_json.py msgid "" -"A kit for inducing anesthesia for surgery, containing specialized canisters " -"with a variety of powerful hypnotic, analgetic, and stimulative drugs. It's" -" intended for use in specialized medical equipment, and can't be " -"administered manually." +"A variety of powerful hypnotic, analgetic, and stimulative drugs. It's " +"intended for use in specialized medical equipment, and can't be administered" +" manually. You can reload an anesthetic kit with it." msgstr "" -"強力な睡眠剤、鎮痛剤、興奮剤といった薬剤入りの特殊な容器を備えた手術用の麻酔キットです。特殊な医療機器で使うものであり、手作業での使用は不可能です。" +"強力な睡眠、鎮痛、興奮などの作用を持つ薬剤です。特殊な医療機器での利用を目的としており、直接使うことはできません。麻酔キットに充填できます。" #: lang/json/AMMO_from_json.py msgid "sulfur" @@ -1554,6 +1554,18 @@ msgid "" "Petroleum-based fuel made from a byproduct of the gasoline making process." msgstr "ガソリンの精製過程で得られる副産物の一種です。主にディーゼルエンジンの燃料として用いられます。" +#: lang/json/AMMO_from_json.py +msgid "biodiesel" +msgid_plural "biodiesel" +msgstr[0] "バイオディーゼル" + +#. ~ Description for biodiesel +#: lang/json/AMMO_from_json.py +msgid "" +"Vegetable oil- or animal fat-based diesel fuel consisting of long-chain " +"alkyl (methyl, ethyl, or propyl) esters." +msgstr "長鎖アルキル(メチル、エチル、またはプロピル)エステルを含む、植物油、あるいは動物脂肪を原料としたディーゼル燃料です。" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "gasoline" msgid_plural "gasoline" @@ -1742,6 +1754,32 @@ msgid "" msgstr "" "21世紀半ばには、軍部はエネルギーを基準とした武器に目を向けるようになりました。その結果として、反動が無く、光速に近い過熱ガスの矢を生み出す、標準的な核融合パックが生まれました。これはスペアパーツから手作りされたものです。" +#: lang/json/AMMO_from_json.py +msgid "throwing stick" +msgstr "投擲棒" + +#. ~ Description for throwing stick +#: lang/json/AMMO_from_json.py +msgid "" +"A stick carved into a shape suitable for throwing at a target. Not a " +"boomerang, so don't expect it to return to your hand." +msgstr "投げやすいように適当な形に整えられた棒です。ブーメランではないので、手元に戻ってくる事はありません。" + +#: lang/json/AMMO_from_json.py +msgid "anesthetic kit" +msgstr "麻酔キット" + +#. ~ Description for anesthetic kit +#. ~ Description for anesthesia kit +#: lang/json/AMMO_from_json.py lang/json/TOOL_from_json.py +msgid "" +"A kit for inducing anesthesia for surgery, containing specialized canisters " +"with a variety of powerful hypnotic, analgetic, and stimulative drugs. It's" +" intended for use in specialized medical equipment, and can't be " +"administered manually." +msgstr "" +"強力な睡眠剤、鎮痛剤、興奮剤といった薬剤入りの特殊な容器を備えた手術用の麻酔キットです。特殊な医療機器で使うものであり、手作業での使用は不可能です。" + #: lang/json/AMMO_from_json.py msgid "H&K 12mm" msgstr "弾薬(12mm/H&K G80)" @@ -2251,6 +2289,60 @@ msgid "reloaded .38 Super" msgid_plural "reloaded .38 Super" msgstr[0] "弾薬(.38口径/スーパー(手詰め))" +#: lang/json/AMMO_from_json.py +msgid ".380 ACP FMJ" +msgstr "弾薬(.380口径/ACP FMJ)" + +#. ~ Description for .380 ACP FMJ +#: lang/json/AMMO_from_json.py +msgid "" +".380 ACP ammunition with a brass jacketed 95gr bullet. Popular in pocket " +"pistols for over a century, it is often considered the weakest caliber to " +"consider carrying. One should be careful not to chamber it in 9x18mm " +"Makarov or 9x19mm firearms." +msgstr "" +"弾芯が真鍮で覆われた弾頭重量約6.1gの.380口径ACP弾です。小型拳銃用の弾薬として1世紀以上に渡り高い人気を誇っていますが、携行できる中では最も威力の低い口径とも見なされています。口径が9x18mmのマカロフや9x19mmの銃器に間違って装填しないよう気をつけましょう。" + +#: lang/json/AMMO_from_json.py +msgid ".380 ACP JHP" +msgstr "弾薬(.380口径/ACP JHP)" + +#. ~ Description for .380 ACP JHP +#: lang/json/AMMO_from_json.py +msgid "" +".380 ACP ammunition with a 95gr jacketed hollow point bullet. It is a " +"popular round for small concealable backup pistols, and often the weakest " +"recommended defensive caliber. One should be careful not to chamber it in " +"9x18mm Makarov or 9x19mm firearms." +msgstr "" +"弾頭重量約6.1gの.380口径ホローポイント弾です。隠し持てるサイズのバックアップピストル用弾薬として高い人気を誇っていますが、自己防衛用としては最も威力の低い口径とも見なされています。口径が9x18mmのマカロフや9x19mmの銃器に間違って装填しないよう気をつけましょう。" + +#: lang/json/AMMO_from_json.py +msgid ".380 ACP +P" +msgstr "弾薬(.380口径/ACP +P)" + +#. ~ Description for .380 ACP +P +#: lang/json/AMMO_from_json.py +msgid "" +"Overpressure .380 ACP ammunition with a 90gr jacketed hollow point bullet. " +"These defensive loadings are designed to maximise performance and tend to be" +" more accurate than practice ammo. One should be careful not to chamber it " +"in 9x18mm Makarov or 9x19mm firearms." +msgstr "" +"弾頭重量約5.8gの.380口径ホローポイントACP/強装弾です。自己防衛用としては最大の威力を発揮する弾薬であり、訓練用の弾薬より精密な射撃が可能です。口径が9x18mmのマカロフや9x19mmの銃器に間違って装填しないよう気をつけましょう。" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP FMJ" +msgstr "弾薬(.380口径/ACP FMJ(手詰め))" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP JHP" +msgstr "弾薬(.380口径/ACP JHP(手詰め))" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP +P" +msgstr "弾薬(.380口径/ACP +P(手詰め))" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "10mm Auto" msgid_plural "10mm Auto" @@ -3982,18 +4074,6 @@ msgid "" "intact once fired." msgstr "矢羽が付いた鋭利な骨製ボルトです。軽量で、相当の殺傷力と精度をもっています。放った矢が約9割の確率で地面に残ります。" -#: lang/json/AMMO_from_json.py -msgid "throwing stick" -msgid_plural "throwing sticks" -msgstr[0] "投擲棒" - -#. ~ Description for throwing stick -#: lang/json/AMMO_from_json.py -msgid "" -"A stick carved into a shape suitable for throwing at a target. Not a " -"boomerang, so don't expect it to return to your hand." -msgstr "投げやすいように適当な形に整えられた棒です。ブーメランではないので、手元に戻ってくる事はありません。" - #: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py msgid "wooden javelin" msgid_plural "wooden javelins" @@ -5722,11 +5802,11 @@ msgstr[0] "チェインメイルアーム" #. ~ Description for pair of chainmail sleeves #: lang/json/ARMOR_from_json.py msgid "" -"Customized chainmail arms. Each sleeve has leather straps to connect them " -"with each other. The lack of fingers makes them less cumbersome and allows " -"them to be used with gloves." +"Customized chainmail arms. Each sleeve has straps to connect them with each" +" other. The lack of fingers makes them less cumbersome and allows them to " +"be used with gloves." msgstr "" -"チェインメイルで作られた特製腕装甲です。袖にはベストと接合するための革ひもが付いています。指の部分は動きやすいように空いているので、手袋と併用できます。" +"チェインメイルで作られた特製腕装甲です。袖にはベストと接合するためのストラップが付いています。指の部分は動きやすいように空いているので、手袋と併用できます。" #: lang/json/ARMOR_from_json.py msgid "chainmail coif" @@ -5746,10 +5826,10 @@ msgstr[0] "チェインメイルレギンス" #. ~ Description for chainmail leggings #: lang/json/ARMOR_from_json.py msgid "" -"Customized chainmail legs. Their leather straps keep everything in place, " -"and the lack of toes and heels allows them to work perfectly well with " -"footwear." -msgstr "チェインメイルで作られた特製脚部装甲です。固定用の革ひもが付いており、履物をはいても邪魔にならないようにつま先とかかと部分が開いています。" +"Customized chainmail legs. Their straps keep everything in place, and the " +"lack of toes and heels allows them to work perfectly well with footwear." +msgstr "" +"チェインメイルで作られた特製脚部装甲です。固定用のストラップが付いており、履物をはいても邪魔にならないようにつま先とかかと部分が開いています。" #: lang/json/ARMOR_from_json.py msgid "chainmail hauberk" @@ -5760,10 +5840,11 @@ msgstr[0] "チェインメイルホーバーク" #: lang/json/ARMOR_from_json.py msgid "" "A fully customized chainmail outfit, leaving the head uncovered. The shirt," -" arms, and leggings have been modified with leather straps to deal with " -"uneven weight distribution and to allow them to be used separately." +" arms, and leggings have been modified with straps and combined with a " +"gambeson to deal with uneven weight distribution, cold environments and to " +"allow them to be used separately." msgstr "" -"頭部以外を完全に覆った、チェインメイルで作られた特製鎧です。不均一な重量にうまく対処し、個別使用もできるように、上着、腕、レギンスがそれぞれ革ひもで連結されています" +"頭部以外を完全に覆った、チェインメイルで作られた特製鎧です。不均一な重量にうまく対処し、個別使用もできるように、上着、腕、レギンスがそれぞれストラップで連結されています" #: lang/json/ARMOR_from_json.py msgid "chainmail armor" @@ -5774,10 +5855,11 @@ msgstr[0] "チェインメイルアーマー" #: lang/json/ARMOR_from_json.py msgid "" "A fully customized chainmail suit. The coif, shirt, arms, and leggings have" -" been modified with leather straps to deal with uneven weight distribution " -"and to allow them to be used separately." +" been modified with straps and combined with a gambeson to deal with uneven " +"weight distribution, cold environments and to allow them to be used " +"separately." msgstr "" -"チェインメイルで作られた特製の鎧です。不均一な重量にうまく対処し、個別使用もできるように、フード、上着、腕、レギンスがそれぞれ革ひもで連結されています。" +"チェインメイルで作られた特製鎧です。コイフ、上着、腕、レギンスとギャンベソンがそれぞれストラップで連結されており、不均一な重量を上手く調整し、寒冷環境で個別に着用できるようになっています。" #: lang/json/ARMOR_from_json.py msgid "chainmail vest" @@ -5788,8 +5870,8 @@ msgstr[0] "チェインメイルベスト" #: lang/json/ARMOR_from_json.py msgid "" "A customized chainmail vest. It's a sleeveless piece of chainmail with " -"small leather straps designed to better distribute the weight." -msgstr "チェインメイルで作られた特製ベストです。細い革ひもでチェインメイルの袖を接合し、鎧の重量を上手く分散します。" +"small straps designed to better distribute the weight." +msgstr "チェインメイルで作られた特製ベストです。細いストラップでチェインメイルの袖を接合し、鎧の重量を上手く分散します。" #: lang/json/ARMOR_from_json.py msgid "leather chaps" @@ -11916,6 +11998,19 @@ msgid "" " gun." msgstr "素速く抜けることを重視した、着け心地の良いホルスターです。小型の銃を収納できます。使用すると銃の収納/装備を行います。" +#: lang/json/ARMOR_from_json.py +msgid "deep concealment holster" +msgid_plural "deep concealment holsters" +msgstr[0] "コンシールメントホルスター" + +#. ~ Description for deep concealment holster +#: lang/json/ARMOR_from_json.py +msgid "" +"An elastic band with numerous provisions for concealing a very small pistol " +"close to the body. It is awkward to use without practice. Activate to " +"holster/draw a gun." +msgstr "非常に小さな拳銃を身体に密着させて隠し持つためのゴムバンドです。何の訓練もなしに使うのは困難です。使用すると銃を収納/装備します。" + #: lang/json/ARMOR_from_json.py msgid "survivor harness" msgid_plural "survivor harnesses" @@ -12389,8 +12484,8 @@ msgid "Active Defense System CBM" msgid_plural "Active Defense System CBMs" msgstr[0] "CBM: 積極防御システム" -#. ~ Description for Active Defense System #. ~ Description for Active Defense System CBM +#. ~ Description for Active Defense System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A thin forcefield surrounds your body, continually draining power. Anything" @@ -12405,8 +12500,8 @@ msgid "Advanced Microreactor CBM" msgid_plural "Advanced Microreactor CBMs" msgstr[0] "CBM: 高度体内マイクロ反応炉" -#. ~ Description for Advanced Microreactor System #. ~ Description for Advanced Microreactor CBM +#. ~ Description for Advanced Microreactor System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This stripped down mini-reactor is safer than it appears due to integrated " @@ -12419,8 +12514,8 @@ msgid "Alarm System CBM" msgid_plural "Alarm System CBMs" msgstr[0] "CBM: 警報システム" -#. ~ Description for Alarm System #. ~ Description for Alarm System CBM +#. ~ Description for Alarm System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A motion-detecting alarm system will notice almost all movement within a " @@ -12495,8 +12590,8 @@ msgid "Battery System CBM" msgid_plural "Battery System CBMs" msgstr[0] "CBM: バッテリーシステム" -#. ~ Description for Battery System #. ~ Description for Battery System CBM +#. ~ Description for Battery System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have a battery draining attachment, and thus can make use of the energy " @@ -12509,8 +12604,8 @@ msgid "Monomolecular Blade CBM" msgid_plural "Monomolecular Blade CBMs" msgstr[0] "CBM: 単分子ブレード" -#. ~ Description for Monomolecular Blade #. ~ Description for Monomolecular Blade CBM +#. ~ Description for Monomolecular Blade #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A deadly foot-long blade made of advanced material now resides inside your " @@ -12564,8 +12659,8 @@ msgid "Blood Filter CBM" msgid_plural "Blood Filter CBMs" msgstr[0] "CBM: 血液ろ過システム" -#. ~ Description for Blood Filter #. ~ Description for Blood Filter CBM +#. ~ Description for Blood Filter #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A filtration system in your heart allows you to actively filter out chemical" @@ -12593,8 +12688,8 @@ msgid "Subdermal Carbon Filament CBM" msgid_plural "Subdermal Carbon Filament CBMs" msgstr[0] "CBM: 皮下カーボンフィラメント" -#. ~ Description for Subdermal Carbon Filament #. ~ Description for Subdermal Carbon Filament CBM +#. ~ Description for Subdermal Carbon Filament #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Lying just beneath your skin is a thin armor made of carbon nanotubes. This" @@ -12606,8 +12701,8 @@ msgid "Chain Lightning CBM" msgid_plural "Chain Lightning CBMs" msgstr[0] "CBM: チェインライトニング" -#. ~ Description for Chain Lightning #. ~ Description for Chain Lightning CBM +#. ~ Description for Chain Lightning #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your body is equipped with a chain lightning generator, allowing you to emit" @@ -12636,8 +12731,8 @@ msgid "Internal Climate Control CBM" msgid_plural "Internal Climate Control CBMs" msgstr[0] "CBM: 体温制御装置" -#. ~ Description for Internal Climate Control #. ~ Description for Internal Climate Control CBM +#. ~ Description for Internal Climate Control #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Throughout your body lies a network of thermal piping which eases the " @@ -12649,8 +12744,8 @@ msgid "Cloaking System CBM" msgid_plural "Cloaking System CBMs" msgstr[0] "CBM: 擬装システム" -#. ~ Description for Cloaking System #. ~ Description for Cloaking System CBM +#. ~ Description for Cloaking System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This high-power system uses a set of cameras and LEDs to make you blend into" @@ -12679,8 +12774,8 @@ msgid "Wired Reflexes CBM" msgid_plural "Wired Reflexes CBMs" msgstr[0] "CBM: 反射神経活性化" -#. ~ Description for Wired Reflexes #. ~ Description for Wired Reflexes CBM +#. ~ Description for Wired Reflexes #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your reaction time has been greatly enhanced with bionic nerve stimulators, " @@ -12692,8 +12787,8 @@ msgid "Expanded Digestive System CBM" msgid_plural "Expanded Digestive System CBMs" msgstr[0] "CBM: 消化器官拡張" -#. ~ Description for Expanded Digestive System #. ~ Description for Expanded Digestive System CBM +#. ~ Description for Expanded Digestive System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have been outfitted with three synthetic stomachs and industrial-grade " @@ -12708,8 +12803,8 @@ msgid "Enhanced Hearing CBM" msgid_plural "Enhanced Hearing CBMs" msgstr[0] "CBM: 聴力強化装置" -#. ~ Description for Enhanced Hearing #. ~ Description for Enhanced Hearing CBM +#. ~ Description for Enhanced Hearing #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "When this bionic is active, your hearing will be drastically improved, " @@ -12736,8 +12831,8 @@ msgid "EMP Projector CBM" msgid_plural "EMP Projector CBMs" msgstr[0] "CBM: EMPプロジェクター" -#. ~ Description for EMP Projector #. ~ Description for EMP Projector CBM +#. ~ Description for EMP Projector #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A ranged EMP generator system is implanted on the palm of your right hand " @@ -12751,8 +12846,8 @@ msgid "Ethanol Burner CBM" msgid_plural "Ethanol Burner CBMs" msgstr[0] "CBM: エタノール燃焼装置" -#. ~ Description for Ethanol Burner #. ~ Description for Ethanol Burner CBM +#. ~ Description for Ethanol Burner #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You burn alcohol as fuel in an extremely efficient reaction. However, you " @@ -12764,8 +12859,8 @@ msgid "Aero-Evaporator CBM" msgid_plural "Aero-Evaporator CBMs" msgstr[0] "CBM: 水蒸気液化装置" -#. ~ Description for Aero-Evaporator #. ~ Description for Aero-Evaporator CBM +#. ~ Description for Aero-Evaporator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This unit draws moisture from the surrounding air, which then is poured from" @@ -12777,8 +12872,8 @@ msgid "Diamond Cornea CBM" msgid_plural "Diamond Cornea CBMs" msgstr[0] "CBM: ダイヤモンド角膜" -#. ~ Description for Diamond Cornea #. ~ Description for Diamond Cornea CBM +#. ~ Description for Diamond Cornea #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Your vision is greatly enhanced, giving you a +2 bonus to perception." msgstr "視力を大幅に強化します。 感覚に+2のボーナスを得ます。" @@ -12803,8 +12898,8 @@ msgid "Facial Distortion CBM" msgid_plural "Facial Distortion CBMs" msgstr[0] "CBM: 表情調整装置" -#. ~ Description for Facial Distortion #. ~ Description for Facial Distortion CBM +#. ~ Description for Facial Distortion #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Through controlled application of electrochemical impulses, you are capable " @@ -12817,8 +12912,8 @@ msgid "Dielectric Capacitance System CBM" msgid_plural "Dielectric Capacitance System CBMs" msgstr[0] "CBM: 誘電装置" -#. ~ Description for Dielectric Capacitance System #. ~ Description for Dielectric Capacitance System CBM +#. ~ Description for Dielectric Capacitance System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Throughout your body lies a network of miniature piezoelectric capacitors " @@ -12882,8 +12977,8 @@ msgid "Internal Furnace CBM" msgid_plural "Internal Furnace CBMs" msgstr[0] "CBM: 体内炉" -#. ~ Description for Internal Furnace #. ~ Description for Internal Furnace CBM +#. ~ Description for Internal Furnace #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "When this bionic is active, you can burn nearly any organic material as fuel" @@ -12923,8 +13018,8 @@ msgid "Terranian Sonar CBM" msgid_plural "Terranian Sonar CBMs" msgstr[0] "CBM: 地中音波探知装置" -#. ~ Description for Terranian Sonar #. ~ Description for Terranian Sonar CBM +#. ~ Description for Terranian Sonar #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your feet are equipped with precision sonar equipment, allowing you to " @@ -12937,8 +13032,8 @@ msgid "Heat Drain CBM" msgid_plural "Heat Drain CBMs" msgstr[0] "CBM: 体温吸収装置" -#. ~ Description for Heat Drain #. ~ Description for Heat Drain CBM +#. ~ Description for Heat Drain #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While fighting unarmed against a warm-blooded opponent, there is a chance " @@ -12965,8 +13060,8 @@ msgid "Hydraulic Muscles CBM" msgid_plural "Hydraulic Muscles CBMs" msgstr[0] "CBM: 油圧式筋肉" -#. ~ Description for Hydraulic Muscles #. ~ Description for Hydraulic Muscles CBM +#. ~ Description for Hydraulic Muscles #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While activated, your muscles will be greatly enhanced, increasing your " @@ -12978,8 +13073,8 @@ msgid "Infrared Vision CBM" msgid_plural "Infrared Vision CBMs" msgstr[0] "CBM: 赤外線視" -#. ~ Description for Infrared Vision #. ~ Description for Infrared Vision CBM +#. ~ Description for Infrared Vision #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your range of vision extends into the infrared, allowing you to see warm-" @@ -12991,8 +13086,8 @@ msgid "Cerebral Booster CBM" msgid_plural "Cerebral Booster CBMs" msgstr[0] "CBM: 大脳ブースター" -#. ~ Description for Cerebral Booster #. ~ Description for Cerebral Booster CBM +#. ~ Description for Cerebral Booster #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your brain has been enhanced with bionic coprocessors, giving you a +2 bonus" @@ -13018,8 +13113,8 @@ msgid "Leukocyte Breeder System CBM" msgid_plural "Leukocyte Breeder System CBMs" msgstr[0] "CBM: 白血球増殖システム" -#. ~ Description for Leukocyte Breeder System #. ~ Description for Leukocyte Breeder System CBM +#. ~ Description for Leukocyte Breeder System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You are equipped with bionic stimulators which augment your haematopoiesis " @@ -13034,8 +13129,8 @@ msgid "Mini-Flamethrower CBM" msgid_plural "Mini-Flamethrower CBMs" msgstr[0] "CBM: 小型火炎放射器" -#. ~ Description for Mini-Flamethrower #. ~ Description for Mini-Flamethrower CBM +#. ~ Description for Mini-Flamethrower #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "The index fingers of both hands have powerful fire starters which extend " @@ -13072,8 +13167,8 @@ msgid "Nictating Membrane CBM" msgid_plural "Nictating Membrane CBMs" msgstr[0] "CBM: 人工透明瞬膜" -#. ~ Description for Nictating Membrane #. ~ Description for Nictating Membrane CBM +#. ~ Description for Nictating Membrane #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your eyes have a thin membrane that closes over your eyes while underwater, " @@ -13098,8 +13193,8 @@ msgid "Metabolic Interchange CBM" msgid_plural "Metabolic Interchange CBMs" msgstr[0] "CBM: 新陳代謝相互変換装置" -#. ~ Description for Metabolic Interchange #. ~ Description for Metabolic Interchange CBM +#. ~ Description for Metabolic Interchange #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your digestive system and power supply are interconnected. Bionic energy is" @@ -13112,8 +13207,8 @@ msgid "Weather Reader CBM" msgid_plural "Weather Reader CBMs" msgstr[0] "CBM: 気象表示装置" -#. ~ Description for Weather Reader #. ~ Description for Weather Reader CBM +#. ~ Description for Weather Reader #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A multitude of scientific instruments and sensors collect environmental " @@ -13126,8 +13221,8 @@ msgid "Repair Nanobots CBM" msgid_plural "Repair Nanobots CBMs" msgstr[0] "CBM: 修復用ナノマシン" -#. ~ Description for Repair Nanobots #. ~ Description for Repair Nanobots CBM +#. ~ Description for Repair Nanobots #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Inside your body is a fleet of tiny dormant robots. While activated they " @@ -13140,8 +13235,8 @@ msgid "Artificial Night Generator CBM" msgid_plural "Artificial Night Generator CBMs" msgstr[0] "CBM: 人工暗闇発生装置" -#. ~ Description for Artificial Night Generator #. ~ Description for Artificial Night Generator CBM +#. ~ Description for Artificial Night Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Destructive interference eliminates all light within a 15 tile radius." msgstr "光を阻害する物質を散布する装置です。破壊的な干渉によって半径15タイル以内への光は届かなくなります。" @@ -13163,8 +13258,8 @@ msgid "Offensive Defense System CBM" msgid_plural "Offensive Defense System CBMs" msgstr[0] "CBM: 攻勢防衛システム" -#. ~ Description for Offensive Defense System #. ~ Description for Offensive Defense System CBM +#. ~ Description for Offensive Defense System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A thin forcefield surrounds your body, continually draining power. This " @@ -13178,8 +13273,8 @@ msgid "Sensory Dulling CBM" msgid_plural "Sensory Dulling CBMs" msgstr[0] "CBM: 知覚鈍化" -#. ~ Description for Sensory Dulling #. ~ Description for Sensory Dulling CBM +#. ~ Description for Sensory Dulling #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your nervous system is wired to allow you to inhibit the signals of pain, " @@ -13205,8 +13300,8 @@ msgid "Power Armor Interface CBM" msgid_plural "Power Armor Interface CBMs" msgstr[0] "CBM: パワーアーマーインターフェース" -#. ~ Description for Power Armor Interface #. ~ Description for Power Armor Interface CBM +#. ~ Description for Power Armor Interface #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Interfaces your power system with the internal charging port on suits of " @@ -13218,8 +13313,8 @@ msgid "Power Armor Mk. II Interface CBM" msgid_plural "Power Armor Mk. II Interface CBMs" msgstr[0] "CBM: パワーアーマーインターフェース MK. II" -#. ~ Description for Power Armor Interface Mk. II #. ~ Description for Power Armor Mk. II Interface CBM +#. ~ Description for Power Armor Interface Mk. II #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Interfaces your power system with the internal charging port on suits of " @@ -13233,8 +13328,8 @@ msgid "Power Storage CBM" msgid_plural "Power Storage CBMs" msgstr[0] "CBM: 蓄電装置" -#. ~ Description for Power Storage #. ~ Description for Power Storage CBM +#. ~ Description for Power Storage #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Compact Bionics Module that upgrades your power capacity by 100 units. " @@ -13247,8 +13342,8 @@ msgid "Power Storage CBM Mk. II" msgid_plural "Power Storage CBMs Mk. II" msgstr[0] "CBM: 蓄電装置 Mk. II" -#. ~ Description for Power Storage Mk. II #. ~ Description for Power Storage CBM Mk. II +#. ~ Description for Power Storage Mk. II #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Compact Bionics Module developed at DoubleTech Industries as a replacement " @@ -13261,8 +13356,8 @@ msgid "Probability Travel CBM" msgid_plural "Probability Travel CBMs" msgstr[0] "CBM: 確率的透過" -#. ~ Description for Probability Travel #. ~ Description for Probability Travel CBM +#. ~ Description for Probability Travel #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Increases your body's wavelength, allowing you to quantum tunnel through " @@ -13302,23 +13397,22 @@ msgid "Railgun CBM" msgid_plural "Railgun CBMs" msgstr[0] "CBM: レールガン" -#. ~ Description for Railgun #. ~ Description for Railgun CBM -#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +#: lang/json/BIONIC_ITEM_from_json.py msgid "" -"EM field generators in your arms double the range and damage of thrown iron " -"and steel objects at a cost of 1 power per throw, causing them to leave a " -"trail of electricity that can cause additional damage." +"EM field generators in your arms increase the range and damage of thrown " +"iron and steel objects at a cost of 1 power per throw, causing them to leave" +" a trail of electricity that can cause additional damage." msgstr "" -"腕に磁界発生装置を取り付けます。起動した状態で鉄や鋼など磁性体を投擲すると、威力と射程の増加に加え始点から着弾点までの間に電気の道が走ります。" +"腕に磁界発生装置を取り付けます。起動した状態で鉄や鋼など磁性体を投擲すると、電力を1消費して威力と射程を上昇させ、更に弾道に電撃が走り追加ダメージを与えます。" #: lang/json/BIONIC_ITEM_from_json.py msgid "Fingertip Razors CBM" msgid_plural "Fingertip Razors CBMs" msgstr[0] "CBM: 指先剃刀" -#. ~ Description for Fingertip Razors #. ~ Description for Fingertip Razors CBM +#. ~ Description for Fingertip Razors #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You possess razor-sharp retractable claws underneath your fingernails, ten " @@ -13332,8 +13426,8 @@ msgid "Internal Microreactor CBM" msgid_plural "Internal Microreactor CBMs" msgstr[0] "CBM: 体内マイクロ反応炉" -#. ~ Description for Microreactor System #. ~ Description for Internal Microreactor CBM +#. ~ Description for Microreactor System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This stripped down mini-reactor may not be the best thing to have in your " @@ -13359,8 +13453,8 @@ msgid "Recycler Unit CBM" msgid_plural "Recycler Unit CBMs" msgstr[0] "CBM: 再利用ユニット" -#. ~ Description for Recycler Unit #. ~ Description for Recycler Unit CBM +#. ~ Description for Recycler Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your digestive system has been outfitted with a series of filters and " @@ -13375,8 +13469,8 @@ msgid "Remote Controller CBM" msgid_plural "Remote Controller CBMs" msgstr[0] "CBM: 遠隔制御装置" -#. ~ Description for Remote Controller #. ~ Description for Remote Controller CBM +#. ~ Description for Remote Controller #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A small module connected to your brain allows you to interface with nearby " @@ -13388,8 +13482,8 @@ msgid "Sonic Resonator CBM" msgid_plural "Sonic Resonator CBMs" msgstr[0] "CBM: 音波共鳴装置" -#. ~ Description for Sonic Resonator #. ~ Description for Sonic Resonator CBM +#. ~ Description for Sonic Resonator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your entire body may resonate at very high power, creating a short-range " @@ -13402,8 +13496,8 @@ msgid "Olfactory Mask CBM" msgid_plural "Olfactory Mask CBMs" msgstr[0] "CBM: 嗅覚偽装" -#. ~ Description for Olfactory Mask #. ~ Description for Olfactory Mask CBM +#. ~ Description for Olfactory Mask #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While this system is powered, your body will produce very little odor, " @@ -13415,8 +13509,8 @@ msgid "Scent Vision CBM" msgid_plural "Scent Vision CBMs" msgstr[0] "CBM: 臭跡視" -#. ~ Description for Scent Vision #. ~ Description for Scent Vision CBM +#. ~ Description for Scent Vision #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While this system is powered, you're able to visually sense your own scent, " @@ -13429,8 +13523,8 @@ msgid "Electroshock Unit CBM" msgid_plural "Electroshock Unit CBMs" msgstr[0] "CBM: 電撃ユニット" -#. ~ Description for Electroshock Unit #. ~ Description for Electroshock Unit CBM +#. ~ Description for Electroshock Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While fighting unarmed, or with a weapon that conducts electricity, there is" @@ -13445,8 +13539,8 @@ msgid "Shockwave Generator CBM" msgid_plural "Shockwave Generator CBMs" msgstr[0] "CBM: 衝撃波発生装置" -#. ~ Description for Shockwave Generator #. ~ Description for Shockwave Generator CBM +#. ~ Description for Shockwave Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You generate a powerful shockwave, knocking back all nearby creatures. " @@ -13460,8 +13554,8 @@ msgid "Synaptic Accelerator CBM" msgid_plural "Synaptic Accelerator CBMs" msgstr[0] "CBM: シナプス加速装置" -#. ~ Description for Synaptic Accelerator #. ~ Description for Synaptic Accelerator CBM +#. ~ Description for Synaptic Accelerator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py #, no-python-format msgid "" @@ -13537,8 +13631,8 @@ msgid "Teleportation Unit CBM" msgid_plural "Teleportation Unit CBMs" msgstr[0] "CBM: 瞬間移動装置" -#. ~ Description for Teleportation Unit #. ~ Description for Teleportation Unit CBM +#. ~ Description for Teleportation Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This highly experimental unit folds space over short distances, instantly " @@ -13552,8 +13646,8 @@ msgid "Time Dilation CBM" msgid_plural "Time Dilation CBMs" msgstr[0] "CBM: 時間拡張システム" -#. ~ Description for Time Dilation #. ~ Description for Time Dilation CBM +#. ~ Description for Time Dilation #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "At the cost of all stored bionic power, you may increase your body speed and" @@ -13567,8 +13661,8 @@ msgid "Integrated Toolset CBM" msgid_plural "Integrated Toolset CBMs" msgstr[0] "CBM: 内蔵工具セット" -#. ~ Description for Integrated Toolset #. ~ Description for Integrated Toolset CBM +#. ~ Description for Integrated Toolset #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Surgically implanted in your hands and fingers is a complete tool set - " @@ -13596,8 +13690,8 @@ msgid "Joint Servo CBM" msgid_plural "Joint Servo CBMs" msgstr[0] "CBM: 関節サーボモーター" -#. ~ Description for Joint Servo #. ~ Description for Joint Servo CBM +#. ~ Description for Joint Servo #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your leg joints have been equipped with servomotors that provide power-" @@ -13612,8 +13706,8 @@ msgid "Uncanny Dodge CBM" msgid_plural "Uncanny Dodge CBMs" msgstr[0] "CBM: 超回避システム" -#. ~ Description for Uncanny Dodge #. ~ Description for Uncanny Dodge CBM +#. ~ Description for Uncanny Dodge #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your nervous system has been augmented with bionic processors, allowing you " @@ -13625,8 +13719,8 @@ msgid "Unified Power System CBM" msgid_plural "Unified Power System CBMs" msgstr[0] "CBM: 統合電源システム" -#. ~ Description for Internal Unified Power System #. ~ Description for Unified Power System CBM +#. ~ Description for Internal Unified Power System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have a unified power system wired into your power banks. Objects that " @@ -13638,8 +13732,8 @@ msgid "Internal Chronometer CBM" msgid_plural "Internal Chronometer CBMs" msgstr[0] "CBM: 体内精密時計" -#. ~ Description for Internal Chronometer #. ~ Description for Internal Chronometer CBM +#. ~ Description for Internal Chronometer #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have been equipped with an internal atomic clock, ensuring that you will" @@ -13710,8 +13804,8 @@ msgid "Taste Modifier CBM" msgid_plural "Taste Modifier CBMs" msgstr[0] "CBM: 味覚調整機構" -#. ~ Description for Taste Modifier #. ~ Description for Taste Modifier CBM +#. ~ Description for Taste Modifier #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A set of highly sensitive sensors is installed in your mouth, and a small " @@ -13908,8 +14002,8 @@ msgid "" " level will slowly recharge." msgstr "数枚のソーラーパネルを組み込みます。 電力は日光の当たる場所にいる間、ゆっくりと充電されるでしょう。" -#. ~ Description for Solar Panels #. ~ Description for Solar Panels CBM +#. ~ Description for Solar Panels #: lang/json/BIONIC_ITEM_from_json.py lang/json/BIONIC_ITEM_from_json.py #: lang/json/bionic_from_json.py msgid "" @@ -13976,8 +14070,8 @@ msgid "Ionic Overload Generator CBM" msgid_plural "Ionic Overload Generator CBMs" msgstr[0] "CBM: 過重イオン発生装置" -#. ~ Description for Ionic Overload Generator #. ~ Description for Ionic Overload Generator CBM +#. ~ Description for Ionic Overload Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A powerful ion energy generator is implanted on your chest. Fires a " @@ -19212,6 +19306,18 @@ msgstr[0] "牛乳" msgid "Baby cow food, appropriated for adult humans. Spoils rapidly." msgstr "子牛の飲み物ですが、人間が飲むにも適しています。腐りやすい飲み物です。" +#: lang/json/COMESTIBLE_from_json.py +msgid "reconstituted milk" +msgid_plural "reconstituted milk" +msgstr[0] "還元牛乳" + +#. ~ Description for reconstituted milk +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Baby cow food, appropriated for adult humans. This milk has been " +"reconstituted from a processed milk. Spoils rapidly." +msgstr "子牛のための飲み物ですが、成人にも適しています。加工牛乳を還元して作っており、すぐに痛みます。" + #: lang/json/COMESTIBLE_from_json.py msgid "coffee milk" msgstr "コーヒー牛乳" @@ -22425,20 +22531,20 @@ msgid "" msgstr "マリファナ、カナビス、ポット。呼び方なんかどうでもいい。すぐ吸えるように巻いてあるんだ。一服しようぜ。" #: lang/json/COMESTIBLE_from_json.py -msgid "pink tablet" +msgid "pink tab" msgstr "ピンクタブレット" -#. ~ Use action activation_message for pink tablet. +#. ~ Use action activation_message for pink tab. #: lang/json/COMESTIBLE_from_json.py msgid "You eat the pink tablet." msgstr "ピンクタブレットを食べました。" -#. ~ Description for pink tablet +#. ~ Description for pink tab #: lang/json/COMESTIBLE_from_json.py msgid "" -"Tiny pink candies shaped like hearts, already dosed with some sort of drug." -" Really only useful for entertainment. Will cause hallucinations." -msgstr "小さなハート型の飴です。ドラッグが添加されています。食べれば気晴らしにはなりますが、幻覚を引き起こします。" +"Tiny pink tabs resembling postage stamps, already dosed with some sort of " +"drug. Really only useful for entertainment. Will cause hallucinations." +msgstr "ある種の有害薬物が染みこんだ、切手に似たピンク色の紙片です。娯楽用の薬物であり、幻覚症状を引き起こします。" #: lang/json/COMESTIBLE_from_json.py msgid "medical gauze" @@ -24792,6 +24898,15 @@ msgstr[0] "アンズ" msgid "A smooth-skinned fruit, related to the peach." msgstr "滑らかな肌触りのモモに似た果物です。" +#: lang/json/COMESTIBLE_from_json.py +msgid "cactus pad" +msgstr "茎節(サボテン)" + +#. ~ Description for cactus pad +#: lang/json/COMESTIBLE_from_json.py +msgid "An edible pad of a cactus." +msgstr "食べられるサボテンの茎節です。" + #: lang/json/COMESTIBLE_from_json.py msgid "barley" msgstr "大麦" @@ -26677,6 +26792,15 @@ msgid "" msgstr "" "レタスやキャベツから作られた、ざくざくとした歯応えと酸味が特徴のトッピング食材です。ホットドッグやハンバーガーに最適ですが、状況によってはそのまま食べても良いでしょう。" +#: lang/json/COMESTIBLE_from_json.py +msgid "nopalito" +msgstr "ノパリート" + +#. ~ Description for nopalito +#: lang/json/COMESTIBLE_from_json.py +msgid "A less prickly version of cactus pads." +msgstr "棘を取り除いたサボテンの茎節です。" + #: lang/json/COMESTIBLE_from_json.py msgid "wheat cereal" msgstr "シリアル(小麦)" @@ -28955,6 +29079,16 @@ msgstr[0] "フェイクアイテム" msgid "Dummy item. If you see this, then something went wrong." msgstr "ダミーアイテムです。これが見えている場合、何かが間違っています。" +#: lang/json/GENERIC_from_json.py +msgid "semi ground grains" +msgid_plural "semi ground grains" +msgstr[0] "粗挽穀粉" + +#. ~ Description for semi ground grains +#: lang/json/GENERIC_from_json.py +msgid "A paste of half-finished milled grains, not yet flour." +msgstr "まだ完全に粉砕されていない、粒の粗い穀粉です。" + #: lang/json/GENERIC_from_json.py msgid "smoldering embers" msgid_plural "smoldering embers" @@ -29022,8 +29156,8 @@ msgstr "火の傍" #. ~ Description for wind #. ~ Description for a smoking device and a source of flame #. ~ Description for abstract map -#. ~ Description for weapon #. ~ Description for seeing this is a bug +#. ~ Description for weapon #: lang/json/GENERIC_from_json.py lang/json/GENERIC_from_json.py #: lang/json/TOOL_from_json.py lang/json/TOOL_from_json.py #: lang/json/skill_from_json.py @@ -31173,6 +31307,18 @@ msgid "" " vehicle. Combine it with a wheel to get a mountable piece." msgstr "車両のリアバンパーに装着してスペアタイヤを固定する器具です。ホイールと組み合わせることで車両に取り付けられます。" +#: lang/json/GENERIC_from_json.py +msgid "welding component kit" +msgid_plural "welding component kits" +msgstr[0] "溶接部品キット" + +#. ~ Description for welding component kit +#: lang/json/GENERIC_from_json.py +msgid "" +"A set of components useful for constructing a full-featured welding station," +" complete with soldering capability." +msgstr "はんだ付け機能を備えた溶接ステーションを構築するのに役立つ部品一式です。" + #: lang/json/GENERIC_from_json.py msgid "canister grenade" msgid_plural "canister grenades" @@ -33162,7 +33308,7 @@ msgstr[0] "フライパン" #: lang/json/GENERIC_from_json.py msgid "" "A cast-iron pan. Makes a decent melee weapon, and is used for cooking." -msgstr "鉄製のフライパンです。優れた近接武器として扱えるし、ちゃんと料理にも使えます。" +msgstr "鋳鉄製のフライパンです。優れた近接武器ですが、ちゃんと料理にも使えます。" #: lang/json/GENERIC_from_json.py msgid "pasta extruder" @@ -33975,6 +34121,18 @@ msgid "" "cargo." msgstr "カーゴスペースとして利用できるよう頑丈に結束され、多くの取り付け金具を追加した重量級フレームです。" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "floor trunk" +msgid_plural "floor trunks" +msgstr[0] "トランクフロア" + +#. ~ Description for floor trunk +#: lang/json/GENERIC_from_json.py +msgid "" +"A section of flooring with a cargo-space beneath, and a hinged door for " +"access." +msgstr "床下の収納スペースに通じる蓋が蝶番で取り付けられた床です。" + #: lang/json/GENERIC_from_json.py msgid "livestock carrier" msgid_plural "livestock carriers" @@ -34051,11 +34209,11 @@ msgstr[0] "UPS互換充電ステーション" msgid "" "A Unified Power System recharging station designed to operate on vehicle " "power. Once installed in a vehicle storage space and turned on from a " -"dashboard or electronics control unit, it will slowly charge all tools with " -"rechargeable batteries in that space. The system can only be installed in " -"existing storage compartments." +"dashboard or electronics control unit, it will slowly charge all UPS " +"compatible tools and battery cells in that space. The system can only be " +"installed in existing storage compartments." msgstr "" -"車両電源から給電できるよう設計された、UPS用の充電ステーションです。車両の積載スペースに取り付けてからダッシュボードや電子制御ユニットを操作して電源を入れると、積載スペース内の充電可能な工具がゆっくりと充電されます。なお、このステーションは積載スペースが無い場所には取り付けられません。" +"車両電源から給電できるよう設計された、UPS用の充電ステーションです。車両の積載スペースに取り付けてからダッシュボードや電子制御ユニットを操作して電源を入れると、積載スペース内の充電可能な工具がゆっくりと充電されます。なお、このステーションは車両の積載スペースがある場所にのみ設置できます。" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py #: lang/json/vehicle_part_from_json.py @@ -35505,6 +35663,16 @@ msgstr[0] "空薬莢(9x18mm)" msgid "An empty casing from a 9x18mm round." msgstr "9x18mmの空薬莢です。" +#: lang/json/GENERIC_from_json.py +msgid ".380 ACP casing" +msgid_plural ".380 ACP casings" +msgstr[0] "空薬莢(.380口径/ACP)" + +#. ~ Description for .380 ACP casing +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a .380 ACP round." +msgstr ".380口径ACP弾の空薬莢です。" + #: lang/json/GENERIC_from_json.py msgid "shotgun hull" msgid_plural "shotgun hulls" @@ -38790,6 +38958,86 @@ msgstr "アーティファクト" msgid "ARMOR" msgstr "防具" +#: lang/json/MAGAZINE_from_json.py +msgid "ultra-light battery cell" +msgstr "電池(ボタン)" + +#. ~ Description for ultra-light battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a light battery cell designed for small size over everything else. " +"It retains its universal compatibility, though." +msgstr "最も小さいサイズの電池です。様々な電子機器に装填できます。" + +#: lang/json/MAGAZINE_from_json.py +msgid "light battery cell" +msgstr "電池(小)" + +#. ~ Description for light battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a light battery cell, universally compatible with all kinds of small" +" devices." +msgstr "様々な小型の電子機器に装填できる、小型の電池です。" + +#: lang/json/MAGAZINE_from_json.py +msgid "light battery cell (high-capacity)" +msgid_plural "light battery cells (high-capacity)" +msgstr[0] "電池(小/大容量)" + +#. ~ Description for light battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity light battery cell, universally compatible with all " +"kinds of personal electronic devices." +msgstr "様々な小型の電子機器に装填できる、小型の大容量電池です。" + +#: lang/json/MAGAZINE_from_json.py +msgid "medium battery cell" +msgstr "電池(中)" + +#. ~ Description for medium battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a medium battery cell, universally compatible with all kinds of " +"appliances and power tools." +msgstr "様々な種類の電子機器や電動工具に装填できる、中型の電池です。" + +#: lang/json/MAGAZINE_from_json.py +msgid "medium battery cell (high-capacity)" +msgid_plural "medium battery cells (high-capacity)" +msgstr[0] "電池(中/大容量)" + +#. ~ Description for medium battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity medium battery cell, universally compatible with all" +" kinds of appliances and power tools." +msgstr "様々な種類の電子機器や電動工具に装填できる、中型の大容量電池です。" + +#: lang/json/MAGAZINE_from_json.py +msgid "heavy battery cell" +msgstr "電池(大)" + +#. ~ Description for heavy battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a heavy battery cell, universally compatible with all kinds of " +"industrial-grade equipment and large tools." +msgstr "様々な種類の工業用機器や大型電動工具に装填できる、大型の電池です。" + +#: lang/json/MAGAZINE_from_json.py +msgid "heavy battery cell (high-capacity)" +msgid_plural "heavy battery cells (high-capacity)" +msgstr[0] "電池(大/大容量)" + +#. ~ Description for heavy battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity heavy battery cell, universally compatible with all " +"kinds of industrial-grade equipment and large tools." +msgstr "様々な種類の工業用機器や大型電動工具に装填できる、大型の大容量電池です。" + #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "fuel bunker" msgstr "燃料箱" @@ -38936,6 +39184,15 @@ msgstr "弾倉(.22口径/S&W 22A)" msgid "A standard capacity magazine for the popular S&W 22A pistol." msgstr "S&W 22Aに対応する標準仕様の弾倉です。" +#: lang/json/MAGAZINE_from_json.py +msgid "Jennings J-22 magazine" +msgstr "弾倉(.22口径/ジェニングスJ-22)" + +#. ~ Description for Jennings J-22 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A cheap 6-round steel box magazine for the Jennings J-22." +msgstr "J-22に対応する、安物の6発鋼鉄製箱型弾倉です。" + #: lang/json/MAGAZINE_from_json.py msgid "LW-5 speedloader" msgstr "スピードローダー(.223口径/LW-5)" @@ -39204,6 +39461,15 @@ msgstr "弾倉(.32口径/Vz.61 スコーピオン)" msgid "A standard 20-round magazine for the Skorpion Vz. 61, in .32 ACP." msgstr "Vz.61 スコーピオン(.32口径)に対応する20発弾倉です。" +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec P32 magazine" +msgstr "弾倉(.32口径/ケルテックP32)" + +#. ~ Description for Kel-Tec P32 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 7-round steel box magazine for the Kel-Tec P32." +msgstr "ケルテックP32に対応する、標準仕様の7発鋼鉄製箱型弾倉です。" + #: lang/json/MAGAZINE_from_json.py msgid "P226 magazine .357 SIG" msgstr "弾倉(.357口径/SIG P226)" @@ -39246,6 +39512,43 @@ msgid "" "revolver." msgstr ".38口径の弾薬を7発装填できるスピードローダーです。互換性のあるリボルバーでの装填速度が向上します。" +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec P3AT magazine" +msgstr "弾倉(.380口径/ケルテックP3AT)" + +#. ~ Description for Kel-Tec P3AT magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 6-round steel box magazine for the Kel-Tec P3AT." +msgstr "ケルテックP3ATに対応する、標準仕様の6発鋼鉄製箱型弾倉です。" + +#: lang/json/MAGAZINE_from_json.py +msgid "FN 1910 magazine" +msgstr "弾倉(.380口径/FN1910)" + +#. ~ Description for FN 1910 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "" +"A standard 6-round steel box magazine for the FN 1910. It looks a bit old." +msgstr "FN1910に対応する、標準仕様の6発鋼鉄製箱型弾倉です。多少年季が入っているようです。" + +#: lang/json/MAGAZINE_from_json.py +msgid "Ruger LCP magazine" +msgstr "弾倉(.380口径/ルガーLCP)" + +#. ~ Description for Ruger LCP magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 6-round capacity magazine for the Ruger LCP pistol." +msgstr "ルガーLCPに対応する標準仕様の6発弾倉です。" + +#: lang/json/MAGAZINE_from_json.py +msgid "MAC-11 magazine" +msgstr "弾倉(.380口径/MAC-11)" + +#. ~ Description for MAC-11 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A cheap 32-round steel box magazine for use with the MAC-11 SMG." +msgstr "MAC-11に対応する、安物の32発鋼鉄製箱型弾倉です。" + #: lang/json/MAGAZINE_from_json.py msgid ".40 6-round speedloader" msgstr "スピードローダー(.40口径)" @@ -39859,6 +40162,15 @@ msgstr "弾倉(9mm/ウージー)" msgid "A standard 32-round steel box magazine for use with the UZI SMG." msgstr "ウージーに対応する、標準仕様32発鋼鉄製箱型弾倉です。" +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec PF-9 magazine" +msgstr "弾倉(9mm/ケルテックPF-9)" + +#. ~ Description for Kel-Tec PF-9 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 7-round steel box magazine for the Kel-Tec PF-9." +msgstr "ケルテックPF-9に対応する、標準仕様の7発鋼鉄製箱型弾倉です。" + #: lang/json/MAGAZINE_from_json.py msgid "Makarov PM magazine" msgstr "弾倉(9x18mm/マカロフ PM)" @@ -40555,6 +40867,15 @@ msgid "" "inside." msgstr "経営破綻したピザ屋を追加します。店内には徘徊する動物型ロボットが放置されています。" +#: lang/json/MOD_INFO_from_json.py +msgid "Battery Migration for Existing Games" +msgstr "変更 - 旧電池の装填" + +#. ~ Description for Battery Migration for Existing Games +#: lang/json/MOD_INFO_from_json.py +msgid "Allows you to reload and unload battery cells with legacy batteries." +msgstr "新たに追加された電池に旧バージョンの電池を装填できるようにします。" + #: lang/json/MOD_INFO_from_json.py msgid "Boats" msgstr "追加 - ボート" @@ -46047,8 +46368,8 @@ msgstr "" msgid "guardin gnome" msgstr "ガーディアンノーム" -#. ~ Description for garden gnome #. ~ Description for guardin gnome +#. ~ Description for garden gnome #: lang/json/MONSTER_from_json.py lang/json/furniture_from_json.py msgid "A normal and completely harmless garden gnome." msgstr "完全に無害な普通のガーデンノームです。" @@ -47009,20 +47330,6 @@ msgid "" msgstr "" "標準のバッテリー端子に対応した原子力バッテリーです。電池で作動するほとんどの道具に対応し、導入すると原子力電池を消費して作動するようになります。" -#: lang/json/TOOLMOD_from_json.py -msgid "extra battery mod" -msgid_plural "extra battery mods" -msgstr[0] "電池容量拡張キット" - -#. ~ Description for extra battery mod -#: lang/json/TOOLMOD_from_json.py -msgid "" -"This is a homemade battery compartment made with spare electronics. With " -"enough electronics skill, you could attach this to any electronic tool to " -"double the amount of batteries it can hold." -msgstr "" -"電子機器の補助として製作した工具用MODです。十分な電子工学技能があるならば、電子機器に装着することで電池容量を倍にすることができるでしょう。" - #: lang/json/TOOLMOD_from_json.py msgid "UPS conversion mod" msgid_plural "UPS conversion mods" @@ -47064,6 +47371,42 @@ msgid "" "storage batteries in regular tools." msgstr "このバッテリー収納部品を取り付けることで、一般的な工具でも車両用バッテリーや小型蓄電池から電力を供給できるようになります。" +#: lang/json/TOOLMOD_from_json.py +msgid "light battery mod" +msgid_plural "light battery mods" +msgstr[0] "小型電池変換キット" + +#. ~ Description for light battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of light batteries in tools " +"that otherwise could not." +msgstr "この部品を取り付けた工具は、電池(小)から電力を供給できるようになります。" + +#: lang/json/TOOLMOD_from_json.py +msgid "medium battery mod" +msgid_plural "medium battery mods" +msgstr[0] "中型電池変換キット" + +#. ~ Description for medium battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of medium batteries in tools " +"that otherwise could not." +msgstr "この部品を取り付けた工具は、電池(中)から電力を供給できるようになります。" + +#: lang/json/TOOLMOD_from_json.py +msgid "heavy battery mod" +msgid_plural "heavy battery mods" +msgstr[0] "大型電池変換キット" + +#. ~ Description for heavy battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of heavy batteries in tools " +"that otherwise could not." +msgstr "この部品を取り付けた工具は、電池(大)から電力を供給できるようになります。" + #: lang/json/TOOLMOD_from_json.py msgid "cybernetic power port mod" msgid_plural "cybernetic power port mods" @@ -49171,6 +49514,30 @@ msgid "" msgstr "" "非常に重い鋼鉄の塊です。へんな形をしていますが、出っ張り部分は彫刻のような細かい作業に使います。非常に多くの金属加工系製作レシピで必要になります。" +#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +msgid "water mill" +msgid_plural "water mills" +msgstr[0] "水車" + +#. ~ Description for water mill +#: lang/json/TOOL_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour. Can" +" be placed via the construction menu." +msgstr "でんぷん質を含むアイテムを穀粉に加工する小型の水車です。建設メニューから設置できます。" + +#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +msgid "wind mill" +msgid_plural "wind mills" +msgstr[0] "風車" + +#. ~ Description for wind mill +#: lang/json/TOOL_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour. Can " +"be placed via the construction menu." +msgstr "でんぷん質を含むアイテムを穀粉に加工する小型の風車です。建設メニューから設置できます。" + #: lang/json/TOOL_from_json.py msgid "wood axe" msgid_plural "wood axes" @@ -52238,23 +52605,10 @@ msgstr[0] "ストリップライト" #. ~ Description for lightstrip #: lang/json/TOOL_from_json.py msgid "" -"This is a light-emitting circuit wired directly to some batteries. It " -"provides some weak light and can't be turned off. When the batteries die, " -"you'll need to scrap it to recover the components that are reusable." -msgstr "" -"ワイヤーで直接バッテリーに繋げている発光回路です。微弱な光源になっており、電源を切ることはできません。電池が切れた後は、部品を再利用できます。" - -#: lang/json/TOOL_from_json.py -msgid "lightstrip (unpowered)" -msgid_plural "lightstrips (unpowered)" -msgstr[0] "ストリップライト(未使用)" - -#. ~ Description for lightstrip (unpowered) -#: lang/json/TOOL_from_json.py -msgid "" -"This is a unpowered lightstrip. You could connect it to batteries to get a " -"light-emitting circuit." -msgstr "電源が入っていないストリップライトです。電力を供給すれば発光回路が起動します。" +"This is a light-emitting circuit that has been wired directly to a battery." +" It provides some weak light and can't be turned off until the battery " +"dies." +msgstr "電池と直接繋がっている発光回路です。弱い光を発しており、電池が切れるまでは消灯できません。" #: lang/json/TOOL_from_json.py msgid "lightstrip (inactive)" @@ -52269,12 +52623,9 @@ msgstr "ストリップライトを不可逆的に有効化しました。" #. ~ Description for lightstrip (inactive) #: lang/json/TOOL_from_json.py msgid "" -"This is a light-emitting circuit wired directly to some batteries. It will " -"provide some weak light once activated and can't be turned off. When the " -"batteries die, you'll need to scrap it to recover the components that are " -"reusable." -msgstr "" -"ワイヤーで直接バッテリーに繋げている発光回路です。微弱な光源になりますが、一度電源を入れると切ることはできません。電池が切れた後は、部品を再利用できます。" +"This is a light-emitting circuit that can be wired directly to a battery. " +"It provides some weak light and can't be turned off until the battery dies." +msgstr "電池と直接繋げられる発光回路です。弱い光を発しており、電池が切れるまでは消灯できません。" #: lang/json/TOOL_from_json.py msgid "lobotomizer" @@ -52799,7 +53150,12 @@ msgid "" "of reactivity. Don't try to breathe it." msgstr "高圧の窒素ガスが充填されたタンクです。反応性に乏しいため様々な所で利用されています。吸ってみようなどと考えないでください。" -#. ~ Description for nitrogen tank +#: lang/json/TOOL_from_json.py +msgid "hydrogen tank" +msgid_plural "hydrogen tanks" +msgstr[0] "水素タンク" + +#. ~ Description for hydrogen tank #: lang/json/TOOL_from_json.py msgid "" "This is a tank of compressed hydrogen gas. If you need to make water from " @@ -53424,6 +53780,11 @@ msgid "" msgstr "" "数本の針、プラスチックの糸巻き、その他裁縫に役立つ道具の入ったプラスチック製の裁縫道具です。使用すると、裁縫スキルを活用して衣服の修復や補強を行えます。" +#: lang/json/TOOL_from_json.py +msgid "anesthesia kit" +msgid_plural "anesthesia kits" +msgstr[0] "麻酔キット" + #: lang/json/TOOL_from_json.py msgid "shaving kit" msgid_plural "shaving kits" @@ -58148,6 +58509,10 @@ msgstr ".357口径SIG弾" msgid "9x18mm" msgstr "9x18mm弾" +#: lang/json/ammunition_type_from_json.py +msgid ".380 ACP" +msgstr ".380口径ACP弾" + #: lang/json/ammunition_type_from_json.py msgid ".38" msgstr ".38口径弾" @@ -59042,6 +59407,15 @@ msgstr "外科手術によって、体内にピエゾ効果を用いた最先端 msgid "Railgun" msgstr "レールガン" +#. ~ Description for Railgun +#: lang/json/bionic_from_json.py +msgid "" +"EM field generators in your arms double the range and damage of thrown iron " +"and steel objects at a cost of 1 power per throw, causing them to leave a " +"trail of electricity that can cause additional damage." +msgstr "" +"腕に磁界発生装置を取り付けます。起動した状態で鉄や鋼など磁性体を投擲すると、威力と射程の増加に加え始点から着弾点までの間に電気の道が走ります。" + #: lang/json/bionic_from_json.py msgid "Fingertip Razors" msgstr "指先剃刀" @@ -60117,6 +60491,14 @@ msgstr "河川橋を設置する" msgid "Build River Dock/Shallow Bridge" msgstr "突堤/桟橋を設置する" +#: lang/json/construction_from_json.py +msgid "Place Water Mill" +msgstr "水車を設置する" + +#: lang/json/construction_from_json.py +msgid "Place Wind Mill" +msgstr "風車を設置する" + #: lang/json/construction_from_json.py msgid "Build Shallow Temporary Bridge" msgstr "仮設橋を設置する" @@ -64561,11 +64943,11 @@ msgstr "ピシッ!" #: lang/json/furniture_from_json.py msgid "canvas flap" -msgstr "帆布の垂れ幕" +msgstr "垂れ幕(帆布)" #: lang/json/furniture_from_json.py msgid "open canvas flap" -msgstr "開いた帆布の垂れ幕" +msgstr "開いた垂れ幕(帆布)" #: lang/json/furniture_from_json.py msgid "groundsheet" @@ -64573,7 +64955,7 @@ msgstr "レジャーシート" #: lang/json/furniture_from_json.py msgid "animalskin wall" -msgstr "獣皮の壁" +msgstr "壁(獣皮)" #. ~ Description for animalskin wall #: lang/json/furniture_from_json.py @@ -64582,15 +64964,15 @@ msgstr "動物の皮で作られた壁です。美しくも恐ろしくも見え #: lang/json/furniture_from_json.py msgid "animalskin flap" -msgstr "獣皮の垂れ幕" +msgstr "垂れ幕(獣皮)" #: lang/json/furniture_from_json.py msgid "open animalskin flap" -msgstr "開いた獣皮の垂れ幕" +msgstr "開いた垂れ幕(獣皮)" #: lang/json/furniture_from_json.py msgid "animalskin floor" -msgstr "獣皮床" +msgstr "床(獣皮)" #: lang/json/furniture_from_json.py msgid "mutated poppy flower" @@ -64708,11 +65090,11 @@ msgstr "苗木" #: lang/json/furniture_from_json.py msgid "mature plant" -msgstr "成熟した作物" +msgstr "成熟した植物" #: lang/json/furniture_from_json.py msgid "harvestable plant" -msgstr "収穫できる作物" +msgstr "収穫できる植物" #: lang/json/furniture_from_json.py msgid "fermenting vat" @@ -65214,6 +65596,40 @@ msgid "" "deconstructed and folded for easy transportation." msgstr "死体を空中に吊るすように設計されている金属製の食肉処理ラックです。分解すれば簡単に持ち運べます。" +#. ~ Description for wind mill +#: lang/json/furniture_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour." +msgstr "でんぷん質を含むアイテムを穀粉に加工する小型の風車です。" + +#: lang/json/furniture_from_json.py +msgid "active wind mill" +msgstr "風車を稼働する" + +#. ~ Description for active wind mill +#: lang/json/furniture_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour. Its" +" brake has been removed and it is turning." +msgstr "でんぷん質を含むアイテムを穀粉に加工する小型の風車です。ブレーキ機構が解除され、回転しています。" + +#. ~ Description for water mill +#: lang/json/furniture_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour." +msgstr "でんぷん質を含むアイテムを穀粉に加工する小型の水車です。" + +#: lang/json/furniture_from_json.py +msgid "active water mill" +msgstr "水車を稼働する" + +#. ~ Description for active water mill +#: lang/json/furniture_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour. " +"Its brake has been removed and it is turning." +msgstr "でんぷん質を含むアイテムを穀粉に加工する小型の水車です。ブレーキ機構が解除され、回転しています。" + #. ~ Description for tourist table #: lang/json/furniture_from_json.py msgid "Small metal folding table, ideal for off-road trips into the wild." @@ -66265,7 +66681,8 @@ msgstr "" "隠し持てるほど小さい拳銃型のクロスボウです。小ささと引きの弱さに見合った非力な武器ですが、小動物を狩るにはうってつけです。放たれたボルトは消滅しなければ再利用が可能です。" #: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py src/item.cpp +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "pistol" msgstr "ハンドガン" @@ -66667,6 +67084,11 @@ msgid "base pistol" msgid_plural "base pistols" msgstr[0] "ハンドガン(ベース)" +#: lang/json/gun_from_json.py +msgid "backup pistol" +msgid_plural "backup pistols" +msgstr[0] "バックアップピストル" + #: lang/json/gun_from_json.py src/item_factory.cpp msgid "revolver" msgid_plural "revolvers" @@ -66869,6 +67291,22 @@ msgstr[0] "ハンドガン(.22口径/S&W 22A)" msgid "A popular .22 pistol." msgstr "人気の高い.22口径のピストルです。" +#: lang/json/gun_from_json.py +msgid "Jennings J-22" +msgid_plural "Jennings J-22s" +msgstr[0] "ハンドガン(.22口径/ジェニングスJ-22)" + +#: lang/json/gun_from_json.py +msgid "" +"One of the quintessential 'saturday night specials', the Jennings J-22 was " +"very affordably priced with its injection molded zinc slide and frame. " +"Intended to fill the void left after small pocket pistols were banned from " +"import, these were more commonly used by criminals unfazed by their glaring " +"safety issues." +msgstr "" +"最も典型的な「サタデーナイトスペシャル」の1つであるジェニングスJ-" +"22は、射出成形で加工された亜鉛製のスライドとフレームをもつ、非常に手頃な価格の銃です。輸入禁止となった小型のポケットピストルの後釜を狙って作られましたが、明らかな安全性の欠如を気にしない犯罪者に広く普及しました。" + #: lang/json/gun_from_json.py msgid "Remington ACR" msgid_plural "Remington ACRs" @@ -67449,6 +67887,19 @@ msgid "" msgstr "" "20世紀に生まれた拳銃の中で最も有名なもののひとつです。もし、あなたの名前がボンドではなかったとしても、この小さな銃は同じように役立ってくれるでしょう。" +#: lang/json/gun_from_json.py +msgid "Kel-Tec P32" +msgid_plural "Kel-Tec P32s" +msgstr[0] "ハンドガン(.32口径/ケルテックP32)" + +#: lang/json/gun_from_json.py +msgid "" +"One of Kel-tec's oldest designs, the P32 is a popular option for deep " +"concealment and backup usage. Despite its extreme light weight and small " +"size, its .32 ACP chambering makes for good handling and recoil control." +msgstr "" +"ケルテックが設計した銃の中では歴史が古く、隠匿やバックアップの用途で広く使われています。非常に軽量で小型であるにも関わらず、.32口径ACP弾の利用によって優れた操作性と反動制御性能を実現しています。" + #: lang/json/gun_from_json.py msgid "SIG P226" msgid_plural "SIG P226s" @@ -67533,6 +67984,64 @@ msgid "" " high-quality, durable materials." msgstr ".38口径拳銃の定番です。多くの安全機構を備え、高品質な素材を使用して強度を高めてあります。" +#: lang/json/gun_from_json.py +msgid "MAC-11" +msgid_plural "MAC-11s" +msgstr[0] "サブマシンガン(.380口径/MAC-11)" + +#: lang/json/gun_from_json.py +msgid "" +"A lesser known variant of the MAC-10, this machine pistol is chambered in " +".380 ACP for a smaller overall size while remaining inherently subsonic. " +"Smaller in almost every dimension, this inexpensive automatic weapon was " +"declared 'fit only for combat in a phone booth' due to its low weight and " +"absurd fire rate ranging from 1200 to 1400 rounds per minute." +msgstr "" +"亜音速の弾速はそのままに、.380口径ACP弾を利用することで全体的な小型化を図った、MAC-" +"10の変種である知る人ぞ知るマシンピストルです。ほとんどすべての部品が小型化されたこの安価なオートマチック銃は、その軽さと1200~1400発/分に及ぶ不条理な連射速度故に、「電話ボックス内での戦闘にのみ適している」と言われています。" + +#: lang/json/gun_from_json.py +msgid "Kel-Tec P3AT" +msgid_plural "Kel-Tec P3ATs" +msgstr[0] "ハンドガン(.380口径/ケルテックP3AT)" + +#: lang/json/gun_from_json.py +msgid "" +"Essentially a slightly scaled up Kel-tec P32 in .380 ACP, the ever popular " +"P3AT offers better ballistics in a small, concealable lightweight package. " +"Handling leaves something to be desired due to snappier recoil and " +"diminuitive controls." +msgstr "" +"ケルテックP32をわずかに高機能化した人気の高いこの銃は、.380口径ACP弾を利用し、隠し持てる程の小型化とより優れた弾道性能を実現しています。反動の強さと制御の難しさのため、操作性にはやや難があります。" + +#: lang/json/gun_from_json.py +msgid "FN 1910 .380" +msgid_plural "FN 1910 .380s" +msgstr[0] "ハンドガン(.380口径/FN1910)" + +#: lang/json/gun_from_json.py +msgid "" +"Made infamous in Sarajevo in 1914, the FN1910 was a popular pocket pistol, " +"albeit in .32 ACP. Collectors value the .380 model for its notoriety and " +"more modern terminal performance. If such a humble firearm could start a " +"world war, could it perhaps protect you from the undead?" +msgstr "" +"1914年にサラエボで生まれた悪名高きFN1910は、.32口径ACP弾を利用するにもかかわらず、人気の高いポケットピストルでしたが、収集家はより評判と性能が向上した.380口径モデルを高く評価しています。もし謙虚な威力の銃を持って世界大戦を始めたとして、果たしてゾンビ共から身を守れるでしょうか?" + +#: lang/json/gun_from_json.py +msgid "Ruger LCP" +msgid_plural "Ruger LCPs" +msgstr[0] "ハンドガン(.380口径/ルガーLCP)" + +#: lang/json/gun_from_json.py +msgid "" +"One of the best selling modern day 'pocket pistol's, the LCP is an " +"affordable, polymer framed pistol chambered in .380 ACP. Despite the " +"round's relatively low power, the pistol's low weight and short sight radius" +" make for a moderately poor handling pistol." +msgstr "" +"現代で最も売れているポケットピストルの一つであるLCPは、.380口径ACP弾を利用する、手頃な価格のポリマー製ピストルです。威力は比較的低く、更には軽量で照準長も短いため操作性に難があります。" + #: lang/json/gun_from_json.py msgid "Glock 22" msgid_plural "Glock 22" @@ -68576,6 +69085,21 @@ msgid "" "and military." msgstr "グロック17は誰にでも使いやすいよう設計されており、法執行機関や軍隊向けに販売されています。" +#: lang/json/gun_from_json.py +msgid "Kel-Tec PF-9" +msgid_plural "Kel-Tec PF-9s" +msgstr[0] "ハンドガン(9mm/ケルテックPF-9)" + +#: lang/json/gun_from_json.py +msgid "" +"The Kel-Tec PF-9 remains one of the most popular backup pistols due to its " +"history of reliability, affordability, and concealability. Chambered in " +"9x19mm, recoil is best described as unpleasant, and follow up shots are " +"difficult to place quickly." +msgstr "" +"信頼性、手頃な価格、隠匿性の高さから、ケルテック社のPF-" +"9は最も人気の高いバックアップピストルの一つとされています。9x19mm弾を利用するため反動が大きいと明言されており、素早く正確に連射するのは困難です。" + #: lang/json/gun_from_json.py msgid "Makarov PM" msgid_plural "Makarov PMs" @@ -71004,6 +71528,51 @@ msgctxt "gun_type_type" msgid "crossbow" msgstr "クロスボウ" +#: lang/json/gunmod_from_json.py +msgid "belt clip" +msgid_plural "belt clips" +msgstr[0] "ベルトクリップ" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a belt clip that attaches to the grip or slide of a pistol so as to " +"facilitate 'Mexican carry', the practice of carrying without a holster. It " +"does not offer any protection for the trigger, so users are strongly advised" +" to carry with the chamber empty or select a firearm with a very heavy " +"trigger pull." +msgstr "" +"ホルスターなしで銃を携行する「メキシカンキャリー」を簡単に実現できる、ハンドガンのグリップやスライド部分に取り付けるクリップです。引き金は剥き出しのままなので、チャンバーを空にして携行するか、引き金を強く引く必要がある銃に付けることをお勧めします。" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "rugerlcp" +msgstr "ルガーLCP" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kp32" +msgstr "ケルテックP-32" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kp3at" +msgstr "ケルテックP3AT" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kpf9" +msgstr "ケルテックPF-9" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "cop_38" +msgstr "COP" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "moss_brownie" +msgstr "モスバーグ・ブラウニー" + #: lang/json/gunmod_from_json.py msgid "shortened barrel" msgid_plural "shortened barrels" @@ -71633,6 +72202,19 @@ msgid "" "Increases the time needed to wield the weapon." msgstr "銃床を折り畳めるようにすることで銃器の体積を大幅に減少させますが、使う前に展開する必要があります。装備するのに時間が掛かります。" +#: lang/json/gunmod_from_json.py +msgid "folding wire stock" +msgid_plural "folding wire stocks" +msgstr[0] "折畳式ワイヤー銃床" + +#: lang/json/gunmod_from_json.py +msgid "" +"A folding wire stock which folds up very compactly but needs unfolding " +"before use. It's somewhat wobbly but is better than nothing at all. " +"Increases the time needed to wield the weapon." +msgstr "" +"非常にコンパクトに折り畳めますが、使う前に展開する必要があるワイヤー製の銃床です。やや不安定ですが、何もないよりはマシです。装備するのに時間が掛かります。" + #: lang/json/gunmod_from_json.py msgid "pistol stock" msgid_plural "pistol stocks" @@ -74578,18 +75160,16 @@ msgstr "ここにアイテムを積載できます。" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"You can 'e'xamine the tile or attempt to pick-up items (default ',') to " -"access the controls, or use the vehicle control key (default '^')." -msgstr "このタイルを調べる(e)かアイテムを拾う(,)ことで装置を操作でき、車両運転を開始する(^)と車両の運転が可能になります。" +"You can 'e'xamine the tile to access the controls, or use the vehicle " +"control key (default '^')." +msgstr "このタイルを調べる(e)か車両運転を開始する(^)と車両の運転が可能になります。" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"With a seat or saddle, you drive from here. You can 'e'xamine the tile or " -"attempt to pick-up items (default ',') to access the controls, or use the " -"vehicle control key (default '^')." -msgstr "" -"座席やサドルに座り、ここから車両を運転します。このタイルを調べる(e)かアイテムを拾う(,)ことで装置を操作でき、車両運転を開始する(^)と車両の運転が可能になります。" +"With a seat or saddle, you drive from here. You can 'e'xamine the tile to " +"access the controls, or use the vehicle control key (default '^')." +msgstr "座席やサドルに座り、ここから車両を運転します。このタイルを調べる(e)か車両運転を開始する(^)と車両の運転が可能になります。" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -75542,6 +76122,10 @@ msgstr "睡眠" msgid "Control Vehicle" msgstr "車両を運転する" +#: lang/json/keybinding_from_json.py +msgid "Toggle Auto Travel Mode" +msgstr "切替/オートトラベルモード" + #: lang/json/keybinding_from_json.py msgid "Toggle Safe Mode" msgstr "切替/セーフモード" @@ -75735,8 +76319,24 @@ msgid "Active World Mods" msgstr "MOD確認" #: lang/json/keybinding_from_json.py -msgid "Toggle move mode (run/walk/crouch)" -msgstr "切替/移動方法(駆足/徒歩/屈む)" +msgid "Cycle move mode (run/walk/crouch)" +msgstr "切替/移動方法(駆足/歩行/屈む)" + +#: lang/json/keybinding_from_json.py +msgid "Reset Movement to Walk" +msgstr "移動方法を歩行にリセット" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Run" +msgstr "切替/駆足" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Crouch" +msgstr "切替/屈む" + +#: lang/json/keybinding_from_json.py +msgid "Movement Mode Menu" +msgstr "移動方法メニュー" #: lang/json/keybinding_from_json.py src/game_inventory.cpp msgid "Compare" @@ -83037,6 +83637,17 @@ msgid "" "easily." msgstr "聴力が優れており、容易に遠くの音を聞き取れます。" +#: lang/json/mutation_from_json.py +msgid "Fey Hearing" +msgstr "妖精の聴力" + +#. ~ Description for Fey Hearing +#: lang/json/mutation_from_json.py +msgid "" +"Your not sure the shape of your ears are helping, but regardless you have " +"become very sensitive to sounds." +msgstr "耳の形が関係しているのかは不明ですが、音に対して非常に敏感になっています。" + #: lang/json/mutation_from_json.py msgid "Outdoorsman" msgstr "野外活動愛好家" @@ -84923,6 +85534,17 @@ msgid "" "pleasant aroma, are visually striking, and are quite sensitive." msgstr "かつて頭皮だった場所が無数の花を付けはじめました。どの花も心地よい香りを放ち、目に新鮮で、とても繊細で敏感です。" +#: lang/json/mutation_from_json.py +msgid "Rosebuds" +msgstr "バラの蕾" + +#. ~ Description for Rosebuds +#: lang/json/mutation_from_json.py +msgid "" +"The top of your head is blooming with rosebuds. They're eye catching, and " +"have a strong fragrance that makes you pleasant to be around." +msgstr "頭頂部からバラの蕾が生えています。人目を惹き、周囲の生物を楽しい気分にさせる強い香りを放っています。" + #: lang/json/mutation_from_json.py msgid "Mycus Spores" msgstr "胞子(ミカズ)" @@ -87378,6 +88000,17 @@ msgstr "蔦を完全に制御できるようになりました。新しい蔦を msgid "You detach a vine from your body." msgstr "体から蔦を切り離しました。" +#: lang/json/mutation_from_json.py +msgid "Hair Roots" +msgstr "根の髪" + +#. ~ Description for Hair Roots +#: lang/json/mutation_from_json.py +msgid "" +"Roots have started growing from your leaf like hair, they don't seem to do " +"much." +msgstr "頭頂部の葉の下から、髪の毛のように根が生えてきました。特に何の役にも立たないようです。" + #: lang/json/mutation_from_json.py msgid "Toe Roots" msgstr "根の足指" @@ -90192,10 +90825,18 @@ msgstr "ガソリンスタンド" msgid "pharmacy" msgstr "薬局" +#: lang/json/overmap_terrain_from_json.py +msgid "pharmacy roof" +msgstr "薬局(屋上)" + #: lang/json/overmap_terrain_from_json.py msgid "doctor's office" msgstr "診療所" +#: lang/json/overmap_terrain_from_json.py +msgid "doctor's office roof" +msgstr "診療所(屋上)" + #: lang/json/overmap_terrain_from_json.py msgid "office" msgstr "オフィス" @@ -90302,6 +90943,10 @@ msgstr "酒場(屋上)" msgid "butcher shop" msgstr "精肉店" +#: lang/json/overmap_terrain_from_json.py +msgid "butcher shop roof" +msgstr "精肉店(屋上)" + #: lang/json/overmap_terrain_from_json.py msgid "bike shop" msgstr "自転車屋" @@ -90506,10 +91151,22 @@ msgstr "アダルトショップ" msgid "internet cafe" msgstr "ネットカフェ" +#: lang/json/overmap_terrain_from_json.py +msgid "internet cafe roof" +msgstr "ネットカフェ(屋上)" + #: lang/json/overmap_terrain_from_json.py msgid "car showroom" msgstr "自動車展示場" +#: lang/json/overmap_terrain_from_json.py +msgid "car showroom 2nd floor" +msgstr "自動車展示場(2階)" + +#: lang/json/overmap_terrain_from_json.py +msgid "car showroom roof" +msgstr "自動車展示場(屋上)" + #: lang/json/overmap_terrain_from_json.py msgid "car dealership" msgstr "自動車販売店" @@ -90538,6 +91195,10 @@ msgstr "ラジオ放送局" msgid "gardening allotment" msgstr "貸し農園" +#: lang/json/overmap_terrain_from_json.py +msgid "gardening allotment roof" +msgstr "貸し農園(屋上)" + #: lang/json/overmap_terrain_from_json.py msgid "animal pound" msgstr "動物収容所" @@ -97717,7 +98378,7 @@ msgid "" msgstr "電波塔を建てれば、通信範囲が改善するはずだ。まずは塔の骨組みを建設しよう。" #: lang/json/recipe_from_json.py -msgid "We need to add a console to control the radio tower." +msgid "We need to build a console to control the radio tower." msgstr "電波塔を制御するコンソールを設置する必要があるな。" #: lang/json/recipe_from_json.py @@ -107401,6 +108062,78 @@ msgstr "問題ない。" msgid "Can do." msgstr "大丈夫だ。" +#: lang/json/snippet_from_json.py +msgid "Whew... smells like skunk!" +msgstr "ヒューッ...ハッパの臭いだ!" + +#: lang/json/snippet_from_json.py +msgid "Man, that smells like some good shit!" +msgstr "おっ、上物の臭いだな!" + +#: lang/json/snippet_from_json.py +msgid "Hey, don't bogart the joint!" +msgstr "ちょっと、そいつを独り占めするなよ!" + +#: lang/json/snippet_from_json.py +msgid "C'mon, , I can smell it, pass it over." +msgstr "ちょっと、匂うぞ、分けてくれよ。" + +#: lang/json/snippet_from_json.py +msgid "Wow, that smell takes me back." +msgstr "わぁ、懐かしい匂いだ。" + +#: lang/json/snippet_from_json.py +msgid "Ah, man. Good times, good times. Love that scent." +msgstr "おっと、それは。いいね、いいねぇ。その香りは大好きだ。" + +#: lang/json/snippet_from_json.py +msgid "What do I smell? Well, I guess it's legal now." +msgstr "この臭いは何だ?まぁ、今は法律も何も無いか。" + +#: lang/json/snippet_from_json.py +msgid "Mmm, that weed smells good." +msgstr "ううん、良い匂いのハッパだ。" + +#: lang/json/snippet_from_json.py +msgid "Man, I can smell the weed, can I have some?" +msgstr "おや、ハッパの匂いがするな、一つ貰ってもいい?" + +#: lang/json/snippet_from_json.py +msgid "Are you sure it's a good idea to smoke that now?" +msgstr "そんなものを吸っている場合か?" + +#: lang/json/snippet_from_json.py +msgid "I don't know... should you really be smoking that stuff?" +msgstr "うわぁ...そんなものを吸うなんて正気か?" + +#: lang/json/snippet_from_json.py +msgid ", that's going to ruin your nose." +msgstr "、鼻がイカレるよ。" + +#: lang/json/snippet_from_json.py +msgid "Man, that stinks. Put it out!" +msgstr "うわっ、臭い。消してくれ!" + +#: lang/json/snippet_from_json.py +msgid "You're going to kill yourself smoking that stuff, ." +msgstr "そんなものを吸って、は自殺でもする気かよ。" + +#: lang/json/snippet_from_json.py +msgid "Oh, wow, that smell... Can I have some?" +msgstr "おや、おやおや、その匂い...一つ貰っても?" + +#: lang/json/snippet_from_json.py +msgid "Ew, smells like burning rubber!" +msgstr "オエッ、ゴムが焼けるときの臭いだ!" + +#: lang/json/snippet_from_json.py +msgid "Ugh, that smells rancid!" +msgstr "うあっ、酷い腐敗臭です!" + +#: lang/json/snippet_from_json.py +msgid "" +msgstr "" + #: lang/json/snippet_from_json.py msgid "Tell me about how you survived the cataclysm." msgstr "どうやって大変動を生き延びたのか教えてくれ。" @@ -108309,6 +109042,10 @@ msgstr "前のごしゅじんさまはブタみたいに鳴きながらはらわ msgid "\"Hello?\"" msgstr "「やぁ?」" +#: lang/json/speech_from_json.py +msgid "\"Papaya!\"" +msgstr "「パパイヤ!」" + #: lang/json/speech_from_json.py msgid "\"Who's there?\"" msgstr "「そこにいるのは誰?」" @@ -110824,10 +111561,10 @@ msgstr "衣料品店" #: lang/json/talk_topic_from_json.py msgid "" -"I'm my own person, but I'm willing to follow your lead. I can do a lot of things for you: I can fight, I can train you or you can train me, I can carry stuff, I can bandage your wounds, I can build faction camps, I can go places, I can guard things, I can even chit-chat with you or talk about my background. You can give me instructions in conversation or by radio or shout commands at me. \n" -"What do you want to know more about?" +"I'm my own person, but I'm willing to follow your lead. I can do a lot of things for you: I can fight, I can train you or you can train me, I can carry stuff, I can bandage your wounds, I can build faction camps, I can go places, I can guard things, I can even chit-chat with you or talk about my background. You can give me instructions in conversation or by radio or shout commands at me.\n" +" What do you want to know more about?" msgstr "" -"私には自我があるが、あなたの指示には従うつもりだ。色々と助けになるだろう。戦闘したり、互いにスキルを訓練しあったり、物を運んだり、傷を治療してあげたり、拠点を作ったり、特定の場所へ向かったり、特定の場所を見張ったり、雑談やあなたと会う以前の経緯を語ったりもできる。会話するか無線機で話しかければ、指示が出せる。\n" +"私には自我があるが、あなたの指示には従うつもりだ。色々と助けになるだろう。戦闘したり、互いにスキルを訓練しあったり、物を運んだり、傷を治療してあげたり、拠点を作ったり、特定の場所へ向かったり、特定の場所を見張ったり、雑談や過去を語ったりもできる。会話するか無線機で話しかけて、指示を出してくれ。\n" "他に知りたいことはある?" #: lang/json/talk_topic_from_json.py @@ -110888,11 +111625,11 @@ msgstr "他に知っておくべきことはある?" #: lang/json/talk_topic_from_json.py msgid "" -"If we're next to each other, you can just bump into me and we'll start talking, right? But if I'm farther away, you're going to have to shout a bit (use the 'C'hat command) for me to hear you. You'll need to see me for us to have a conversation. Or we can talk by radios if we both have them. \n" -"When we talk, you can give me instructions about how to fight or when to sleep or whatever. I'll mostly do them, and you can ask me what my current instructions are. Sometimes you'll give me two sets of instructions: a normal set, and an override for a specific situation. I'll tell you which instructions are overriden. You can set and clear overrides with shouted commands." +"If we're next to each other, you can just bump into me and we'll start talking, right? But if I'm farther away, you're going to have to shout a bit (use the 'C'hat command) for me to hear you. You'll need to see me for us to have a conversation. Or we can talk by radios if we both have them.\n" +" When we talk, you can give me instructions about how to fight or when to sleep or whatever. I'll mostly do them, and you can ask me what my current instructions are. Sometimes you'll give me two sets of instructions: a normal set, and an override for a specific situation. I'll tell you which instructions are overriden. You can set and clear overrides with shouted commands." msgstr "" -"隣にいるなら、こちらに移動するだけだ、分かるよな?もし遠くにいるなら、少し大きな声を出す('C'を押して会話する)必要があるな。私が視認できない状態では会話はできない。ただし、どちらも無線機を所持している状態なら視認できなくても会話はできる。\n" -"会話によって、私がどう戦うのか、いつ眠るのか、他にも色々な指示を出せる。大抵の指示には従うつもりだし、今私にどんな指示を出しているのか確認も可能だ。2通りの指示状態を、それぞれ通常時と警戒時の指示セットとして覚えておくこともできる。変更された指示はその都度知らせるよ。指示セットの設定や解除は一斉指示でできるようになっている。" +"隣にいるなら、私がいるタイルに移動しようとするだけでいい、分かるよな?もし離れているなら、少し大きな声を出す('C'を押して会話する)必要がある。私が視認できない状態では会話できない。ただし、どちらも無線機を所持している状態なら視認できなくても会話できる。\n" +"会話によって、私がどう戦うか、いつ眠るか、他にも色々な指示を出せる。大抵の指示には従うつもりだし、今どんな指示を出しているのか確認も可能だ。通常時と警戒時の2通りの指示セットを、まとめて出すこともできる。変更された指示はその都度知らせるよ。指示セットの有効化や解除は一斉指示で行うようになっている。" #: lang/json/talk_topic_from_json.py msgid "" @@ -110905,8 +111642,8 @@ msgstr "ありがとう。他の話をしよう。" #: lang/json/talk_topic_from_json.py msgid "" -"Sometimes you need to give orders in a hurry. You can use the 'C'hat command to shout a single specific order. If I hear you, I'll do what you say, as will anyone else following you that hears it. \n" -"Some orders will override other instructions you've given me. If you change my instructions when I've got an override command, I'll tell you which ones are overridden. You can shout an order to clear any overrides." +"Sometimes you need to give orders in a hurry. You can use the 'C'hat command to shout a single specific order. If I hear you, I'll do what you say, as will anyone else following you that hears it.\n" +" Some orders will override other instructions you've given me. If you change my instructions when I've got an override command, I'll tell you which ones are overridden. You can shout an order to clear any overrides, or talk to me and tell me to clear them." msgstr "" "急いで指示を出したい時もあるだろう。'C'で会話することで、特定の指示を仲間全体に出すことができる。声が聞こえる状況なら、指示には従うつもりだよ。\n" "一斉指示によって、前に出していた指示が変更されることもあるだろう。どの指示が変更されたかは、その都度伝えるよ。更に一斉指示を出して、変更を中止することも可能だ。" @@ -110917,35 +111654,39 @@ msgstr "良いことを知ったよ。どんな指示が出せるんだ?" #: lang/json/talk_topic_from_json.py msgid "" -"It's a dangerous world out there, right? So we fight to survive. I'm on your side, and I'll stick with you, but if I think the situation is too dangerous, I'll be honest, I'm going to run. If I see you running but I think it's safe, I'll stay and fight, but you can tell me run with you and I'll stick by you as best I can. \n" -"You can give me some instructions on when I should attack, but I'll make my own decisions about who - I'll try to defend myself and you, though, but if you tell me to stay in one place I'll stay there. \n" -"I'll use guns and grenades if I have them, but you can tell me to not use grenades or not use loud weapons or to not use ranged weapons at all. If I'm shooting, you can tell me how much to aim and whether to try to avoid shooting you or not. \n" -"I'll respect your rules for what types of weapons to use, but I'll choose what to use from my stuff. \n" -"You can also tell me to hold the line and fight at chokepoints, but I'm not great at recognizing them so I may go off to fight something elsewhere anyway." +"It's a dangerous world out there, right? So we fight to survive. I'm on your side, and I'll stick with you, but if I think the situation is too dangerous, I'll be honest, I'm going to run.\n" +" You can't tell me not to run, because I'm going to flee if things are bad, but you can tell me a safe place to retreat by using the zones manager (keybind 'Y'). I'll run toward the closest place you've designated - and you can set zones on vehicles, so if you've got a car, you could tell me to retreat there.\n" +" If I see you running but I think it's safe, I'll stay and fight, but you can tell me run with you and I'll stick by you as best I can.\n" +" You can give me some instructions on when I should attack, but I'll make my own decisions about who - I'll try to defend myself and you, but if you tell me to stay in one place I'll stay there.\n" +" I'll use guns and grenades if I have them, but you can tell me to not use grenades or not use loud weapons or to not use ranged weapons at all. If I'm shooting, you can tell me how much to aim and whether to try to avoid shooting you or not. I'm not so good at recognizing safe shots, so stay out of my line of fire no matter what.\n" +" I'll respect your rules for what types of weapons to use, but I'll choose what to use from my stuff.\n" +" You can also tell me to hold the line and fight at chokepoints, but I'm not great at recognizing them so I may go off to fight something elsewhere anyway." msgstr "" "この世界はとても危険だ、知ってるよな?だから、生き残るために戦うんだ。私はあなたに付き従っているけど、あまりに危険な状況下では、正直に言えば、逃げ出すかもしれない。\n" -"どんな時に攻撃すべきか指示してくれたら従うけど、攻撃対象は私が決める。でも基本的には、自分とあなたを守ろうとするよ。\n" -"銃や手榴弾を持っていれば使おうとするけど、指示によって手榴弾を使わない、範囲攻撃武器を使わない、遠距離武器を使わない行動制限ができる。射撃するなら、どれだけ慎重に狙いをつけるのか、あなたを撃ち殺さないよう気を付けるべきかも指示を出せる。\n" -"使う武器の種類はなるべく指示に沿うように、私が所持しているものの中から選ぶ。\n" +"逃げるなって命令は聞けない。マズい状況では逃げるつもりだけど、区域管理(Y)を使って安全な退避場所を指定しておいてくれ。その時一番近い場所に向かって逃げるようにするよ。車両も退避場所に指定できる。自分の車があるなら、そこへ逃げ込むよう指示も出せるよ。\n" +"あなたが逃げ出すのを見たとしても、私は自分が安全だと思ったらその場で戦い続けるつもりだ。それがダメなら、一緒に逃げるよう指示を出してくれ。そうすればできる限り従うようにする。\n" +"どんな時に攻撃すべきか指示してくれたら従うけど、攻撃対象は私が決める。基本的には、自分とあなたを守る行動をとるよ。\n" +"銃や手榴弾を持っていれば使うけど、指示によって手榴弾や範囲攻撃武器、遠距離武器などを使わない行動制限もできる。射撃するなら、どれだけ慎重に狙いをつけるか、あなたを撃ち殺さないよう気を付けるべきかも決められる。\n" +"使う武器の種類はなるべく指示に沿うように、私が所持しているものの中から選ぶよ。\n" "狭い場所で後ろに下がらず戦い続けるよう指示を出すことも可能だけど、そういう戦い方は得意じゃないから、つい他の場所に移動してしまうかもしれない。" #: lang/json/talk_topic_from_json.py msgid "" -"If I'm better at a skill than you, I can help you improve. But it's boring to teach a lot, so I'm not going to do it very often. And I'm not going to do it when we're in danger or if I'm hungry or tired or if you're driving. \n" -"If we're someplace safe and you're reading a book that improves skills, I'll listen if I don't have that skill. You can even read me books for skills that you already have." +"If I'm better at a skill than you, I can help you improve. But it's boring to teach a lot, so I'm not going to do it very often. And I'm not going to do it when we're in danger or if I'm hungry or tired or if you're driving.\n" +" If we're someplace safe and you're reading a book that improves skills, I'll listen if I don't have that skill. You can even read me books for skills that you already have." msgstr "" -"私の方が得意なスキルなら、あなたのスキル上達を手伝ってあげよう。ただし、ずっと教えていると飽きるから、頻繁にはできない。危険が迫ってる時やお腹が減っている時、疲れている時や運転中も無理だ。\n" +"私の方が得意なスキルがあれば、あなたを訓練してあげよう。ただし、ずっと教えていると飽きるから、頻繁にはできない。危険が迫ってる時やお腹が減っている時、疲れている時や運転中も無理だ。\n" "安全な場所でスキルを上昇させる本を読む時は、私にも役立つ内容だったら傍で聞いて一緒に学習しよう。もう読み終えた学習書だったとしても、読み聞かせてくれれば私のスキルが上昇するよ。" #: lang/json/talk_topic_from_json.py msgid "" -"You give me something to carry, I'll carry it. But I only have so many pockets and I'm only so strong, so I'll drop stuff that's too big to carry. \n" -"I'll also wear stuff - I'll decide what I want to wear, but you can take stuff from me. If I'm wearing something I shouldn't, you can bump into me and sort my armor to get me to take if off. \n" -"I don't like wearing a lot of gear, so if you give me a lot of bulky stuff and things that don't fit, I'm going to take them off and probably drop them. \n" -"Also, since we're friends, I'll give you anything I'm carrying, no questions asked. \n" -"Oh, yeah, if I'm hungry or thirsty and I'm carrying food, I'll eat it. So you might want to watch what you give me, y'know?" +"You give me something to carry, I'll carry it. But I only have so many pockets and I'm only so strong, so I'll drop stuff that's too big to carry.\n" +" I'll also wear stuff - I'll decide what I want to wear, but you can take stuff from me. If I'm wearing something I shouldn't, you can bump into me and sort my armor to get me to take if off.\n" +" I don't like wearing a lot of gear, so if you give me a lot of bulky stuff and things that don't fit, I'm going to take them off and probably drop them.\n" +" Also, since we're friends, I'll give you anything I'm carrying, no questions asked.\n" +" Oh, yeah, if I'm hungry or thirsty and I'm carrying food, I'll eat it. So you might want to watch what you give me, y'know?" msgstr "" -"持ってほしい物があるなら、渡してくれたら持ち運ぶよ。ただし、ポケットにも筋力にも限りがあるし、大きすぎて運べない物は落としてしまう。\n" +"持ってほしい物があるなら、渡してくれたら運ぶよ。ただし、ポケットにも筋力にも限りがあるし、大きすぎて運べない物は落としてしまう。\n" "私はもちろん服を着る。着るものは自分で決めたいけど、着ている服を脱がせることも可能だ。もし私が酷い衣服を着ていたら、隣から話しかけて着用品を並べ替えるメニューを開いてくれ。\n" "重ね着は苦手だから、嵩張る服やフィットしない服は脱いで落とすよ。\n" "それと、私たちは友達だから、何の断りも入れずに私の所持品を持っていっても大丈夫だ。\n" @@ -110953,63 +111694,66 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If you call me by radio, you can tell me to come to you. If you've got some basecamps set up, you can tell me to go to one of them. I'll start walking, and when I get to where I'm going, I'll guard it. \n" -"Now depending on where I am and where I'm going, it may take me a while to get there. I'll dodge any dangers on the way, don't worry about that, but if you're way the heck away from me and tell me to come, it may be a while until I get to you." +"If you call me by radio, you can tell me to come to you. If you've got some basecamps set up, you can tell me to go to one of them. I'll start walking, and when I get to where I'm going, I'll guard it.\n" +" Now depending on where I am and where I'm going, it may take me a while to get there. I'll dodge any dangers on the way, don't worry about that, but if you're way the heck away from me and tell me to come, it may be a while until I get to you." msgstr "" -"無線を使えば、あなたの現在地に私を呼びつけることができる。拠点が1つ以上あるなら、特定の拠点に向かわせることも可能だ。私は歩いて目的地に向かい、到着したらその場で見張りに付く。\n" +"無線を使えば、あなたの現在地に私を呼びつけることができる。1つでも拠点があるなら、特定の拠点に向かわせることも可能だ。私は歩いて目的地に向かい、到着したらその場で見張りに付く。\n" "私の現在地と目的地によっては、到着まで時間がかかるかもしれない。道中の危険は確実に避けるから、心配は無用だ。ただし、私を呼びつけてからもあなたが移動を続けていると、当然到着までしばらく時間がかかる。" #: lang/json/talk_topic_from_json.py msgid "" -"You tell me to guard, I'll stay where I am and guard it - unless I'm in a vehicle, in which case I'll stick with the vehicle. \n" -"I'm not a potted plant, though, so if I hear something dangerous happening, I'm going to go see what it is instead of getting jumped in the dark. If you want me to stay put, tell me not to investigate noises - but if I get shot by some bandit because I can't see where he is and you don't want me to go looking, I won't be happy." +"You tell me to guard, I'll stay where I am and guard it - unless I'm in a vehicle, in which case I'll stick with the vehicle.\n" +" I'm not a potted plant, though, so if I hear something dangerous happening, I'm going to go see what it is instead of getting jumped in the dark. If you want me to stay put, tell me not to investigate noises - but if I get shot by some bandit because I can't see where he is and you don't want me to go looking, I won't be happy.\n" +" You can also use the zone manager (keybind 'Y') to set up no-investigate zone, so if there's some monsters behind a door that you know about, I can ignore them. You can also set on an investigate-only zone, and I won't investigate noises coming from outside the zone. The no-investigate zone takes precedence over the investigate-only, if there's a noise coming from some place in both zones. And if you've got an investigate-only zone set anywhere, even if it's far away, I won't investigate noises coming from outside of it, so be careful with those zones. Like I said, I don't want to get sniped by some bandit because you told me not to go looking for him - but I also don't want to go investigate something pounding at door only to find out it's some horrible monster you forgot to warn me about." msgstr "" "特定の場所を見張るよう指示を出したら、車両内にいる時以外はその場所で見張りに付くよ。車両内にいる時は車内に留まる。\n" -"私は観葉植物じゃないから、何か怪しい音が聞こえたら様子を見に行く。もし我慢してその場に留まってほしいなら、物音が聞こえても調べに行かないよう言っておいてくれ。でも、物音を調べなかったせいで潜んでいる盗賊に撃たれるのはごめんだよ。" +"私は観葉植物じゃないから、何か怪しい音が聞こえたら様子を見に行く。もし我慢してその場に留まってほしいなら、物音がしても調べに行かないよう指示しておいてくれ。でも、物音を調べなかったせいで潜んでいる盗賊に撃たれるのはごめんだよ。\n" +"区域管理(Y)を使って調査を無視する区域を指定することもできる。もし扉の向こうに怪物がいたとしても、調査無視区域だったら無視する。調査対象区域の指定も可能だ。こちらは対象区域ではない場所からの物音を無視する。両方の区域に指定された場所から音がした場合は、無視区域の方が優先される。調査対象区域としてどこか遠い場所が指定されていると、まったく調査をしなくなることがあるから気を付けてくれ。さっきも言ったけど、物音を調べなかったせいで潜んでいる盗賊に撃たれるのは嫌だ。でも、あなたが知っていたのに伝え忘れた恐ろしい怪物を確認するためだけに、ドアを叩く音を調べに行くのも勘弁したいね。" #: lang/json/talk_topic_from_json.py -msgid "Just in case - how do I tell you to stay put?" -msgstr "念のため聞いておくけど、その場に留まってほしい時はどう指示すればいいんだ?" +msgid "Just in case - how else can I tell you to stay put?" +msgstr "念のため聞いておくけど、その場でじっとしてほしい時はどう指示すればいい?" #: lang/json/talk_topic_from_json.py msgid "" -"We can chit-chat, if you want. People are social animals, right? A little light conversation can do wonders for your mood. But I don't want to be yapping all the time, so if we've chatted recently, I probably am not going to want to talk for a bit. \n" -"You can also ask me about my background. I may not want to talk about it, though." +"We can chit-chat, if you want. People are social animals, right? A little light conversation can do wonders for your mood. But I don't want to be yapping all the time, so if we've chatted recently, I probably am not going to want to talk for a bit.\n" +" You can also ask me about my background. I may not want to talk about it, though." msgstr "" "もし雑談したいなら、そうしよう。人間は社会的動物だからね?ちょっとした会話で気分が晴れるかもしれない。でも、ずっとお喋りし続けるのも嫌だから、間を置かずに雑談を頼まれたら断るだろうな。\n" "私の過去の話を訪ねることもできる。そういう話をしたくない時もあるけどね。" #: lang/json/talk_topic_from_json.py msgid "" -"You can give me a bunch of instructions. Talk to me about the miscellaneous rules, and I'll tell you what I'm doing and you can give a new instruction. Sometimes you'll have shouted a command that overrides your other instructions, and I'll tell you which instructions are overridden. \n" -"I'm not a chatterbox, but I'll tell you when I see or hear danger or if I'm hurt or hungry or something. You don't want me doing that, you just tell me. \n" -"Also, I'll pulp zombies if you'd like - I would prefer that. \n" -"If I hear something suspicious and can't see if, I'll go take a look, but you can tell me not to do that. \n" -" I'll open and close doors, or open them and leave them ajar, or not going through closed doors. You just tell me what you want. \n" -"I can pick stuff up if want me to, and you can tell me what to pick up. If I've got a bow or crossbow, please tell me to pick up the ammo - it's less fuss for both of us. \n" -"If you've got a vehicle, you can e'x'amine it and use the cre'w' command to assign me a seat. That saves arguments about who needs to sit where." +"You can give me a bunch of instructions. Talk to me about the miscellaneous rules, and I'll tell you what I'm doing and you can give a new instruction. Sometimes you'll have shouted a command that overrides your other instructions, and I'll tell you which instructions are overridden.\n" +" I'm not a chatterbox, but I'll tell you when I see or hear danger or if I'm hurt or hungry or something. You don't want me doing that, you just tell me.\n" +" Also, I'll pulp zombies if you'd like - I would prefer that.\n" +" If I hear something suspicious and can't see if, I'll go take a look, but you can tell me not to do that.\n" +" I'll open and close doors, or open them and leave them ajar, or not going through closed doors. You just tell me what you want.\n" +" I can pick stuff up if want me to, and you can tell me what to pick up. If I've got a bow or crossbow, please tell me to pick up the ammo - it's less fuss for both of us.\n" +" If you've got a vehicle, you can e'x'amine it and use the cre'w' command to assign me a seat. That saves arguments about who needs to sit where." msgstr "" "あなたは私に対して色々な指示を出せる。その他の規則について話すと、現在の指示内容の確認と、新たな指示の設定ができる。指示内容を変更する一斉指示を出した時は、どの指示が変更されたか伝えるよ。\n" -"私はそこまでおしゃべりじゃないが、危険なものを見たり聞いたりした時や怪我をした時、腹が減った時などに話しかける。黙ってほしいなら、そう指示してくれ。\n" -"指示を出してくれたら、潰した方がいいゾンビの死体を潰すよ。不審な物音が聞こえたけど正体が分からない時は確認に行くが、確認しないよう指示を出すこともできる。\n" -"扉を開閉する、扉を開けっ放しにする、閉じた扉を開けないなどの指示もできる。どう行動してほしいか言ってくれ。\n" -"欲しいアイテムは勝手に拾うが、拾うものは指定できる。弓やクロスボウを武器に使っている時は、矢やボルトを拾うよう言っておいてくれ。手間のかかる話じゃない。\n" -"車両があるなら、'e'で車両メニューを開いてから'w'を押せば、座席を指定できる。これで誰がどこに座るか揉めることもない。" +"私はそこまでお喋りじゃないが、危険なものを見聞きした時や怪我をした時、空腹の時などは話しかける。黙ってほしいなら、そう指示してくれ。\n" +"指示を出してくれたら、潰した方がいいゾンビの死体を潰すよ。\n" +"不審な物音が聞こえたけど正体が分からない時は調査に行くが、調査しないよう指示を出すこともできる。\n" +"扉を開閉する、開けっ放しにする、閉じている扉を開けないなどの指示も可能だ。どう行動してほしいか言ってくれ。\n" +"欲しいアイテムは勝手に拾うが、拾うものは指定できる。弓やクロスボウを使っている時は、矢やボルトを拾うよう指示してくれ。手間のかかる話じゃない。\n" +"車両があるなら、'e'で車両メニューを開いて'w'を押せば、座席を指定できる。これで誰がどこに座るか揉めることもない。" #: lang/json/talk_topic_from_json.py msgid "" -"Here's the list of shouted commands I'll respond to: \n" -"Order me to guard, and I'll stay where I am and watch out for danger. I'll investigate suspicious noises unless you told me not to. \n" -"Order me to follow, and I'll stop guarding and go back to following you. \n" -"Order me to stay awake, and I'll stay awake until I'm too tired to keep my eyes open. \n" -"Order me to sleep when tired, and I'll nap when I get tired. I'll try to tell you when I'm off to bed unless you don't want to hear it. \n" -"Order me to flee, and I'll stick close to you when you run from danger. I won't go running off on my own - though if things really bad, I might be running away already! \n" -"Order me to stop running, and I'll evaluate the danger myself and might go off and fight something while you're doing other things. \n" -"Ordering me to prepare for danger is special: it's an override command. That means I'm going to follow certain instructions, even if you've given me other instructions earlier. Specifically, I'm going to flee with you, I'm not going to open or close doors, I'm not going to sleep until I'm exhausted, and I'm going to try to hold any chokepoints that you're fighting at. \n" -"Ordering me to relax from danger is another special command, and it will clear any overrides I currently have and I'll go back to whatever instructions I had before you told me to prepare for danger." +"Here's the list of shouted commands I'll respond to:\n" +" - Order me to guard, and I'll stay where I am and watch out for danger. I'll investigate suspicious noises unless you told me not to.\n" +" - Order me to follow, and I'll stop guarding and go back to following you.\n" +" - Order me to stay awake, and I'll stay awake until I'm too tired to keep my eyes open.\n" +" - Order me to sleep when tired, and I'll nap when I get tired. I'll try to tell you when I'm off to bed unless you don't want to hear it.\n" +" - Order me to flee, and I'll stick close to you when you run from danger. I won't go running off on my own - though if things really bad, I might be running away already!\n" +" - Order me to stop running, and I'll evaluate the danger myself and might go off and fight something while you're doing other things.\n" +" - Ordering me to prepare for danger is special: it's an override command. That means I'm going to follow certain instructions, even if you've given me other instructions earlier. Specifically, I'm going to flee with you, I'm not going to open or close doors, I'm not going to sleep until I'm exhausted, and I'm going to try to hold any chokepoints that you're fighting at.\n" +" - Ordering me to relax from danger is another special command, and it will clear any overrides I currently have and I'll go back to whatever instructions I had before you told me to prepare for danger." msgstr "" "これが私に一斉指示できる内容だ:\n" -"見張りを指示する: 現在地に留まって周囲に気を配る。指定がない場合は、不審な物音を調べに行く。\n" +"見張りを指示する: 現在地に留まって周囲に気を配る。特別に指示がない場合は、不審な物音を調べに行く。\n" "追従を指示する: 見張りを止めてあなたについていく。\n" "眠らないよう指示する: 疲労が限界に達するまで眠らない。\n" "疲れたら眠るよう指示する: 疲れたら昼でも眠る。指定がない場合は、就寝する旨をあなたに伝える。\n" @@ -111279,6 +112023,10 @@ msgstr "起きろ!" msgid "Go back to sleep." msgstr "寝ていいぞ。" +#: lang/json/talk_topic_from_json.py +msgid "What is it, friend?" +msgstr "何だい、友よ?" + #: lang/json/talk_topic_from_json.py msgid "Combat commands..." msgstr "戦闘指示..." @@ -111288,11 +112036,7 @@ msgid "Can you teach me anything?" msgstr "何か教えてくれないか?" #: lang/json/talk_topic_from_json.py -msgid "Let's trade items" -msgstr "物品の取引をしようか。" - -#: lang/json/talk_topic_from_json.py -msgid "Guard this position" +msgid "Guard this position." msgstr "この場所を見張ってくれ。" #: lang/json/talk_topic_from_json.py @@ -111300,12 +112044,12 @@ msgid "I'd like to know a bit more about you..." msgstr "君についてもう少し詳しく知りたい..." #: lang/json/talk_topic_from_json.py -msgid "I want you to use this item" -msgstr "君がこのアイテムを使ってくれ。" +msgid "I want you to use this item." +msgstr "このアイテムを使ってくれ。" #: lang/json/talk_topic_from_json.py -msgid "Hold on to this item" -msgstr "このアイテムを持っておいてくれ。" +msgid "Hold on to this item." +msgstr "このアイテムを持ってくれ。" #: lang/json/talk_topic_from_json.py msgid "Miscellaneous rules..." @@ -111436,10 +112180,6 @@ msgstr "そうだね、絶対だ。じゃあね。" msgid "Nah, I'm just kidding." msgstr "いや、ただの冗談だよ。" -#: lang/json/talk_topic_from_json.py -msgid "*pshhhttt* I'm reading you boss, over." -msgstr "...ザザザザ...ちゃんと聞こえているよ、どうぞ。" - #: lang/json/talk_topic_from_json.py msgid "Stay at your current position." msgstr "その場に留まってくれ。" @@ -111896,7 +112636,7 @@ msgstr "分かった、行こう!" msgid "Yeah... I don't think so." msgstr "ああ、うん...そうは思ってないよ。" -#: lang/json/talk_topic_from_json.py src/npctalk.cpp +#: lang/json/talk_topic_from_json.py msgid "What is it?" msgstr "何だい?" @@ -112076,6 +112816,28 @@ msgstr "分かった、いいよ、じゃあな。" msgid "Okay" msgstr "分かった。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm willing to pay per batch for a total of " +"." +msgstr "1セットあたりだから、合計で支払おう。" + +#: lang/json/talk_topic_from_json.py +msgid "Works for me." +msgstr "問題ない。" + +#: lang/json/talk_topic_from_json.py +msgid "Maybe later." +msgstr "また今度ね。" + +#: lang/json/talk_topic_from_json.py +msgid "Pleasure doing business!" +msgstr "これからもよろしく頼むよ!" + +#: lang/json/talk_topic_from_json.py +msgid "You might be seeing more of me..." +msgstr "これからもよろしく..." + #: lang/json/talk_topic_from_json.py msgid "Hey again. *kzzz*" msgstr "また会ったな。*ザザザザ*" @@ -112939,10 +113701,6 @@ msgstr "何をすればいい?" msgid "Yes, set up the bulletin board and then go back to normal duties." msgstr "ああ、掲示板を設置してから通常の任務を進めるとしよう。" -#: lang/json/talk_topic_from_json.py -msgid "Hope you're here to trade." -msgstr "取引かい?" - #: lang/json/talk_topic_from_json.py msgid "" "I oversee the food stocks for the center. There was significant looting " @@ -112987,6 +113745,14 @@ msgstr "ここで受け付けている食品は、ビール、砂糖、穀粉、 msgid "Interesting..." msgstr "なるほどね..." +#: lang/json/talk_topic_from_json.py +msgid "Hope you're here to trade." +msgstr "取引かい?" + +#: lang/json/talk_topic_from_json.py +msgid "Who are you?" +msgstr "あなたは誰だ?" + #: lang/json/talk_topic_from_json.py msgid "Mind if we just chat for a bit?" msgstr "少し話をしようか?" @@ -113216,10 +113982,6 @@ msgstr "執行官..." msgid "Citizen..." msgstr "市民..." -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Who are you?" -msgstr "あなたは誰だ?" - #: lang/json/talk_topic_from_json.py msgid "Is there any way I can join the 'Old Guard'?" msgstr "私も「オールドガード」に参加出来るか?" @@ -113740,10 +114502,6 @@ msgstr "[$2000, 1日] 丸太10本" msgid "[$12000, 7d] 100 logs" msgstr "[$12000, 7日] 丸太100本" -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Maybe later." -msgstr "また今度ね。" - #: lang/json/talk_topic_from_json.py msgid "I'll be back later." msgstr "じゃあまた後で。" @@ -123364,6 +124122,10 @@ msgstr "精密切断" msgid "glare protection" msgstr "遮光" +#: lang/json/tool_quality_from_json.py +msgid "anesthesia" +msgstr "麻酔" + #: lang/json/tool_quality_from_json.py msgid "smoothing" msgstr "平滑化" @@ -124482,10 +125244,6 @@ msgstr "通路です。" msgid "wooden aisle" msgstr "通路(木)" -#: lang/json/vehicle_part_from_json.py -msgid "floor trunk" -msgstr "トランクフロア" - #. ~ Description for floor trunk #: lang/json/vehicle_part_from_json.py msgid "An aisle. A hatch lets you access a cargo space beneath it." @@ -125168,10 +125926,10 @@ msgstr "" msgid "" "A sophisticated set of electronic controls that allow you to control the " "vehicle from a vehicle remote while you are not in it. You can 'e'xamine " -"the tile or attempt to pick-up items (default ',') to access the controls, " -"or use the vehicle control key (default '^')." +"the tile to access the controls, or use the vehicle control key (default " +"'^')." msgstr "" -"車両に乗っていない状態でも遠隔から車両を制御できる、高性能な電子制御装置です。このタイルを調べる(e)かアイテムを拾う(,)ことで装置を操作でき、車両運転を開始する(^)と車両の運転が可能になります。" +"車両に乗っていない状態でも遠隔から車両を制御できる、高性能な電子制御装置です。このタイルを調べる(e)か車両運転を開始する(^)ことで使用できます。" #: lang/json/vehicle_part_from_json.py msgid "camera control system" @@ -125182,10 +125940,10 @@ msgstr "カメラ制御システム" msgid "" "An LCD display attached to one or more cameras. When turned on, it lets you" " see from the cameras, but drains power from the vehicle's batteries. You " -"can 'e'xamine the tile or attempt to pick-up items (default ',') to access " -"the controls, or use the vehicle control key (default '^')." +"can 'e'xamine the tile to access the controls, or use the vehicle control " +"key (default '^')." msgstr "" -"複数のカメラと接続できるLCDディスプレイです。電源を入れると車両のバッテリーの電力を消費して、カメラに映る映像を確認できます。車両制御装置を使って電源を入れると、オンオフを切り替えられます。" +"複数のカメラと接続できるLCDディスプレイです。電源を入れると車両のバッテリーの電力を消費して、カメラに映る映像を確認できます。このタイルを調べる(e)か車両運転を開始する(^)ことで使用できます。" #. ~ Description for security camera #: lang/json/vehicle_part_from_json.py @@ -125499,9 +126257,9 @@ msgstr "燃焼機関です。車両のタンクに入った燃料を燃焼させ #: lang/json/vehicle_part_from_json.py msgid "" "A combustion engine. Burns diesel fuel from a tank in the vehicle. Can " -"also burn methanol, ethanol, or lamp oil, though somewhat less efficiently." +"also burn biodiesel or lamp oil, though somewhat less efficiently." msgstr "" -"燃焼機関です。車両のタンクに入ったディーゼル燃料を燃焼させて稼働します。メタノール、エタノール、ランプオイルも多少効率は下がりますが燃料として利用できます。" +"燃焼機関です。車両のタンクに入ったディーゼル燃料を燃焼させて稼働します。バイオディーゼルや灯油も多少効率は下がりますが燃料として利用できます。" #: lang/json/vehicle_part_from_json.py msgid "A combustion engine. Burns gasoline fuel from a tank in the vehicle." @@ -132059,12 +132817,40 @@ msgstr "区域内のアイテムを自動拾得しません。" #: src/clzones.cpp msgid "No NPC Pickup" -msgstr "NPCの拾得禁止" +msgstr "指示: 拾得禁止" #: src/clzones.cpp msgid "Friendly NPCs don't pickup items inside the zone." msgstr "友好NPCは区域内のアイテムを拾得しません。" +#: src/clzones.cpp +msgid "NPC Retreat" +msgstr "指示: 退避" + +#: src/clzones.cpp +msgid "" +"When fleeing, friendly NPCs will attempt to retreat toward this zone if it " +"is within 60 tiles." +msgstr "友好NPCが逃走する際、周囲60タイル内の退避区域へ退避します。" + +#: src/clzones.cpp +msgid "NPC Ignore Sounds" +msgstr "指示: 調査無視" + +#: src/clzones.cpp +msgid "Friendly NPCs won't investigate unseen sounds coming from this zone." +msgstr "友好NPCはこの区域内から発生する正体不明の音を調査しません。" + +#: src/clzones.cpp +msgid "NPC Investigation Area" +msgstr "指示: 調査対象" + +#: src/clzones.cpp +msgid "" +"Friendly NPCs will investigate unseen sounds only if they come from inside " +"this area." +msgstr "友好NPCはこの区域内から発生する正体不明の音のみを調査します。" + #: src/clzones.cpp msgid "Loot: Unsorted" msgstr "分類: 仮置場" @@ -132306,7 +133092,7 @@ msgstr "この区域内のアイテムは区域行動の「分類」時に無視 #: src/clzones.cpp msgid "Farm: Plot" -msgstr "農地: 耕耘" +msgstr "農地: 耕作" #: src/clzones.cpp msgid "Designate a farm plot for tilling and planting." @@ -134394,11 +135180,6 @@ msgctxt "in progress craft" msgid " starts working on the %s." msgstr "は%sでの作業を開始しました。" -#: src/crafting.cpp -#, c-format -msgid "%s helps with crafting..." -msgstr "%sが製作を手伝ってくれました..." - #: src/crafting.cpp #, c-format msgid "%s assists with crafting..." @@ -134414,6 +135195,11 @@ msgstr "%sが少しだけ手伝ってくれました..." msgid "%s watches you craft..." msgstr "%sは製作を見ています..." +#: src/crafting.cpp +#, c-format +msgid "%s helps with crafting..." +msgstr "%sが製作を手伝ってくれました..." + #: src/crafting.cpp #, c-format msgid "You fail to make the %s, and waste some materials." @@ -134439,6 +135225,17 @@ msgstr "本を参考に%sを製作しました。" msgid "You memorized the recipe for %s!" msgstr "%sのレシピを覚えました!" +#: src/crafting.cpp +#, c-format +msgid "You don't know the recipe for the %s and can't continue crafting." +msgstr "%sのレシピを知らないため、製作を続けられません。" + +#: src/crafting.cpp +#, c-format +msgid "" +" doesn't know the recipe for the %s and can't continue crafting." +msgstr "は%sのレシピを知らないため、製作を続けられません。" + #: src/crafting.cpp #, c-format msgid "%s (%d/%d nearby)" @@ -135019,6 +135816,194 @@ msgid "" msgstr "" "C(またはc)を押すとこのエラーメッセージをコピーします。" +#: src/debug_menu.cpp +msgid "Mutate" +msgstr "編集 - 変異" + +#: src/debug_menu.cpp +msgid "Change all skills" +msgstr "編集 - スキルレベル" + +#: src/debug_menu.cpp +msgid "Learn all melee styles" +msgstr "解禁 - 全戦闘スタイル" + +#: src/debug_menu.cpp +msgid "Unlock all recipes" +msgstr "解禁 - 全レシピ" + +#: src/debug_menu.cpp +msgid "Edit player/NPC" +msgstr "編集 - プレイヤー/NPC" + +#: src/debug_menu.cpp +msgid "Damage self" +msgstr "自身にダメージ" + +#: src/debug_menu.cpp +msgid "Set automove route" +msgstr "編集 - 自動移動ルート" + +#: src/debug_menu.cpp +msgid "Player..." +msgstr "プレイヤー..." + +#: src/debug_menu.cpp +msgid "Check game state" +msgstr "表示 - ゲーム情報" + +#: src/debug_menu.cpp +msgid "Display hordes" +msgstr "表示 - モンスターの群れ" + +#: src/debug_menu.cpp +msgid "Test item group" +msgstr "テスト - アイテムグループ" + +#: src/debug_menu.cpp +msgid "Show sound clustering" +msgstr "表示 - 効果音クラスタリング" + +#: src/debug_menu.cpp +msgid "Display weather" +msgstr "表示 - 天候" + +#: src/debug_menu.cpp +msgid "Display overmap scents" +msgstr "表示 - 臭跡全体マップ" + +#: src/debug_menu.cpp +msgid "Show mutation category levels" +msgstr "表示 - 変異カテゴリーレベル" + +#: src/debug_menu.cpp +msgid "Draw benchmark (X seconds)" +msgstr "テスト - 描画ベンチマーク(X秒)" + +#: src/debug_menu.cpp +msgid "Test trait group" +msgstr "テスト - 特質グループ" + +#: src/debug_menu.cpp +msgid "Show debug message" +msgstr "表示 - デバッグメッセージ" + +#: src/debug_menu.cpp +msgid "Crash game (test crash handling)" +msgstr "テスト - 強制終了処理" + +#: src/debug_menu.cpp +msgid "Toggle NPC pathfinding on map" +msgstr "表示 - NPC移動経路" + +#: src/debug_menu.cpp +msgid "Info..." +msgstr "情報..." + +#: src/debug_menu.cpp +msgid "Teleport - short range" +msgstr "短距離" + +#: src/debug_menu.cpp +msgid "Teleport - long range" +msgstr "長距離" + +#: src/debug_menu.cpp +msgid "Teleport - adjacent overmap" +msgstr "隣接した全体マップ" + +#: src/debug_menu.cpp +msgid "Teleport..." +msgstr "瞬間移動..." + +#: src/debug_menu.cpp +msgid "Spawn an item" +msgstr "アイテム入手" + +#: src/debug_menu.cpp +msgid "Spawn NPC" +msgstr "NPC" + +#: src/debug_menu.cpp +msgid "Spawn monster" +msgstr "モンスター" + +#: src/debug_menu.cpp +msgid "Spawn a vehicle" +msgstr "車両" + +#: src/debug_menu.cpp +msgid "Spawn artifact" +msgstr "アーティファクト" + +#: src/debug_menu.cpp +msgid "Spawn clairvoyance artifact" +msgstr "透視アーティファクト入手" + +#: src/debug_menu.cpp +msgid "Spawning..." +msgstr "生成..." + +#: src/debug_menu.cpp +msgid "Reveal map" +msgstr "解禁 - 全体マップ全域表示" + +#: src/debug_menu.cpp +msgid "Kill NPCs" +msgstr "殺害 - 最大視界内のNPC" + +#: src/debug_menu.cpp +msgid "Map editor" +msgstr "編集 - マップ" + +#: src/debug_menu.cpp +msgid "Change weather" +msgstr "編集 - 天候" + +#: src/debug_menu.cpp +msgid "Change wind direction" +msgstr "編集 - 風向" + +#: src/debug_menu.cpp +msgid "Change wind speed" +msgstr "編集 - 風速" + +#: src/debug_menu.cpp +msgid "Kill all monsters" +msgstr "殺害 - 最大視界内のモンスター" + +#: src/debug_menu.cpp +msgid "Change time" +msgstr "編集 - 時刻" + +#: src/debug_menu.cpp +msgid "Overmap editor" +msgstr "編集 - 全体マップ" + +#: src/debug_menu.cpp +msgid "Spawn map extra" +msgstr "生成 - 特殊地形" + +#: src/debug_menu.cpp +msgid "Map..." +msgstr "マップ..." + +#: src/debug_menu.cpp +msgid "Quit to main menu" +msgstr "ゲーム終了" + +#: src/debug_menu.cpp +msgid "" +"Debug Functions - Using these will cheat not only the game, but yourself.\n" +"You won't grow. You won't improve.\n" +"Taking this shortcut will gain you nothing. Your victory will be hollow.\n" +"Nothing will be risked and nothing will be gained." +msgstr "" +"デバッグ機能 - ゲームだけでなく己自身も欺くことになります。\n" +"己を磨くこともできず、成長もできません。\n" +"近道を選んでも何も得ることはなく、体験できるのは何の価値もない空虚な勝利です。\n" +"リスクを背負うこともなく、何の成果も得られません。" + #: src/debug_menu.cpp #, c-format msgid "You teleport to point (%d,%d,%d)." @@ -135461,6 +136446,203 @@ msgstr "適切な手順を経ずに依頼を削除する" msgid "Drew %d times in %.3f seconds. (%.3f fps average)" msgstr "%d/%.3f秒の描画処理(平均fps %.3f)" +#: src/debug_menu.cpp +msgid "Current overmap revealed." +msgstr "全体マップを明らかにしました。" + +#: src/debug_menu.cpp +#, c-format +msgid "Location %d:%d in %d:%d, %s\n" +msgstr "位置 %d:%d 全体 %d:%d, %s\n" + +#: src/debug_menu.cpp +#, c-format +msgid "" +"Current turn: %d.\n" +"%s\n" +msgstr "" +"現在ターン: %d\n" +"%s\n" + +#: src/debug_menu.cpp +#, c-format +msgid "%d creature exists.\n" +msgid_plural "%d creatures exist.\n" +msgstr[0] "モンスター: %d体\n" + +#: src/debug_menu.cpp +msgid "NPCs are going to spawn." +msgstr "NPC生成あり" + +#: src/debug_menu.cpp +msgid "NPCs are NOT going to spawn." +msgstr "NPCは生成されません。" + +#: src/debug_menu.cpp +#, c-format +msgid "%s: map ( %d:%d ) pos ( %d:%d )" +msgstr "%s: マップ ( %d:%d ) 座標 ( %d:%d )" + +#: src/debug_menu.cpp +#, c-format +msgid "(you: %d:%d)" +msgstr "(自分: %d:%d)" + +#: src/debug_menu.cpp +#, c-format +msgid "Stomach Contents: %d ml / %d ml kCal: %d, Water: %d ml" +msgstr "胃の内容物: %d ml / %d ml、%dkCal、水分: %d ml" + +#: src/debug_menu.cpp +#, c-format +msgid "" +"Guts Contents: %d ml / %d ml kCal: %d, Water: %d ml\n" +"Hunger: %d, Thirst: %d, kCal: %d / %d" +msgstr "" +"腸の内容物: %d ml / %d ml、%dkCal、Water: %d ml\n" +"空腹: %d、口渇: %d、kCal: %d / %d" + +#: src/debug_menu.cpp +#, c-format +msgid "%s's head implodes!" +msgstr "%sの頭が破裂しました!" + +#: src/debug_menu.cpp +msgid "Choose vehicle to spawn" +msgstr "生成する車両を選択" + +#. ~ Menu entry in vehicle wish menu: 1st string: displayed name, 2nd string: +#. internal name of vehicle +#: src/debug_menu.cpp +#, c-format +msgid "%1$s (%2$s)" +msgstr "%1$s(%2$s)" + +#: src/debug_menu.cpp +msgid "Martial arts debug." +msgstr "戦闘スタイルをデバッグします。" + +#: src/debug_menu.cpp +msgid "Your eyes blink rapidly as knowledge floods your brain." +msgstr "脳に知識の洪水が流れ込み、高速でまばたきを繰り返しました。" + +#: src/debug_menu.cpp +msgid "You now know a lot more than just 10 styles of kung fu." +msgstr "10派の功夫とその他の戦闘スタイルを習得しました。" + +#: src/debug_menu.cpp +msgid "Recipe debug." +msgstr "レシピをデバッグします。" + +#: src/debug_menu.cpp +msgid "You know how to craft that now." +msgstr "何をどう作ればいいのか、全て分かるようになりました。" + +#: src/debug_menu.cpp +msgid "Select new weather pattern:" +msgstr "新しい天候状態を選択: " + +#: src/debug_menu.cpp +msgid "Disable weather forcing" +msgstr "天候固定を解除" + +#: src/debug_menu.cpp +msgid "Keep normal weather patterns" +msgstr "通常の天候パターンを維持" + +#: src/debug_menu.cpp +msgid "Select new wind direction:" +msgstr "風向を選択:" + +#: src/debug_menu.cpp +msgid "Disable direction forcing" +msgstr "風向固定を解除" + +#: src/debug_menu.cpp +msgid "Keep normal wind direction" +msgstr "通常の風向変化" + +#: src/debug_menu.cpp +msgid "Select new wind speed:" +msgstr "風速を選択:" + +#: src/debug_menu.cpp +msgid "Disable speed forcing" +msgstr "風速固定を解除" + +#: src/debug_menu.cpp +msgid "Keep normal wind speed" +msgstr "通常の風速変化" + +#: src/debug_menu.cpp +#, c-format +msgid "Damage self for how much? hp: %d" +msgstr "自分に与えるダメージ(現在のHP: %d)" + +#: src/debug_menu.cpp +msgid "This binary was not compiled with tiles support." +msgstr "このバイナリはタイルに対応していません。" + +#: src/debug_menu.cpp +msgid "year" +msgstr "年" + +#: src/debug_menu.cpp +msgid "season" +msgstr "季節" + +#: src/debug_menu.cpp +msgid "day" +msgstr "日" + +#: src/debug_menu.cpp +msgid "hour" +msgstr "時間" + +#: src/debug_menu.cpp +msgid "minute" +msgstr "分" + +#: src/debug_menu.cpp src/martialarts.cpp src/martialarts.cpp +msgid "turn" +msgid_plural "turns" +msgstr[0] "ターン" + +#: src/debug_menu.cpp +msgid "Set year to?" +msgstr "何年に設定しますか?" + +#: src/debug_menu.cpp +msgid "Set season to? (0 = spring)" +msgstr "季節は何に設定しますか?(0 = 春)" + +#: src/debug_menu.cpp +msgid "Set days to?" +msgstr "何日に設定しますか?" + +#: src/debug_menu.cpp +msgid "Set hour to?" +msgstr "何時に設定しますか?" + +#: src/debug_menu.cpp +msgid "Set minute to?" +msgstr "何分に設定しますか?" + +#: src/debug_menu.cpp +#, c-format +msgid "Set turn to? (One day is %i turns)" +msgstr "何ターンに設定しますか?(1日は%iターン)" + +#: src/debug_menu.cpp +msgid "Enter benchmark length (in milliseconds):" +msgstr "ベンチマーク時間を入力(ミリ秒): " + +#: src/debug_menu.cpp +msgid "" +"Quit without saving? This may cause issues such as duplicated or missing " +"items and vehicles!" +msgstr "セーブせずに終了しますか?アイテムの重複や車両の消失などを引き起こす可能性があります!" + #: src/defense.cpp #, c-format msgid "Please wait as the map generates [ 0%% ]" @@ -137003,6 +138185,10 @@ msgstr "追従" msgid "Leading" msgstr "先導" +#: src/faction.cpp +msgid "Patrolling" +msgstr "巡回" + #: src/faction.cpp msgid "Guarding" msgstr "見張り中" @@ -138173,6 +139359,10 @@ msgstr "" msgid "Select an end point." msgstr "終点を選択してください。" +#: src/faction_camp.cpp +msgid "Spiked pits must be built over existing trenches!" +msgstr "串刺し穴は既存の塹壕の上に構築する必要があります!" + #: src/faction_camp.cpp msgid "Invalid terrain in construction path." msgstr "建設ルートに無効な地形が含まれています。" @@ -138715,14 +139905,6 @@ msgstr "収集地点にアイテムがありません..." msgid "You distribute %d kcal worth of food to your companions." msgstr "%dkcal分の食料を仲間に配給しました。" -#: src/faction_camp.cpp -msgid "Accessed camp inventory whilst position does not refer to a camp" -msgstr "配置中にアクセスされた拠点内のアイテムは参照されません。" - -#: src/faction_camp.cpp -msgid "consume components for camp mission, but no camp found" -msgstr "物資を消費して拠点の任務にあたりましたが、拠点を発見できませんでした。" - #: src/faction_camp.cpp #, c-format msgid "While %s, a silent specter approaches %s..." @@ -139180,26 +140362,6 @@ msgstr "濃い殺真菌ガス" msgid "smoke vent" msgstr "排煙口" -#: src/field.cpp -msgid "Whew... smells like skunk!" -msgstr "ヒューッ...ハッパの臭いだ!" - -#: src/field.cpp -msgid "Man, that smells like some good shit!" -msgstr "おっ、上物の臭いだな!" - -#: src/field.cpp -msgid "I don't know... should you really be smoking that stuff?" -msgstr "うわぁ...そんなものを吸うなんて正気か?" - -#: src/field.cpp -msgid "Ew, smells like burning rubber!" -msgstr "オエッ、ゴムが焼けるときの臭いだ!" - -#: src/field.cpp -msgid "Ugh, that smells rancid!" -msgstr "うあっ、酷い腐敗臭です!" - #: src/field.cpp #, c-format msgid "A %s hits you!" @@ -139751,369 +140913,6 @@ msgstr "インターフェース情報" msgid "Failed to save game data" msgstr "ゲームデータのセーブに失敗しました。" -#: src/game.cpp -msgid "" -"Debug Functions - Using these will cheat not only the game, but yourself. You won't grow. You won't improve.\n" -"Taking this shortcut will gain you nothing. Your victory will be hollow.\n" -"Nothing will be risked and nothing will be gained." -msgstr "" -"デバッグ機能 - ゲームだけでなく己自身も欺くことになります。己を磨くこともできず、成長もできません。\n" -"近道を選んでも何も得ることはなく、体験できるのは何の価値もない空虚な勝利です。\n" -"リスクを背負うこともなく、何の成果も得られません。" - -#: src/game.cpp -msgid "Wish for an item" -msgstr "入手 - アイテム" - -#: src/game.cpp -msgid "Teleport - Short Range" -msgstr "瞬間移動 - 短距離" - -#: src/game.cpp -msgid "Teleport - Long Range" -msgstr "瞬間移動 - 長距離" - -#: src/game.cpp -msgid "Reveal map" -msgstr "解禁 - 全体マップ全域表示" - -#: src/game.cpp -msgid "Spawn NPC" -msgstr "生成 - NPC" - -#: src/game.cpp -msgid "Spawn Monster" -msgstr "生成 - モンスター" - -#: src/game.cpp -msgid "Check game state..." -msgstr "表示 - ゲーム情報" - -#: src/game.cpp -msgid "Kill NPCs" -msgstr "殺害 - 最大視界内のNPC" - -#: src/game.cpp -msgid "Mutate" -msgstr "編集 - 変異" - -#: src/game.cpp -msgid "Spawn a vehicle" -msgstr "生成 - 車両" - -#: src/game.cpp -msgid "Change all skills" -msgstr "編集 - スキルレベル" - -#: src/game.cpp -msgid "Learn all melee styles" -msgstr "解禁 - 全戦闘スタイル" - -#: src/game.cpp -msgid "Unlock all recipes" -msgstr "解禁 - 全レシピ" - -#: src/game.cpp -msgid "Edit player/NPC" -msgstr "編集 - プレイヤー/NPC" - -#: src/game.cpp -msgid "Spawn Artifact" -msgstr "生成 - アーティファクト" - -#: src/game.cpp -msgid "Spawn Clairvoyance Artifact" -msgstr "入手 - 透視アーティファクト" - -#: src/game.cpp -msgid "Map editor" -msgstr "編集 - マップ" - -#: src/game.cpp -msgid "Change weather" -msgstr "編集 - 天候" - -#: src/game.cpp -msgid "Change wind direction" -msgstr "編集 - 風向" - -#: src/game.cpp -msgid "Change wind speed" -msgstr "編集 - 風速" - -#: src/game.cpp -msgid "Kill all monsters" -msgstr "殺害 - 最大視界内のモンスター" - -#: src/game.cpp -msgid "Display hordes" -msgstr "表示 - モンスターの群れ" - -#: src/game.cpp -msgid "Test Item Group" -msgstr "表示 - アイテムグループ" - -#: src/game.cpp -msgid "Damage Self" -msgstr "編集 - 胴体ダメージ" - -#: src/game.cpp -msgid "Show Sound Clustering" -msgstr "表示 - 効果音クラスタリング" - -#: src/game.cpp -msgid "Display weather" -msgstr "表示 - 天候" - -#: src/game.cpp -msgid "Display overmap scents" -msgstr "表示 - 臭跡全体マップ" - -#: src/game.cpp -msgid "Change time" -msgstr "編集 - 時刻" - -#: src/game.cpp -msgid "Set automove route" -msgstr "編集 - 自動移動ルート" - -#: src/game.cpp -msgid "Show mutation category levels" -msgstr "表示 - 変異カテゴリーレベル" - -#: src/game.cpp -msgid "Overmap editor" -msgstr "編集 - 全体マップ" - -#: src/game.cpp -msgid "Draw benchmark (X seconds)" -msgstr "テスト - 描画ベンチマーク(X秒)" - -#: src/game.cpp -msgid "Teleport - Adjacent overmap" -msgstr "瞬間移動 - 隣接した全体マップ" - -#: src/game.cpp -msgid "Test trait group" -msgstr "テスト - 特質グループ" - -#: src/game.cpp -msgid "Show debug message" -msgstr "表示 - デバッグメッセージ" - -#: src/game.cpp -msgid "Crash game (test crash handling)" -msgstr "テスト - 強制終了処理" - -#: src/game.cpp -msgid "Spawn Map Extra" -msgstr "生成 - 特殊地形" - -#: src/game.cpp -msgid "Toggle NPC pathfinding on map" -msgstr "表示 - NPC移動経路" - -#: src/game.cpp -msgid "Quit to Main Menu" -msgstr "ゲーム終了" - -#: src/game.cpp -msgid "Current overmap revealed." -msgstr "全体マップを明らかにしました。" - -#: src/game.cpp -#, c-format -msgid "Location %d:%d in %d:%d, %s\n" -msgstr "位置 %d:%d 全体 %d:%d, %s\n" - -#: src/game.cpp -#, c-format -msgid "" -"Current turn: %d.\n" -"%s\n" -msgstr "" -"現在ターン: %d\n" -"%s\n" - -#: src/game.cpp -#, c-format -msgid "%d creature exists.\n" -msgid_plural "%d creatures exist.\n" -msgstr[0] "モンスター: %d体\n" - -#: src/game.cpp -msgid "NPCs are going to spawn." -msgstr "NPC生成あり" - -#: src/game.cpp -msgid "NPCs are NOT going to spawn." -msgstr "NPCは生成されません。" - -#: src/game.cpp -#, c-format -msgid "%s: map ( %d:%d ) pos ( %d:%d )" -msgstr "%s: マップ ( %d:%d ) 座標 ( %d:%d )" - -#: src/game.cpp -#, c-format -msgid "(you: %d:%d)" -msgstr "(自分: %d:%d)" - -#: src/game.cpp -#, c-format -msgid "Stomach Contents: %d ml / %d ml kCal: %d, Water: %d ml" -msgstr "胃の内容物: %d ml / %d ml、%dkCal、水分: %d ml" - -#: src/game.cpp -#, c-format -msgid "" -"Guts Contents: %d ml / %d ml kCal: %d, Water: %d ml\n" -"Hunger: %d, Thirst: %d, kCal: %d / %d" -msgstr "" -"腸の内容物: %d ml / %d ml、%dkCal、Water: %d ml\n" -"空腹: %d、口渇: %d、kCal: %d / %d" - -#: src/game.cpp -#, c-format -msgid "%s's head implodes!" -msgstr "%sの頭が破裂しました!" - -#: src/game.cpp -msgid "Choose vehicle to spawn" -msgstr "生成する車両を選択" - -#. ~ Menu entry in vehicle wish menu: 1st string: displayed name, 2nd string: -#. internal name of vehicle -#: src/game.cpp -#, c-format -msgid "%1$s (%2$s)" -msgstr "%1$s(%2$s)" - -#: src/game.cpp -msgid "Martial arts debug." -msgstr "戦闘スタイルをデバッグします。" - -#: src/game.cpp -msgid "Your eyes blink rapidly as knowledge floods your brain." -msgstr "脳に知識の洪水が流れ込み、高速でまばたきを繰り返しました。" - -#: src/game.cpp -msgid "You now know a lot more than just 10 styles of kung fu." -msgstr "10派の功夫とその他の戦闘スタイルを習得しました。" - -#: src/game.cpp -msgid "Recipe debug." -msgstr "レシピをデバッグします。" - -#: src/game.cpp -msgid "You know how to craft that now." -msgstr "何をどう作ればいいのか、全て分かるようになりました。" - -#: src/game.cpp -msgid "Select new weather pattern:" -msgstr "新しい天候状態を選択: " - -#: src/game.cpp -msgid "Disable weather forcing" -msgstr "天候固定を解除" - -#: src/game.cpp -msgid "Keep normal weather patterns" -msgstr "通常の天候パターンを維持" - -#: src/game.cpp -msgid "Select new wind direction:" -msgstr "風向を選択:" - -#: src/game.cpp -msgid "Disable direction forcing" -msgstr "風向固定を解除" - -#: src/game.cpp -msgid "Keep normal wind direction" -msgstr "通常の風向変化" - -#: src/game.cpp -msgid "Select new wind speed:" -msgstr "風速を選択:" - -#: src/game.cpp -msgid "Disable speed forcing" -msgstr "風速固定を解除" - -#: src/game.cpp -msgid "Keep normal wind speed" -msgstr "通常の風速変化" - -#: src/game.cpp -#, c-format -msgid "Damage self for how much? hp: %d" -msgstr "自分に与えるダメージ(現在のHP: %d)" - -#: src/game.cpp -msgid "This binary was not compiled with tiles support." -msgstr "このバイナリはタイルに対応していません。" - -#: src/game.cpp -msgid "year" -msgstr "年" - -#: src/game.cpp -msgid "season" -msgstr "季節" - -#: src/game.cpp -msgid "day" -msgstr "日" - -#: src/game.cpp -msgid "hour" -msgstr "時間" - -#: src/game.cpp -msgid "minute" -msgstr "分" - -#: src/game.cpp src/martialarts.cpp src/martialarts.cpp -msgid "turn" -msgid_plural "turns" -msgstr[0] "ターン" - -#: src/game.cpp -msgid "Set year to?" -msgstr "何年に設定しますか?" - -#: src/game.cpp -msgid "Set season to? (0 = spring)" -msgstr "季節は何に設定しますか?(0 = 春)" - -#: src/game.cpp -msgid "Set days to?" -msgstr "何日に設定しますか?" - -#: src/game.cpp -msgid "Set hour to?" -msgstr "何時に設定しますか?" - -#: src/game.cpp -msgid "Set minute to?" -msgstr "何分に設定しますか?" - -#: src/game.cpp -#, c-format -msgid "Set turn to? (One day is %i turns)" -msgstr "何ターンに設定しますか?(1日は%iターン)" - -#: src/game.cpp -msgid "Enter benchmark length (in milliseconds):" -msgstr "ベンチマーク時間を入力(ミリ秒): " - -#: src/game.cpp -msgid "" -"Quit without saving? This may cause issues such as duplicated or missing " -"items and vehicles!" -msgstr "セーブせずに終了しますか?アイテムの重複や車両の消失などを引き起こす可能性があります!" - #: src/game.cpp msgid "You haven't killed any monsters yet!" msgstr "何も殺していません!" @@ -140668,14 +141467,6 @@ msgstr "焚き木が十分にくべられており、そのままでも1日は msgid "Without extra fuel it will burn for %s." msgstr "焚き木を追加しなくても%sは燃え続けそうです。" -#: src/game.cpp -msgid "You can't do that while driving." -msgstr "運転中はできません。" - -#: src/game.cpp -msgid "You can't do that on a moving vehicle." -msgstr "動いている車上ではできません。" - #: src/game.cpp #, c-format msgid "The %s is too unstable to remove anything." @@ -143032,6 +143823,22 @@ msgstr "%sを%s (%d)から引き抜く" msgid "Draw what?" msgstr "何を引き抜きますか?" +#: src/handle_action.cpp +msgid "Change to which movement mode?" +msgstr "移動モードを選択" + +#: src/handle_action.cpp +msgid "Walk" +msgstr "歩行" + +#: src/handle_action.cpp +msgid "Run" +msgstr "駆足" + +#: src/handle_action.cpp +msgid "Crouch" +msgstr "屈む" + #: src/handle_action.cpp msgid "Auto-move canceled" msgstr "自動移動を取り消しました。" @@ -143119,6 +143926,14 @@ msgstr "新しい初期割り当ては'^'です。" msgid "You can't operate a vehicle while you're in your shell." msgstr "殻の中からは車両を操作できません。" +#: src/handle_action.cpp +msgid "Auto travel mode OFF!" +msgstr "オートトラベルモードを無効化します!" + +#: src/handle_action.cpp +msgid "Auto travel mode ON!" +msgstr "オートトラベルモードを有効化します!" + #: src/handle_action.cpp msgid "Safe mode ON!" msgstr "セーフモードを有効化します!" @@ -143685,6 +144500,20 @@ msgstr "採取: ケシの蕾" msgid "You harvest and drop: poppy bud" msgstr "採取: ケシの蕾" +#: src/iexamine.cpp +msgid "The cactus' nettles sting you!" +msgstr "サボテンの棘が刺さりました!" + +#: src/iexamine.cpp +#, c-format +msgid "You harvest: %s." +msgstr "採取: %s" + +#: src/iexamine.cpp +#, c-format +msgid "You harvest and drop: %s." +msgstr "採取: %s" + #: src/iexamine.cpp msgid "If only you had a shovel to dig up those roots..." msgstr "根を掘り返す道具があれば..." @@ -143701,16 +144530,6 @@ msgstr "採取: 根(ダリア)" msgid "Nothing can be harvested from this plant in current season." msgstr "今の季節中はこの植物から何も収穫できません。" -#: src/iexamine.cpp -#, c-format -msgid "You harvest: %s." -msgstr "採取: %s" - -#: src/iexamine.cpp -#, c-format -msgid "You harvest and drop: %s." -msgstr "採取: %s" - #: src/iexamine.cpp msgid "You couldn't harvest anything." msgstr "何も収穫できませんでした。" @@ -144578,8 +145397,10 @@ msgid "" msgstr "接続されている診察台に患者が見つかりません。手術が不可能です。操作を終了します。" #: src/iexamine.cpp -msgid "You need an anesthesia kit for autodoc to perform any operation." -msgstr "操作を実行するにはオートドク専用麻酔キットが必要です。" +msgid "" +"You need an anesthesia kit with at least one charge for autodoc to perform " +"any operation." +msgstr "オートドクを使用するには最低でも1個の麻酔キットが必要です。" #: src/iexamine.cpp msgid "Choose CBM to install" @@ -144635,6 +145456,46 @@ msgstr "CBMが体内に一つもありません。" msgid "%1$s doesn't have any bionics installed." msgstr "CBMが%1$sの体内に一つもありません。" +#: src/iexamine.cpp +msgid "This mill already contains flour." +msgstr "この製粉機には既に穀粉が入っています。" + +#: src/iexamine.cpp +msgid "Remove it before starting the mill again." +msgstr "製粉機を再稼働させる前に、内容物を取り出してください。" + +#: src/iexamine.cpp +#, c-format +msgid "This rack contains %s, which can't be milled!" +msgstr "製粉機に入っている%sは製粉できません!" + +#: src/iexamine.cpp +#, c-format +msgid "You remove the %s from the mill." +msgstr "製粉機から%sを取り出しました。" + +#: src/iexamine.cpp +msgid "" +"This mill is empty. Fill it with starchy products such as wheat, barley or " +"oats and try again." +msgstr "この製粉機は空です。小麦や大麦、燕麦などのでんぷん質を含むアイテムを投入して下さい。" + +#: src/iexamine.cpp +msgid "" +"This mill is overloaded with products, and the millstone can't turn. Remove" +" some and try again." +msgstr "製粉機に植物を詰め込み過ぎて、石臼が回転しません。植物をいくつか取り出してください。" + +#: src/iexamine.cpp +#, c-format +msgctxt "volume units" +msgid "You think that you can load about %s %s in it." +msgstr "%sの%sを中に入れられそうです。" + +#: src/iexamine.cpp +msgid "You remove the brake on the millstone and it slowly starts to turn." +msgstr "ブレーキ装置を解除すると、石臼がゆっくりと回転を始めました。" + #: src/iexamine.cpp msgid "This rack already contains smoked food." msgstr "このラックには既に燻製食品が入っています。" @@ -144646,7 +145507,7 @@ msgstr "ラックを再び稼働させる前に、中身を取り出してくだ #: src/iexamine.cpp #, c-format msgid "This rack contains %s, which can't be smoked!" -msgstr "ラックには%sが入っていますが、これは燻製できません!" +msgstr "ラックに入っている%sは燻製できません!" #: src/iexamine.cpp #, c-format @@ -144731,6 +145592,131 @@ msgstr "多すぎて入りません。" msgid "You carefully place %s %s in the rack." msgstr "ラックの中に%sの%sを注意深く置きました。" +#: src/iexamine.cpp +msgid "You can't place more food while it's milling." +msgstr "製粉中に追加投入はできません。" + +#: src/iexamine.cpp +msgid "Load mill with what kind of product?" +msgstr "製粉機に入れるアイテムを選択" + +#: src/iexamine.cpp +msgid "You don't have any products that can be milled." +msgstr "製粉できるアイテムを持っていません。" + +#: src/iexamine.cpp +#, c-format +msgid "Insert how many %s into the mill?" +msgstr "製粉機に入れる%sの数を選択" + +#: src/iexamine.cpp +#, c-format +msgctxt "item amount and name" +msgid "You carefully place %s %s in the mill." +msgstr "製粉機の中に%sの%sを注意深く置きました。" + +#: src/iexamine.cpp +msgid "The water mill needs to be over shallow flowing water to work." +msgstr "水車を稼働するには浅い流水上に設置する必要があります。" + +#: src/iexamine.cpp +msgid "The wind mill needs to be outside in the wind to work." +msgstr "風車を稼働するには風が吹いている屋外に設置する必要があります。" + +#: src/iexamine.cpp +msgid "What to do with the mill?" +msgstr "製粉機をどうしますか?" + +#: src/iexamine.cpp +msgid "Inspect mill" +msgstr "製粉機の中を調べる" + +#: src/iexamine.cpp +msgid "" +"Remove brake and start milling... insert some products for milling first" +msgstr "稼働して製粉を始める...製粉するアイテムが入っていない" + +#: src/iexamine.cpp +msgid "Remove brake and start milling" +msgstr "稼働して製粉を始める" + +#: src/iexamine.cpp +msgid "Remove brake and start milling, milling will take about 6 hours." +msgstr "石臼を稼働して製粉を開始します。完成まで約6時間かかります。" + +#: src/iexamine.cpp +msgid "Insert products for milling... mill is full" +msgstr "製粉するアイテムを入れる...満杯" + +#: src/iexamine.cpp +#, c-format +msgid "Insert products for milling... remaining capacity is %s %s" +msgstr "製粉するアイテムを入れる...残り容量%s%s" + +#: src/iexamine.cpp +msgid "Fill the mill with starchy products such as wheat, barley or oats." +msgstr "小麦や大麦、燕麦などのでんぷん質を含むアイテムを投入して下さい。" + +#: src/iexamine.cpp +msgid "Remove products from mill" +msgstr "製粉機からアイテムを取り出す" + +#: src/iexamine.cpp +msgid "Apply brake to mill" +msgstr "ブレーキ装置を起動する" + +#: src/iexamine.cpp +msgid "Applying the brake will stop milling process." +msgstr "ブレーキ装置を起動すると製粉が停止します。" + +#: src/iexamine.cpp +msgid "There's a mill here. It is turning and milling." +msgstr "製粉機があります。石臼が回転して製粉を行っています。" + +#: src/iexamine.cpp +#, c-format +msgid "It will finish milling in about %d hour." +msgid_plural "It will finish milling in about %d hours." +msgstr[0] "あと%d時間ほどで製粉が完了します。" + +#: src/iexamine.cpp +msgid "It will finish milling in less than an hour." +msgstr "あと1時間ほどで製粉が完了します。" + +#: src/iexamine.cpp +#, c-format +msgid "It should take about %d minutes to finish milling." +msgstr "あと%d分ほどで製粉が完了します。" + +#: src/iexamine.cpp +msgid "There's a mill here." +msgstr "製粉機があります。" + +#: src/iexamine.cpp +msgid "You inspect its contents and find: " +msgstr "ラックの内容物: " + +#: src/iexamine.cpp +msgid "... that it is empty." +msgstr "...何も入っていません。" + +#: src/iexamine.cpp +msgid "You see some grains that are not yet milled to fine flour." +msgstr "完全に粉砕されていないアイテムが残っています。" + +#: src/iexamine.cpp +msgid "It is already milling." +msgstr "既に製粉を行っています。" + +#: src/iexamine.cpp +#, c-format +msgid "You remove %s from the mill." +msgstr "製粉機から%sを取り出しました。" + +#: src/iexamine.cpp +msgid "You stop the milling process." +msgstr "製粉を中断しました。" + #: src/iexamine.cpp msgid "What to do with the smoking rack:" msgstr "燻製ラックで何をしますか?" @@ -144834,14 +145820,6 @@ msgstr "あと%d分ほどで燻製が完了します。" msgid "There's a smoking rack here." msgstr "燻製ラックがあります。" -#: src/iexamine.cpp -msgid "You inspect its contents and find: " -msgstr "ラックの内容物: " - -#: src/iexamine.cpp -msgid "... that it is empty." -msgstr "...何も入っていません。" - #: src/iexamine.cpp msgid "You see some smoldering embers there." msgstr "残り火が燻っています。" @@ -145595,7 +146573,7 @@ msgstr "" #, c-format msgid " round of %s" msgid_plural " rounds of %s" -msgstr[0] "発の%s" +msgstr[0] "の%s" #: src/item.cpp msgid "Capacity: " @@ -145742,7 +146720,7 @@ msgstr "射撃モード: " #: src/item.cpp msgid "Compatible magazines: " -msgstr "互換弾倉 : " +msgstr "互換装填 : " #: src/item.cpp msgid "Mods: " @@ -146644,6 +147622,10 @@ msgstr "|." msgid "\\." msgstr "\\." +#: src/item.cpp +msgid "XX" +msgstr "XX" + #: src/item.cpp msgid ".." msgstr ".." @@ -150338,7 +151320,7 @@ msgstr "純正仕様の%1$sがあれば、%2$sに装填できます。" #, c-format msgid "You load %1$d x %2$s round into the %3$s." msgid_plural "You load %1$d x %2$s rounds into the %3$s." -msgstr[0] "%1$d発の%2$sを%3$sに装填しました。" +msgstr[0] "%1$dの%2$sを%3$sに装填しました。" #: src/iuse_actor.cpp #, c-format @@ -157105,6 +158087,11 @@ msgstr "木々との交信は木の隣に立って行います。" msgid "You reach out to the trees with your roots." msgstr "木に向かって根を伸ばしました。" +#: src/mutation.cpp +msgid "" +"You lay next to the trees letting your hair roots tangle with the trees." +msgstr "木に寄りかかり、根に変異した髪の毛を伝わせました。" + #: src/mutation.cpp msgid "Bionic power storage increased by 100." msgstr "CBMの電力が100増加しました。" @@ -158318,6 +159305,10 @@ msgstr "あなたと友好関係にある。" msgid "Is following you." msgstr "あなたに追従している。" +#: src/npc.cpp +msgid "Is guiding you." +msgstr "あなたを先導している。" + #: src/npc.cpp msgid "Will try to kill you or flee from you if you reveal yourself." msgstr "あなたが近づけば殺そうか逃げようとしている。" @@ -158773,10 +159764,6 @@ msgstr "もし力を貸してくれるなら他にも頼みたいことがある msgid " If you are interested, I have another job for you." msgstr "もし興味があれば、他にも頼みたい仕事があるんだ。" -#: src/npctalk.cpp -msgid "Pleasure doing business!" -msgstr "これからもよろしく頼むよ!" - #: src/npctalk.cpp msgid "Shall we resume?" msgstr "続けようか?" @@ -158896,23 +159883,6 @@ msgstr "詳しく教えてくれないか。" msgid "I have news." msgstr "知らせたい事がある。" -#: src/npctalk.cpp -#, c-format -msgid "Delivering %s." -msgstr "%sを渡す。" - -#: src/npctalk.cpp -msgid "Works for me." -msgstr "問題ない。" - -#: src/npctalk.cpp -msgid "You might be seeing more of me..." -msgstr "これからもよろしく..." - -#: src/npctalk.cpp -msgid "Delivering bandages." -msgstr "包帯を渡す。" - #: src/npctalk.cpp msgid "Yes, let's resume training " msgstr "よし、訓練を再開しようか。 " @@ -159145,11 +160115,6 @@ msgstr "%s(座標%d, %d)" msgid "My current location" msgstr "プレイヤーの現在地" -#: src/npctalk_funcs.cpp -#, c-format -msgid "I'm willing to pay %s per batch for a total of %s" -msgstr "1セットあたり %sだから、合計で%s支払おう。" - #. ~ %1$s is the NPC's translated name, %2$s is the translated faction camp #. name #: src/npctalk_funcs.cpp @@ -162071,6 +163036,10 @@ msgstr "気温: %s" msgid "Wield:" msgstr "装備:" +#: src/panels.cpp +msgid "Style:" +msgstr "スタイル: " + #: src/panels.cpp msgid "Food :" msgstr "食事:" @@ -162234,6 +163203,18 @@ msgstr "荷物で押し潰されそうです!" msgid "You struggle to carry such a large volume!" msgstr "荷物の体積が大きすぎて運ぶのに苦労しています!" +#: src/pickup.cpp +msgid "Get items from vehicle cargo" +msgstr "車両からアイテムを拾得する" + +#: src/pickup.cpp +msgid "Get items from where?" +msgstr "アイテムを取得する場所を選択" + +#: src/pickup.cpp src/vehicle_use.cpp +msgid "Get items on the ground" +msgstr "地面のアイテムを拾得する" + #: src/pickup.cpp msgid "Next page" msgstr "次のページ" @@ -162735,14 +163716,14 @@ msgstr "走り始めました。" msgid "You're too tired to run." msgstr "疲れ過ぎて走れません。" -#: src/player.cpp -msgid "You start walking." -msgstr "立ち上がって歩き始めました。" - #: src/player.cpp msgid "You start crouching." msgstr "屈んで歩き始めました。" +#: src/player.cpp +msgid "You start walking." +msgstr "立ち上がって歩き始めました。" + #: src/player.cpp #, c-format msgid "Your ground sonar detected a %1$s to the %2$s!" @@ -163879,7 +164860,7 @@ msgid "Your shaking legs make you stumble." msgstr "足が震えて転びそうになっています。" #: src/player.cpp -msgid " stumbles." msgstr "はよろめきました。" #: src/player.cpp @@ -166235,7 +167216,7 @@ msgstr "%s (%d / %ld)" #: src/requirements.cpp #, c-format msgid "%s of %ld" -msgstr "%s / %ld" +msgstr "%s(所持数 %ld)" #: src/requirements.cpp msgid "OR" @@ -167960,6 +168941,11 @@ msgstr "%sを修復する要件を満たしていません。" msgid "You repair the %1$s's %2$s." msgstr "%1$sの%2$sを修復しました。" +#: src/veh_utils.cpp +#, c-format +msgid "You replace the %1$s's %2$s." +msgstr "%1$sの%2$sを交換しました。" + #: src/vehicle.cpp msgid "Lost connection with the vehicle due to distance!" msgstr "距離が離れすぎたため、車両との通信が切れました!" @@ -168368,10 +169354,6 @@ msgstr "(故障)" msgid " holding %s" msgstr "掴んでいる%s" -#: src/vehicle_part.cpp -msgid "XX" -msgstr "XX" - #: src/vehicle_part.cpp #, c-format msgid "Insufficient power to enable %s" @@ -168831,10 +169813,6 @@ msgstr "洗濯機を停止する" msgid "Activate the washing machine (1.5 hours)" msgstr "洗濯機を起動する(1時間30分)" -#: src/vehicle_use.cpp -msgid "Get items on the ground" -msgstr "地面のアイテムを拾得する" - #: src/vehicle_use.cpp msgid "Use the hotplate" msgstr "ホットプレートを使用する" diff --git a/lang/po/ko.po b/lang/po/ko.po index 2b3211847f5b9..c0350c08461f7 100644 --- a/lang/po/ko.po +++ b/lang/po/ko.po @@ -8,17 +8,17 @@ # Jay Bae , 2019 # Vlasov Vitaly , 2019 # 탯새 , 2019 -# T itan , 2019 # fenjo , 2019 # Brett Dong , 2019 +# T itan , 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-26 14:19+0800\n" +"POT-Creation-Date: 2019-05-03 13:47+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: Brett Dong , 2019\n" +"Last-Translator: T itan , 2019\n" "Language-Team: Korean (https://www.transifex.com/cataclysm-dda-translators/teams/2217/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -34,8 +34,9 @@ msgstr[0] "배터리" #. ~ Description for battery #: lang/json/AMMO_from_json.py msgid "" -"A set of universal batteries. Used to charge almost any electronic device." -msgstr "일반적인 범용 배터리. 일부 예외를 제외한 거의 모든 전자기기의 충전에 사용됩니다." +"Some free-floating battery charge. This can be reloaded into rechargable " +"battery cells, but can never be unloaded." +msgstr "" #: lang/json/AMMO_from_json.py msgid "aluminum foil" @@ -912,20 +913,17 @@ msgid "" "enemies. Stands a good chance of remaining intact once fired." msgstr "" -#: lang/json/AMMO_from_json.py -msgid "anesthetic kit" -msgstr "마취 키트" +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "anesthetic" +msgstr "" -#. ~ Description for anesthetic kit +#. ~ Description for anesthetic #: lang/json/AMMO_from_json.py msgid "" -"A kit for inducing anesthesia for surgery, containing specialized canisters " -"with a variety of powerful hypnotic, analgetic, and stimulative drugs. It's" -" intended for use in specialized medical equipment, and can't be " -"administered manually." +"A variety of powerful hypnotic, analgetic, and stimulative drugs. It's " +"intended for use in specialized medical equipment, and can't be administered" +" manually. You can reload an anesthetic kit with it." msgstr "" -"수술을 위한 마취제가 포함된 키트. 전용 용기에 여러가지 강력한 수면성, 환각성 흥분성 약물이 들어 있습니다. 전용 의료기기에 사용되는 " -"것이기 때문에 개별적으로 사용할수 없습니다." #: lang/json/AMMO_from_json.py msgid "sulfur" @@ -1576,6 +1574,18 @@ msgid "" "Petroleum-based fuel made from a byproduct of the gasoline making process." msgstr "휘발유 생산 과정에서 발생한 부산물로부터 만들어진 석유 기반 연료." +#: lang/json/AMMO_from_json.py +msgid "biodiesel" +msgid_plural "biodiesel" +msgstr[0] "" + +#. ~ Description for biodiesel +#: lang/json/AMMO_from_json.py +msgid "" +"Vegetable oil- or animal fat-based diesel fuel consisting of long-chain " +"alkyl (methyl, ethyl, or propyl) esters." +msgstr "" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "gasoline" msgid_plural "gasoline" @@ -1766,6 +1776,33 @@ msgstr "" "21세기 중반, 군사 강국들은 에너지 무기에 관심을 보이기 시작했습니다. 그 결과 초고온 가스탄을 아광속으로 날리면서도 반동은 전혀 없는 규격화된 핵융합 전지가 만들어졌습니다.\n" "이것은 잔여 부품으로 만든 수제품입니다." +#: lang/json/AMMO_from_json.py +msgid "throwing stick" +msgstr "" + +#. ~ Description for throwing stick +#: lang/json/AMMO_from_json.py +msgid "" +"A stick carved into a shape suitable for throwing at a target. Not a " +"boomerang, so don't expect it to return to your hand." +msgstr "목표를 향해 던지기 좋은 모양으로 깎아낸 막대기. 부메랑이 아니므로 다시 돌아오지는 않습니다." + +#: lang/json/AMMO_from_json.py +msgid "anesthetic kit" +msgstr "마취 키트" + +#. ~ Description for anesthetic kit +#. ~ Description for anesthesia kit +#: lang/json/AMMO_from_json.py lang/json/TOOL_from_json.py +msgid "" +"A kit for inducing anesthesia for surgery, containing specialized canisters " +"with a variety of powerful hypnotic, analgetic, and stimulative drugs. It's" +" intended for use in specialized medical equipment, and can't be " +"administered manually." +msgstr "" +"수술을 위한 마취제가 포함된 키트. 전용 용기에 여러가지 강력한 수면성, 환각성 흥분성 약물이 들어 있습니다. 전용 의료기기에 사용되는 " +"것이기 때문에 개별적으로 사용할수 없습니다." + #: lang/json/AMMO_from_json.py msgid "H&K 12mm" msgstr "H&K 12mm" @@ -2294,6 +2331,57 @@ msgid "reloaded .38 Super" msgid_plural "reloaded .38 Super" msgstr[0] ".38 Super (재생)" +#: lang/json/AMMO_from_json.py +msgid ".380 ACP FMJ" +msgstr "" + +#. ~ Description for .380 ACP FMJ +#: lang/json/AMMO_from_json.py +msgid "" +".380 ACP ammunition with a brass jacketed 95gr bullet. Popular in pocket " +"pistols for over a century, it is often considered the weakest caliber to " +"consider carrying. One should be careful not to chamber it in 9x18mm " +"Makarov or 9x19mm firearms." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".380 ACP JHP" +msgstr "" + +#. ~ Description for .380 ACP JHP +#: lang/json/AMMO_from_json.py +msgid "" +".380 ACP ammunition with a 95gr jacketed hollow point bullet. It is a " +"popular round for small concealable backup pistols, and often the weakest " +"recommended defensive caliber. One should be careful not to chamber it in " +"9x18mm Makarov or 9x19mm firearms." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".380 ACP +P" +msgstr "" + +#. ~ Description for .380 ACP +P +#: lang/json/AMMO_from_json.py +msgid "" +"Overpressure .380 ACP ammunition with a 90gr jacketed hollow point bullet. " +"These defensive loadings are designed to maximise performance and tend to be" +" more accurate than practice ammo. One should be careful not to chamber it " +"in 9x18mm Makarov or 9x19mm firearms." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP FMJ" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP JHP" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP +P" +msgstr "" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "10mm Auto" msgid_plural "10mm Auto" @@ -4082,18 +4170,6 @@ msgid "" "intact once fired." msgstr "뼈를 깎아만든 날카로운 볼트. 화살깃이 달려있다. 무게가 가볍고 적당한 피해량과 명중률을 갖고있다. 재사용 확률이 높다." -#: lang/json/AMMO_from_json.py -msgid "throwing stick" -msgid_plural "throwing sticks" -msgstr[0] "투척용 막대기" - -#. ~ Description for throwing stick -#: lang/json/AMMO_from_json.py -msgid "" -"A stick carved into a shape suitable for throwing at a target. Not a " -"boomerang, so don't expect it to return to your hand." -msgstr "목표를 향해 던지기 좋은 모양으로 깎아낸 막대기. 부메랑이 아니므로 다시 돌아오지는 않습니다." - #: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py msgid "wooden javelin" msgid_plural "wooden javelins" @@ -5853,11 +5929,10 @@ msgstr[0] "사슬 소매" #. ~ Description for pair of chainmail sleeves #: lang/json/ARMOR_from_json.py msgid "" -"Customized chainmail arms. Each sleeve has leather straps to connect them " -"with each other. The lack of fingers makes them less cumbersome and allows " -"them to be used with gloves." +"Customized chainmail arms. Each sleeve has straps to connect them with each" +" other. The lack of fingers makes them less cumbersome and allows them to " +"be used with gloves." msgstr "" -"맞춤 제작된 사슬 소매. 각 소매는 가죽끈으로 연결되어있습니다. 손가락이 드러나 거치적거리지 않으며, 장갑을 낄 수 있습니다." #: lang/json/ARMOR_from_json.py msgid "chainmail coif" @@ -5877,10 +5952,9 @@ msgstr[0] "사슬 레깅스" #. ~ Description for chainmail leggings #: lang/json/ARMOR_from_json.py msgid "" -"Customized chainmail legs. Their leather straps keep everything in place, " -"and the lack of toes and heels allows them to work perfectly well with " -"footwear." -msgstr "맞춤 제작된 사슬 바지. 가죽끈으로 서로 연결되어 있으며, 발이 노출되어 신발을 편하게 신을 수 있습니다." +"Customized chainmail legs. Their straps keep everything in place, and the " +"lack of toes and heels allows them to work perfectly well with footwear." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "chainmail hauberk" @@ -5891,10 +5965,10 @@ msgstr[0] "사슬 호버크" #: lang/json/ARMOR_from_json.py msgid "" "A fully customized chainmail outfit, leaving the head uncovered. The shirt," -" arms, and leggings have been modified with leather straps to deal with " -"uneven weight distribution and to allow them to be used separately." +" arms, and leggings have been modified with straps and combined with a " +"gambeson to deal with uneven weight distribution, cold environments and to " +"allow them to be used separately." msgstr "" -"완전 개조된 사슬 외투. 머리는 보호되어 있지 않으며, 상체, 팔 부위, 다리 부위가 가죽 끈으로 무게를 분산하도록 개조 되어 있습니다." #: lang/json/ARMOR_from_json.py msgid "chainmail armor" @@ -5905,11 +5979,10 @@ msgstr[0] "사슬 갑옷" #: lang/json/ARMOR_from_json.py msgid "" "A fully customized chainmail suit. The coif, shirt, arms, and leggings have" -" been modified with leather straps to deal with uneven weight distribution " -"and to allow them to be used separately." +" been modified with straps and combined with a gambeson to deal with uneven " +"weight distribution, cold environments and to allow them to be used " +"separately." msgstr "" -"완벽하게 맞춤 제작된 사슬 갑옷. 코이프와 셔츠, 팔, 레깅스가 가죽끈으로 개조되어 따로따로 움직일 수 있기 때문에 무게 중심을 잡기 " -"편합니다." #: lang/json/ARMOR_from_json.py msgid "chainmail vest" @@ -5920,8 +5993,8 @@ msgstr[0] "사슬 조끼" #: lang/json/ARMOR_from_json.py msgid "" "A customized chainmail vest. It's a sleeveless piece of chainmail with " -"small leather straps designed to better distribute the weight." -msgstr "맞춤 제작된 사슬 조끼입니다. 소매가 없고 가죽끈으로 보강되어 중심 잡기가 한결 편합니다." +"small straps designed to better distribute the weight." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "leather chaps" @@ -12127,6 +12200,19 @@ msgid "" " gun." msgstr "작은 총기를 넣어두었다가 빨리 뽑을 수 있도록 만들어진 권총집. 사용하면 총을 집어넣거나 뽑을 수 있습니다." +#: lang/json/ARMOR_from_json.py +msgid "deep concealment holster" +msgid_plural "deep concealment holsters" +msgstr[0] "" + +#. ~ Description for deep concealment holster +#: lang/json/ARMOR_from_json.py +msgid "" +"An elastic band with numerous provisions for concealing a very small pistol " +"close to the body. It is awkward to use without practice. Activate to " +"holster/draw a gun." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "survivor harness" msgid_plural "survivor harnesses" @@ -12598,8 +12684,8 @@ msgid "Active Defense System CBM" msgid_plural "Active Defense System CBMs" msgstr[0] "CBM:능동형 방호 시스템" -#. ~ Description for Active Defense System #. ~ Description for Active Defense System CBM +#. ~ Description for Active Defense System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A thin forcefield surrounds your body, continually draining power. Anything" @@ -12615,8 +12701,8 @@ msgid "Advanced Microreactor CBM" msgid_plural "Advanced Microreactor CBMs" msgstr[0] "CBM:개선형 소형반응로" -#. ~ Description for Advanced Microreactor System #. ~ Description for Advanced Microreactor CBM +#. ~ Description for Advanced Microreactor System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This stripped down mini-reactor is safer than it appears due to integrated " @@ -12631,8 +12717,8 @@ msgid "Alarm System CBM" msgid_plural "Alarm System CBMs" msgstr[0] "CBM:경보 시스템" -#. ~ Description for Alarm System #. ~ Description for Alarm System CBM +#. ~ Description for Alarm System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A motion-detecting alarm system will notice almost all movement within a " @@ -12708,8 +12794,8 @@ msgid "Battery System CBM" msgid_plural "Battery System CBMs" msgstr[0] "CBM:배터리 시스템" -#. ~ Description for Battery System #. ~ Description for Battery System CBM +#. ~ Description for Battery System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have a battery draining attachment, and thus can make use of the energy " @@ -12724,8 +12810,8 @@ msgid "Monomolecular Blade CBM" msgid_plural "Monomolecular Blade CBMs" msgstr[0] "CBM:단분자 칼날" -#. ~ Description for Monomolecular Blade #. ~ Description for Monomolecular Blade CBM +#. ~ Description for Monomolecular Blade #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A deadly foot-long blade made of advanced material now resides inside your " @@ -12781,8 +12867,8 @@ msgid "Blood Filter CBM" msgid_plural "Blood Filter CBMs" msgstr[0] "CBM:혈액 여과기" -#. ~ Description for Blood Filter #. ~ Description for Blood Filter CBM +#. ~ Description for Blood Filter #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A filtration system in your heart allows you to actively filter out chemical" @@ -12810,8 +12896,8 @@ msgid "Subdermal Carbon Filament CBM" msgid_plural "Subdermal Carbon Filament CBMs" msgstr[0] "CBM:피하 삽입 탄소섬유" -#. ~ Description for Subdermal Carbon Filament #. ~ Description for Subdermal Carbon Filament CBM +#. ~ Description for Subdermal Carbon Filament #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Lying just beneath your skin is a thin armor made of carbon nanotubes. This" @@ -12823,8 +12909,8 @@ msgid "Chain Lightning CBM" msgid_plural "Chain Lightning CBMs" msgstr[0] "CBM:연쇄 번개" -#. ~ Description for Chain Lightning #. ~ Description for Chain Lightning CBM +#. ~ Description for Chain Lightning #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your body is equipped with a chain lightning generator, allowing you to emit" @@ -12855,8 +12941,8 @@ msgid "Internal Climate Control CBM" msgid_plural "Internal Climate Control CBMs" msgstr[0] "CBM:내장형 기온조절 장치" -#. ~ Description for Internal Climate Control #. ~ Description for Internal Climate Control CBM +#. ~ Description for Internal Climate Control #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Throughout your body lies a network of thermal piping which eases the " @@ -12868,8 +12954,8 @@ msgid "Cloaking System CBM" msgid_plural "Cloaking System CBMs" msgstr[0] "CBM:클로킹 시스템" -#. ~ Description for Cloaking System #. ~ Description for Cloaking System CBM +#. ~ Description for Cloaking System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This high-power system uses a set of cameras and LEDs to make you blend into" @@ -12899,8 +12985,8 @@ msgid "Wired Reflexes CBM" msgid_plural "Wired Reflexes CBMs" msgstr[0] "CBM:반사신경 개선" -#. ~ Description for Wired Reflexes #. ~ Description for Wired Reflexes CBM +#. ~ Description for Wired Reflexes #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your reaction time has been greatly enhanced with bionic nerve stimulators, " @@ -12912,8 +12998,8 @@ msgid "Expanded Digestive System CBM" msgid_plural "Expanded Digestive System CBMs" msgstr[0] "CBM:확장형 소화 시스템" -#. ~ Description for Expanded Digestive System #. ~ Description for Expanded Digestive System CBM +#. ~ Description for Expanded Digestive System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have been outfitted with three synthetic stomachs and industrial-grade " @@ -12929,8 +13015,8 @@ msgid "Enhanced Hearing CBM" msgid_plural "Enhanced Hearing CBMs" msgstr[0] "CBM:청력 향상장치" -#. ~ Description for Enhanced Hearing #. ~ Description for Enhanced Hearing CBM +#. ~ Description for Enhanced Hearing #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "When this bionic is active, your hearing will be drastically improved, " @@ -12961,8 +13047,8 @@ msgid "EMP Projector CBM" msgid_plural "EMP Projector CBMs" msgstr[0] "CBM:EMP 프로젝터" -#. ~ Description for EMP Projector #. ~ Description for EMP Projector CBM +#. ~ Description for EMP Projector #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A ranged EMP generator system is implanted on the palm of your right hand " @@ -12977,8 +13063,8 @@ msgid "Ethanol Burner CBM" msgid_plural "Ethanol Burner CBMs" msgstr[0] "CBM:에탄올 반응로" -#. ~ Description for Ethanol Burner #. ~ Description for Ethanol Burner CBM +#. ~ Description for Ethanol Burner #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You burn alcohol as fuel in an extremely efficient reaction. However, you " @@ -12990,8 +13076,8 @@ msgid "Aero-Evaporator CBM" msgid_plural "Aero-Evaporator CBMs" msgstr[0] "CBM:대기 증류장치" -#. ~ Description for Aero-Evaporator #. ~ Description for Aero-Evaporator CBM +#. ~ Description for Aero-Evaporator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This unit draws moisture from the surrounding air, which then is poured from" @@ -13005,8 +13091,8 @@ msgid "Diamond Cornea CBM" msgid_plural "Diamond Cornea CBMs" msgstr[0] "CBM:다이아몬드 각막" -#. ~ Description for Diamond Cornea #. ~ Description for Diamond Cornea CBM +#. ~ Description for Diamond Cornea #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Your vision is greatly enhanced, giving you a +2 bonus to perception." msgstr "시력이 대단히 향상되어 지각력에 +2 보너스를 받습니다." @@ -13030,8 +13116,8 @@ msgid "Facial Distortion CBM" msgid_plural "Facial Distortion CBMs" msgstr[0] "CBM:안면 변형기" -#. ~ Description for Facial Distortion #. ~ Description for Facial Distortion CBM +#. ~ Description for Facial Distortion #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Through controlled application of electrochemical impulses, you are capable " @@ -13044,8 +13130,8 @@ msgid "Dielectric Capacitance System CBM" msgid_plural "Dielectric Capacitance System CBMs" msgstr[0] "CBM:유전체 정전 시스템" -#. ~ Description for Dielectric Capacitance System #. ~ Description for Dielectric Capacitance System CBM +#. ~ Description for Dielectric Capacitance System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Throughout your body lies a network of miniature piezoelectric capacitors " @@ -13114,8 +13200,8 @@ msgid "Internal Furnace CBM" msgid_plural "Internal Furnace CBMs" msgstr[0] "CBM:내장 연소기" -#. ~ Description for Internal Furnace #. ~ Description for Internal Furnace CBM +#. ~ Description for Internal Furnace #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "When this bionic is active, you can burn nearly any organic material as fuel" @@ -13158,8 +13244,8 @@ msgid "Terranian Sonar CBM" msgid_plural "Terranian Sonar CBMs" msgstr[0] "CBM:지형 소나" -#. ~ Description for Terranian Sonar #. ~ Description for Terranian Sonar CBM +#. ~ Description for Terranian Sonar #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your feet are equipped with precision sonar equipment, allowing you to " @@ -13172,8 +13258,8 @@ msgid "Heat Drain CBM" msgid_plural "Heat Drain CBMs" msgstr[0] "CBM:열 흡수기" -#. ~ Description for Heat Drain #. ~ Description for Heat Drain CBM +#. ~ Description for Heat Drain #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While fighting unarmed against a warm-blooded opponent, there is a chance " @@ -13202,8 +13288,8 @@ msgid "Hydraulic Muscles CBM" msgid_plural "Hydraulic Muscles CBMs" msgstr[0] "CBM:유압 근력장치" -#. ~ Description for Hydraulic Muscles #. ~ Description for Hydraulic Muscles CBM +#. ~ Description for Hydraulic Muscles #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While activated, your muscles will be greatly enhanced, increasing your " @@ -13215,8 +13301,8 @@ msgid "Infrared Vision CBM" msgid_plural "Infrared Vision CBMs" msgstr[0] "CBM:적외선 시야" -#. ~ Description for Infrared Vision #. ~ Description for Infrared Vision CBM +#. ~ Description for Infrared Vision #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your range of vision extends into the infrared, allowing you to see warm-" @@ -13228,8 +13314,8 @@ msgid "Cerebral Booster CBM" msgid_plural "Cerebral Booster CBMs" msgstr[0] "CBM:두뇌 개선장치" -#. ~ Description for Cerebral Booster #. ~ Description for Cerebral Booster CBM +#. ~ Description for Cerebral Booster #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your brain has been enhanced with bionic coprocessors, giving you a +2 bonus" @@ -13256,8 +13342,8 @@ msgid "Leukocyte Breeder System CBM" msgid_plural "Leukocyte Breeder System CBMs" msgstr[0] "CBM:백혈구 배양 시스템" -#. ~ Description for Leukocyte Breeder System #. ~ Description for Leukocyte Breeder System CBM +#. ~ Description for Leukocyte Breeder System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You are equipped with bionic stimulators which augment your haematopoiesis " @@ -13273,8 +13359,8 @@ msgid "Mini-Flamethrower CBM" msgid_plural "Mini-Flamethrower CBMs" msgstr[0] "CBM:소형 화염방사기" -#. ~ Description for Mini-Flamethrower #. ~ Description for Mini-Flamethrower CBM +#. ~ Description for Mini-Flamethrower #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "The index fingers of both hands have powerful fire starters which extend " @@ -13313,8 +13399,8 @@ msgid "Nictating Membrane CBM" msgid_plural "Nictating Membrane CBMs" msgstr[0] "CBM:제 3의 눈꺼풀" -#. ~ Description for Nictating Membrane #. ~ Description for Nictating Membrane CBM +#. ~ Description for Nictating Membrane #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your eyes have a thin membrane that closes over your eyes while underwater, " @@ -13341,8 +13427,8 @@ msgid "Metabolic Interchange CBM" msgid_plural "Metabolic Interchange CBMs" msgstr[0] "CBM:신진대사 전환기" -#. ~ Description for Metabolic Interchange #. ~ Description for Metabolic Interchange CBM +#. ~ Description for Metabolic Interchange #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your digestive system and power supply are interconnected. Bionic energy is" @@ -13355,8 +13441,8 @@ msgid "Weather Reader CBM" msgid_plural "Weather Reader CBMs" msgstr[0] "CBM:기상관측" -#. ~ Description for Weather Reader #. ~ Description for Weather Reader CBM +#. ~ Description for Weather Reader #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A multitude of scientific instruments and sensors collect environmental " @@ -13371,8 +13457,8 @@ msgid "Repair Nanobots CBM" msgid_plural "Repair Nanobots CBMs" msgstr[0] "CBM:재생 나노로봇" -#. ~ Description for Repair Nanobots #. ~ Description for Repair Nanobots CBM +#. ~ Description for Repair Nanobots #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Inside your body is a fleet of tiny dormant robots. While activated they " @@ -13386,8 +13472,8 @@ msgid "Artificial Night Generator CBM" msgid_plural "Artificial Night Generator CBMs" msgstr[0] "CBM:인공 심야 발생기" -#. ~ Description for Artificial Night Generator #. ~ Description for Artificial Night Generator CBM +#. ~ Description for Artificial Night Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Destructive interference eliminates all light within a 15 tile radius." msgstr "모든 빛을 없애는 파괴적인 파장을 발생시킬 수 있습니다." @@ -13409,8 +13495,8 @@ msgid "Offensive Defense System CBM" msgid_plural "Offensive Defense System CBMs" msgstr[0] "CBM:공격형 방호 시스템" -#. ~ Description for Offensive Defense System #. ~ Description for Offensive Defense System CBM +#. ~ Description for Offensive Defense System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A thin forcefield surrounds your body, continually draining power. This " @@ -13425,8 +13511,8 @@ msgid "Sensory Dulling CBM" msgid_plural "Sensory Dulling CBMs" msgstr[0] "CBM:감각 감쇄" -#. ~ Description for Sensory Dulling #. ~ Description for Sensory Dulling CBM +#. ~ Description for Sensory Dulling #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your nervous system is wired to allow you to inhibit the signals of pain, " @@ -13452,8 +13538,8 @@ msgid "Power Armor Interface CBM" msgid_plural "Power Armor Interface CBMs" msgstr[0] "CBM:파워아머 인터페이스" -#. ~ Description for Power Armor Interface #. ~ Description for Power Armor Interface CBM +#. ~ Description for Power Armor Interface #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Interfaces your power system with the internal charging port on suits of " @@ -13465,8 +13551,8 @@ msgid "Power Armor Mk. II Interface CBM" msgid_plural "Power Armor Mk. II Interface CBMs" msgstr[0] "CBM:파워아머 인터페이스 Mk. II" -#. ~ Description for Power Armor Interface Mk. II #. ~ Description for Power Armor Mk. II Interface CBM +#. ~ Description for Power Armor Interface Mk. II #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Interfaces your power system with the internal charging port on suits of " @@ -13481,8 +13567,8 @@ msgid "Power Storage CBM" msgid_plural "Power Storage CBMs" msgstr[0] "CBM:전력 저장소" -#. ~ Description for Power Storage #. ~ Description for Power Storage CBM +#. ~ Description for Power Storage #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Compact Bionics Module that upgrades your power capacity by 100 units. " @@ -13497,8 +13583,8 @@ msgid "Power Storage CBM Mk. II" msgid_plural "Power Storage CBMs Mk. II" msgstr[0] "CBM:전력 저장소 Mk. II" -#. ~ Description for Power Storage Mk. II #. ~ Description for Power Storage CBM Mk. II +#. ~ Description for Power Storage Mk. II #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Compact Bionics Module developed at DoubleTech Industries as a replacement " @@ -13513,8 +13599,8 @@ msgid "Probability Travel CBM" msgid_plural "Probability Travel CBMs" msgstr[0] "CBM:확률 이동장치" -#. ~ Description for Probability Travel #. ~ Description for Probability Travel CBM +#. ~ Description for Probability Travel #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Increases your body's wavelength, allowing you to quantum tunnel through " @@ -13555,24 +13641,21 @@ msgid "Railgun CBM" msgid_plural "Railgun CBMs" msgstr[0] "CBM:레일건" -#. ~ Description for Railgun #. ~ Description for Railgun CBM -#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +#: lang/json/BIONIC_ITEM_from_json.py msgid "" -"EM field generators in your arms double the range and damage of thrown iron " -"and steel objects at a cost of 1 power per throw, causing them to leave a " -"trail of electricity that can cause additional damage." +"EM field generators in your arms increase the range and damage of thrown " +"iron and steel objects at a cost of 1 power per throw, causing them to leave" +" a trail of electricity that can cause additional damage." msgstr "" -"팔에 이식한 전자기장 생성기로, 철제 물건의 투척 거리와 피해량을 두 배로 늘려줍니다. 매 투척마다 전력이 1 소모되고, 던진 물체를 " -"따라 전류가 남아 추가 피해를 줄 수 있습니다." #: lang/json/BIONIC_ITEM_from_json.py msgid "Fingertip Razors CBM" msgid_plural "Fingertip Razors CBMs" msgstr[0] "CBM:손끝 칼날" -#. ~ Description for Fingertip Razors #. ~ Description for Fingertip Razors CBM +#. ~ Description for Fingertip Razors #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You possess razor-sharp retractable claws underneath your fingernails, ten " @@ -13586,8 +13669,8 @@ msgid "Internal Microreactor CBM" msgid_plural "Internal Microreactor CBMs" msgstr[0] "CBM:내장 소형반응로" -#. ~ Description for Microreactor System #. ~ Description for Internal Microreactor CBM +#. ~ Description for Microreactor System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This stripped down mini-reactor may not be the best thing to have in your " @@ -13614,8 +13697,8 @@ msgid "Recycler Unit CBM" msgid_plural "Recycler Unit CBMs" msgstr[0] "CBM:재활용 시스템" -#. ~ Description for Recycler Unit #. ~ Description for Recycler Unit CBM +#. ~ Description for Recycler Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your digestive system has been outfitted with a series of filters and " @@ -13629,8 +13712,8 @@ msgid "Remote Controller CBM" msgid_plural "Remote Controller CBMs" msgstr[0] "CBM:원격조종" -#. ~ Description for Remote Controller #. ~ Description for Remote Controller CBM +#. ~ Description for Remote Controller #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A small module connected to your brain allows you to interface with nearby " @@ -13642,8 +13725,8 @@ msgid "Sonic Resonator CBM" msgid_plural "Sonic Resonator CBMs" msgstr[0] "CBM:음파 공명장치" -#. ~ Description for Sonic Resonator #. ~ Description for Sonic Resonator CBM +#. ~ Description for Sonic Resonator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your entire body may resonate at very high power, creating a short-range " @@ -13658,8 +13741,8 @@ msgid "Olfactory Mask CBM" msgid_plural "Olfactory Mask CBMs" msgstr[0] "CBM:체취 은폐장치" -#. ~ Description for Olfactory Mask #. ~ Description for Olfactory Mask CBM +#. ~ Description for Olfactory Mask #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While this system is powered, your body will produce very little odor, " @@ -13671,8 +13754,8 @@ msgid "Scent Vision CBM" msgid_plural "Scent Vision CBMs" msgstr[0] "CBM:후각 시야" -#. ~ Description for Scent Vision #. ~ Description for Scent Vision CBM +#. ~ Description for Scent Vision #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While this system is powered, you're able to visually sense your own scent, " @@ -13687,8 +13770,8 @@ msgid "Electroshock Unit CBM" msgid_plural "Electroshock Unit CBMs" msgstr[0] "CBM:전기충격 장치" -#. ~ Description for Electroshock Unit #. ~ Description for Electroshock Unit CBM +#. ~ Description for Electroshock Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While fighting unarmed, or with a weapon that conducts electricity, there is" @@ -13703,8 +13786,8 @@ msgid "Shockwave Generator CBM" msgid_plural "Shockwave Generator CBMs" msgstr[0] "CBM:충격파 발생기" -#. ~ Description for Shockwave Generator #. ~ Description for Shockwave Generator CBM +#. ~ Description for Shockwave Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You generate a powerful shockwave, knocking back all nearby creatures. " @@ -13719,8 +13802,8 @@ msgid "Synaptic Accelerator CBM" msgid_plural "Synaptic Accelerator CBMs" msgstr[0] "CBM:시냅스 가속기" -#. ~ Description for Synaptic Accelerator #. ~ Description for Synaptic Accelerator CBM +#. ~ Description for Synaptic Accelerator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py #, no-python-format msgid "" @@ -13801,8 +13884,8 @@ msgid "Teleportation Unit CBM" msgid_plural "Teleportation Unit CBMs" msgstr[0] "CBM:순간이동 장치" -#. ~ Description for Teleportation Unit #. ~ Description for Teleportation Unit CBM +#. ~ Description for Teleportation Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This highly experimental unit folds space over short distances, instantly " @@ -13817,8 +13900,8 @@ msgid "Time Dilation CBM" msgid_plural "Time Dilation CBMs" msgstr[0] "CBM:시간 지연" -#. ~ Description for Time Dilation #. ~ Description for Time Dilation CBM +#. ~ Description for Time Dilation #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "At the cost of all stored bionic power, you may increase your body speed and" @@ -13833,8 +13916,8 @@ msgid "Integrated Toolset CBM" msgid_plural "Integrated Toolset CBMs" msgstr[0] "CBM:내장형 공구세트" -#. ~ Description for Integrated Toolset #. ~ Description for Integrated Toolset CBM +#. ~ Description for Integrated Toolset #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Surgically implanted in your hands and fingers is a complete tool set - " @@ -13864,8 +13947,8 @@ msgid "Joint Servo CBM" msgid_plural "Joint Servo CBMs" msgstr[0] "" -#. ~ Description for Joint Servo #. ~ Description for Joint Servo CBM +#. ~ Description for Joint Servo #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your leg joints have been equipped with servomotors that provide power-" @@ -13879,8 +13962,8 @@ msgid "Uncanny Dodge CBM" msgid_plural "Uncanny Dodge CBMs" msgstr[0] "CBM:초인적 회피" -#. ~ Description for Uncanny Dodge #. ~ Description for Uncanny Dodge CBM +#. ~ Description for Uncanny Dodge #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your nervous system has been augmented with bionic processors, allowing you " @@ -13892,8 +13975,8 @@ msgid "Unified Power System CBM" msgid_plural "Unified Power System CBMs" msgstr[0] "CBM:통합 전원장치" -#. ~ Description for Internal Unified Power System #. ~ Description for Unified Power System CBM +#. ~ Description for Internal Unified Power System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have a unified power system wired into your power banks. Objects that " @@ -13907,8 +13990,8 @@ msgid "Internal Chronometer CBM" msgid_plural "Internal Chronometer CBMs" msgstr[0] "CBM:내부 정밀시계" -#. ~ Description for Internal Chronometer #. ~ Description for Internal Chronometer CBM +#. ~ Description for Internal Chronometer #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have been equipped with an internal atomic clock, ensuring that you will" @@ -13981,8 +14064,8 @@ msgid "Taste Modifier CBM" msgid_plural "Taste Modifier CBMs" msgstr[0] "" -#. ~ Description for Taste Modifier #. ~ Description for Taste Modifier CBM +#. ~ Description for Taste Modifier #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A set of highly sensitive sensors is installed in your mouth, and a small " @@ -14178,8 +14261,8 @@ msgid "" " level will slowly recharge." msgstr "몇 개의 광전지판이 탑재되었습니다. 태양 빛을 직접 받으면, 전력이 서서히 충전됩니다." -#. ~ Description for Solar Panels #. ~ Description for Solar Panels CBM +#. ~ Description for Solar Panels #: lang/json/BIONIC_ITEM_from_json.py lang/json/BIONIC_ITEM_from_json.py #: lang/json/bionic_from_json.py msgid "" @@ -14245,8 +14328,8 @@ msgid "Ionic Overload Generator CBM" msgid_plural "Ionic Overload Generator CBMs" msgstr[0] "CBM:이온 과부하 발생기" -#. ~ Description for Ionic Overload Generator #. ~ Description for Ionic Overload Generator CBM +#. ~ Description for Ionic Overload Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A powerful ion energy generator is implanted on your chest. Fires a " @@ -19562,6 +19645,18 @@ msgstr[0] "우유" msgid "Baby cow food, appropriated for adult humans. Spoils rapidly." msgstr "송아지를 위한 식품입니다만, 성인에게도 잘 맞습니다. 빨리 상합니다." +#: lang/json/COMESTIBLE_from_json.py +msgid "reconstituted milk" +msgid_plural "reconstituted milk" +msgstr[0] "" + +#. ~ Description for reconstituted milk +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Baby cow food, appropriated for adult humans. This milk has been " +"reconstituted from a processed milk. Spoils rapidly." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "coffee milk" msgstr "커피 우유" @@ -22824,22 +22919,20 @@ msgid "" msgstr "마리화나, 대마, 뽕. 이름이 뭐든 간에 피울 수 있도록 종이에 말려있다." #: lang/json/COMESTIBLE_from_json.py -msgid "pink tablet" -msgstr "분홍 알약" +msgid "pink tab" +msgstr "" -#. ~ Use action activation_message for pink tablet. +#. ~ Use action activation_message for pink tab. #: lang/json/COMESTIBLE_from_json.py msgid "You eat the pink tablet." msgstr "분홍 알약을 복용했다." -#. ~ Description for pink tablet +#. ~ Description for pink tab #: lang/json/COMESTIBLE_from_json.py msgid "" -"Tiny pink candies shaped like hearts, already dosed with some sort of drug." -" Really only useful for entertainment. Will cause hallucinations." +"Tiny pink tabs resembling postage stamps, already dosed with some sort of " +"drug. Really only useful for entertainment. Will cause hallucinations." msgstr "" -"심장처럼 생긴 분홍색 작은 사탕입니다. 어떤 종류의 약품으로 처리됐습니다. 재미로 쓰는 것 이외에는 용도가 없으며, 먹으면 환각을 " -"유발합니다." #: lang/json/COMESTIBLE_from_json.py msgid "medical gauze" @@ -25203,6 +25296,15 @@ msgstr[0] "" msgid "A smooth-skinned fruit, related to the peach." msgstr "부드러운 촉감의 과일로, 복숭아와 비슷한 과일입니다." +#: lang/json/COMESTIBLE_from_json.py +msgid "cactus pad" +msgstr "" + +#. ~ Description for cactus pad +#: lang/json/COMESTIBLE_from_json.py +msgid "An edible pad of a cactus." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "barley" msgstr "보리" @@ -27085,6 +27187,15 @@ msgid "" "hot dogs and hamburgers, or, if you're desperate, straight to your stomach." msgstr "양상추나 양배추로 만든 이 아삭아삭하고 시큼한 음식은 핫도그나 햄버거에 넣기 딱 좋습니다. 급하면 바로 먹어도 됩니다." +#: lang/json/COMESTIBLE_from_json.py +msgid "nopalito" +msgstr "" + +#. ~ Description for nopalito +#: lang/json/COMESTIBLE_from_json.py +msgid "A less prickly version of cactus pads." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "wheat cereal" msgstr "통밀 시리얼" @@ -29355,6 +29466,16 @@ msgstr[0] "가짜 물품" msgid "Dummy item. If you see this, then something went wrong." msgstr "Dummy item. If you see this, then something went wrong." +#: lang/json/GENERIC_from_json.py +msgid "semi ground grains" +msgid_plural "semi ground grains" +msgstr[0] "" + +#. ~ Description for semi ground grains +#: lang/json/GENERIC_from_json.py +msgid "A paste of half-finished milled grains, not yet flour." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "smoldering embers" msgid_plural "smoldering embers" @@ -29422,8 +29543,8 @@ msgstr "근처에 피워진 불" #. ~ Description for wind #. ~ Description for a smoking device and a source of flame #. ~ Description for abstract map -#. ~ Description for weapon #. ~ Description for seeing this is a bug +#. ~ Description for weapon #: lang/json/GENERIC_from_json.py lang/json/GENERIC_from_json.py #: lang/json/TOOL_from_json.py lang/json/TOOL_from_json.py #: lang/json/skill_from_json.py @@ -31583,6 +31704,18 @@ msgid "" " vehicle. Combine it with a wheel to get a mountable piece." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "welding component kit" +msgid_plural "welding component kits" +msgstr[0] "" + +#. ~ Description for welding component kit +#: lang/json/GENERIC_from_json.py +msgid "" +"A set of components useful for constructing a full-featured welding station," +" complete with soldering capability." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "canister grenade" msgid_plural "canister grenades" @@ -34409,6 +34542,18 @@ msgid "" "cargo." msgstr "화물을 운반하기 위한 고정끈과 적재고가 갖춰진 무거운 프레임이다." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "floor trunk" +msgid_plural "floor trunks" +msgstr[0] "" + +#. ~ Description for floor trunk +#: lang/json/GENERIC_from_json.py +msgid "" +"A section of flooring with a cargo-space beneath, and a hinged door for " +"access." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "livestock carrier" msgid_plural "livestock carriers" @@ -34482,9 +34627,9 @@ msgstr[0] "UPS 호환형 재충전 장치" msgid "" "A Unified Power System recharging station designed to operate on vehicle " "power. Once installed in a vehicle storage space and turned on from a " -"dashboard or electronics control unit, it will slowly charge all tools with " -"rechargeable batteries in that space. The system can only be installed in " -"existing storage compartments." +"dashboard or electronics control unit, it will slowly charge all UPS " +"compatible tools and battery cells in that space. The system can only be " +"installed in existing storage compartments." msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py @@ -35939,6 +36084,16 @@ msgstr[0] "9x18mm 탄피" msgid "An empty casing from a 9x18mm round." msgstr "9x18mm탄의 빈 탄피." +#: lang/json/GENERIC_from_json.py +msgid ".380 ACP casing" +msgid_plural ".380 ACP casings" +msgstr[0] "" + +#. ~ Description for .380 ACP casing +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a .380 ACP round." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "shotgun hull" msgid_plural "shotgun hulls" @@ -39220,6 +39375,86 @@ msgstr "아티팩트" msgid "ARMOR" msgstr "보호구" +#: lang/json/MAGAZINE_from_json.py +msgid "ultra-light battery cell" +msgstr "" + +#. ~ Description for ultra-light battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a light battery cell designed for small size over everything else. " +"It retains its universal compatibility, though." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "light battery cell" +msgstr "" + +#. ~ Description for light battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a light battery cell, universally compatible with all kinds of small" +" devices." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "light battery cell (high-capacity)" +msgid_plural "light battery cells (high-capacity)" +msgstr[0] "" + +#. ~ Description for light battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity light battery cell, universally compatible with all " +"kinds of personal electronic devices." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "medium battery cell" +msgstr "" + +#. ~ Description for medium battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a medium battery cell, universally compatible with all kinds of " +"appliances and power tools." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "medium battery cell (high-capacity)" +msgid_plural "medium battery cells (high-capacity)" +msgstr[0] "" + +#. ~ Description for medium battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity medium battery cell, universally compatible with all" +" kinds of appliances and power tools." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "heavy battery cell" +msgstr "" + +#. ~ Description for heavy battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a heavy battery cell, universally compatible with all kinds of " +"industrial-grade equipment and large tools." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "heavy battery cell (high-capacity)" +msgid_plural "heavy battery cells (high-capacity)" +msgstr[0] "" + +#. ~ Description for heavy battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity heavy battery cell, universally compatible with all " +"kinds of industrial-grade equipment and large tools." +msgstr "" + #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "fuel bunker" msgstr "" @@ -39366,6 +39601,15 @@ msgstr "S&W 22A 탄창" msgid "A standard capacity magazine for the popular S&W 22A pistol." msgstr "S&W 22A 권총에 사용되는 표준 탄창입니다." +#: lang/json/MAGAZINE_from_json.py +msgid "Jennings J-22 magazine" +msgstr "" + +#. ~ Description for Jennings J-22 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A cheap 6-round steel box magazine for the Jennings J-22." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "LW-5 speedloader" msgstr "" @@ -39638,6 +39882,15 @@ msgstr "스콜피온 Vz.61 탄창" msgid "A standard 20-round magazine for the Skorpion Vz. 61, in .32 ACP." msgstr ".32 ACP를 사용하는 Vz.61 스콜피온에 사용되는 20발들이 표준탄창." +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec P32 magazine" +msgstr "" + +#. ~ Description for Kel-Tec P32 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 7-round steel box magazine for the Kel-Tec P32." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "P226 magazine .357 SIG" msgstr "P226 .357 SIG 탄창" @@ -39680,6 +39933,43 @@ msgid "" "revolver." msgstr "" +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec P3AT magazine" +msgstr "" + +#. ~ Description for Kel-Tec P3AT magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 6-round steel box magazine for the Kel-Tec P3AT." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "FN 1910 magazine" +msgstr "" + +#. ~ Description for FN 1910 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "" +"A standard 6-round steel box magazine for the FN 1910. It looks a bit old." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "Ruger LCP magazine" +msgstr "" + +#. ~ Description for Ruger LCP magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 6-round capacity magazine for the Ruger LCP pistol." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "MAC-11 magazine" +msgstr "" + +#. ~ Description for MAC-11 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A cheap 32-round steel box magazine for use with the MAC-11 SMG." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid ".40 6-round speedloader" msgstr "" @@ -40291,6 +40581,15 @@ msgstr "Uzi 탄창" msgid "A standard 32-round steel box magazine for use with the UZI SMG." msgstr "Uzi 기관단총에 사용되는 표준형 32발들이 철제 박스탄창입니다." +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec PF-9 magazine" +msgstr "" + +#. ~ Description for Kel-Tec PF-9 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 7-round steel box magazine for the Kel-Tec PF-9." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "Makarov PM magazine" msgstr "마카로프 PM 탄창" @@ -40988,6 +41287,15 @@ msgstr "" "파산한 피자가게 체인점을 추가합니다. 안에서는 홍보용 로봇들이 여전히 작동하고 있습니다. (역주: Five Nights at " "Freddy's의 패러디 모드)" +#: lang/json/MOD_INFO_from_json.py +msgid "Battery Migration for Existing Games" +msgstr "" + +#. ~ Description for Battery Migration for Existing Games +#: lang/json/MOD_INFO_from_json.py +msgid "Allows you to reload and unload battery cells with legacy batteries." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "Boats" msgstr "보트" @@ -46481,8 +46789,8 @@ msgstr "" msgid "guardin gnome" msgstr "" -#. ~ Description for garden gnome #. ~ Description for guardin gnome +#. ~ Description for garden gnome #: lang/json/MONSTER_from_json.py lang/json/furniture_from_json.py msgid "A normal and completely harmless garden gnome." msgstr "" @@ -47409,21 +47717,6 @@ msgstr "" "이 플루토늄 전지는 비핵 전지의 접속부에 맞도록 개조되었습니다. 모든 배터리 구동식 장비에 부착할 수 있으며, 부착하면 사용 전력을 " "플루토늄 전지로 대체하여 변환시킵니다." -#: lang/json/TOOLMOD_from_json.py -msgid "extra battery mod" -msgid_plural "extra battery mods" -msgstr[0] "확장 배터리" - -#. ~ Description for extra battery mod -#: lang/json/TOOLMOD_from_json.py -msgid "" -"This is a homemade battery compartment made with spare electronics. With " -"enough electronics skill, you could attach this to any electronic tool to " -"double the amount of batteries it can hold." -msgstr "" -"잡다한 전자 부품으로 만든 수제 전력 저장장치. 전자공학에 충분히 능통하다면, 전자기기에 부착해서 최대 전력 용량을 두 배로 늘릴 수 " -"있습니다." - #: lang/json/TOOLMOD_from_json.py msgid "UPS conversion mod" msgid_plural "UPS conversion mods" @@ -47467,6 +47760,42 @@ msgid "" "storage batteries in regular tools." msgstr "" +#: lang/json/TOOLMOD_from_json.py +msgid "light battery mod" +msgid_plural "light battery mods" +msgstr[0] "" + +#. ~ Description for light battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of light batteries in tools " +"that otherwise could not." +msgstr "" + +#: lang/json/TOOLMOD_from_json.py +msgid "medium battery mod" +msgid_plural "medium battery mods" +msgstr[0] "" + +#. ~ Description for medium battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of medium batteries in tools " +"that otherwise could not." +msgstr "" + +#: lang/json/TOOLMOD_from_json.py +msgid "heavy battery mod" +msgid_plural "heavy battery mods" +msgstr[0] "" + +#. ~ Description for heavy battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of heavy batteries in tools " +"that otherwise could not." +msgstr "" + #: lang/json/TOOLMOD_from_json.py msgid "cybernetic power port mod" msgid_plural "cybernetic power port mods" @@ -49595,6 +49924,30 @@ msgid "" "recipes." msgstr "모서리에 마치 조각도 같은 돌출부가 있는 특이한 모양의 엄청나게 무거운 철 덩어리. 대개 금속 세공 및 제작에 쓰입니다." +#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +msgid "water mill" +msgid_plural "water mills" +msgstr[0] "" + +#. ~ Description for water mill +#: lang/json/TOOL_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour. Can" +" be placed via the construction menu." +msgstr "" + +#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +msgid "wind mill" +msgid_plural "wind mills" +msgstr[0] "" + +#. ~ Description for wind mill +#: lang/json/TOOL_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour. Can " +"be placed via the construction menu." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "wood axe" msgid_plural "wood axes" @@ -52705,23 +53058,11 @@ msgstr[0] "케이블 조명" #. ~ Description for lightstrip #: lang/json/TOOL_from_json.py msgid "" -"This is a light-emitting circuit wired directly to some batteries. It " -"provides some weak light and can't be turned off. When the batteries die, " -"you'll need to scrap it to recover the components that are reusable." +"This is a light-emitting circuit that has been wired directly to a battery." +" It provides some weak light and can't be turned off until the battery " +"dies." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "lightstrip (unpowered)" -msgid_plural "lightstrips (unpowered)" -msgstr[0] "케이블 조명 (배터리없음)" - -#. ~ Description for lightstrip (unpowered) -#: lang/json/TOOL_from_json.py -msgid "" -"This is a unpowered lightstrip. You could connect it to batteries to get a " -"light-emitting circuit." -msgstr "전원과 연결되지 않은 상태의 케이블 조명입니다. 빛을 내려면 배터리에 연결해야 합니다." - #: lang/json/TOOL_from_json.py msgid "lightstrip (inactive)" msgid_plural "lightstrips (inactive)" @@ -52735,13 +53076,9 @@ msgstr "케이블 조명을 작동시켰다." #. ~ Description for lightstrip (inactive) #: lang/json/TOOL_from_json.py msgid "" -"This is a light-emitting circuit wired directly to some batteries. It will " -"provide some weak light once activated and can't be turned off. When the " -"batteries die, you'll need to scrap it to recover the components that are " -"reusable." +"This is a light-emitting circuit that can be wired directly to a battery. " +"It provides some weak light and can't be turned off until the battery dies." msgstr "" -"배터리에 연결되어 빛을 내는 회로입니다. 작동하면 약한 빛을 내며 끌 수 없습니다. 배터리가 다 되면 분해해서 재사용 가능한 부품을 " -"회수할 수 있습니다." #: lang/json/TOOL_from_json.py msgid "lobotomizer" @@ -53288,7 +53625,12 @@ msgid "" "of reactivity. Don't try to breathe it." msgstr "" -#. ~ Description for nitrogen tank +#: lang/json/TOOL_from_json.py +msgid "hydrogen tank" +msgid_plural "hydrogen tanks" +msgstr[0] "" + +#. ~ Description for hydrogen tank #: lang/json/TOOL_from_json.py msgid "" "This is a tank of compressed hydrogen gas. If you need to make water from " @@ -53921,6 +54263,11 @@ msgstr "" "여러 종류의 바늘과 플라스틱 실패 등 유용한 재봉도구를 갖춰놓은 플라스틱 받짇고리. 받짙고리를 의류에 사용하면 수리하거나 강화할 수 " "있습니다. 재봉 기술에 영향을 받습니다." +#: lang/json/TOOL_from_json.py +msgid "anesthesia kit" +msgid_plural "anesthesia kits" +msgstr[0] "" + #: lang/json/TOOL_from_json.py msgid "shaving kit" msgid_plural "shaving kits" @@ -58378,7 +58725,7 @@ msgstr "" #: lang/json/activity_type_from_json.py msgid "Stop planting seeds?" -msgstr "" +msgstr "씨뿌리기를 중단합니까?" #: lang/json/activity_type_from_json.py msgid "Stop harvesting plots?" @@ -58574,6 +58921,10 @@ msgstr ".357 SIG" msgid "9x18mm" msgstr "9x18mm" +#: lang/json/ammunition_type_from_json.py +msgid ".380 ACP" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid ".38" msgstr ".38" @@ -58592,7 +58943,7 @@ msgstr ".45" #: lang/json/ammunition_type_from_json.py msgid ".460" -msgstr "" +msgstr ".460" #: lang/json/ammunition_type_from_json.py msgid ".454" @@ -59456,6 +59807,16 @@ msgstr "" msgid "Railgun" msgstr "레일건" +#. ~ Description for Railgun +#: lang/json/bionic_from_json.py +msgid "" +"EM field generators in your arms double the range and damage of thrown iron " +"and steel objects at a cost of 1 power per throw, causing them to leave a " +"trail of electricity that can cause additional damage." +msgstr "" +"팔에 이식한 전자기장 생성기로, 철제 물건의 투척 거리와 피해량을 두 배로 늘려줍니다. 매 투척마다 전력이 1 소모되고, 던진 물체를 " +"따라 전류가 남아 추가 피해를 줄 수 있습니다." + #: lang/json/bionic_from_json.py msgid "Fingertip Razors" msgstr "손끝 칼날" @@ -60525,6 +60886,14 @@ msgstr "" msgid "Build River Dock/Shallow Bridge" msgstr "" +#: lang/json/construction_from_json.py +msgid "Place Water Mill" +msgstr "" + +#: lang/json/construction_from_json.py +msgid "Place Wind Mill" +msgstr "" + #: lang/json/construction_from_json.py msgid "Build Shallow Temporary Bridge" msgstr "" @@ -60842,7 +61211,7 @@ msgstr "이상한 꿈을 꾸었습니다." #: lang/json/dream_from_json.py msgid "You feel... OK." -msgstr "" +msgstr "기분이... 괜찮아졌습니다." #: lang/json/dream_from_json.py msgid "You feel a yearning..." @@ -60854,7 +61223,7 @@ msgstr "기이하게도, 동물원에 대한 꿈을 꾸었습니다." #: lang/json/dream_from_json.py msgid "Your dreams... are complex and multifaceted." -msgstr "" +msgstr "꿈이... 너무나도 복잡하고 다면적이었습니다." #: lang/json/dream_from_json.py msgid "You dream of the tropics." @@ -60866,7 +61235,7 @@ msgstr "따스한 느낌이 듭니다." #: lang/json/dream_from_json.py msgid "You dream of a massive block of cheese bigger than you." -msgstr "" +msgstr "나보다 훨씬 큰 거대한 치즈덩어리 꿈을 꾸었다." #: lang/json/dream_from_json.py msgid "You dream of being cozy in a dark place." @@ -60933,7 +61302,7 @@ msgstr "꿈을 꾸는 동안, 특이한 형태로 짐승같이 변한 또 다른 #: lang/json/dream_from_json.py msgid "You dream of foraging in the woods... mouth-first?" -msgstr "" +msgstr "숲에서 먹을 것을 찾아서 돌아다니는 꿈을 꾸었습니다...배가 고팠나?" #: lang/json/dream_from_json.py msgid "Your dream-reflection is rather bearish." @@ -60953,7 +61322,7 @@ msgstr "누군가 내 영역을 침범하는 기분 나쁜 꿈을 꾸었다." #: lang/json/dream_from_json.py msgid "Your dream-self's muzzle looks... wait, muzzle?" -msgstr "" +msgstr "꿈에서 당신은 개나 말의 주둥이를 달고 있는 모습이었습니다... 잠깐만, 주둥이?" #: lang/json/dream_from_json.py msgid "You dream of grazing in an open field." @@ -61044,7 +61413,7 @@ msgstr "아름다움을 느꼈지만, 무언가 불안감이 앞선다..." #: lang/json/dream_from_json.py msgid "" "You can't quite work out what the dream is about... it just keeps changing." -msgstr "" +msgstr "무슨 꿈을 꾸었는지 제대로 기억해낼 수 없습니다... 꿈이 계속 변화했거든요." #: lang/json/dream_from_json.py msgid "Your dream is filled with creatures, and yet all seem like you." @@ -61054,7 +61423,7 @@ msgstr "다양한 생명체로 가득한 꿈을 꾸었습니다. 모든 생명 msgid "" "You dream of stalking some sort of lizard... no, that can't be right, can " "it?" -msgstr "" +msgstr "도마뱀 같은 것을 쫓는 꿈을 꿨습니다... 아니, 설마 그럴리가, 그럴 수도 있나?" #: lang/json/dream_from_json.py msgid "" @@ -61121,7 +61490,7 @@ msgstr "자신의 이빨로 사냥감을 물어 죽이는 공포스럽도록 생 msgid "" "Your dream of raiding a giant beehive has you licking your... muzzle in " "anticipation." -msgstr "" +msgstr "거대한 벌집을 당신의... 주둥이로 아시다시피 핥아 먹는 꿈을 꿨습니다." #: lang/json/dream_from_json.py msgid "" @@ -61255,6 +61624,8 @@ msgid "" "You weave between the zombies' legs, too small for them to catch. The gas " "station isn't far now, with all its soda and chips and- UGH, dream..." msgstr "" +"내 몸이 잡기 어려울만큼 작아져서, 좀비 다리 사이로 도망쳤다. 주유소가 여기서 멀지 않다. 주유소에 도착하면 탄산음료와 칩 그리고- " +"엌, 꿈이구나..." #: lang/json/dream_from_json.py msgid "" @@ -61342,7 +61713,7 @@ msgstr "무리가 따라 움직이고 그들과 함께, 더 푸르른 목초지 #: lang/json/dream_from_json.py msgid "You feel smug, knowing that the Queen is dependent on you." -msgstr "" +msgstr "꿈 속에서, 여왕이 나를 신뢰한다는 것을 알았다. 기분이 우쭐해진다." #: lang/json/dream_from_json.py msgid "" @@ -61423,7 +61794,7 @@ msgstr "진균이 집을 파괴할 것 같다는 생각에 겁이 나 숨을 헐 #: lang/json/dream_from_json.py msgid "You wish others could understand, and join your struggle..." -msgstr "" +msgstr "다른 사람들이 나를 이해하고, 투쟁을 같이 함께 해줬으면 좋겠어..." #: lang/json/dream_from_json.py msgid "Your body flows slightly faster than you expected... oh, just a dream." @@ -61439,7 +61810,7 @@ msgstr "" #: lang/json/dream_from_json.py msgid "You stir, saddened that your beautiful hatchlings were only a dream." -msgstr "" +msgstr "이때까지 키워 온 사랑스러운 자식이 한낱 꿈에 불과했다는 사실을 알고서 슬퍼하며 몸부림칩니다." #: lang/json/dream_from_json.py msgid "" @@ -61948,7 +62319,7 @@ msgstr "안보임" #. ~ Description of effect 'Blind'. #: lang/json/effects_from_json.py msgid "Range of Sight: 0. You cannot see anything." -msgstr "" +msgstr "시야 범위:0. 아무것도 볼 수 없다." #. ~ Apply message for effect(s) 'Blind'. #: lang/json/effects_from_json.py @@ -62345,7 +62716,7 @@ msgstr "감염된 상처가 생겼습니다." #. ~ Apply message for effect(s) 'Infected, Badly Infected, Pus Filled'. #: lang/json/effects_from_json.py msgid "Your bite wound feels infected." -msgstr "" +msgstr "물린 상처가 감염된 것 같습니다." #. ~ Male memorial apply log for effect(s) 'Infected, Badly Infected, Pus #. Filled'. @@ -62395,12 +62766,12 @@ msgstr "" #: lang/json/effects_from_json.py msgid "Disinfected" -msgstr "" +msgstr "상처를 소독함" #. ~ Description of effect 'Disinfected'. #: lang/json/effects_from_json.py msgid "Your wounds are disinfected." -msgstr "" +msgstr "상처를 소독했다." #: lang/json/effects_from_json.py msgid "Spore dusted" @@ -62890,7 +63261,7 @@ msgstr "" #: lang/json/effects_from_json.py msgid "You smoked too much." -msgstr "" +msgstr "너무 많이 피운 것 같다." #: lang/json/effects_from_json.py msgid "High" @@ -63429,7 +63800,7 @@ msgstr "즐거움" #. ~ Description of effect 'Joyful'. #: lang/json/effects_from_json.py msgid "Oh what a day! What a lovely day!" -msgstr "" +msgstr "와 정말 멋진 날이야!" #: lang/json/effects_from_json.py msgid "Elated" @@ -63465,7 +63836,7 @@ msgstr "우울증" #. ~ Description of effect 'Depressed'. #: lang/json/effects_from_json.py msgid "When will all your suffering end?" -msgstr "" +msgstr "언제쯤 모든 고통이 사라질까?" #. ~ Miss message for effect(s) 'Unhappy, Unhappy, Unhappy, Unhappy, Unhappy, #. Sad, Sad, Sad, Sad, Sad, Depressed'. @@ -65543,6 +65914,40 @@ msgid "" "deconstructed and folded for easy transportation." msgstr "" +#. ~ Description for wind mill +#: lang/json/furniture_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "active wind mill" +msgstr "" + +#. ~ Description for active wind mill +#: lang/json/furniture_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour. Its" +" brake has been removed and it is turning." +msgstr "" + +#. ~ Description for water mill +#: lang/json/furniture_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "active water mill" +msgstr "" + +#. ~ Description for active water mill +#: lang/json/furniture_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour. " +"Its brake has been removed and it is turning." +msgstr "" + #. ~ Description for tourist table #: lang/json/furniture_from_json.py msgid "Small metal folding table, ideal for off-road trips into the wild." @@ -66582,7 +66987,8 @@ msgstr "" " 재사용 확률이 높습니다." #: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py src/item.cpp +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "pistol" msgstr "권총" @@ -66999,6 +67405,11 @@ msgid "base pistol" msgid_plural "base pistols" msgstr[0] "기본 권총" +#: lang/json/gun_from_json.py +msgid "backup pistol" +msgid_plural "backup pistols" +msgstr[0] "" + #: lang/json/gun_from_json.py src/item_factory.cpp msgid "revolver" msgid_plural "revolvers" @@ -67211,6 +67622,20 @@ msgstr[0] "S&W 22A" msgid "A popular .22 pistol." msgstr "대중적인 .22 구경 권총." +#: lang/json/gun_from_json.py +msgid "Jennings J-22" +msgid_plural "Jennings J-22s" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of the quintessential 'saturday night specials', the Jennings J-22 was " +"very affordably priced with its injection molded zinc slide and frame. " +"Intended to fill the void left after small pocket pistols were banned from " +"import, these were more commonly used by criminals unfazed by their glaring " +"safety issues." +msgstr "" + #: lang/json/gun_from_json.py msgid "Remington ACR" msgid_plural "Remington ACRs" @@ -67817,6 +68242,18 @@ msgid "" " but you might find this little gun still useful." msgstr "20세기의 가장 유명한 권총 중 하나. 이름이 본드가 아닌 사람이라도 꽤 쓸모있게 사용할 수 있을 것입니다." +#: lang/json/gun_from_json.py +msgid "Kel-Tec P32" +msgid_plural "Kel-Tec P32s" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of Kel-tec's oldest designs, the P32 is a popular option for deep " +"concealment and backup usage. Despite its extreme light weight and small " +"size, its .32 ACP chambering makes for good handling and recoil control." +msgstr "" + #: lang/json/gun_from_json.py msgid "SIG P226" msgid_plural "SIG P226s" @@ -67901,6 +68338,59 @@ msgid "" " high-quality, durable materials." msgstr "유명한 .38구경 권총. 안전 장치 여러개가 탑재되었으며, 고품질의 고강도 강재로 제작되었습니다." +#: lang/json/gun_from_json.py +msgid "MAC-11" +msgid_plural "MAC-11s" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"A lesser known variant of the MAC-10, this machine pistol is chambered in " +".380 ACP for a smaller overall size while remaining inherently subsonic. " +"Smaller in almost every dimension, this inexpensive automatic weapon was " +"declared 'fit only for combat in a phone booth' due to its low weight and " +"absurd fire rate ranging from 1200 to 1400 rounds per minute." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Kel-Tec P3AT" +msgid_plural "Kel-Tec P3ATs" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"Essentially a slightly scaled up Kel-tec P32 in .380 ACP, the ever popular " +"P3AT offers better ballistics in a small, concealable lightweight package. " +"Handling leaves something to be desired due to snappier recoil and " +"diminuitive controls." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "FN 1910 .380" +msgid_plural "FN 1910 .380s" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"Made infamous in Sarajevo in 1914, the FN1910 was a popular pocket pistol, " +"albeit in .32 ACP. Collectors value the .380 model for its notoriety and " +"more modern terminal performance. If such a humble firearm could start a " +"world war, could it perhaps protect you from the undead?" +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Ruger LCP" +msgid_plural "Ruger LCPs" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of the best selling modern day 'pocket pistol's, the LCP is an " +"affordable, polymer framed pistol chambered in .380 ACP. Despite the " +"round's relatively low power, the pistol's low weight and short sight radius" +" make for a moderately poor handling pistol." +msgstr "" + #: lang/json/gun_from_json.py msgid "Glock 22" msgid_plural "Glock 22" @@ -68962,6 +69452,19 @@ msgid "" "and military." msgstr "글록 17은 누구나 사용할 수 있도록 제작했으며, 법 집행기관과 군대를 대상으로 판매하였습니다." +#: lang/json/gun_from_json.py +msgid "Kel-Tec PF-9" +msgid_plural "Kel-Tec PF-9s" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"The Kel-Tec PF-9 remains one of the most popular backup pistols due to its " +"history of reliability, affordability, and concealability. Chambered in " +"9x19mm, recoil is best described as unpleasant, and follow up shots are " +"difficult to place quickly." +msgstr "" + #: lang/json/gun_from_json.py msgid "Makarov PM" msgid_plural "Makarov PMs" @@ -71381,6 +71884,50 @@ msgctxt "gun_type_type" msgid "crossbow" msgstr "쇠뇌" +#: lang/json/gunmod_from_json.py +msgid "belt clip" +msgid_plural "belt clips" +msgstr[0] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a belt clip that attaches to the grip or slide of a pistol so as to " +"facilitate 'Mexican carry', the practice of carrying without a holster. It " +"does not offer any protection for the trigger, so users are strongly advised" +" to carry with the chamber empty or select a firearm with a very heavy " +"trigger pull." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "rugerlcp" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kp32" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kp3at" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kpf9" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "cop_38" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "moss_brownie" +msgstr "" + #: lang/json/gunmod_from_json.py msgid "shortened barrel" msgid_plural "shortened barrels" @@ -72003,6 +72550,18 @@ msgid "" "Increases the time needed to wield the weapon." msgstr "접이식 개머리판으로 부피는 작지만 사용전에 펴 줘야 한다. 무기를 손에 드는데 필요한 시간이 증가한다." +#: lang/json/gunmod_from_json.py +msgid "folding wire stock" +msgid_plural "folding wire stocks" +msgstr[0] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"A folding wire stock which folds up very compactly but needs unfolding " +"before use. It's somewhat wobbly but is better than nothing at all. " +"Increases the time needed to wield the weapon." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "pistol stock" msgid_plural "pistol stocks" @@ -74938,16 +75497,15 @@ msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"You can 'e'xamine the tile or attempt to pick-up items (default ',') to " -"access the controls, or use the vehicle control key (default '^')." +"You can 'e'xamine the tile to access the controls, or use the vehicle " +"control key (default '^')." msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"With a seat or saddle, you drive from here. You can 'e'xamine the tile or " -"attempt to pick-up items (default ',') to access the controls, or use the " -"vehicle control key (default '^')." +"With a seat or saddle, you drive from here. You can 'e'xamine the tile to " +"access the controls, or use the vehicle control key (default '^')." msgstr "" #. ~ Please leave anything in unchanged. @@ -75901,6 +76459,10 @@ msgstr "잠자기" msgid "Control Vehicle" msgstr "차량 조종하기" +#: lang/json/keybinding_from_json.py +msgid "Toggle Auto Travel Mode" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Toggle Safe Mode" msgstr "안전모드 전환" @@ -76094,7 +76656,23 @@ msgid "Active World Mods" msgstr "활성화된 모드 목록" #: lang/json/keybinding_from_json.py -msgid "Toggle move mode (run/walk/crouch)" +msgid "Cycle move mode (run/walk/crouch)" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Reset Movement to Walk" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Run" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Crouch" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Movement Mode Menu" msgstr "" #: lang/json/keybinding_from_json.py src/game_inventory.cpp @@ -83396,6 +83974,17 @@ msgid "" "easily." msgstr "당신의 청력은 평균 이상이기에 먼 거리에서 발생한 소음도 쉽게 들을 수 있습니다." +#: lang/json/mutation_from_json.py +msgid "Fey Hearing" +msgstr "" + +#. ~ Description for Fey Hearing +#: lang/json/mutation_from_json.py +msgid "" +"Your not sure the shape of your ears are helping, but regardless you have " +"become very sensitive to sounds." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Outdoorsman" msgstr "야외활동가" @@ -85348,6 +85937,17 @@ msgid "" "pleasant aroma, are visually striking, and are quite sensitive." msgstr "" +#: lang/json/mutation_from_json.py +msgid "Rosebuds" +msgstr "" + +#. ~ Description for Rosebuds +#: lang/json/mutation_from_json.py +msgid "" +"The top of your head is blooming with rosebuds. They're eye catching, and " +"have a strong fragrance that makes you pleasant to be around." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Mycus Spores" msgstr "미커스 포자" @@ -87781,6 +88381,17 @@ msgstr "" msgid "You detach a vine from your body." msgstr "" +#: lang/json/mutation_from_json.py +msgid "Hair Roots" +msgstr "" + +#. ~ Description for Hair Roots +#: lang/json/mutation_from_json.py +msgid "" +"Roots have started growing from your leaf like hair, they don't seem to do " +"much." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Toe Roots" msgstr "" @@ -90585,10 +91196,18 @@ msgstr "주유소" msgid "pharmacy" msgstr "약국" +#: lang/json/overmap_terrain_from_json.py +msgid "pharmacy roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "doctor's office" msgstr "진료소" +#: lang/json/overmap_terrain_from_json.py +msgid "doctor's office roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "office" msgstr "사무소" @@ -90695,6 +91314,10 @@ msgstr "" msgid "butcher shop" msgstr "정육점" +#: lang/json/overmap_terrain_from_json.py +msgid "butcher shop roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "bike shop" msgstr "자전거 가게" @@ -90899,10 +91522,22 @@ msgstr "" msgid "internet cafe" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "internet cafe roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "car showroom" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "car showroom 2nd floor" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "car showroom roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "car dealership" msgstr "" @@ -90931,6 +91566,10 @@ msgstr "라디오방송국" msgid "gardening allotment" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "gardening allotment roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "animal pound" msgstr "" @@ -98339,7 +98978,7 @@ msgid "" msgstr "" #: lang/json/recipe_from_json.py -msgid "We need to add a console to control the radio tower." +msgid "We need to build a console to control the radio tower." msgstr "" #: lang/json/recipe_from_json.py @@ -108054,6 +108693,78 @@ msgstr "" msgid "Can do." msgstr "" +#: lang/json/snippet_from_json.py +msgid "Whew... smells like skunk!" +msgstr "어휴... 스컹크같은 냄새가 난다!" + +#: lang/json/snippet_from_json.py +msgid "Man, that smells like some good shit!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Hey, don't bogart the joint!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "C'mon, , I can smell it, pass it over." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Wow, that smell takes me back." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Ah, man. Good times, good times. Love that scent." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "What do I smell? Well, I guess it's legal now." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Mmm, that weed smells good." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Man, I can smell the weed, can I have some?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Are you sure it's a good idea to smoke that now?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I don't know... should you really be smoking that stuff?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid ", that's going to ruin your nose." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Man, that stinks. Put it out!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "You're going to kill yourself smoking that stuff, ." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Oh, wow, that smell... Can I have some?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Ew, smells like burning rubber!" +msgstr "윽, 고무 태우는 냄새가 난다!" + +#: lang/json/snippet_from_json.py +msgid "Ugh, that smells rancid!" +msgstr "웩, 썩은내가 난다!" + +#: lang/json/snippet_from_json.py +msgid "" +msgstr "" + #: lang/json/snippet_from_json.py msgid "Tell me about how you survived the cataclysm." msgstr "" @@ -108954,6 +109665,10 @@ msgstr "내 전 주인은 내가 그녀의 내장을 뽑아냈을 때 돼지처 msgid "\"Hello?\"" msgstr "\"안녕하신가?\"" +#: lang/json/speech_from_json.py +msgid "\"Papaya!\"" +msgstr "" + #: lang/json/speech_from_json.py msgid "\"Who's there?\"" msgstr "\"거기 누구 있소?\"" @@ -111469,8 +112184,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I'm my own person, but I'm willing to follow your lead. I can do a lot of things for you: I can fight, I can train you or you can train me, I can carry stuff, I can bandage your wounds, I can build faction camps, I can go places, I can guard things, I can even chit-chat with you or talk about my background. You can give me instructions in conversation or by radio or shout commands at me. \n" -"What do you want to know more about?" +"I'm my own person, but I'm willing to follow your lead. I can do a lot of things for you: I can fight, I can train you or you can train me, I can carry stuff, I can bandage your wounds, I can build faction camps, I can go places, I can guard things, I can even chit-chat with you or talk about my background. You can give me instructions in conversation or by radio or shout commands at me.\n" +" What do you want to know more about?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -111531,8 +112246,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If we're next to each other, you can just bump into me and we'll start talking, right? But if I'm farther away, you're going to have to shout a bit (use the 'C'hat command) for me to hear you. You'll need to see me for us to have a conversation. Or we can talk by radios if we both have them. \n" -"When we talk, you can give me instructions about how to fight or when to sleep or whatever. I'll mostly do them, and you can ask me what my current instructions are. Sometimes you'll give me two sets of instructions: a normal set, and an override for a specific situation. I'll tell you which instructions are overriden. You can set and clear overrides with shouted commands." +"If we're next to each other, you can just bump into me and we'll start talking, right? But if I'm farther away, you're going to have to shout a bit (use the 'C'hat command) for me to hear you. You'll need to see me for us to have a conversation. Or we can talk by radios if we both have them.\n" +" When we talk, you can give me instructions about how to fight or when to sleep or whatever. I'll mostly do them, and you can ask me what my current instructions are. Sometimes you'll give me two sets of instructions: a normal set, and an override for a specific situation. I'll tell you which instructions are overriden. You can set and clear overrides with shouted commands." msgstr "" #: lang/json/talk_topic_from_json.py @@ -111546,8 +112261,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Sometimes you need to give orders in a hurry. You can use the 'C'hat command to shout a single specific order. If I hear you, I'll do what you say, as will anyone else following you that hears it. \n" -"Some orders will override other instructions you've given me. If you change my instructions when I've got an override command, I'll tell you which ones are overridden. You can shout an order to clear any overrides." +"Sometimes you need to give orders in a hurry. You can use the 'C'hat command to shout a single specific order. If I hear you, I'll do what you say, as will anyone else following you that hears it.\n" +" Some orders will override other instructions you've given me. If you change my instructions when I've got an override command, I'll tell you which ones are overridden. You can shout an order to clear any overrides, or talk to me and tell me to clear them." msgstr "" #: lang/json/talk_topic_from_json.py @@ -111556,72 +112271,75 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"It's a dangerous world out there, right? So we fight to survive. I'm on your side, and I'll stick with you, but if I think the situation is too dangerous, I'll be honest, I'm going to run. If I see you running but I think it's safe, I'll stay and fight, but you can tell me run with you and I'll stick by you as best I can. \n" -"You can give me some instructions on when I should attack, but I'll make my own decisions about who - I'll try to defend myself and you, though, but if you tell me to stay in one place I'll stay there. \n" -"I'll use guns and grenades if I have them, but you can tell me to not use grenades or not use loud weapons or to not use ranged weapons at all. If I'm shooting, you can tell me how much to aim and whether to try to avoid shooting you or not. \n" -"I'll respect your rules for what types of weapons to use, but I'll choose what to use from my stuff. \n" -"You can also tell me to hold the line and fight at chokepoints, but I'm not great at recognizing them so I may go off to fight something elsewhere anyway." +"It's a dangerous world out there, right? So we fight to survive. I'm on your side, and I'll stick with you, but if I think the situation is too dangerous, I'll be honest, I'm going to run.\n" +" You can't tell me not to run, because I'm going to flee if things are bad, but you can tell me a safe place to retreat by using the zones manager (keybind 'Y'). I'll run toward the closest place you've designated - and you can set zones on vehicles, so if you've got a car, you could tell me to retreat there.\n" +" If I see you running but I think it's safe, I'll stay and fight, but you can tell me run with you and I'll stick by you as best I can.\n" +" You can give me some instructions on when I should attack, but I'll make my own decisions about who - I'll try to defend myself and you, but if you tell me to stay in one place I'll stay there.\n" +" I'll use guns and grenades if I have them, but you can tell me to not use grenades or not use loud weapons or to not use ranged weapons at all. If I'm shooting, you can tell me how much to aim and whether to try to avoid shooting you or not. I'm not so good at recognizing safe shots, so stay out of my line of fire no matter what.\n" +" I'll respect your rules for what types of weapons to use, but I'll choose what to use from my stuff.\n" +" You can also tell me to hold the line and fight at chokepoints, but I'm not great at recognizing them so I may go off to fight something elsewhere anyway." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If I'm better at a skill than you, I can help you improve. But it's boring to teach a lot, so I'm not going to do it very often. And I'm not going to do it when we're in danger or if I'm hungry or tired or if you're driving. \n" -"If we're someplace safe and you're reading a book that improves skills, I'll listen if I don't have that skill. You can even read me books for skills that you already have." +"If I'm better at a skill than you, I can help you improve. But it's boring to teach a lot, so I'm not going to do it very often. And I'm not going to do it when we're in danger or if I'm hungry or tired or if you're driving.\n" +" If we're someplace safe and you're reading a book that improves skills, I'll listen if I don't have that skill. You can even read me books for skills that you already have." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"You give me something to carry, I'll carry it. But I only have so many pockets and I'm only so strong, so I'll drop stuff that's too big to carry. \n" -"I'll also wear stuff - I'll decide what I want to wear, but you can take stuff from me. If I'm wearing something I shouldn't, you can bump into me and sort my armor to get me to take if off. \n" -"I don't like wearing a lot of gear, so if you give me a lot of bulky stuff and things that don't fit, I'm going to take them off and probably drop them. \n" -"Also, since we're friends, I'll give you anything I'm carrying, no questions asked. \n" -"Oh, yeah, if I'm hungry or thirsty and I'm carrying food, I'll eat it. So you might want to watch what you give me, y'know?" +"You give me something to carry, I'll carry it. But I only have so many pockets and I'm only so strong, so I'll drop stuff that's too big to carry.\n" +" I'll also wear stuff - I'll decide what I want to wear, but you can take stuff from me. If I'm wearing something I shouldn't, you can bump into me and sort my armor to get me to take if off.\n" +" I don't like wearing a lot of gear, so if you give me a lot of bulky stuff and things that don't fit, I'm going to take them off and probably drop them.\n" +" Also, since we're friends, I'll give you anything I'm carrying, no questions asked.\n" +" Oh, yeah, if I'm hungry or thirsty and I'm carrying food, I'll eat it. So you might want to watch what you give me, y'know?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If you call me by radio, you can tell me to come to you. If you've got some basecamps set up, you can tell me to go to one of them. I'll start walking, and when I get to where I'm going, I'll guard it. \n" -"Now depending on where I am and where I'm going, it may take me a while to get there. I'll dodge any dangers on the way, don't worry about that, but if you're way the heck away from me and tell me to come, it may be a while until I get to you." +"If you call me by radio, you can tell me to come to you. If you've got some basecamps set up, you can tell me to go to one of them. I'll start walking, and when I get to where I'm going, I'll guard it.\n" +" Now depending on where I am and where I'm going, it may take me a while to get there. I'll dodge any dangers on the way, don't worry about that, but if you're way the heck away from me and tell me to come, it may be a while until I get to you." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"You tell me to guard, I'll stay where I am and guard it - unless I'm in a vehicle, in which case I'll stick with the vehicle. \n" -"I'm not a potted plant, though, so if I hear something dangerous happening, I'm going to go see what it is instead of getting jumped in the dark. If you want me to stay put, tell me not to investigate noises - but if I get shot by some bandit because I can't see where he is and you don't want me to go looking, I won't be happy." +"You tell me to guard, I'll stay where I am and guard it - unless I'm in a vehicle, in which case I'll stick with the vehicle.\n" +" I'm not a potted plant, though, so if I hear something dangerous happening, I'm going to go see what it is instead of getting jumped in the dark. If you want me to stay put, tell me not to investigate noises - but if I get shot by some bandit because I can't see where he is and you don't want me to go looking, I won't be happy.\n" +" You can also use the zone manager (keybind 'Y') to set up no-investigate zone, so if there's some monsters behind a door that you know about, I can ignore them. You can also set on an investigate-only zone, and I won't investigate noises coming from outside the zone. The no-investigate zone takes precedence over the investigate-only, if there's a noise coming from some place in both zones. And if you've got an investigate-only zone set anywhere, even if it's far away, I won't investigate noises coming from outside of it, so be careful with those zones. Like I said, I don't want to get sniped by some bandit because you told me not to go looking for him - but I also don't want to go investigate something pounding at door only to find out it's some horrible monster you forgot to warn me about." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Just in case - how do I tell you to stay put?" +msgid "Just in case - how else can I tell you to stay put?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"We can chit-chat, if you want. People are social animals, right? A little light conversation can do wonders for your mood. But I don't want to be yapping all the time, so if we've chatted recently, I probably am not going to want to talk for a bit. \n" -"You can also ask me about my background. I may not want to talk about it, though." +"We can chit-chat, if you want. People are social animals, right? A little light conversation can do wonders for your mood. But I don't want to be yapping all the time, so if we've chatted recently, I probably am not going to want to talk for a bit.\n" +" You can also ask me about my background. I may not want to talk about it, though." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"You can give me a bunch of instructions. Talk to me about the miscellaneous rules, and I'll tell you what I'm doing and you can give a new instruction. Sometimes you'll have shouted a command that overrides your other instructions, and I'll tell you which instructions are overridden. \n" -"I'm not a chatterbox, but I'll tell you when I see or hear danger or if I'm hurt or hungry or something. You don't want me doing that, you just tell me. \n" -"Also, I'll pulp zombies if you'd like - I would prefer that. \n" -"If I hear something suspicious and can't see if, I'll go take a look, but you can tell me not to do that. \n" -" I'll open and close doors, or open them and leave them ajar, or not going through closed doors. You just tell me what you want. \n" -"I can pick stuff up if want me to, and you can tell me what to pick up. If I've got a bow or crossbow, please tell me to pick up the ammo - it's less fuss for both of us. \n" -"If you've got a vehicle, you can e'x'amine it and use the cre'w' command to assign me a seat. That saves arguments about who needs to sit where." +"You can give me a bunch of instructions. Talk to me about the miscellaneous rules, and I'll tell you what I'm doing and you can give a new instruction. Sometimes you'll have shouted a command that overrides your other instructions, and I'll tell you which instructions are overridden.\n" +" I'm not a chatterbox, but I'll tell you when I see or hear danger or if I'm hurt or hungry or something. You don't want me doing that, you just tell me.\n" +" Also, I'll pulp zombies if you'd like - I would prefer that.\n" +" If I hear something suspicious and can't see if, I'll go take a look, but you can tell me not to do that.\n" +" I'll open and close doors, or open them and leave them ajar, or not going through closed doors. You just tell me what you want.\n" +" I can pick stuff up if want me to, and you can tell me what to pick up. If I've got a bow or crossbow, please tell me to pick up the ammo - it's less fuss for both of us.\n" +" If you've got a vehicle, you can e'x'amine it and use the cre'w' command to assign me a seat. That saves arguments about who needs to sit where." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Here's the list of shouted commands I'll respond to: \n" -"Order me to guard, and I'll stay where I am and watch out for danger. I'll investigate suspicious noises unless you told me not to. \n" -"Order me to follow, and I'll stop guarding and go back to following you. \n" -"Order me to stay awake, and I'll stay awake until I'm too tired to keep my eyes open. \n" -"Order me to sleep when tired, and I'll nap when I get tired. I'll try to tell you when I'm off to bed unless you don't want to hear it. \n" -"Order me to flee, and I'll stick close to you when you run from danger. I won't go running off on my own - though if things really bad, I might be running away already! \n" -"Order me to stop running, and I'll evaluate the danger myself and might go off and fight something while you're doing other things. \n" -"Ordering me to prepare for danger is special: it's an override command. That means I'm going to follow certain instructions, even if you've given me other instructions earlier. Specifically, I'm going to flee with you, I'm not going to open or close doors, I'm not going to sleep until I'm exhausted, and I'm going to try to hold any chokepoints that you're fighting at. \n" -"Ordering me to relax from danger is another special command, and it will clear any overrides I currently have and I'll go back to whatever instructions I had before you told me to prepare for danger." +"Here's the list of shouted commands I'll respond to:\n" +" - Order me to guard, and I'll stay where I am and watch out for danger. I'll investigate suspicious noises unless you told me not to.\n" +" - Order me to follow, and I'll stop guarding and go back to following you.\n" +" - Order me to stay awake, and I'll stay awake until I'm too tired to keep my eyes open.\n" +" - Order me to sleep when tired, and I'll nap when I get tired. I'll try to tell you when I'm off to bed unless you don't want to hear it.\n" +" - Order me to flee, and I'll stick close to you when you run from danger. I won't go running off on my own - though if things really bad, I might be running away already!\n" +" - Order me to stop running, and I'll evaluate the danger myself and might go off and fight something while you're doing other things.\n" +" - Ordering me to prepare for danger is special: it's an override command. That means I'm going to follow certain instructions, even if you've given me other instructions earlier. Specifically, I'm going to flee with you, I'm not going to open or close doors, I'm not going to sleep until I'm exhausted, and I'm going to try to hold any chokepoints that you're fighting at.\n" +" - Ordering me to relax from danger is another special command, and it will clear any overrides I currently have and I'll go back to whatever instructions I had before you told me to prepare for danger." msgstr "" #: lang/json/talk_topic_from_json.py @@ -111889,6 +112607,10 @@ msgstr "일어나!" msgid "Go back to sleep." msgstr "다시 자러가." +#: lang/json/talk_topic_from_json.py +msgid "What is it, friend?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Combat commands..." msgstr "전투 명령..." @@ -111898,11 +112620,7 @@ msgid "Can you teach me anything?" msgstr "뭔가 가르쳐줄 수 있는게 있나?" #: lang/json/talk_topic_from_json.py -msgid "Let's trade items" -msgstr "거래하자." - -#: lang/json/talk_topic_from_json.py -msgid "Guard this position" +msgid "Guard this position." msgstr "이 장소를 경비해줘." #: lang/json/talk_topic_from_json.py @@ -111910,12 +112628,12 @@ msgid "I'd like to know a bit more about you..." msgstr "너에 대해 조금 더 알고싶어." #: lang/json/talk_topic_from_json.py -msgid "I want you to use this item" -msgstr "네가 이걸 써줬으면 좋겠어." +msgid "I want you to use this item." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hold on to this item" -msgstr "이 아이템을 갖고 있어." +msgid "Hold on to this item." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Miscellaneous rules..." @@ -112046,10 +112764,6 @@ msgstr "그래, 잘 알겠어. 안녕." msgid "Nah, I'm just kidding." msgstr "아니, 그냥 농담이야." -#: lang/json/talk_topic_from_json.py -msgid "*pshhhttt* I'm reading you boss, over." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Stay at your current position." msgstr "" @@ -112506,7 +113220,7 @@ msgstr "좋았어, 가자!" msgid "Yeah... I don't think so." msgstr "음... 내 생각은 다른데." -#: lang/json/talk_topic_from_json.py src/npctalk.cpp +#: lang/json/talk_topic_from_json.py msgid "What is it?" msgstr "뭐야?" @@ -112686,6 +113400,28 @@ msgstr "그래, 좋아, 안녕." msgid "Okay" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm willing to pay per batch for a total of " +"." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Works for me." +msgstr "나한테는 맞던데." + +#: lang/json/talk_topic_from_json.py +msgid "Maybe later." +msgstr "아마 나중에." + +#: lang/json/talk_topic_from_json.py +msgid "Pleasure doing business!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You might be seeing more of me..." +msgstr "니가 나보다 더 많이 보게 될지도 몰라..." + #: lang/json/talk_topic_from_json.py msgid "Hey again. *kzzz*" msgstr "" @@ -113543,10 +114279,6 @@ msgstr "" msgid "Yes, set up the bulletin board and then go back to normal duties." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Hope you're here to trade." -msgstr "너가 거래할 목적으로 왔으면 좋겠는데." - #: lang/json/talk_topic_from_json.py msgid "" "I oversee the food stocks for the center. There was significant looting " @@ -113596,6 +114328,14 @@ msgstr "" msgid "Interesting..." msgstr "흥미롭군..." +#: lang/json/talk_topic_from_json.py +msgid "Hope you're here to trade." +msgstr "너가 거래할 목적으로 왔으면 좋겠는데." + +#: lang/json/talk_topic_from_json.py +msgid "Who are you?" +msgstr "당신은 누구지?" + #: lang/json/talk_topic_from_json.py msgid "Mind if we just chat for a bit?" msgstr "잠깐 잡담이나 할까?" @@ -113826,10 +114566,6 @@ msgstr "보안관님..." msgid "Citizen..." msgstr "시민..." -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Who are you?" -msgstr "당신은 누구지?" - #: lang/json/talk_topic_from_json.py msgid "Is there any way I can join the 'Old Guard'?" msgstr "내가 '올드 가드'에 들어갈 방법이 있을까?" @@ -114335,10 +115071,6 @@ msgstr "" msgid "[$12000, 7d] 100 logs" msgstr "" -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Maybe later." -msgstr "아마 나중에." - #: lang/json/talk_topic_from_json.py msgid "I'll be back later." msgstr "" @@ -123698,6 +124430,10 @@ msgstr "정밀 절단" msgid "glare protection" msgstr "눈부심 방지" +#: lang/json/tool_quality_from_json.py +msgid "anesthesia" +msgstr "" + #: lang/json/tool_quality_from_json.py msgid "smoothing" msgstr "미장" @@ -124872,10 +125608,6 @@ msgstr "" msgid "wooden aisle" msgstr "나무 복도" -#: lang/json/vehicle_part_from_json.py -msgid "floor trunk" -msgstr "플로어 트렁크" - #. ~ Description for floor trunk #: lang/json/vehicle_part_from_json.py msgid "An aisle. A hatch lets you access a cargo space beneath it." @@ -125547,8 +126279,8 @@ msgstr "" msgid "" "A sophisticated set of electronic controls that allow you to control the " "vehicle from a vehicle remote while you are not in it. You can 'e'xamine " -"the tile or attempt to pick-up items (default ',') to access the controls, " -"or use the vehicle control key (default '^')." +"the tile to access the controls, or use the vehicle control key (default " +"'^')." msgstr "" #: lang/json/vehicle_part_from_json.py @@ -125560,8 +126292,8 @@ msgstr "카메라 제어장치" msgid "" "An LCD display attached to one or more cameras. When turned on, it lets you" " see from the cameras, but drains power from the vehicle's batteries. You " -"can 'e'xamine the tile or attempt to pick-up items (default ',') to access " -"the controls, or use the vehicle control key (default '^')." +"can 'e'xamine the tile to access the controls, or use the vehicle control " +"key (default '^')." msgstr "" #. ~ Description for security camera @@ -125871,7 +126603,7 @@ msgstr "연소 기관. 차량의 탱크에 있는 연료를 태웁니다." #: lang/json/vehicle_part_from_json.py msgid "" "A combustion engine. Burns diesel fuel from a tank in the vehicle. Can " -"also burn methanol, ethanol, or lamp oil, though somewhat less efficiently." +"also burn biodiesel or lamp oil, though somewhat less efficiently." msgstr "" #: lang/json/vehicle_part_from_json.py @@ -132366,6 +133098,34 @@ msgstr "NPC 줍기 금지" msgid "Friendly NPCs don't pickup items inside the zone." msgstr "" +#: src/clzones.cpp +msgid "NPC Retreat" +msgstr "" + +#: src/clzones.cpp +msgid "" +"When fleeing, friendly NPCs will attempt to retreat toward this zone if it " +"is within 60 tiles." +msgstr "" + +#: src/clzones.cpp +msgid "NPC Ignore Sounds" +msgstr "" + +#: src/clzones.cpp +msgid "Friendly NPCs won't investigate unseen sounds coming from this zone." +msgstr "" + +#: src/clzones.cpp +msgid "NPC Investigation Area" +msgstr "" + +#: src/clzones.cpp +msgid "" +"Friendly NPCs will investigate unseen sounds only if they come from inside " +"this area." +msgstr "" + #: src/clzones.cpp msgid "Loot: Unsorted" msgstr "" @@ -134601,11 +135361,6 @@ msgctxt "in progress craft" msgid " starts working on the %s." msgstr "" -#: src/crafting.cpp -#, c-format -msgid "%s helps with crafting..." -msgstr "%s이(가) 제작을 돕는다..." - #: src/crafting.cpp #, c-format msgid "%s assists with crafting..." @@ -134621,6 +135376,11 @@ msgstr "%s이(가) 제작을 도울 수 있다..." msgid "%s watches you craft..." msgstr "%s이(가) 제작하는 것을 지켜본다..." +#: src/crafting.cpp +#, c-format +msgid "%s helps with crafting..." +msgstr "%s이(가) 제작을 돕는다..." + #: src/crafting.cpp #, c-format msgid "You fail to make the %s, and waste some materials." @@ -134646,6 +135406,17 @@ msgstr "책을 참고하며 %s을(를) 만들었다." msgid "You memorized the recipe for %s!" msgstr "%s 제작법을 기억했다!" +#: src/crafting.cpp +#, c-format +msgid "You don't know the recipe for the %s and can't continue crafting." +msgstr "" + +#: src/crafting.cpp +#, c-format +msgid "" +" doesn't know the recipe for the %s and can't continue crafting." +msgstr "" + #: src/crafting.cpp #, c-format msgid "%s (%d/%d nearby)" @@ -135213,6 +135984,190 @@ msgid "" "message to the clipboard." msgstr "" +#: src/debug_menu.cpp +msgid "Mutate" +msgstr "신체 변이" + +#: src/debug_menu.cpp +msgid "Change all skills" +msgstr "모든 기술 수준 변경" + +#: src/debug_menu.cpp +msgid "Learn all melee styles" +msgstr "모든 무술 배우기" + +#: src/debug_menu.cpp +msgid "Unlock all recipes" +msgstr "모든 제작법 해제" + +#: src/debug_menu.cpp +msgid "Edit player/NPC" +msgstr "플레이어/NPC 수정" + +#: src/debug_menu.cpp +msgid "Damage self" +msgstr "" + +#: src/debug_menu.cpp +msgid "Set automove route" +msgstr "자동이동 경로 설정" + +#: src/debug_menu.cpp +msgid "Player..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Check game state" +msgstr "" + +#: src/debug_menu.cpp +msgid "Display hordes" +msgstr "적 무리 표시" + +#: src/debug_menu.cpp +msgid "Test item group" +msgstr "" + +#: src/debug_menu.cpp +msgid "Show sound clustering" +msgstr "" + +#: src/debug_menu.cpp +msgid "Display weather" +msgstr "날씨 표시" + +#: src/debug_menu.cpp +msgid "Display overmap scents" +msgstr "후각 맵 표시" + +#: src/debug_menu.cpp +msgid "Show mutation category levels" +msgstr "변이 카테고리 단계 보기" + +#: src/debug_menu.cpp +msgid "Draw benchmark (X seconds)" +msgstr "" + +#: src/debug_menu.cpp +msgid "Test trait group" +msgstr "특성 그룹 시험" + +#: src/debug_menu.cpp +msgid "Show debug message" +msgstr "" + +#: src/debug_menu.cpp +msgid "Crash game (test crash handling)" +msgstr "" + +#: src/debug_menu.cpp +msgid "Toggle NPC pathfinding on map" +msgstr "" + +#: src/debug_menu.cpp +msgid "Info..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - short range" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - long range" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - adjacent overmap" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn an item" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn NPC" +msgstr "NPC 생성" + +#: src/debug_menu.cpp +msgid "Spawn monster" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn a vehicle" +msgstr "차량 생성" + +#: src/debug_menu.cpp +msgid "Spawn artifact" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn clairvoyance artifact" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawning..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Reveal map" +msgstr "지도의 안개를 걷어냄" + +#: src/debug_menu.cpp +msgid "Kill NPCs" +msgstr "NPC 죽이기" + +#: src/debug_menu.cpp +msgid "Map editor" +msgstr "맵 에디터" + +#: src/debug_menu.cpp +msgid "Change weather" +msgstr "날씨 변경" + +#: src/debug_menu.cpp +msgid "Change wind direction" +msgstr "" + +#: src/debug_menu.cpp +msgid "Change wind speed" +msgstr "" + +#: src/debug_menu.cpp +msgid "Kill all monsters" +msgstr "모든 괴물 죽임" + +#: src/debug_menu.cpp +msgid "Change time" +msgstr "시간 변경" + +#: src/debug_menu.cpp +msgid "Overmap editor" +msgstr "오버맵 편집기" + +#: src/debug_menu.cpp +msgid "Spawn map extra" +msgstr "" + +#: src/debug_menu.cpp +msgid "Map..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Quit to main menu" +msgstr "" + +#: src/debug_menu.cpp +msgid "" +"Debug Functions - Using these will cheat not only the game, but yourself.\n" +"You won't grow. You won't improve.\n" +"Taking this shortcut will gain you nothing. Your victory will be hollow.\n" +"Nothing will be risked and nothing will be gained." +msgstr "" + #: src/debug_menu.cpp #, c-format msgid "You teleport to point (%d,%d,%d)." @@ -135653,6 +136608,201 @@ msgstr "임무 강제삭제" msgid "Drew %d times in %.3f seconds. (%.3f fps average)" msgstr "%d회/%.3f초마다 표시. (평균 FPS %.3f)" +#: src/debug_menu.cpp +msgid "Current overmap revealed." +msgstr "현 모든 지도 밝힘." + +#: src/debug_menu.cpp +#, c-format +msgid "Location %d:%d in %d:%d, %s\n" +msgstr "위치 %d:%d -> %d:%d, %s\n" + +#: src/debug_menu.cpp +#, c-format +msgid "" +"Current turn: %d.\n" +"%s\n" +msgstr "" +"현재 턴: %d.\n" +"%s\n" + +#: src/debug_menu.cpp +#, c-format +msgid "%d creature exists.\n" +msgid_plural "%d creatures exist.\n" +msgstr[0] "%d 개체 존재.\n" + +#: src/debug_menu.cpp +msgid "NPCs are going to spawn." +msgstr "NPC가 스폰된다." + +#: src/debug_menu.cpp +msgid "NPCs are NOT going to spawn." +msgstr "NPC가 스폰되지 않는다." + +#: src/debug_menu.cpp +#, c-format +msgid "%s: map ( %d:%d ) pos ( %d:%d )" +msgstr "%s: 지도 ( %d:%d ) 위치 ( %d:%d )" + +#: src/debug_menu.cpp +#, c-format +msgid "(you: %d:%d)" +msgstr "(위치: %d:%d)" + +#: src/debug_menu.cpp +#, c-format +msgid "Stomach Contents: %d ml / %d ml kCal: %d, Water: %d ml" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "" +"Guts Contents: %d ml / %d ml kCal: %d, Water: %d ml\n" +"Hunger: %d, Thirst: %d, kCal: %d / %d" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "%s's head implodes!" +msgstr "%s의 머리가 터졌다!" + +#: src/debug_menu.cpp +msgid "Choose vehicle to spawn" +msgstr "생성할 차량 선택" + +#. ~ Menu entry in vehicle wish menu: 1st string: displayed name, 2nd string: +#. internal name of vehicle +#: src/debug_menu.cpp +#, c-format +msgid "%1$s (%2$s)" +msgstr "%1$s(%2$s)" + +#: src/debug_menu.cpp +msgid "Martial arts debug." +msgstr "무술 디버그 사용." + +#: src/debug_menu.cpp +msgid "Your eyes blink rapidly as knowledge floods your brain." +msgstr "지식이 뇌에 빠르게 쏟아져 들어오면서 눈이 빠르게 깜빡인다." + +#: src/debug_menu.cpp +msgid "You now know a lot more than just 10 styles of kung fu." +msgstr "10개 이상의 쿵푸 기술을 알게 되었다." + +#: src/debug_menu.cpp +msgid "Recipe debug." +msgstr "제작법 디버그 사용." + +#: src/debug_menu.cpp +msgid "You know how to craft that now." +msgstr "이제는 무엇을 어떻게 만들어야 하는지 알 수 있다." + +#: src/debug_menu.cpp +msgid "Select new weather pattern:" +msgstr "날씨 바꾸기:" + +#: src/debug_menu.cpp +msgid "Disable weather forcing" +msgstr "날씨 고정 해제" + +#: src/debug_menu.cpp +msgid "Keep normal weather patterns" +msgstr "보통 날씨 패턴 유지" + +#: src/debug_menu.cpp +msgid "Select new wind direction:" +msgstr "" + +#: src/debug_menu.cpp +msgid "Disable direction forcing" +msgstr "" + +#: src/debug_menu.cpp +msgid "Keep normal wind direction" +msgstr "" + +#: src/debug_menu.cpp +msgid "Select new wind speed:" +msgstr "" + +#: src/debug_menu.cpp +msgid "Disable speed forcing" +msgstr "" + +#: src/debug_menu.cpp +msgid "Keep normal wind speed" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "Damage self for how much? hp: %d" +msgstr "얼마나 심하게 자해하겠습니까? hp: %d" + +#: src/debug_menu.cpp +msgid "This binary was not compiled with tiles support." +msgstr "이 바이너리는 타일 지원 사양이 아닙니다." + +#: src/debug_menu.cpp +msgid "year" +msgstr "년" + +#: src/debug_menu.cpp +msgid "season" +msgstr "계절" + +#: src/debug_menu.cpp +msgid "day" +msgstr "일" + +#: src/debug_menu.cpp +msgid "hour" +msgstr "시간" + +#: src/debug_menu.cpp +msgid "minute" +msgstr "분" + +#: src/debug_menu.cpp src/martialarts.cpp src/martialarts.cpp +msgid "turn" +msgid_plural "turns" +msgstr[0] "" + +#: src/debug_menu.cpp +msgid "Set year to?" +msgstr "연도 설정 : " + +#: src/debug_menu.cpp +msgid "Set season to? (0 = spring)" +msgstr "계절 설정 : (0=봄)" + +#: src/debug_menu.cpp +msgid "Set days to?" +msgstr "날짜 설정 : " + +#: src/debug_menu.cpp +msgid "Set hour to?" +msgstr "시간 설정 : " + +#: src/debug_menu.cpp +msgid "Set minute to?" +msgstr "분 설정 : " + +#: src/debug_menu.cpp +#, c-format +msgid "Set turn to? (One day is %i turns)" +msgstr "턴 설정 ? (하루는 %i 턴)" + +#: src/debug_menu.cpp +msgid "Enter benchmark length (in milliseconds):" +msgstr "" + +#: src/debug_menu.cpp +msgid "" +"Quit without saving? This may cause issues such as duplicated or missing " +"items and vehicles!" +msgstr "저장 없이 나갑니까? 물품과 차량이 복제되거나 사라지는 문제가 발생할 수 있습니다!" + #: src/defense.cpp #, c-format msgid "Please wait as the map generates [ 0%% ]" @@ -137190,6 +138340,10 @@ msgstr "따라감" msgid "Leading" msgstr "이끌어감" +#: src/faction.cpp +msgid "Patrolling" +msgstr "" + #: src/faction.cpp msgid "Guarding" msgstr "" @@ -138123,6 +139277,10 @@ msgstr "" msgid "Select an end point." msgstr "" +#: src/faction_camp.cpp +msgid "Spiked pits must be built over existing trenches!" +msgstr "" + #: src/faction_camp.cpp msgid "Invalid terrain in construction path." msgstr "" @@ -138623,14 +139781,6 @@ msgstr "" msgid "You distribute %d kcal worth of food to your companions." msgstr "" -#: src/faction_camp.cpp -msgid "Accessed camp inventory whilst position does not refer to a camp" -msgstr "" - -#: src/faction_camp.cpp -msgid "consume components for camp mission, but no camp found" -msgstr "" - #: src/faction_camp.cpp #, c-format msgid "While %s, a silent specter approaches %s..." @@ -139088,26 +140238,6 @@ msgstr "짙은 살진균 가스" msgid "smoke vent" msgstr "" -#: src/field.cpp -msgid "Whew... smells like skunk!" -msgstr "어휴... 스컹크같은 냄새가 난다!" - -#: src/field.cpp -msgid "Man, that smells like some good shit!" -msgstr "" - -#: src/field.cpp -msgid "I don't know... should you really be smoking that stuff?" -msgstr "" - -#: src/field.cpp -msgid "Ew, smells like burning rubber!" -msgstr "윽, 고무 태우는 냄새가 난다!" - -#: src/field.cpp -msgid "Ugh, that smells rancid!" -msgstr "웩, 썩은내가 난다!" - #: src/field.cpp #, c-format msgid "A %s hits you!" @@ -139659,364 +140789,6 @@ msgstr "UI 상태 데이터" msgid "Failed to save game data" msgstr "게임 데이터를 저장하는데 실패했습니다." -#: src/game.cpp -msgid "" -"Debug Functions - Using these will cheat not only the game, but yourself. You won't grow. You won't improve.\n" -"Taking this shortcut will gain you nothing. Your victory will be hollow.\n" -"Nothing will be risked and nothing will be gained." -msgstr "" - -#: src/game.cpp -msgid "Wish for an item" -msgstr "아이템 소원을 빈다" - -#: src/game.cpp -msgid "Teleport - Short Range" -msgstr "순간이동 - 근거리" - -#: src/game.cpp -msgid "Teleport - Long Range" -msgstr "순간이동 - 장거리" - -#: src/game.cpp -msgid "Reveal map" -msgstr "지도의 안개를 걷어냄" - -#: src/game.cpp -msgid "Spawn NPC" -msgstr "NPC 생성" - -#: src/game.cpp -msgid "Spawn Monster" -msgstr "괴물 생성" - -#: src/game.cpp -msgid "Check game state..." -msgstr "게임 상태 확인..." - -#: src/game.cpp -msgid "Kill NPCs" -msgstr "NPC 죽이기" - -#: src/game.cpp -msgid "Mutate" -msgstr "신체 변이" - -#: src/game.cpp -msgid "Spawn a vehicle" -msgstr "차량 생성" - -#: src/game.cpp -msgid "Change all skills" -msgstr "모든 기술 수준 변경" - -#: src/game.cpp -msgid "Learn all melee styles" -msgstr "모든 무술 배우기" - -#: src/game.cpp -msgid "Unlock all recipes" -msgstr "모든 제작법 해제" - -#: src/game.cpp -msgid "Edit player/NPC" -msgstr "플레이어/NPC 수정" - -#: src/game.cpp -msgid "Spawn Artifact" -msgstr "아티팩트 생성" - -#: src/game.cpp -msgid "Spawn Clairvoyance Artifact" -msgstr "투시력을 지닌 아티팩트 생성" - -#: src/game.cpp -msgid "Map editor" -msgstr "맵 에디터" - -#: src/game.cpp -msgid "Change weather" -msgstr "날씨 변경" - -#: src/game.cpp -msgid "Change wind direction" -msgstr "" - -#: src/game.cpp -msgid "Change wind speed" -msgstr "" - -#: src/game.cpp -msgid "Kill all monsters" -msgstr "모든 괴물 죽임" - -#: src/game.cpp -msgid "Display hordes" -msgstr "적 무리 표시" - -#: src/game.cpp -msgid "Test Item Group" -msgstr "물품 그룹별 생성률 테스트" - -#: src/game.cpp -msgid "Damage Self" -msgstr "자신에게 피해 입히기" - -#: src/game.cpp -msgid "Show Sound Clustering" -msgstr "효과음 클러스터링 보기" - -#: src/game.cpp -msgid "Display weather" -msgstr "날씨 표시" - -#: src/game.cpp -msgid "Display overmap scents" -msgstr "후각 맵 표시" - -#: src/game.cpp -msgid "Change time" -msgstr "시간 변경" - -#: src/game.cpp -msgid "Set automove route" -msgstr "자동이동 경로 설정" - -#: src/game.cpp -msgid "Show mutation category levels" -msgstr "변이 카테고리 단계 보기" - -#: src/game.cpp -msgid "Overmap editor" -msgstr "오버맵 편집기" - -#: src/game.cpp -msgid "Draw benchmark (X seconds)" -msgstr "" - -#: src/game.cpp -msgid "Teleport - Adjacent overmap" -msgstr "순간이동 - 인접 오버맵" - -#: src/game.cpp -msgid "Test trait group" -msgstr "특성 그룹 시험" - -#: src/game.cpp -msgid "Show debug message" -msgstr "" - -#: src/game.cpp -msgid "Crash game (test crash handling)" -msgstr "" - -#: src/game.cpp -msgid "Spawn Map Extra" -msgstr "" - -#: src/game.cpp -msgid "Toggle NPC pathfinding on map" -msgstr "" - -#: src/game.cpp -msgid "Quit to Main Menu" -msgstr "메인 메뉴로 나가기" - -#: src/game.cpp -msgid "Current overmap revealed." -msgstr "현 모든 지도 밝힘." - -#: src/game.cpp -#, c-format -msgid "Location %d:%d in %d:%d, %s\n" -msgstr "위치 %d:%d -> %d:%d, %s\n" - -#: src/game.cpp -#, c-format -msgid "" -"Current turn: %d.\n" -"%s\n" -msgstr "" -"현재 턴: %d.\n" -"%s\n" - -#: src/game.cpp -#, c-format -msgid "%d creature exists.\n" -msgid_plural "%d creatures exist.\n" -msgstr[0] "%d 개체 존재.\n" - -#: src/game.cpp -msgid "NPCs are going to spawn." -msgstr "NPC가 스폰된다." - -#: src/game.cpp -msgid "NPCs are NOT going to spawn." -msgstr "NPC가 스폰되지 않는다." - -#: src/game.cpp -#, c-format -msgid "%s: map ( %d:%d ) pos ( %d:%d )" -msgstr "%s: 지도 ( %d:%d ) 위치 ( %d:%d )" - -#: src/game.cpp -#, c-format -msgid "(you: %d:%d)" -msgstr "(위치: %d:%d)" - -#: src/game.cpp -#, c-format -msgid "Stomach Contents: %d ml / %d ml kCal: %d, Water: %d ml" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "" -"Guts Contents: %d ml / %d ml kCal: %d, Water: %d ml\n" -"Hunger: %d, Thirst: %d, kCal: %d / %d" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "%s's head implodes!" -msgstr "%s의 머리가 터졌다!" - -#: src/game.cpp -msgid "Choose vehicle to spawn" -msgstr "생성할 차량 선택" - -#. ~ Menu entry in vehicle wish menu: 1st string: displayed name, 2nd string: -#. internal name of vehicle -#: src/game.cpp -#, c-format -msgid "%1$s (%2$s)" -msgstr "%1$s(%2$s)" - -#: src/game.cpp -msgid "Martial arts debug." -msgstr "무술 디버그 사용." - -#: src/game.cpp -msgid "Your eyes blink rapidly as knowledge floods your brain." -msgstr "지식이 뇌에 빠르게 쏟아져 들어오면서 눈이 빠르게 깜빡인다." - -#: src/game.cpp -msgid "You now know a lot more than just 10 styles of kung fu." -msgstr "10개 이상의 쿵푸 기술을 알게 되었다." - -#: src/game.cpp -msgid "Recipe debug." -msgstr "제작법 디버그 사용." - -#: src/game.cpp -msgid "You know how to craft that now." -msgstr "이제는 무엇을 어떻게 만들어야 하는지 알 수 있다." - -#: src/game.cpp -msgid "Select new weather pattern:" -msgstr "날씨 바꾸기:" - -#: src/game.cpp -msgid "Disable weather forcing" -msgstr "날씨 고정 해제" - -#: src/game.cpp -msgid "Keep normal weather patterns" -msgstr "보통 날씨 패턴 유지" - -#: src/game.cpp -msgid "Select new wind direction:" -msgstr "" - -#: src/game.cpp -msgid "Disable direction forcing" -msgstr "" - -#: src/game.cpp -msgid "Keep normal wind direction" -msgstr "" - -#: src/game.cpp -msgid "Select new wind speed:" -msgstr "" - -#: src/game.cpp -msgid "Disable speed forcing" -msgstr "" - -#: src/game.cpp -msgid "Keep normal wind speed" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "Damage self for how much? hp: %d" -msgstr "얼마나 심하게 자해하겠습니까? hp: %d" - -#: src/game.cpp -msgid "This binary was not compiled with tiles support." -msgstr "이 바이너리는 타일 지원 사양이 아닙니다." - -#: src/game.cpp -msgid "year" -msgstr "년" - -#: src/game.cpp -msgid "season" -msgstr "계절" - -#: src/game.cpp -msgid "day" -msgstr "일" - -#: src/game.cpp -msgid "hour" -msgstr "시간" - -#: src/game.cpp -msgid "minute" -msgstr "분" - -#: src/game.cpp src/martialarts.cpp src/martialarts.cpp -msgid "turn" -msgid_plural "turns" -msgstr[0] "" - -#: src/game.cpp -msgid "Set year to?" -msgstr "연도 설정 : " - -#: src/game.cpp -msgid "Set season to? (0 = spring)" -msgstr "계절 설정 : (0=봄)" - -#: src/game.cpp -msgid "Set days to?" -msgstr "날짜 설정 : " - -#: src/game.cpp -msgid "Set hour to?" -msgstr "시간 설정 : " - -#: src/game.cpp -msgid "Set minute to?" -msgstr "분 설정 : " - -#: src/game.cpp -#, c-format -msgid "Set turn to? (One day is %i turns)" -msgstr "턴 설정 ? (하루는 %i 턴)" - -#: src/game.cpp -msgid "Enter benchmark length (in milliseconds):" -msgstr "" - -#: src/game.cpp -msgid "" -"Quit without saving? This may cause issues such as duplicated or missing " -"items and vehicles!" -msgstr "저장 없이 나갑니까? 물품과 차량이 복제되거나 사라지는 문제가 발생할 수 있습니다!" - #: src/game.cpp msgid "You haven't killed any monsters yet!" msgstr "아직 아무것도 죽이지 않았습니다!" @@ -140553,14 +141325,6 @@ msgstr "" msgid "Without extra fuel it will burn for %s." msgstr "" -#: src/game.cpp -msgid "You can't do that while driving." -msgstr "운전 중에는 할 수 없다." - -#: src/game.cpp -msgid "You can't do that on a moving vehicle." -msgstr "움직이는 차량에 탑승한 상태로는 할 수 없다." - #: src/game.cpp #, c-format msgid "The %s is too unstable to remove anything." @@ -142913,6 +143677,22 @@ msgstr "%s을(를) %s (%d)에서 획득" msgid "Draw what?" msgstr "무엇을 꺼냅니까?" +#: src/handle_action.cpp +msgid "Change to which movement mode?" +msgstr "" + +#: src/handle_action.cpp +msgid "Walk" +msgstr "" + +#: src/handle_action.cpp +msgid "Run" +msgstr "" + +#: src/handle_action.cpp +msgid "Crouch" +msgstr "" + #: src/handle_action.cpp msgid "Auto-move canceled" msgstr "자동이동 취소됨" @@ -143000,6 +143780,14 @@ msgstr "새 지정은 '^'입니다." msgid "You can't operate a vehicle while you're in your shell." msgstr "" +#: src/handle_action.cpp +msgid "Auto travel mode OFF!" +msgstr "" + +#: src/handle_action.cpp +msgid "Auto travel mode ON!" +msgstr "" + #: src/handle_action.cpp msgid "Safe mode ON!" msgstr "안전모드 켜짐!" @@ -143561,29 +144349,33 @@ msgid "You harvest and drop: poppy bud" msgstr "" #: src/iexamine.cpp -msgid "If only you had a shovel to dig up those roots..." -msgstr "삽이라도 있었다면 뿌리를 파내겠지만..." +msgid "The cactus' nettles sting you!" +msgstr "" #: src/iexamine.cpp -msgid "You harvest: dahlia root" +#, c-format +msgid "You harvest: %s." msgstr "" #: src/iexamine.cpp -msgid "You harvest and drop: dahlia root" +#, c-format +msgid "You harvest and drop: %s." msgstr "" #: src/iexamine.cpp -msgid "Nothing can be harvested from this plant in current season." +msgid "If only you had a shovel to dig up those roots..." +msgstr "삽이라도 있었다면 뿌리를 파내겠지만..." + +#: src/iexamine.cpp +msgid "You harvest: dahlia root" msgstr "" #: src/iexamine.cpp -#, c-format -msgid "You harvest: %s." +msgid "You harvest and drop: dahlia root" msgstr "" #: src/iexamine.cpp -#, c-format -msgid "You harvest and drop: %s." +msgid "Nothing can be harvested from this plant in current season." msgstr "" #: src/iexamine.cpp @@ -144452,7 +145244,9 @@ msgid "" msgstr "" #: src/iexamine.cpp -msgid "You need an anesthesia kit for autodoc to perform any operation." +msgid "" +"You need an anesthesia kit with at least one charge for autodoc to perform " +"any operation." msgstr "" #: src/iexamine.cpp @@ -144509,6 +145303,46 @@ msgstr "설치된 바이오닉이 없다." msgid "%1$s doesn't have any bionics installed." msgstr "" +#: src/iexamine.cpp +msgid "This mill already contains flour." +msgstr "" + +#: src/iexamine.cpp +msgid "Remove it before starting the mill again." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "This rack contains %s, which can't be milled!" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You remove the %s from the mill." +msgstr "" + +#: src/iexamine.cpp +msgid "" +"This mill is empty. Fill it with starchy products such as wheat, barley or " +"oats and try again." +msgstr "" + +#: src/iexamine.cpp +msgid "" +"This mill is overloaded with products, and the millstone can't turn. Remove" +" some and try again." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgctxt "volume units" +msgid "You think that you can load about %s %s in it." +msgstr "" + +#: src/iexamine.cpp +msgid "You remove the brake on the millstone and it slowly starts to turn." +msgstr "" + #: src/iexamine.cpp msgid "This rack already contains smoked food." msgstr "" @@ -144605,6 +145439,131 @@ msgstr "" msgid "You carefully place %s %s in the rack." msgstr "" +#: src/iexamine.cpp +msgid "You can't place more food while it's milling." +msgstr "" + +#: src/iexamine.cpp +msgid "Load mill with what kind of product?" +msgstr "" + +#: src/iexamine.cpp +msgid "You don't have any products that can be milled." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "Insert how many %s into the mill?" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgctxt "item amount and name" +msgid "You carefully place %s %s in the mill." +msgstr "" + +#: src/iexamine.cpp +msgid "The water mill needs to be over shallow flowing water to work." +msgstr "" + +#: src/iexamine.cpp +msgid "The wind mill needs to be outside in the wind to work." +msgstr "" + +#: src/iexamine.cpp +msgid "What to do with the mill?" +msgstr "" + +#: src/iexamine.cpp +msgid "Inspect mill" +msgstr "" + +#: src/iexamine.cpp +msgid "" +"Remove brake and start milling... insert some products for milling first" +msgstr "" + +#: src/iexamine.cpp +msgid "Remove brake and start milling" +msgstr "" + +#: src/iexamine.cpp +msgid "Remove brake and start milling, milling will take about 6 hours." +msgstr "" + +#: src/iexamine.cpp +msgid "Insert products for milling... mill is full" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "Insert products for milling... remaining capacity is %s %s" +msgstr "" + +#: src/iexamine.cpp +msgid "Fill the mill with starchy products such as wheat, barley or oats." +msgstr "" + +#: src/iexamine.cpp +msgid "Remove products from mill" +msgstr "" + +#: src/iexamine.cpp +msgid "Apply brake to mill" +msgstr "" + +#: src/iexamine.cpp +msgid "Applying the brake will stop milling process." +msgstr "" + +#: src/iexamine.cpp +msgid "There's a mill here. It is turning and milling." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "It will finish milling in about %d hour." +msgid_plural "It will finish milling in about %d hours." +msgstr[0] "" + +#: src/iexamine.cpp +msgid "It will finish milling in less than an hour." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "It should take about %d minutes to finish milling." +msgstr "" + +#: src/iexamine.cpp +msgid "There's a mill here." +msgstr "" + +#: src/iexamine.cpp +msgid "You inspect its contents and find: " +msgstr "" + +#: src/iexamine.cpp +msgid "... that it is empty." +msgstr "" + +#: src/iexamine.cpp +msgid "You see some grains that are not yet milled to fine flour." +msgstr "" + +#: src/iexamine.cpp +msgid "It is already milling." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You remove %s from the mill." +msgstr "" + +#: src/iexamine.cpp +msgid "You stop the milling process." +msgstr "" + #: src/iexamine.cpp msgid "What to do with the smoking rack:" msgstr "" @@ -144708,14 +145667,6 @@ msgstr "" msgid "There's a smoking rack here." msgstr "" -#: src/iexamine.cpp -msgid "You inspect its contents and find: " -msgstr "" - -#: src/iexamine.cpp -msgid "... that it is empty." -msgstr "" - #: src/iexamine.cpp msgid "You see some smoldering embers there." msgstr "" @@ -146518,6 +147469,10 @@ msgstr "|." msgid "\\." msgstr "\\." +#: src/item.cpp +msgid "XX" +msgstr "" + #: src/item.cpp msgid ".." msgstr ".." @@ -156962,6 +157917,11 @@ msgstr "" msgid "You reach out to the trees with your roots." msgstr "" +#: src/mutation.cpp +msgid "" +"You lay next to the trees letting your hair roots tangle with the trees." +msgstr "" + #: src/mutation.cpp msgid "Bionic power storage increased by 100." msgstr "" @@ -158178,6 +159138,10 @@ msgstr "당신의 친구." msgid "Is following you." msgstr "당신을 쫓아다님." +#: src/npc.cpp +msgid "Is guiding you." +msgstr "" + #: src/npc.cpp msgid "Will try to kill you or flee from you if you reveal yourself." msgstr "당신의 정체를 드러내면 죽이려하거나 도망감." @@ -158633,10 +159597,6 @@ msgstr " 관심 있다면 도와줬으면 하는 일이 있는데." msgid " If you are interested, I have another job for you." msgstr "관심있으면, 줄 일이 있는데." -#: src/npctalk.cpp -msgid "Pleasure doing business!" -msgstr "" - #: src/npctalk.cpp msgid "Shall we resume?" msgstr "계속 할까?" @@ -158748,23 +159708,6 @@ msgstr "그거 좀 더 말해봐" msgid "I have news." msgstr "말해줄게 있어." -#: src/npctalk.cpp -#, c-format -msgid "Delivering %s." -msgstr "%s 전달." - -#: src/npctalk.cpp -msgid "Works for me." -msgstr "나한테는 맞던데." - -#: src/npctalk.cpp -msgid "You might be seeing more of me..." -msgstr "니가 나보다 더 많이 보게 될지도 몰라..." - -#: src/npctalk.cpp -msgid "Delivering bandages." -msgstr "붕대 전달." - #: src/npctalk.cpp msgid "Yes, let's resume training " msgstr "좋아, 훈련을 다시 시작하자고 " @@ -158997,11 +159940,6 @@ msgstr "" msgid "My current location" msgstr "" -#: src/npctalk_funcs.cpp -#, c-format -msgid "I'm willing to pay %s per batch for a total of %s" -msgstr "" - #. ~ %1$s is the NPC's translated name, %2$s is the translated faction camp #. name #: src/npctalk_funcs.cpp @@ -161912,6 +162850,10 @@ msgstr "" msgid "Wield:" msgstr "" +#: src/panels.cpp +msgid "Style:" +msgstr "" + #: src/panels.cpp msgid "Food :" msgstr "" @@ -162075,6 +163017,18 @@ msgstr "너무 많은 짐을 들었다!" msgid "You struggle to carry such a large volume!" msgstr "과도한 부피의 짐이 움직임을 방해하고 있다!" +#: src/pickup.cpp +msgid "Get items from vehicle cargo" +msgstr "" + +#: src/pickup.cpp +msgid "Get items from where?" +msgstr "" + +#: src/pickup.cpp src/vehicle_use.cpp +msgid "Get items on the ground" +msgstr "지상에 놓인 물건 줍기" + #: src/pickup.cpp msgid "Next page" msgstr "다음 페이지" @@ -162575,11 +163529,11 @@ msgid "You're too tired to run." msgstr "너무 지쳐서 달릴 수 없다." #: src/player.cpp -msgid "You start walking." +msgid "You start crouching." msgstr "" #: src/player.cpp -msgid "You start crouching." +msgid "You start walking." msgstr "" #: src/player.cpp @@ -163717,7 +164671,7 @@ msgid "Your shaking legs make you stumble." msgstr "" #: src/player.cpp -msgid " stumbles." msgstr "" #: src/player.cpp @@ -167795,6 +168749,11 @@ msgstr "%s을(를) 수리할 조건이 안된다." msgid "You repair the %1$s's %2$s." msgstr "%1$s의 %2$s을(를) 수리했다." +#: src/veh_utils.cpp +#, c-format +msgid "You replace the %1$s's %2$s." +msgstr "" + #: src/vehicle.cpp msgid "Lost connection with the vehicle due to distance!" msgstr "거리가 너무 멀어져서 차량과의 연결이 끊겼다!" @@ -168203,10 +169162,6 @@ msgstr "(고장)" msgid " holding %s" msgstr "" -#: src/vehicle_part.cpp -msgid "XX" -msgstr "" - #: src/vehicle_part.cpp #, c-format msgid "Insufficient power to enable %s" @@ -168666,10 +169621,6 @@ msgstr "세탁기 끄기" msgid "Activate the washing machine (1.5 hours)" msgstr "세탁기 가동 (1.5시간)" -#: src/vehicle_use.cpp -msgid "Get items on the ground" -msgstr "지상에 놓인 물건 줍기" - #: src/vehicle_use.cpp msgid "Use the hotplate" msgstr "핫플레이트 사용" diff --git a/lang/po/pl.po b/lang/po/pl.po index cf5b66219b6e6..2e52d55e72b18 100644 --- a/lang/po/pl.po +++ b/lang/po/pl.po @@ -5,15 +5,16 @@ # Faalagorn, 2018 # Radomir Kozłowski , 2018 # Brett Dong , 2019 -# Aleksander Sienkiewicz , 2019 # Artur Gromek , 2019 +# Aleksander Sienkiewicz , 2019 +# Ewa Cichosz , 2019 # Chris Bittner , 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-26 14:19+0800\n" +"POT-Creation-Date: 2019-05-03 13:47+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" "Last-Translator: Chris Bittner , 2019\n" "Language-Team: Polish (https://www.transifex.com/cataclysm-dda-translators/teams/2217/pl/)\n" @@ -34,9 +35,11 @@ msgstr[3] "baterii" #. ~ Description for battery #: lang/json/AMMO_from_json.py msgid "" -"A set of universal batteries. Used to charge almost any electronic device." +"Some free-floating battery charge. This can be reloaded into rechargable " +"battery cells, but can never be unloaded." msgstr "" -"Zestaw uniwersalnych baterii. Używane w większości urządzeń elektronicznych." +"Ładunek baterii wolny jak elektron. Można nim naładować akumulatorki, ale " +"nie można ich wyładować." #: lang/json/AMMO_from_json.py msgid "aluminum foil" @@ -866,7 +869,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "aluminum small game arrow" -msgstr "" +msgstr "aluminiowa strzała na małą zwierzynę" #. ~ Description for aluminum small game arrow #: lang/json/AMMO_from_json.py @@ -875,10 +878,13 @@ msgid "" "woodland creatures without splattering them all over the ground. Stands a " "good chance of remaining intact once fired." msgstr "" +"Pofałdowany aluminiowy trzonek ze stępioną końcówką. Przydatny do polowania " +"na małe leśne stworzenia bez rozpryskiwania ich po ziemi. Po wystrzeleniu ma" +" duże szanse pozostania nietkniętymi." #: lang/json/AMMO_from_json.py msgid "carbon fiber hunting arrow" -msgstr "" +msgstr "myśliwska strzała z włókna węglowego" #. ~ Description for carbon fiber hunting arrow #: lang/json/AMMO_from_json.py @@ -887,6 +893,9 @@ msgid "" "impressive damage to targets. Stands a good chance of remaining intact once" " fired." msgstr "" +"Wykrojony trzonek z włókna węglowego z rozszerzającą się grotem. Zadaje " +"imponujące obrażenia celom. Po wystrzeleniu ma duże szanse pozostania " +"nietkniętymi." #: lang/json/AMMO_from_json.py msgid "explosive arrow" @@ -1024,7 +1033,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "wooden rubber blunt arrow" -msgstr "" +msgstr "drewniana strzała z gumowym grotem" #. ~ Description for wooden rubber blunt arrow #: lang/json/AMMO_from_json.py @@ -1032,24 +1041,23 @@ msgid "" "A fletched wooden arrow shaft with a blunt rubber tip. Can stun weaker " "enemies. Stands a good chance of remaining intact once fired." msgstr "" +"Wykrojony drewniany trzonek z tępą gumową końcówką. Potrafi ogłuszyć " +"słabszych wrogów. Po wystrzeleniu ma duże szanse pozostania nietkniętymi." -#: lang/json/AMMO_from_json.py -msgid "anesthetic kit" -msgstr "zestaw anestezjologiczny" +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "anesthetic" +msgstr "znieczulający" -#. ~ Description for anesthetic kit +#. ~ Description for anesthetic #: lang/json/AMMO_from_json.py msgid "" -"A kit for inducing anesthesia for surgery, containing specialized canisters " -"with a variety of powerful hypnotic, analgetic, and stimulative drugs. It's" -" intended for use in specialized medical equipment, and can't be " -"administered manually." +"A variety of powerful hypnotic, analgetic, and stimulative drugs. It's " +"intended for use in specialized medical equipment, and can't be administered" +" manually. You can reload an anesthetic kit with it." msgstr "" -"Zestaw do aplikowania znieczulenia podczas operacji, zawierający " -"wyspecjalizowane pojemniki z różnorodnymi silnymi lekami o działaniu " -"hipnotycznym, przeciwbólowym, i stymulującym. Zaprojektowany jako wkład do " -"wyspecjalizowanego sprzętu medycznego, zatem nie może być ręcznie " -"zaaplikowany." +"Różnorodne potężne leki hipnotyczne, przeciwbólowe i stymulujące. Są " +"przeznaczone do użytku w specjalistycznym sprzęcie medycznym i nie można ich" +" podawać ręcznie. Możesz tym uzupełnić zestaw anestezjologiczny." #: lang/json/AMMO_from_json.py msgid "sulfur" @@ -1508,8 +1516,8 @@ msgid "" "high temperature, was once used for on-the-spot welding. Can be used as an " "incendiary material in a pinch." msgstr "" -"Garść srebrnozielonego proszku, powstałego ze zmieszanego sproszkowanego " -"aluminium i i tlenku chromu. Mikstura ta, paląca się stabilnym płomieniem w " +"Garść srebrno-zielonego proszku, powstałego ze zmieszanego sproszkowanego " +"aluminium i tlenku chromu. Mikstura ta, paląca się stabilnym płomieniem w " "olbrzymiej temperaturze stosowana była w miejscowym spawaniu elementów " "metalowych. W razie konieczności może być wykorzystana jako materiał " "zapalający." @@ -1625,7 +1633,7 @@ msgstr "Popularny przed kataklizmem proszek do prania." #: lang/json/AMMO_from_json.py msgid "nanomaterial canister" -msgstr "" +msgstr "kanister nanomateriałów" #. ~ Description for nanomaterial canister #: lang/json/AMMO_from_json.py @@ -1747,7 +1755,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "simple metal bolt" -msgstr "" +msgstr "prosty metalowy bełt" #. ~ Description for simple metal bolt #: lang/json/AMMO_from_json.py @@ -1755,6 +1763,8 @@ msgid "" "A simple fletched steel crossbow bolt with a flattened and sharpened tip. " "Stands a somewhat low chance of remaining intact once fired." msgstr "" +"Prosty stalowy bełt do kuszy ze spłaszczoną i zaostrzoną końcówką. Po " +"wystrzeleniu ma niewielką szansę pozostania nietkniętym." #: lang/json/AMMO_from_json.py msgid "aluminum broadhead bolt" @@ -1867,6 +1877,23 @@ msgstr "" "Paliwo na bazie ropy naftowej wytworzone z produktu ubocznego procesu " "wytwarzania benzyny." +#: lang/json/AMMO_from_json.py +msgid "biodiesel" +msgid_plural "biodiesel" +msgstr[0] "biodiesel" +msgstr[1] "biodiesel" +msgstr[2] "biodiesel" +msgstr[3] "biodiesel" + +#. ~ Description for biodiesel +#: lang/json/AMMO_from_json.py +msgid "" +"Vegetable oil- or animal fat-based diesel fuel consisting of long-chain " +"alkyl (methyl, ethyl, or propyl) esters." +msgstr "" +"Paliwo diesel zrobione z oleju roślinnego lub tłuszczy zwierzęcych " +"składające się z długich łańcuchów estrów alkili (metyl, etyl, lub propyl)." + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "gasoline" msgid_plural "gasoline" @@ -2095,6 +2122,38 @@ msgstr "" "światła. Ten egzemplarz zmajstrowano chałupniczo ze złomu i części " "zamiennych." +#: lang/json/AMMO_from_json.py +msgid "throwing stick" +msgstr "kij do rzucania" + +#. ~ Description for throwing stick +#: lang/json/AMMO_from_json.py +msgid "" +"A stick carved into a shape suitable for throwing at a target. Not a " +"boomerang, so don't expect it to return to your hand." +msgstr "" +"Kij wycięty w kształt odpowiedni do rzucania nim w cel. Bo nie bumerang, " +"więc nie oczekuj że wróci ci do ręki." + +#: lang/json/AMMO_from_json.py +msgid "anesthetic kit" +msgstr "zestaw anestezjologiczny" + +#. ~ Description for anesthetic kit +#. ~ Description for anesthesia kit +#: lang/json/AMMO_from_json.py lang/json/TOOL_from_json.py +msgid "" +"A kit for inducing anesthesia for surgery, containing specialized canisters " +"with a variety of powerful hypnotic, analgetic, and stimulative drugs. It's" +" intended for use in specialized medical equipment, and can't be " +"administered manually." +msgstr "" +"Zestaw do aplikowania znieczulenia podczas operacji, zawierający " +"wyspecjalizowane pojemniki z różnorodnymi silnymi lekami o działaniu " +"hipnotycznym, przeciwbólowym, i stymulującym. Zaprojektowany jako wkład do " +"wyspecjalizowanego sprzętu medycznego, zatem nie może być ręcznie " +"zaaplikowany." + #: lang/json/AMMO_from_json.py msgid "H&K 12mm" msgstr "H&K 12mm" @@ -2700,6 +2759,61 @@ msgstr[1] "zregenerowany .38 Super" msgstr[2] "zregenerowany .38 Super" msgstr[3] "zregenerowany .38 Super" +#: lang/json/AMMO_from_json.py +msgid ".380 ACP FMJ" +msgstr "" + +#. ~ Description for .380 ACP FMJ +#: lang/json/AMMO_from_json.py +msgid "" +".380 ACP ammunition with a brass jacketed 95gr bullet. Popular in pocket " +"pistols for over a century, it is often considered the weakest caliber to " +"consider carrying. One should be careful not to chamber it in 9x18mm " +"Makarov or 9x19mm firearms." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".380 ACP JHP" +msgstr ".380 ACP, grzybkujący" + +#. ~ Description for .380 ACP JHP +#: lang/json/AMMO_from_json.py +msgid "" +".380 ACP ammunition with a 95gr jacketed hollow point bullet. It is a " +"popular round for small concealable backup pistols, and often the weakest " +"recommended defensive caliber. One should be careful not to chamber it in " +"9x18mm Makarov or 9x19mm firearms." +msgstr "" +".380 amunicja ACP z pociskiem wydrążonym o średnicy 95gr. Jest to popularny " +"nabój dla małych ukrytych pistoletów zapasowych i często najsłabszego " +"zalecanego kalibru defensywnego. Należy uważać, aby nie załadować nim broni " +"palnej Makarow 9x18mm lub pistoletów 9x19mm." + +#: lang/json/AMMO_from_json.py +msgid ".380 ACP +P" +msgstr "" + +#. ~ Description for .380 ACP +P +#: lang/json/AMMO_from_json.py +msgid "" +"Overpressure .380 ACP ammunition with a 90gr jacketed hollow point bullet. " +"These defensive loadings are designed to maximise performance and tend to be" +" more accurate than practice ammo. One should be careful not to chamber it " +"in 9x18mm Makarov or 9x19mm firearms." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP FMJ" +msgstr "zregenerowany .380 ACP FMJ" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP JHP" +msgstr "zregenerowany .380 ACP, grzybkujący" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP +P" +msgstr "zregenerowany .380 ACP +P" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "10mm Auto" msgid_plural "10mm Auto" @@ -4124,6 +4238,8 @@ msgid "" "A bulky assortment of small bits of scrap steel useful in all kinds of " "crafting." msgstr "" +"Pokaźnych rozmiarów zbiór kawałków złomu stalowego użyteczny w różnych " +"pracach i rękodziełach." #: lang/json/AMMO_from_json.py msgid "silver" @@ -4830,23 +4946,6 @@ msgstr "" "Zaostrzony bełt wycięty z kości, z lotkami. Lekki i zapewnia przyzwoity " "zasięg i obrażenia. Ma dobre szanse pozostać w całości po wystrzeleniu." -#: lang/json/AMMO_from_json.py -msgid "throwing stick" -msgid_plural "throwing sticks" -msgstr[0] "kij do rzucania" -msgstr[1] "kij do rzucania" -msgstr[2] "kij do rzucania" -msgstr[3] "kij do rzucania" - -#. ~ Description for throwing stick -#: lang/json/AMMO_from_json.py -msgid "" -"A stick carved into a shape suitable for throwing at a target. Not a " -"boomerang, so don't expect it to return to your hand." -msgstr "" -"Kij wycięty w kształt odpowiedni do rzucania nim w cel. Bo nie bumerang, " -"więc nie oczekuj że wróci ci do ręki." - #: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py msgid "wooden javelin" msgid_plural "wooden javelins" @@ -7129,13 +7228,10 @@ msgstr[3] "rękawy kolcze" #. ~ Description for pair of chainmail sleeves #: lang/json/ARMOR_from_json.py msgid "" -"Customized chainmail arms. Each sleeve has leather straps to connect them " -"with each other. The lack of fingers makes them less cumbersome and allows " -"them to be used with gloves." +"Customized chainmail arms. Each sleeve has straps to connect them with each" +" other. The lack of fingers makes them less cumbersome and allows them to " +"be used with gloves." msgstr "" -"Regulowana część kolczugi noszona na ramionach. Każdy rękaw zaopatrzono w " -"paski łączące je razem. Nie kryją palców, co ułatwia noszenie i pozwala " -"założyć rękawice." #: lang/json/ARMOR_from_json.py msgid "chainmail coif" @@ -7163,12 +7259,9 @@ msgstr[3] "nogawice kolcze" #. ~ Description for chainmail leggings #: lang/json/ARMOR_from_json.py msgid "" -"Customized chainmail legs. Their leather straps keep everything in place, " -"and the lack of toes and heels allows them to work perfectly well with " -"footwear." +"Customized chainmail legs. Their straps keep everything in place, and the " +"lack of toes and heels allows them to work perfectly well with footwear." msgstr "" -"Regulowana część kolczugi noszona na nogach. Nogawki zaopatrzono w paski " -"utrzymujące je na swoim miejscu. Nie kryją stóp, co pozwala założyć buty." #: lang/json/ARMOR_from_json.py msgid "chainmail hauberk" @@ -7182,12 +7275,10 @@ msgstr[3] "kolczuga" #: lang/json/ARMOR_from_json.py msgid "" "A fully customized chainmail outfit, leaving the head uncovered. The shirt," -" arms, and leggings have been modified with leather straps to deal with " -"uneven weight distribution and to allow them to be used separately." +" arms, and leggings have been modified with straps and combined with a " +"gambeson to deal with uneven weight distribution, cold environments and to " +"allow them to be used separately." msgstr "" -"Regulowana zbroja kolcza, z odsłoniętą głową. Koszulkę, rękawy i nogawice " -"zaopatrzono w paski pozwalające równomiernie rozłożyć nierówny ciężar tej " -"zbroi, a także korzystać z nich osobno." #: lang/json/ARMOR_from_json.py msgid "chainmail armor" @@ -7201,12 +7292,10 @@ msgstr[3] "kolczuga" #: lang/json/ARMOR_from_json.py msgid "" "A fully customized chainmail suit. The coif, shirt, arms, and leggings have" -" been modified with leather straps to deal with uneven weight distribution " -"and to allow them to be used separately." +" been modified with straps and combined with a gambeson to deal with uneven " +"weight distribution, cold environments and to allow them to be used " +"separately." msgstr "" -"Dopasowywalna zbroja kolcza. Jej elementy zaopatrzono w paski pozwalające " -"równomiernie rozłożyć nierówny ciężar tej zbroi, a także korzystać z nich " -"osobno." #: lang/json/ARMOR_from_json.py msgid "chainmail vest" @@ -7220,10 +7309,8 @@ msgstr[3] "koszulka kolcza" #: lang/json/ARMOR_from_json.py msgid "" "A customized chainmail vest. It's a sleeveless piece of chainmail with " -"small leather straps designed to better distribute the weight." +"small straps designed to better distribute the weight." msgstr "" -"Regulowana część kolczugi noszona na klatce piersiowej przypominająca " -"koszulę bez rękawów. Zamocowane paski pomagają w zrównoważeniu jej wagi." #: lang/json/ARMOR_from_json.py msgid "leather chaps" @@ -15621,6 +15708,22 @@ msgstr "" "Wygodna kabura do szybkiego wyciągania małych broni palnych. Aktywuj by " "wyjąć/schować broń." +#: lang/json/ARMOR_from_json.py +msgid "deep concealment holster" +msgid_plural "deep concealment holsters" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for deep concealment holster +#: lang/json/ARMOR_from_json.py +msgid "" +"An elastic band with numerous provisions for concealing a very small pistol " +"close to the body. It is awkward to use without practice. Activate to " +"holster/draw a gun." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "survivor harness" msgid_plural "survivor harnesses" @@ -16260,8 +16363,8 @@ msgstr[1] "Aktywny System Obronny CBM" msgstr[2] "Aktywny System Obronny CBM" msgstr[3] "Aktywny System Obronny CBM" -#. ~ Description for Active Defense System #. ~ Description for Active Defense System CBM +#. ~ Description for Active Defense System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A thin forcefield surrounds your body, continually draining power. Anything" @@ -16282,8 +16385,8 @@ msgstr[1] "Zaawansowany Mikroreaktor CBM" msgstr[2] "Zaawansowany Mikroreaktor CBM" msgstr[3] "Zaawansowany Mikroreaktor CBM" -#. ~ Description for Advanced Microreactor System #. ~ Description for Advanced Microreactor CBM +#. ~ Description for Advanced Microreactor System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This stripped down mini-reactor is safer than it appears due to integrated " @@ -16302,8 +16405,8 @@ msgstr[1] "System Alarmowy CBM" msgstr[2] "System Alarmowy CBM" msgstr[3] "System Alarmowy CBM" -#. ~ Description for Alarm System #. ~ Description for Alarm System CBM +#. ~ Description for Alarm System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A motion-detecting alarm system will notice almost all movement within a " @@ -16409,8 +16512,8 @@ msgstr[1] "System Bateryjny CBM" msgstr[2] "System Bateryjny CBM" msgstr[3] "System Bateryjny CBM" -#. ~ Description for Battery System #. ~ Description for Battery System CBM +#. ~ Description for Battery System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have a battery draining attachment, and thus can make use of the energy " @@ -16429,8 +16532,8 @@ msgstr[1] "Ostrze Monomolekularne CBM" msgstr[2] "Ostrze Monomolekularne CBM" msgstr[3] "Ostrze Monomolekularne CBM" -#. ~ Description for Monomolecular Blade #. ~ Description for Monomolecular Blade CBM +#. ~ Description for Monomolecular Blade #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A deadly foot-long blade made of advanced material now resides inside your " @@ -16508,8 +16611,8 @@ msgstr[1] "Filtr Krwi CBM" msgstr[2] "Filtr Krwi CBM" msgstr[3] "Filtr Krwi CBM" -#. ~ Description for Blood Filter #. ~ Description for Blood Filter CBM +#. ~ Description for Blood Filter #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A filtration system in your heart allows you to actively filter out chemical" @@ -16547,8 +16650,8 @@ msgstr[1] "Podskórne Włókna Węglowe CBM" msgstr[2] "Podskórne Włókna Węglowe CBM" msgstr[3] "Podskórne Włókna Węglowe CBM" -#. ~ Description for Subdermal Carbon Filament #. ~ Description for Subdermal Carbon Filament CBM +#. ~ Description for Subdermal Carbon Filament #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Lying just beneath your skin is a thin armor made of carbon nanotubes. This" @@ -16565,8 +16668,8 @@ msgstr[1] "Cewki Piorunów Łańcuchowych CBM" msgstr[2] "Cewki Piorunów Łańcuchowych CBM" msgstr[3] "Cewki Piorunów Łańcuchowych CBM" -#. ~ Description for Chain Lightning #. ~ Description for Chain Lightning CBM +#. ~ Description for Chain Lightning #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your body is equipped with a chain lightning generator, allowing you to emit" @@ -16605,8 +16708,8 @@ msgstr[1] "Wewnętrzna Klimatyzacja CBM" msgstr[2] "Wewnętrzna Klimatyzacja CBM" msgstr[3] "Wewnętrzna Klimatyzacja CBM" -#. ~ Description for Internal Climate Control #. ~ Description for Internal Climate Control CBM +#. ~ Description for Internal Climate Control #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Throughout your body lies a network of thermal piping which eases the " @@ -16623,8 +16726,8 @@ msgstr[1] "System Maskujący CBM" msgstr[2] "System Maskujący CBM" msgstr[3] "System Maskujący CBM" -#. ~ Description for Cloaking System #. ~ Description for Cloaking System CBM +#. ~ Description for Cloaking System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This high-power system uses a set of cameras and LEDs to make you blend into" @@ -16662,8 +16765,8 @@ msgstr[1] "Okablowany Refleks CBM" msgstr[2] "Okablowany Refleks CBM" msgstr[3] "Okablowany Refleks CBM" -#. ~ Description for Wired Reflexes #. ~ Description for Wired Reflexes CBM +#. ~ Description for Wired Reflexes #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your reaction time has been greatly enhanced with bionic nerve stimulators, " @@ -16681,8 +16784,8 @@ msgstr[1] "Rozszerzony System Trawienny CBM" msgstr[2] "Rozszerzony System Trawienny CBM" msgstr[3] "Rozszerzony System Trawienny CBM" -#. ~ Description for Expanded Digestive System #. ~ Description for Expanded Digestive System CBM +#. ~ Description for Expanded Digestive System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have been outfitted with three synthetic stomachs and industrial-grade " @@ -16703,8 +16806,8 @@ msgstr[1] "Ulepszony Słuch CBM" msgstr[2] "Ulepszony Słuch CBM" msgstr[3] "Ulepszony Słuch CBM" -#. ~ Description for Enhanced Hearing #. ~ Description for Enhanced Hearing CBM +#. ~ Description for Enhanced Hearing #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "When this bionic is active, your hearing will be drastically improved, " @@ -16744,8 +16847,8 @@ msgstr[1] "Miotacz EMP CBM" msgstr[2] "Miotacz EMP CBM" msgstr[3] "Miotacz EMP CBM" -#. ~ Description for EMP Projector #. ~ Description for EMP Projector CBM +#. ~ Description for EMP Projector #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A ranged EMP generator system is implanted on the palm of your right hand " @@ -16765,8 +16868,8 @@ msgstr[1] "Spalacz Etanolu CBM" msgstr[2] "Spalacz Etanolu CBM" msgstr[3] "Spalacz Etanolu CBM" -#. ~ Description for Ethanol Burner #. ~ Description for Ethanol Burner CBM +#. ~ Description for Ethanol Burner #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You burn alcohol as fuel in an extremely efficient reaction. However, you " @@ -16783,8 +16886,8 @@ msgstr[1] "Aero-Skraplacz CBM" msgstr[2] "Aero-Skraplacz CBM" msgstr[3] "Aero-Skraplacz CBM" -#. ~ Description for Aero-Evaporator #. ~ Description for Aero-Evaporator CBM +#. ~ Description for Aero-Evaporator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This unit draws moisture from the surrounding air, which then is poured from" @@ -16801,8 +16904,8 @@ msgstr[1] "Diamentowa Rogówka CBM" msgstr[2] "Diamentowa Rogówka CBM" msgstr[3] "Diamentowa Rogówka CBM" -#. ~ Description for Diamond Cornea #. ~ Description for Diamond Cornea CBM +#. ~ Description for Diamond Cornea #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Your vision is greatly enhanced, giving you a +2 bonus to perception." msgstr "" @@ -16834,8 +16937,8 @@ msgstr[1] "Rzeźbiarz Twarzy CBM" msgstr[2] "Rzeźbiarz Twarzy CBM" msgstr[3] "Rzeźbiarz Twarzy CBM" -#. ~ Description for Facial Distortion #. ~ Description for Facial Distortion CBM +#. ~ Description for Facial Distortion #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Through controlled application of electrochemical impulses, you are capable " @@ -16854,8 +16957,8 @@ msgstr[1] "Dielektryczne Kondensatory CBM" msgstr[2] "Dielektryczne Kondensatory CBM" msgstr[3] "Dielektryczne Kondensatory CBM" -#. ~ Description for Dielectric Capacitance System #. ~ Description for Dielectric Capacitance System CBM +#. ~ Description for Dielectric Capacitance System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Throughout your body lies a network of miniature piezoelectric capacitors " @@ -16947,8 +17050,8 @@ msgstr[1] "Wewnętrzny Piec CBM" msgstr[2] "Wewnętrzny Piec CBM" msgstr[3] "Wewnętrzny Piec CBM" -#. ~ Description for Internal Furnace #. ~ Description for Internal Furnace CBM +#. ~ Description for Internal Furnace #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "When this bionic is active, you can burn nearly any organic material as fuel" @@ -17006,14 +17109,17 @@ msgstr[1] "Sonar Ziemny CBM" msgstr[2] "Sonar Ziemny CBM" msgstr[3] "Sonar Ziemny CBM" -#. ~ Description for Terranian Sonar #. ~ Description for Terranian Sonar CBM +#. ~ Description for Terranian Sonar #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your feet are equipped with precision sonar equipment, allowing you to " "detect the movements of creatures below the ground, buried traps, and " "unstable terrain." msgstr "" +"Twoje stopy zaopatrzono w precyzyjny system sonarowy, pozwalający na " +"wykryciu ruchu stworzeń pod ziemią, zakopanych pułapek, i niestabilnego " +"gruntu." #: lang/json/BIONIC_ITEM_from_json.py msgid "Heat Drain CBM" @@ -17023,8 +17129,8 @@ msgstr[1] "Odsysacz Ciepła CBM" msgstr[2] "Odsysacz Ciepła CBM" msgstr[3] "Odsysacz Ciepła CBM" -#. ~ Description for Heat Drain #. ~ Description for Heat Drain CBM +#. ~ Description for Heat Drain #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While fighting unarmed against a warm-blooded opponent, there is a chance " @@ -17063,8 +17169,8 @@ msgstr[1] "Hydrauliczne Mięśnie CBM" msgstr[2] "Hydrauliczne Mięśnie CBM" msgstr[3] "Hydrauliczne Mięśnie CBM" -#. ~ Description for Hydraulic Muscles #. ~ Description for Hydraulic Muscles CBM +#. ~ Description for Hydraulic Muscles #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While activated, your muscles will be greatly enhanced, increasing your " @@ -17081,8 +17187,8 @@ msgstr[1] "Podczerwony Wzrok CBM" msgstr[2] "Podczerwony Wzrok CBM" msgstr[3] "Podczerwony Wzrok CBM" -#. ~ Description for Infrared Vision #. ~ Description for Infrared Vision CBM +#. ~ Description for Infrared Vision #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your range of vision extends into the infrared, allowing you to see warm-" @@ -17099,8 +17205,8 @@ msgstr[1] "Booster Czaszkowy CBM" msgstr[2] "Booster Czaszkowy CBM" msgstr[3] "Booster Czaszkowy CBM" -#. ~ Description for Cerebral Booster #. ~ Description for Cerebral Booster CBM +#. ~ Description for Cerebral Booster #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your brain has been enhanced with bionic coprocessors, giving you a +2 bonus" @@ -17136,8 +17242,8 @@ msgstr[1] "Namnażacz Leukocytów CBM" msgstr[2] "Namnażacz Leukocytów CBM" msgstr[3] "Namnażacz Leukocytów CBM" -#. ~ Description for Leukocyte Breeder System #. ~ Description for Leukocyte Breeder System CBM +#. ~ Description for Leukocyte Breeder System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You are equipped with bionic stimulators which augment your haematopoiesis " @@ -17158,8 +17264,8 @@ msgstr[1] "Mini Miotacz Ognia CBM" msgstr[2] "Mini Miotacz Ognia CBM" msgstr[3] "Mini Miotacz Ognia CBM" -#. ~ Description for Mini-Flamethrower #. ~ Description for Mini-Flamethrower CBM +#. ~ Description for Mini-Flamethrower #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "The index fingers of both hands have powerful fire starters which extend " @@ -17212,8 +17318,8 @@ msgstr[1] "Druga Powieka CBM" msgstr[2] "Druga Powieka CBM" msgstr[3] "Druga Powieka CBM" -#. ~ Description for Nictating Membrane #. ~ Description for Nictating Membrane CBM +#. ~ Description for Nictating Membrane #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your eyes have a thin membrane that closes over your eyes while underwater, " @@ -17249,8 +17355,8 @@ msgstr[1] "System Wymiany Metabolicznej CBM" msgstr[2] "System Wymiany Metabolicznej CBM" msgstr[3] "System Wymiany Metabolicznej CBM" -#. ~ Description for Metabolic Interchange #. ~ Description for Metabolic Interchange CBM +#. ~ Description for Metabolic Interchange #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your digestive system and power supply are interconnected. Bionic energy is" @@ -17269,8 +17375,8 @@ msgstr[1] "Czytnik Pogody CBM" msgstr[2] "Czytnik Pogody CBM" msgstr[3] "Czytnik Pogody CBM" -#. ~ Description for Weather Reader #. ~ Description for Weather Reader CBM +#. ~ Description for Weather Reader #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A multitude of scientific instruments and sensors collect environmental " @@ -17289,8 +17395,8 @@ msgstr[1] "Nanoboty Naprawcze CBM" msgstr[2] "Nanoboty Naprawcze CBM" msgstr[3] "Nanoboty Naprawcze CBM" -#. ~ Description for Repair Nanobots #. ~ Description for Repair Nanobots CBM +#. ~ Description for Repair Nanobots #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Inside your body is a fleet of tiny dormant robots. While activated they " @@ -17308,8 +17414,8 @@ msgstr[1] "Generator Sztucznej Nocy CBM" msgstr[2] "Generator Sztucznej Nocy CBM" msgstr[3] "Generator Sztucznej Nocy CBM" -#. ~ Description for Artificial Night Generator #. ~ Description for Artificial Night Generator CBM +#. ~ Description for Artificial Night Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Destructive interference eliminates all light within a 15 tile radius." msgstr "" @@ -17341,8 +17447,8 @@ msgstr[1] "Ofensywny System Obronny CBM" msgstr[2] "Ofensywny System Obronny CBM" msgstr[3] "Ofensywny System Obronny CBM" -#. ~ Description for Offensive Defense System #. ~ Description for Offensive Defense System CBM +#. ~ Description for Offensive Defense System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A thin forcefield surrounds your body, continually draining power. This " @@ -17361,8 +17467,8 @@ msgstr[1] "Wygłuszanie Zmysłów CBM" msgstr[2] "Wygłuszanie Zmysłów CBM" msgstr[3] "Wygłuszanie Zmysłów CBM" -#. ~ Description for Sensory Dulling #. ~ Description for Sensory Dulling CBM +#. ~ Description for Sensory Dulling #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your nervous system is wired to allow you to inhibit the signals of pain, " @@ -17398,8 +17504,8 @@ msgstr[1] "Interfejs Pancerzy Wspomaganych CBM" msgstr[2] "Interfejs Pancerzy Wspomaganych CBM" msgstr[3] "Interfejs Pancerzy Wspomaganych CBM" -#. ~ Description for Power Armor Interface #. ~ Description for Power Armor Interface CBM +#. ~ Description for Power Armor Interface #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Interfaces your power system with the internal charging port on suits of " @@ -17416,8 +17522,8 @@ msgstr[1] "Interfejs Pancerzy Wspomaganych Wer.II CBM" msgstr[2] "Interfejs Pancerzy Wspomaganych Wer.II CBM" msgstr[3] "Interfejs Pancerzy Wspomaganych Wer.II CBM" -#. ~ Description for Power Armor Interface Mk. II #. ~ Description for Power Armor Mk. II Interface CBM +#. ~ Description for Power Armor Interface Mk. II #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Interfaces your power system with the internal charging port on suits of " @@ -17436,8 +17542,8 @@ msgstr[1] "Magazyny Mocy CBM" msgstr[2] "Magazynów Mocy CBM" msgstr[3] "Magazynów Mocy CBM" -#. ~ Description for Power Storage #. ~ Description for Power Storage CBM +#. ~ Description for Power Storage #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Compact Bionics Module that upgrades your power capacity by 100 units. " @@ -17457,8 +17563,8 @@ msgstr[1] "Magazyny Mocy II Generacji CBM" msgstr[2] "Magazynów Mocy II Generacji CBM" msgstr[3] "Magazynów Mocy II Generacji CBM" -#. ~ Description for Power Storage Mk. II #. ~ Description for Power Storage CBM Mk. II +#. ~ Description for Power Storage Mk. II #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Compact Bionics Module developed at DoubleTech Industries as a replacement " @@ -17477,8 +17583,8 @@ msgstr[1] "Moduł Podróży Probabilistycznej CBM" msgstr[2] "Moduł Podróży Probabilistycznej CBM" msgstr[3] "Moduł Podróży Probabilistycznej CBM" -#. ~ Description for Probability Travel #. ~ Description for Probability Travel CBM +#. ~ Description for Probability Travel #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Increases your body's wavelength, allowing you to quantum tunnel through " @@ -17536,16 +17642,15 @@ msgstr[1] "Działo Elektromagnetyczne CBM" msgstr[2] "Działo Elektromagnetyczne CBM" msgstr[3] "Działo Elektromagnetyczne CBM" -#. ~ Description for Railgun #. ~ Description for Railgun CBM -#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +#: lang/json/BIONIC_ITEM_from_json.py msgid "" -"EM field generators in your arms double the range and damage of thrown iron " -"and steel objects at a cost of 1 power per throw, causing them to leave a " -"trail of electricity that can cause additional damage." +"EM field generators in your arms increase the range and damage of thrown " +"iron and steel objects at a cost of 1 power per throw, causing them to leave" +" a trail of electricity that can cause additional damage." msgstr "" -"System generujący pole elektromagnetyczne w twoich ramionach podwaja zasięg " -"rzucanych przez ciebie żelaznych i stalowych przedmiotów kosztem jednej " +"System generujący pole elektromagnetyczne w twoich ramionach zwiększa zasięg" +" rzucanych przez ciebie żelaznych i stalowych przedmiotów kosztem jednej " "jednostki mocy na rzut. Wystrzelony przedmiot tworzy ogon zjonizowanego " "elektrycznie powietrza, co może zadać dodatkowe obrażenia." @@ -17557,8 +17662,8 @@ msgstr[1] "Paznokciowe Żyletki CBM" msgstr[2] "Paznokciowe Żyletki CBM" msgstr[3] "Paznokciowe Żyletki CBM" -#. ~ Description for Fingertip Razors #. ~ Description for Fingertip Razors CBM +#. ~ Description for Fingertip Razors #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You possess razor-sharp retractable claws underneath your fingernails, ten " @@ -17577,8 +17682,8 @@ msgstr[1] "Wewnętrzny Mikroreaktor CBM" msgstr[2] "Wewnętrzny Mikroreaktor CBM" msgstr[3] "Wewnętrzny Mikroreaktor CBM" -#. ~ Description for Microreactor System #. ~ Description for Internal Microreactor CBM +#. ~ Description for Microreactor System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This stripped down mini-reactor may not be the best thing to have in your " @@ -17614,8 +17719,8 @@ msgstr[1] "Jednostka Recyklingu CBM" msgstr[2] "Jednostka Recyklingu CBM" msgstr[3] "Jednostka Recyklingu CBM" -#. ~ Description for Recycler Unit #. ~ Description for Recycler Unit CBM +#. ~ Description for Recycler Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your digestive system has been outfitted with a series of filters and " @@ -17635,8 +17740,8 @@ msgstr[1] "Zdalne Sterowanie CBM" msgstr[2] "Zdalne Sterowanie CBM" msgstr[3] "Zdalne Sterowanie CBM" -#. ~ Description for Remote Controller #. ~ Description for Remote Controller CBM +#. ~ Description for Remote Controller #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A small module connected to your brain allows you to interface with nearby " @@ -17653,8 +17758,8 @@ msgstr[1] "Soniczny Rezonator CBM" msgstr[2] "Soniczny Rezonator CBM" msgstr[3] "Soniczny Rezonator CBM" -#. ~ Description for Sonic Resonator #. ~ Description for Sonic Resonator CBM +#. ~ Description for Sonic Resonator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your entire body may resonate at very high power, creating a short-range " @@ -17673,8 +17778,8 @@ msgstr[1] "System Maskowania Zapachów CBM" msgstr[2] "System Maskowania Zapachów CBM" msgstr[3] "System Maskowania Zapachów CBM" -#. ~ Description for Olfactory Mask #. ~ Description for Olfactory Mask CBM +#. ~ Description for Olfactory Mask #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While this system is powered, your body will produce very little odor, " @@ -17691,8 +17796,8 @@ msgstr[1] "Optyczny Zmysł Węchu CBM" msgstr[2] "Optyczny Zmysł Węchu CBM" msgstr[3] "Optyczny Zmysł Węchu CBM" -#. ~ Description for Scent Vision #. ~ Description for Scent Vision CBM +#. ~ Description for Scent Vision #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While this system is powered, you're able to visually sense your own scent, " @@ -17711,8 +17816,8 @@ msgstr[1] "Jednostka Elektroszoku CBM" msgstr[2] "Jednostka Elektroszoku CBM" msgstr[3] "Jednostka Elektroszoku CBM" -#. ~ Description for Electroshock Unit #. ~ Description for Electroshock Unit CBM +#. ~ Description for Electroshock Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While fighting unarmed, or with a weapon that conducts electricity, there is" @@ -17731,8 +17836,8 @@ msgstr[1] "Generator Fal Uderzeniowych CBM" msgstr[2] "Generator Fal Uderzeniowych CBM" msgstr[3] "Generator Fal Uderzeniowych CBM" -#. ~ Description for Shockwave Generator #. ~ Description for Shockwave Generator CBM +#. ~ Description for Shockwave Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You generate a powerful shockwave, knocking back all nearby creatures. " @@ -17751,8 +17856,8 @@ msgstr[1] "Akcelerator Synaptyczny CBM" msgstr[2] "Akcelerator Synaptyczny CBM" msgstr[3] "Akcelerator Synaptyczny CBM" -#. ~ Description for Synaptic Accelerator #. ~ Description for Synaptic Accelerator CBM +#. ~ Description for Synaptic Accelerator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py #, no-python-format msgid "" @@ -17861,8 +17966,8 @@ msgstr[1] "Moduł Teleportacji CBM" msgstr[2] "Moduł Teleportacji CBM" msgstr[3] "Moduł Teleportacji CBM" -#. ~ Description for Teleportation Unit #. ~ Description for Teleportation Unit CBM +#. ~ Description for Teleportation Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This highly experimental unit folds space over short distances, instantly " @@ -17882,8 +17987,8 @@ msgstr[1] "Rozciągacz Czasu CBM" msgstr[2] "Rozciągacz Czasu CBM" msgstr[3] "Rozciągacz Czasu CBM" -#. ~ Description for Time Dilation #. ~ Description for Time Dilation CBM +#. ~ Description for Time Dilation #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "At the cost of all stored bionic power, you may increase your body speed and" @@ -17903,8 +18008,8 @@ msgstr[1] "Zintegrowane Narzędzia CBM" msgstr[2] "Zintegrowane Narzędzia CBM" msgstr[3] "Zintegrowane Narzędzia CBM" -#. ~ Description for Integrated Toolset #. ~ Description for Integrated Toolset CBM +#. ~ Description for Integrated Toolset #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Surgically implanted in your hands and fingers is a complete tool set - " @@ -17944,8 +18049,8 @@ msgstr[1] "Serwo-Stawy CBM" msgstr[2] "Serwo-Stawy CBM" msgstr[3] "Serwo-Stawy CBM" -#. ~ Description for Joint Servo #. ~ Description for Joint Servo CBM +#. ~ Description for Joint Servo #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your leg joints have been equipped with servomotors that provide power-" @@ -17966,8 +18071,8 @@ msgstr[1] "Niesamowity Unik CBM" msgstr[2] "Niesamowity Unik CBM" msgstr[3] "Niesamowity Unik CBM" -#. ~ Description for Uncanny Dodge #. ~ Description for Uncanny Dodge CBM +#. ~ Description for Uncanny Dodge #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your nervous system has been augmented with bionic processors, allowing you " @@ -17985,8 +18090,8 @@ msgstr[1] "Zunifikowany System Zasilania UPS CBM" msgstr[2] "Zunifikowany System Zasilania UPS CBM" msgstr[3] "Zunifikowany System Zasilania UPS CBM" -#. ~ Description for Internal Unified Power System #. ~ Description for Unified Power System CBM +#. ~ Description for Internal Unified Power System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have a unified power system wired into your power banks. Objects that " @@ -18004,8 +18109,8 @@ msgstr[1] "Wewnętrzny Chronometr CBM" msgstr[2] "Wewnętrzny Chronometr CBM" msgstr[3] "Wewnętrzny Chronometr CBM" -#. ~ Description for Internal Chronometer #. ~ Description for Internal Chronometer CBM +#. ~ Description for Internal Chronometer #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have been equipped with an internal atomic clock, ensuring that you will" @@ -18097,13 +18202,13 @@ msgstr "" #: lang/json/BIONIC_ITEM_from_json.py msgid "Taste Modifier CBM" msgid_plural "Taste Modifier CBMs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Modyfikator Smaku CBM" +msgstr[1] "Modyfikator Smaku CBM" +msgstr[2] "Modyfikator Smaku CBM" +msgstr[3] "Modyfikator Smaku CBM" -#. ~ Description for Taste Modifier #. ~ Description for Taste Modifier CBM +#. ~ Description for Taste Modifier #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A set of highly sensitive sensors is installed in your mouth, and a small " @@ -18115,14 +18220,20 @@ msgid "" "brain. Active bionic will nullify the taste of all comestibles with " "negative enjoyment value at the cost of draining bionic power." msgstr "" +"Zestaw sensorów wysokiej czułości zainstalowano ci w ustach, a mały lecz " +"zaawansowany analizator w zagłębieniu czaszki. Po włożeniu do ust czegoś do " +"zjedzenia sensor przechwytuje wrażenia smakowe i czuciowe (np. teksturę) z " +"różnych receptorów i przepuszcza je przez analizator. Ten może je " +"zmodyfikować przed wysłaniem do mózgu. Aktywna bionika pozwoli zniwelować " +"niezadowolenie spowodowane złym smakiem kosztem poboru bionicznej mocy." #: lang/json/BIONIC_ITEM_from_json.py msgid "Soporific Induction CBM" msgid_plural "Soporific Induction CBMs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Induktor Nasenny CBM" +msgstr[1] "Induktor Nasenny CBM" +msgstr[2] "Induktor Nasenny CBM" +msgstr[3] "Induktor Nasenny CBM" #. ~ Description for Soporific Induction CBM #: lang/json/BIONIC_ITEM_from_json.py @@ -18130,6 +18241,8 @@ msgid "" "A microscopic electrode designed to gently stimulate a particular cluster of" " neurons in your hypothalamus, helping you fall asleep." msgstr "" +"To mikroskopijna elektroda opracowana do delikatnej stymulacji konkretnej " +"partii neuronów w podwzgórzu, pomagając w zaśnięciu." #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Squeaky Ankles" @@ -18164,17 +18277,17 @@ msgstr "" #: lang/json/BIONIC_ITEM_from_json.py msgid "Acidic Leaking CBM" msgid_plural "Acidic Leaking CBMs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Wyciek Kwasu CBM" +msgstr[1] "Wyciek Kwasu CBM" +msgstr[2] "Wyciek Kwasu CBM" +msgstr[3] "Wyciek Kwasu CBM" #. ~ Description for Acidic Leaking CBM #: lang/json/BIONIC_ITEM_from_json.py msgid "" "This CBM has been breached in several places and some acid is leaking from " "it." -msgstr "" +msgstr "Ten CBM został przebity w kilku miejscach, i wycieka z niego kwas." #: lang/json/BIONIC_ITEM_from_json.py msgid "Faulty Electric System" @@ -18187,15 +18300,15 @@ msgstr[3] "Wadliwych Systemów Elektronicznych" #. ~ Description for Faulty Electric System #: lang/json/BIONIC_ITEM_from_json.py msgid "This CBM is a mess of naked wire and burnt resistor." -msgstr "" +msgstr "Ten CBM to masa obnażonych kabli i spalonych rezystorów." #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Electrical Drain" msgid_plural "Electrical Drains" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Elektryczny Syfon" +msgstr[1] "Elektryczny Syfon" +msgstr[2] "Elektryczny Syfon" +msgstr[3] "Elektryczny Syfon" #. ~ Description for Electrical Drain #: lang/json/BIONIC_ITEM_from_json.py @@ -18203,14 +18316,16 @@ msgid "" "This CBM was wired incorrectly and would drain power from any system " "connected to it." msgstr "" +"Ten CBM został niewłaściwie okablowany i wysysa moc z każdego systemu doń " +"przyłączonego." #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Itchy Metal Thing" msgid_plural "Itchy Metal Things" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Swędząca Metalowa Rzecz" +msgstr[1] "Swędząca Metalowa Rzecz" +msgstr[2] "Swędząca Metalowa Rzecz" +msgstr[3] "Swędząca Metalowa Rzecz" #. ~ Description for Itchy Metal Thing #: lang/json/BIONIC_ITEM_from_json.py @@ -18224,16 +18339,16 @@ msgstr "" #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Glowy Thing" msgid_plural "Glowy Things" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Świecąca Rzecz" +msgstr[1] "Świecąca Rzecz" +msgstr[2] "Świecąca Rzecz" +msgstr[3] "Świecąca Rzecz" #. ~ Description for Glowy Thing #: lang/json/BIONIC_ITEM_from_json.py msgid "" "It's a... thing? And it glows, at least it did when it was plugged in." -msgstr "" +msgstr "To... rzecz? I świeci, a przynajmniej świeciła jak była przyłączona." #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Leaky Bionic" @@ -18255,10 +18370,10 @@ msgstr "" #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Noisemaker" msgid_plural "Noisemakers" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Grzechotka" +msgstr[1] "Grzechotka" +msgstr[2] "Grzechotka" +msgstr[3] "Grzechotka" #. ~ Description for Noisemaker #: lang/json/BIONIC_ITEM_from_json.py @@ -18266,6 +18381,7 @@ msgid "" "A malfunctioning bionic. When it was plugged in it would occasionally emit " "a loud burst of noise." msgstr "" +"Popsuta bionika. Gdy była podłączona emitowała okazjonalnie głośne dźwięki." #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Bionic Nostril" @@ -18292,66 +18408,66 @@ msgstr[3] "" #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Power Overload" msgid_plural "Power Overloads" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Przeciążenie Mocy" +msgstr[1] "Przeciążenia Mocy" +msgstr[2] "Przeciążeń Mocy" +msgstr[3] "Przeciążeń Mocy" #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Bionic Short Circuit" msgid_plural "Bionic Short Circuits" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Bioniczne Krótkie Spięcie" +msgstr[1] "Bioniczne Krótkie Spięcia" +msgstr[2] "Bionicznych Krótkich Spięć" +msgstr[3] "Bionicznych Krótkich Spięć" #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Endocrine Enervator" msgid_plural "Endocrine Enervators" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Wewnątrzwydzielniczy Podrażniacz" +msgstr[1] "Wewnątrzwydzielnicze Podrażniacze" +msgstr[2] "Wewnątrzwydzielniczych Podrażniaczy" +msgstr[3] "Wewnątrzwydzielniczych Podrażniaczy" #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Motor Control Overstimulator" msgid_plural "Motor Control Overstimulators" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Nadstymulator Funkcji Motorycznych" +msgstr[1] "Nadstymulatory Funkcji Motorycznych" +msgstr[2] "Nadstymulatorów Funkcji Motorycznych" +msgstr[3] "Nadstymulatorów Funkcji Motorycznych" #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Wire-Induced Stiffness" msgid_plural "Wire-Induced Stiffnesss" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Sztywność Po Okablowaniu" +msgstr[1] "Sztywności Po Okablowaniu" +msgstr[2] "Sztywności Po Okablowaniu" +msgstr[3] "Sztywności Po Okablowaniu" #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Self-Locking Thumbs" msgid_plural "Self-Locking Thumbss" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Samoblokujący Kciuk" +msgstr[1] "Samoblokujące Kciuki" +msgstr[2] "Samoblokujących Kciuków" +msgstr[3] "Samoblokujących Kciuków" #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Visual Disruptor" msgid_plural "Visual Disruptors" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Zakłócacz Wizji" +msgstr[1] "Zakłócacze Wizji" +msgstr[2] "Zakłócaczy Wizji" +msgstr[3] "Zakłócaczy Wizji" #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Voice Remodulator" msgid_plural "Voice Remodulators" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Remodulator Głosu" +msgstr[1] "Remodulatory Głosu" +msgstr[2] "Remodulatorów Głosu" +msgstr[3] "Remodulatorów Głosu" #: lang/json/BIONIC_ITEM_from_json.py msgid "Solar Panels CBM" @@ -18370,8 +18486,8 @@ msgstr "" "Masz wszczepionych kilka paneli słonecznych. Wystawiony na promienie " "słoneczne regenerujesz powoli poziom twojej mocy." -#. ~ Description for Solar Panels #. ~ Description for Solar Panels CBM +#. ~ Description for Solar Panels #: lang/json/BIONIC_ITEM_from_json.py lang/json/BIONIC_ITEM_from_json.py #: lang/json/bionic_from_json.py msgid "" @@ -18429,6 +18545,9 @@ msgid "" " the speed that it processes language. When installed, it provides a " "passive boost to reading speed." msgstr "" +"Mikrokomputer zainstalowany w lewej półkuli mózgu, aby zwiększyć szybkość " +"przetwarzania języka. Po zainstalowaniu zapewnia pasywny wzrost prędkości " +"odczytu." #: lang/json/BIONIC_ITEM_from_json.py msgid "Dopamine Stimulators CBM" @@ -18446,6 +18565,10 @@ msgid "" "of dopamine and other reward chemicals, inducing a state of euphoria and " "suppressing fear." msgstr "" +"Zestaw maleńkich bionicznych stymulatorów nerwowych, które instalują się w " +"centrum nagrody twojego mózgu. Kiedy działa z mocą bioniczną, okresowo " +"uwalnia uderzenie dopaminy i innych chemikaliów nagradzających, włącznie ze " +"stanem euforii i tłumienia strachu." #: lang/json/BIONIC_ITEM_from_json.py msgid "Ionic Overload Generator CBM" @@ -18455,8 +18578,8 @@ msgstr[1] "Generatory Przeładowania Jonowego CBM" msgstr[2] "Generatory Przeładowania Jonowego CBM" msgstr[3] "Generatory Przeładowania Jonowego CBM" -#. ~ Description for Ionic Overload Generator #. ~ Description for Ionic Overload Generator CBM +#. ~ Description for Ionic Overload Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A powerful ion energy generator is implanted on your chest. Fires a " @@ -21345,10 +21468,10 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "book of classic literature" msgid_plural "books of classic literature" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "książka z literatury klasycznej" +msgstr[1] "książki z literatury klasycznej" +msgstr[2] "książek z literatury klasycznej" +msgstr[3] "książek z literatury klasycznej" #. ~ Description for book of classic literature #: lang/json/BOOK_from_json.py @@ -21356,36 +21479,40 @@ msgid "" "A book of classic literature, timeless and enjoyable but a bit dense to " "read." msgstr "" +"Książka z literatury klasycznej, ponadczasowa i przyjemna ale trochę gęsta " +"do czytania." #: lang/json/BOOK_from_json.py msgid "This is a copy of Dickens' \"Bleak House\"." -msgstr "" +msgstr "To jest kopia „Ponurego Domu” Dickensa." #: lang/json/BOOK_from_json.py msgid "This is a copy of \"Great Expectations\" by Charles Dickens." -msgstr "" +msgstr "To jest kopia „Wielkich Oczekiwań” Charlesa Dickensa." #: lang/json/BOOK_from_json.py msgid "This is a copy of William Shinderling's \"Under the Beech Trees\"." -msgstr "" +msgstr "To jest kopia „Pod drzewami bukowymi” Williama Shinderlinga." #: lang/json/BOOK_from_json.py msgid "" "This is a collection of three Jane Austen novels: \"Pride and Prejudice\", " "\"Sense and Sensibility\", and \"Emma\"." msgstr "" +"To zbiór trzech powieści Jane Austen: „Duma i uprzedzenie”, „Rozważna i " +"romantyczna” oraz „Emma”." #: lang/json/BOOK_from_json.py msgid "This is a well-worn paperback copy of \"Lord of the Flies\"." -msgstr "" +msgstr "Jest to dobrze zużyta kopia „Władcy much” w miękkiej oprawie." #: lang/json/BOOK_from_json.py msgid "This is a copy of \"To Kill a Mockingbird\" by Harper Lee." -msgstr "" +msgstr "To jest kopia „Zabić drozda” autorstwa Harpera Lee." #: lang/json/BOOK_from_json.py msgid "This is a copy of F. Scott Fitzgerald's \"The Great Gatsby.\"" -msgstr "" +msgstr "Jest to kopia „Wielkiego Gatsby'ego” F. Scotta Fitzgeralda." #: lang/json/BOOK_from_json.py msgid "This is copy of Michael Abanaderly's lesser-known work, \"He Walks\"." @@ -21428,12 +21555,17 @@ msgid "" "K. G. Ranade. There are scrawled margin notes all over it, apparently the " "workings of a confused and feverish mind." msgstr "" +"Jest to książka w miękkiej oprawie znanego klasyka „Dark Days Ahead” " +"autorstwa K. G. Ranade'a. Wszędzie są wypisane notatki z marginesu, " +"najwyraźniej działanie zdezorientowanego i gorączkowego umysłu." #: lang/json/BOOK_from_json.py msgid "" "This is a copy of \"Jane Eyre\". The cover art is quite out of place, " "making it look more like a dime-store romance novel." msgstr "" +"To jest kopia „Jane Eyre”. Okładka jest zupełnie nie na miejscu, co sprawia," +" że wygląda bardziej jak powieść o romansie w tanim sklepie." #: lang/json/BOOK_from_json.py msgid "" @@ -21441,24 +21573,31 @@ msgid "" "Stephen King, autographed by the author. It contains a certificate of " "authenticity pronouncing it to be a first edition." msgstr "" +"Jest to doskonale zachowana książka w twardej oprawie „Roland” Stephena " +"Kinga z autografem autora. Zawiera certyfikat autentyczności, który oznacza," +" że jest to pierwsza edycja." #: lang/json/BOOK_from_json.py msgid "" "This paperback copy of \"Wuthering Heights\" has a large coffee stain on the" " first page." msgstr "" +"Ta miękka kopia „Wichrowych wzgórz” ma dużą plamę kawy na pierwszej stronie." #: lang/json/BOOK_from_json.py msgid "" "This is a hardbound copy of \"Lady Chatterly's Lover\", by D. H. Lawrence. " "It has some very explicit illustrations." msgstr "" +"To twarda kopia „Kochanka Lady Chatterley” autorstwa D. H. Lawrence'a. Ma " +"bardzo wyraźne ilustracje." #: lang/json/BOOK_from_json.py msgid "" "This is a hardbound copy of \"The Catcher in the Rye.\". It has some very " "nicely done illustrations." msgstr "" +"To twarda kopia „Buszującego w zbożu”. Ma bardzo ładnie wykonane ilustracje." #: lang/json/BOOK_from_json.py msgid "" @@ -21657,6 +21796,9 @@ msgid "" "In the inner cover is a handwritten note that reads \"To Chris, thanks for " "believing I could do it. Best regards, Terry.\"" msgstr "" +"To pierwsza edycja „Koloru magii” Terry'ego Pratchetta. W wewnętrznej " +"okładce znajduje się odręczna notatka, która brzmi: „Dla Chrisa, dzięki, że " +"uwierzyłeś, że mogę to zrobić. Z pozdrowieniami, Terry.\"" #: lang/json/BOOK_from_json.py msgid "Tactical Handgun Digest" @@ -22390,14 +22532,22 @@ msgid "" " you're ready to start a second Cataclysm, but the details about the " "miniaturized handheld version on the next page might be useful..." msgstr "" +"Ten notatnik laboratoryjny jest wypełniony zbiorowymi odkryciami i " +"udoskonaleniami zespołu badawczego zajmującego się energią jądrową. Dotyczy " +"to głównie mocy rozszczepienia, ale istnieją też plany recyklingu plutonu, " +"adaptacji energii jądrowej do codziennych akumulatorów, wczesne specyfikacje" +" kilku produktów Rivtech i... schematy głowicy jądrowej. Nie sądzisz, że " +"jesteś gotowy na rozpoczęcie drugiego Cataclysm, ale szczegóły dotyczące " +"zminiaturyzowanej podręcznej wersji na następnej stronie mogą być " +"przydatne..." #: lang/json/BOOK_from_json.py msgid "USMC M1014 technical manual" msgid_plural "USMC M1014 technical manuals" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "USMC M1014 instrukcja techniczna" +msgstr[1] "USMC M1014 instrukcje techniczne" +msgstr[2] "USMC M1014 instrukcji technicznych" +msgstr[3] "USMC M1014 instrukcji technicznych" #. ~ Description for USMC M1014 technical manual #: lang/json/BOOK_from_json.py @@ -23065,10 +23215,10 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dimethyl sulfoxide" msgid_plural "dimethyl sulfoxide" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "dimetylosulfotlenek" +msgstr[1] "dimetylosulfotlenki" +msgstr[2] "dimetylosulfotlenków" +msgstr[3] "dimetylosulfotlenków" #. ~ Description for dimethyl sulfoxide #: lang/json/COMESTIBLE_from_json.py @@ -23078,14 +23228,18 @@ msgid "" "that it absorbs very quickly through the skin, causing a garlic flavor in " "the mouth even if it touched your arm." msgstr "" +"Dimetylosulfotlenek, lub DMSO, jest powszechnym i ważnym rozpuszczalnikiem " +"aprotycznym, zdolnym do rozpuszczania szerokiego zakresu rzeczy. Ma dziwną " +"właściwość bardzo szybkiego wchłania się przez skórę, powodując smak czosnku" +" w ustach, nawet jeśli dotknął twojej ręki." #: lang/json/COMESTIBLE_from_json.py msgid "chloroform" msgid_plural "chloroform" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "chloroform" +msgstr[1] "chloroformy" +msgstr[2] "chloroformów" +msgstr[3] "chloroformów" #. ~ Description for chloroform #: lang/json/COMESTIBLE_from_json.py @@ -23094,14 +23248,17 @@ msgid "" "very good solvent. In particular, it's used a lot in nuclear magnetic " "resonance spectroscopy." msgstr "" +"Substancja ta, znana ze swoich zdolności jako nielegalny środek " +"uspokajający, jest również bardzo dobrym rozpuszczalnikiem. W szczególności " +"jest on używany w spektroskopii magnetycznego rezonansu jądrowego." #: lang/json/COMESTIBLE_from_json.py msgid "phenol" msgid_plural "phenol" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "fenol" +msgstr[1] "fenole" +msgstr[2] "fenoli" +msgstr[3] "fenoli" #. ~ Description for phenol #: lang/json/COMESTIBLE_from_json.py @@ -23112,14 +23269,19 @@ msgid "" " and it can burn your skin away like tissue paper under a heat gun. Wear " "gloves." msgstr "" +"Ten użyteczny materiał jest silnym rozpuszczalnikiem i ma szeroki zakres " +"zastosowań reaktywnych. Może być używany do wytwarzania ogromnej liczby " +"tworzyw sztucznych i polimerów, może być środkiem dezynfekującym, może " +"usuwać farbę i rozkładać żywicę epoksydową, a także może wypalić skórę jak " +"bibułkę pod opalarką. Noś rękawice." #: lang/json/COMESTIBLE_from_json.py msgid "glycerol" msgid_plural "glycerol" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "glicerol" +msgstr[1] "glicerole" +msgstr[2] "gliceroli" +msgstr[3] "gliceroli" #. ~ Description for glycerol #: lang/json/COMESTIBLE_from_json.py @@ -23127,14 +23289,16 @@ msgid "" "This innocent, sweet, colorless liquid can be used for all kinds of things, " "from sweetening food to manufacturing medicine to making potent explosives." msgstr "" +"Ta niewinna, słodka, bezbarwna ciecz może być używana do różnych celów, od " +"słodzenia po produkcję leków i wytwarzanie silnych materiałów wybuchowych." #: lang/json/COMESTIBLE_from_json.py msgid "peptone broth powder" msgid_plural "peptone broth powder" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "sproszkowana pożywka peptonowa" +msgstr[1] "sproszkowane pożywki peptonowe" +msgstr[2] "sproszkowanych pożywek peptonowych" +msgstr[3] "sproszkowanych pożywek peptonowych" #. ~ Description for peptone broth powder #: lang/json/COMESTIBLE_from_json.py @@ -23143,14 +23307,17 @@ msgid "" "bacteria to eat, but if you were desperate you could eat it too; it's not " "much different from cup noodle stock." msgstr "" +"Jest to wstępnie zmieszany słony roztwór białka i cukru. Przeznaczony jest " +"dla bakterii do jedzenia, ale gdybyś był zdesperowany, mógłbyś go również " +"zjeść; niewiele różni się od zapasów z makaronem." #: lang/json/COMESTIBLE_from_json.py msgid "agar" msgid_plural "agar" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "agar" +msgstr[1] "agary" +msgstr[2] "agarów" +msgstr[3] "agarów" #. ~ Description for agar #: lang/json/COMESTIBLE_from_json.py @@ -23160,14 +23327,19 @@ msgid "" "making gels to separate molecules by size, but it's a great cheat ingredient" " to make sure your jellies set properly." msgstr "" +"Te klarowne płatki przetworzonych wodorostów można rozpuścić we wrzącej " +"wodzie, tworząc bardzo wytrzymały, odporny na temperaturę żel. Jest on nie " +"tylko dobry do oddzielania cząsteczek według wielkości, jest to również " +"świetny składnik do oszukiwania, aby upewnić się, że galaretki są zrobione " +"prawidłowo." #: lang/json/COMESTIBLE_from_json.py msgid "acrylamide" msgid_plural "acrylamide" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "akrylamid" +msgstr[1] "akrylamidy" +msgstr[2] "akrylamidów" +msgstr[3] "akrylamidów" #. ~ Description for acrylamide #: lang/json/COMESTIBLE_from_json.py @@ -23175,6 +23347,8 @@ msgid "" "This highly carcinogenic white powder can be readily polymerized into a " "whole bunch of useful water-soluble gels." msgstr "" +"Ten wysoce rakotwórczy biały proszek można łatwo polimeryzować w całą masę " +"przydatnych żeli rozpuszczalnych w wodzie." #: lang/json/COMESTIBLE_from_json.py msgid "Spice" @@ -23862,7 +24036,7 @@ msgstr "naleśnik kukurydziany" #. ~ Description for johnnycake #: lang/json/COMESTIBLE_from_json.py msgid "A dense and tasty fried bread treat." -msgstr "" +msgstr "Gęsty i smaczny smakołyk ze smażonego chleba." #: lang/json/COMESTIBLE_from_json.py msgid "corn tortilla" @@ -25300,6 +25474,21 @@ msgid "Baby cow food, appropriated for adult humans. Spoils rapidly." msgstr "" "Jedzenie małych cielaków, przetworzone dla dużych ludzi. Szybko się psuje." +#: lang/json/COMESTIBLE_from_json.py +msgid "reconstituted milk" +msgid_plural "reconstituted milk" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for reconstituted milk +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Baby cow food, appropriated for adult humans. This milk has been " +"reconstituted from a processed milk. Spoils rapidly." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "coffee milk" msgstr "biała kawa" @@ -29324,23 +29513,20 @@ msgstr "" "na dymka." #: lang/json/COMESTIBLE_from_json.py -msgid "pink tablet" -msgstr "różowa tabletka" +msgid "pink tab" +msgstr "" -#. ~ Use action activation_message for pink tablet. +#. ~ Use action activation_message for pink tab. #: lang/json/COMESTIBLE_from_json.py msgid "You eat the pink tablet." msgstr "Połykasz różową tabletkę." -#. ~ Description for pink tablet +#. ~ Description for pink tab #: lang/json/COMESTIBLE_from_json.py msgid "" -"Tiny pink candies shaped like hearts, already dosed with some sort of drug." -" Really only useful for entertainment. Will cause hallucinations." +"Tiny pink tabs resembling postage stamps, already dosed with some sort of " +"drug. Really only useful for entertainment. Will cause hallucinations." msgstr "" -"Malutkie różowe cukierkowe tabletki w kształcie serca, doprawione jakimś " -"narkotykiem. Wyłącznie nadają się w celach rozrywkowych. Powodują " -"halucynacje." #: lang/json/COMESTIBLE_from_json.py msgid "medical gauze" @@ -32130,6 +32316,15 @@ msgstr[3] "garść moreli" msgid "A smooth-skinned fruit, related to the peach." msgstr "Miękkoskóry owoc podobny do brzoskwini." +#: lang/json/COMESTIBLE_from_json.py +msgid "cactus pad" +msgstr "" + +#. ~ Description for cactus pad +#: lang/json/COMESTIBLE_from_json.py +msgid "An edible pad of a cactus." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "barley" msgstr "jęczmień" @@ -33301,7 +33496,7 @@ msgstr "" #. ~ Description for raw lentils #: lang/json/COMESTIBLE_from_json.py msgid "Raw, uncooked lentils, ready for planting." -msgstr "" +msgstr "Surowa, niegotowana soczewica, gotowa do sadzenia." #: lang/json/COMESTIBLE_from_json.py msgid "lentils" @@ -34490,6 +34685,15 @@ msgstr "" "Chrupiąca kapusta kiszona jest doskonałym dodatkiem do hot dogów, " "hamburgerów, lub dla nieco zdesperowanych, jedzona na goły żołądek." +#: lang/json/COMESTIBLE_from_json.py +msgid "nopalito" +msgstr "" + +#. ~ Description for nopalito +#: lang/json/COMESTIBLE_from_json.py +msgid "A less prickly version of cactus pads." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "wheat cereal" msgstr "płatki pszeniczne" @@ -36307,10 +36511,10 @@ msgstr "" #: lang/json/CONTAINER_from_json.py msgid "graduated cylinder" msgid_plural "graduated cylinders" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "cylinder miarowy" +msgstr[1] "cylindry miarowe" +msgstr[2] "cylindrów miarowych" +msgstr[3] "cylindrów miarowych" #. ~ Description for graduated cylinder #: lang/json/CONTAINER_from_json.py @@ -36323,10 +36527,10 @@ msgstr "" #: lang/json/CONTAINER_from_json.py msgid "microcentrifuge tube" msgid_plural "microcentrifuge tubes" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "probówka do mikrowirówki" +msgstr[1] "probówki do mikrowirówki" +msgstr[2] "probówek do mikrowirówki" +msgstr[3] "probówek do mikrowirówki" #. ~ Description for microcentrifuge tube #: lang/json/CONTAINER_from_json.py @@ -36335,6 +36539,10 @@ msgid "" "store a tiny amount of liquid. Great for jello shooters if 1mL is enough for" " a shot for you. Cool people call these \"eppies\"." msgstr "" +"Te plastikowe rurki, z niewielkimi wbudowanymi zatrzaskowymi kapslami, to " +"świetny sposób na przechowywanie niewielkiej ilości płynu. Świetne na " +"galaretkowe kieliszki, jeśli 1 ml jest dla ciebie wystarczający na " +"kieliszek. Fajni ludzie nazywają je „epki”." #: lang/json/CONTAINER_from_json.py msgid "hip flask" @@ -36775,10 +36983,10 @@ msgstr "Żółta beczka służąca do przechowywania niebezpiecznych substancji. #: lang/json/CONTAINER_from_json.py msgid "garden pot" msgid_plural "garden pots" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "doniczka ogrodowa" +msgstr[1] "doniczki ogrodowe" +msgstr[2] "doniczek ogrodowych" +msgstr[3] "doniczek ogrodowych" #. ~ Description for garden pot #: lang/json/CONTAINER_from_json.py @@ -36786,6 +36994,9 @@ msgid "" "A special pot for growing plants, maintaining them at comfortable conditions" " for maximum yield. It can be crafted with various seeds to plant them." msgstr "" +"Specjalna doniczka do uprawy roślin, utrzymująca je w komfortowych warunkach" +" dla maksymalnej wydajności. Może być wykonana z różnymi nasionami, aby je " +"posadzić." #: lang/json/CONTAINER_from_json.py msgid "steel bottle" @@ -37356,6 +37567,8 @@ msgid "" "Radioactive material that used to be a part of some nuclear industry " "equipment. You are yet to find some use for it." msgstr "" +"Materiał radioaktywny, który kiedyś był częścią niektórych urządzeń " +"przemysłu jądrowego. Jeszcze nie znalazłeś dla niego jakiegoś zastosowania." #: lang/json/GENERIC_from_json.py msgid "fake item" @@ -37370,6 +37583,19 @@ msgstr[3] "fałszywy przedmiot" msgid "Dummy item. If you see this, then something went wrong." msgstr "Atrapa przedmiotu. Jak to widzisz, to coś poszło nie tak." +#: lang/json/GENERIC_from_json.py +msgid "semi ground grains" +msgid_plural "semi ground grains" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for semi ground grains +#: lang/json/GENERIC_from_json.py +msgid "A paste of half-finished milled grains, not yet flour." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "smoldering embers" msgid_plural "smoldering embers" @@ -37424,10 +37650,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "family photo" msgid_plural "family photos" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "zdjęcie rodzinne" +msgstr[1] "zdjęcia rodzinne" +msgstr[2] "zdjęć rodzinnych" +msgstr[3] "zdjęć rodzinnych" #. ~ Description for family photo #: lang/json/GENERIC_from_json.py @@ -37435,6 +37661,8 @@ msgid "" "A photo of a smiling family on a camping trip. One of the parents looks " "like a cleaner, happier version of the person you know." msgstr "" +"Fotografia uśmiechniętej rodziny na campingowej wycieczce. Jeden z rodziców " +"wygląda na czystszą, szczęśliwszą wersję osoby, którą znasz." #: lang/json/GENERIC_from_json.py msgid "corpse" @@ -37458,8 +37686,8 @@ msgstr "pobliski ogień" #. ~ Description for wind #. ~ Description for a smoking device and a source of flame #. ~ Description for abstract map -#. ~ Description for weapon #. ~ Description for seeing this is a bug +#. ~ Description for weapon #: lang/json/GENERIC_from_json.py lang/json/GENERIC_from_json.py #: lang/json/TOOL_from_json.py lang/json/TOOL_from_json.py #: lang/json/skill_from_json.py @@ -37476,7 +37704,7 @@ msgstr "mięsień" #: lang/json/GENERIC_from_json.py msgid "wind" -msgstr "" +msgstr "wiatr" #: lang/json/GENERIC_from_json.py msgid "a smoking device and a source of flame" @@ -40376,6 +40604,21 @@ msgid "" " vehicle. Combine it with a wheel to get a mountable piece." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "welding component kit" +msgid_plural "welding component kits" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for welding component kit +#: lang/json/GENERIC_from_json.py +msgid "" +"A set of components useful for constructing a full-featured welding station," +" complete with soldering capability." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "canister grenade" msgid_plural "canister grenades" @@ -44161,6 +44404,21 @@ msgid "" "cargo." msgstr "Ciężka rama wyposażona w paski i złączki do mocowania bagażu." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "floor trunk" +msgid_plural "floor trunks" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for floor trunk +#: lang/json/GENERIC_from_json.py +msgid "" +"A section of flooring with a cargo-space beneath, and a hinged door for " +"access." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "livestock carrier" msgid_plural "livestock carriers" @@ -44265,16 +44523,10 @@ msgstr[3] "stacja ładowania kompatybilna z UPS" msgid "" "A Unified Power System recharging station designed to operate on vehicle " "power. Once installed in a vehicle storage space and turned on from a " -"dashboard or electronics control unit, it will slowly charge all tools with " -"rechargeable batteries in that space. The system can only be installed in " -"existing storage compartments." +"dashboard or electronics control unit, it will slowly charge all UPS " +"compatible tools and battery cells in that space. The system can only be " +"installed in existing storage compartments." msgstr "" -"Stacja ładowania oparta na UPS, zunifikowanej stacji zasilania, opracowana " -"do działania na zasilaniu pojazdu. Po zainstalowaniu w przestrzeni " -"ładunkowej pojazdu i uruchomieniu z poziomu sterowania pojazdem lub " -"jednostki kontroli elektroniki, będzie wolno ładować wszystkie narzędzia z " -"ładowalnymi bateriami umieszczonymi w tym miejscu. System można instalować " -"tylko w istniejących przestrzeniach ładunkowych." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py #: lang/json/vehicle_part_from_json.py @@ -46196,6 +46448,19 @@ msgstr[3] "łuski 9x18mm" msgid "An empty casing from a 9x18mm round." msgstr "Pusta łuska z naboju 9x18mm." +#: lang/json/GENERIC_from_json.py +msgid ".380 ACP casing" +msgid_plural ".380 ACP casings" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for .380 ACP casing +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a .380 ACP round." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "shotgun hull" msgid_plural "shotgun hulls" @@ -50644,6 +50909,95 @@ msgstr "ARTEFAKTY" msgid "ARMOR" msgstr "ZBROJE" +#: lang/json/MAGAZINE_from_json.py +msgid "ultra-light battery cell" +msgstr "" + +#. ~ Description for ultra-light battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a light battery cell designed for small size over everything else. " +"It retains its universal compatibility, though." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "light battery cell" +msgstr "" + +#. ~ Description for light battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a light battery cell, universally compatible with all kinds of small" +" devices." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "light battery cell (high-capacity)" +msgid_plural "light battery cells (high-capacity)" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for light battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity light battery cell, universally compatible with all " +"kinds of personal electronic devices." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "medium battery cell" +msgstr "" + +#. ~ Description for medium battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a medium battery cell, universally compatible with all kinds of " +"appliances and power tools." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "medium battery cell (high-capacity)" +msgid_plural "medium battery cells (high-capacity)" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for medium battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity medium battery cell, universally compatible with all" +" kinds of appliances and power tools." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "heavy battery cell" +msgstr "" + +#. ~ Description for heavy battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a heavy battery cell, universally compatible with all kinds of " +"industrial-grade equipment and large tools." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "heavy battery cell (high-capacity)" +msgid_plural "heavy battery cells (high-capacity)" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for heavy battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity heavy battery cell, universally compatible with all " +"kinds of industrial-grade equipment and large tools." +msgstr "" + #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "fuel bunker" msgstr "Bunkier na paliwo" @@ -50798,6 +51152,15 @@ msgstr "magazynek S&W 22A" msgid "A standard capacity magazine for the popular S&W 22A pistol." msgstr "Standardowej pojemności magazynek do popularnego pistoletu S&W 22A." +#: lang/json/MAGAZINE_from_json.py +msgid "Jennings J-22 magazine" +msgstr "" + +#. ~ Description for Jennings J-22 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A cheap 6-round steel box magazine for the Jennings J-22." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "LW-5 speedloader" msgstr "" @@ -51088,6 +51451,15 @@ msgid "A standard 20-round magazine for the Skorpion Vz. 61, in .32 ACP." msgstr "" "Standardowy 20-nabojowy magazynek do Skorpion Vz. 61, na naboje .32 ACP." +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec P32 magazine" +msgstr "" + +#. ~ Description for Kel-Tec P32 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 7-round steel box magazine for the Kel-Tec P32." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "P226 magazine .357 SIG" msgstr "P226 magazynek .357 SIG" @@ -51133,6 +51505,43 @@ msgid "" "revolver." msgstr "" +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec P3AT magazine" +msgstr "" + +#. ~ Description for Kel-Tec P3AT magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 6-round steel box magazine for the Kel-Tec P3AT." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "FN 1910 magazine" +msgstr "" + +#. ~ Description for FN 1910 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "" +"A standard 6-round steel box magazine for the FN 1910. It looks a bit old." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "Ruger LCP magazine" +msgstr "" + +#. ~ Description for Ruger LCP magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 6-round capacity magazine for the Ruger LCP pistol." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "MAC-11 magazine" +msgstr "" + +#. ~ Description for MAC-11 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A cheap 32-round steel box magazine for use with the MAC-11 SMG." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid ".40 6-round speedloader" msgstr "" @@ -51794,6 +52203,15 @@ msgstr "" "Standardowy 32-nabojowy stalowy pudełkowy magazynek do pistoletu maszynowego" " UZI." +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec PF-9 magazine" +msgstr "" + +#. ~ Description for Kel-Tec PF-9 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 7-round steel box magazine for the Kel-Tec PF-9." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "Makarov PM magazine" msgstr "magazynek Makarow PM" @@ -52015,10 +52433,10 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "large storage battery" msgid_plural "large storage batteries" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "duża bateria akumulacyjna" +msgstr[1] "duże baterie akumulacyjne" +msgstr[2] "dużych baterii akumulacyjnych" +msgstr[3] "dużych baterii akumulacyjnych" #. ~ Description for large storage battery #: lang/json/MAGAZINE_from_json.py @@ -52026,6 +52444,8 @@ msgid "" "A huge lithium ion storage battery, weighing easily 600 pounds. Holds a " "tremendous amount of energy." msgstr "" +"Ogromny akumulator litowo-jonowy o wadze co najmniej 600 funtów. Potrafi " +"utrzymać ogromną ilość energii." #: lang/json/MAGAZINE_from_json.py msgid "rechargeable battery" @@ -52214,7 +52634,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "revolver speedloader" -msgstr "" +msgstr "ładowarka do rewolweru" #. ~ Description for revolver speedloader #: lang/json/MAGAZINE_from_json.py @@ -52566,7 +52986,7 @@ msgstr "zawiera wszystkie mody rekomendowane przez deweloperów" #: lang/json/MOD_INFO_from_json.py msgid "Aftershock" -msgstr "" +msgstr "Aftershock" #. ~ Description for Aftershock #: lang/json/MOD_INFO_from_json.py @@ -52574,6 +52994,8 @@ msgid "" "Drifts the game away from realism and more towards sci-fi. NOTE: " "Incompatible with Bright Nights." msgstr "" +"Odsuwa grę od realizmu i skłania bardziej ku sci-fi. UWAGA: Niezgodny z " +"Jasne Noce." #: lang/json/MOD_INFO_from_json.py msgid "Animatronic Monsters" @@ -52587,6 +53009,15 @@ msgid "" msgstr "" "Dodaje sieć zbankrutowanych pizzerii, w których nadal działa animatronika." +#: lang/json/MOD_INFO_from_json.py +msgid "Battery Migration for Existing Games" +msgstr "" + +#. ~ Description for Battery Migration for Existing Games +#: lang/json/MOD_INFO_from_json.py +msgid "Allows you to reload and unload battery cells with legacy batteries." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "Boats" msgstr "Łodzie" @@ -52606,6 +53037,8 @@ msgid "" "More action-centered, sci-fi, experimental, Cataclysm. NOTE: Incompatible " "with Aftershock." msgstr "" +"Catalysm z większą ilości akcji, science-fiction, rozwiązań " +"eksperymentalnych. UWAGA: Niezgodny z Aftershock." #: lang/json/MOD_INFO_from_json.py msgid "Craftable Gun Pack" @@ -52751,7 +53184,7 @@ msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Garden Pots" -msgstr "" +msgstr "Doniczki ogrodowe" #. ~ Description for Garden Pots #: lang/json/MOD_INFO_from_json.py @@ -52759,10 +53192,12 @@ msgid "" "Allows you to grow seeds in craftable garden pots that can be carried around" " as items. Perfect for the nomadic botanist." msgstr "" +"Umożliwia uprawę nasion w nadających się do obróbki doniczkach ogrodowych, " +"które można nosić jako przedmioty. Idealny dla koczowniczego botanika." #: lang/json/MOD_INFO_from_json.py msgid "Hydroponics" -msgstr "" +msgstr "Hydroponika" #. ~ Description for Hydroponics #: lang/json/MOD_INFO_from_json.py @@ -52770,6 +53205,9 @@ msgid "" "Adds hydroponic units, a terrain which can be harvested for vegetables once " "a season. Spawn occasionally in labs or basements. Or build your own." msgstr "" +"Dodaje jednostki hydroponiczne, teren, który można uprawiać na warzywa raz " +"na sezon. Od czasu do czasu pojawia się w laboratoriach lub piwnicach. " +"Możesz go też zbudować samemu." #: lang/json/MOD_INFO_from_json.py msgid "Mythical Martial Arts" @@ -54473,7 +54911,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "tripod" -msgstr "" +msgstr "trójnóg" #. ~ Description for tripod #: lang/json/MONSTER_from_json.py @@ -56024,6 +56462,7 @@ msgstr "gigantyczny karaluch w ciąży" msgid "" "A mutant cockroach the size of a small dog. Its abdomen is heavily swollen." msgstr "" +"Zmutowany karaluch wielkości małego psa. Jego brzuch jest mocno opuchnięty." #: lang/json/MONSTER_from_json.py msgid "giant bee" @@ -56475,6 +56914,8 @@ msgid "" "A spotted wild cat living across much of North America. It is not a serious" " threat to humans, but it can be aggressive when threatened." msgstr "" +"Łaciaty dziki kot żyjący w dużej części Ameryki Północnej. Nie jest to " +"poważne zagrożenie dla ludzi, ale może być agresywne, gdy jest zagrożone." #: lang/json/MONSTER_from_json.py msgid "cat" @@ -56624,6 +57065,8 @@ msgid "" "An adorable, defenseless Labrador puppy. Much safer to tame than an adult " "dog." msgstr "" +"Uroczy, bezbronny szczeniak Labradora. Znacznie bezpieczniej jest oswoić go " +"niż dorosłego psa." #: lang/json/MONSTER_from_json.py msgid "bulldog" @@ -58949,8 +59392,8 @@ msgstr "" msgid "guardin gnome" msgstr "gnom strażnik" -#. ~ Description for garden gnome #. ~ Description for guardin gnome +#. ~ Description for garden gnome #: lang/json/MONSTER_from_json.py lang/json/furniture_from_json.py msgid "A normal and completely harmless garden gnome." msgstr "Zwykły i całkowicie niegroźny gnom ogrodowy." @@ -60104,25 +60547,6 @@ msgstr "" "złączy. Możesz przyłączyć to do dowolnego sprzętu działającego na baterie, " "zmieniając mu źródło zasilania na ogniwo plutonowe." -#: lang/json/TOOLMOD_from_json.py -msgid "extra battery mod" -msgid_plural "extra battery mods" -msgstr[0] "mod dodatkowych baterii" -msgstr[1] "mod dodatkowych baterii" -msgstr[2] "mod dodatkowych baterii" -msgstr[3] "mod dodatkowych baterii" - -#. ~ Description for extra battery mod -#: lang/json/TOOLMOD_from_json.py -msgid "" -"This is a homemade battery compartment made with spare electronics. With " -"enough electronics skill, you could attach this to any electronic tool to " -"double the amount of batteries it can hold." -msgstr "" -"Domowej roboty przedział na baterie zrobiony z elektronicznego złomu. Mając " -"wystarczające umiejętności w elektronice, możesz przyłączyć go do dowolnego " -"narzędzia elektronicznego by podwoić mu pojemność baterii." - #: lang/json/TOOLMOD_from_json.py msgid "UPS conversion mod" msgid_plural "UPS conversion mods" @@ -60181,6 +60605,51 @@ msgstr "" "samochodowych i małych baterii akumulacyjnych w zwykłych narzędziach " "elektrycznych." +#: lang/json/TOOLMOD_from_json.py +msgid "light battery mod" +msgid_plural "light battery mods" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for light battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of light batteries in tools " +"that otherwise could not." +msgstr "" + +#: lang/json/TOOLMOD_from_json.py +msgid "medium battery mod" +msgid_plural "medium battery mods" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for medium battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of medium batteries in tools " +"that otherwise could not." +msgstr "" + +#: lang/json/TOOLMOD_from_json.py +msgid "heavy battery mod" +msgid_plural "heavy battery mods" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for heavy battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of heavy batteries in tools " +"that otherwise could not." +msgstr "" + #: lang/json/TOOLMOD_from_json.py msgid "cybernetic power port mod" msgid_plural "cybernetic power port mods" @@ -62930,6 +63399,36 @@ msgstr "" "Ten olbrzymi blok dziwnie ukształtowanej stali, z dłutowatym wyrostkiem w " "rogu. Używane w większości prac metalurgicznych." +#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +msgid "water mill" +msgid_plural "water mills" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for water mill +#: lang/json/TOOL_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour. Can" +" be placed via the construction menu." +msgstr "" + +#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +msgid "wind mill" +msgid_plural "wind mills" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for wind mill +#: lang/json/TOOL_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour. Can " +"be placed via the construction menu." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "wood axe" msgid_plural "wood axes" @@ -66861,30 +67360,10 @@ msgstr[3] "listwa świetlna" #. ~ Description for lightstrip #: lang/json/TOOL_from_json.py msgid "" -"This is a light-emitting circuit wired directly to some batteries. It " -"provides some weak light and can't be turned off. When the batteries die, " -"you'll need to scrap it to recover the components that are reusable." +"This is a light-emitting circuit that has been wired directly to a battery." +" It provides some weak light and can't be turned off until the battery " +"dies." msgstr "" -"To emitujący światło obwód elektryczny podpinany pod baterie. Zapewnia słabe" -" światło i nie może być wyłączony. Gdy baterie się wyczerpią, będziesz " -"musiał go zutylizować by odzyskać komponenty dające się ponownie użyć." - -#: lang/json/TOOL_from_json.py -msgid "lightstrip (unpowered)" -msgid_plural "lightstrips (unpowered)" -msgstr[0] "listwa świetlna (bez prądu)" -msgstr[1] "listwa świetlna (bez prądu)" -msgstr[2] "listwa świetlna (bez prądu)" -msgstr[3] "listwa świetlna (bez prądu)" - -#. ~ Description for lightstrip (unpowered) -#: lang/json/TOOL_from_json.py -msgid "" -"This is a unpowered lightstrip. You could connect it to batteries to get a " -"light-emitting circuit." -msgstr "" -"Listwa świetlna bez zasilania. Podepnij ją pod baterie by uzyskać świecący " -"obwód elektryczny." #: lang/json/TOOL_from_json.py msgid "lightstrip (inactive)" @@ -66902,14 +67381,9 @@ msgstr "Nieodwracalnie aktywujesz listwę świetlną." #. ~ Description for lightstrip (inactive) #: lang/json/TOOL_from_json.py msgid "" -"This is a light-emitting circuit wired directly to some batteries. It will " -"provide some weak light once activated and can't be turned off. When the " -"batteries die, you'll need to scrap it to recover the components that are " -"reusable." +"This is a light-emitting circuit that can be wired directly to a battery. " +"It provides some weak light and can't be turned off until the battery dies." msgstr "" -"To emitujący światło obwód elektryczny podpinany pod baterie. Świeci słabym " -"światłemo i nie może być wyłączony. Gdy baterie się wyczerpią, będziesz " -"musiał go zutylizować by odzyskać komponenty dające się ponownie użyć." #: lang/json/TOOL_from_json.py msgid "lobotomizer" @@ -66978,9 +67452,10 @@ msgid "" "crowbar. Use it to open locked doors without destroying them, or to lift " "manhole covers. You could also wield it to fight with, in a pinch." msgstr "" -"Rurak której koniec zagięto i spłaszczono młotkiem na kształt łomu. Użyj go " +"Rura której koniec zagięto i spłaszczono młotkiem na kształt łomu. Użyj go " "do wyważenia zamkniętych drzwi bez niszczenia ich, lub podważania włazów do " -"studzienek kanalizacyjnych. Możesz też użyć go do walki jak będziesz musiał." +"studzienek kanalizacyjnych. Możesz też użyć go do walki jeśli będziesz " +"musiał." #: lang/json/TOOL_from_json.py lang/json/trap_from_json.py #: lang/json/vehicle_part_from_json.py @@ -67618,7 +68093,15 @@ msgid "" "of reactivity. Don't try to breathe it." msgstr "" -#. ~ Description for nitrogen tank +#: lang/json/TOOL_from_json.py +msgid "hydrogen tank" +msgid_plural "hydrogen tanks" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for hydrogen tank #: lang/json/TOOL_from_json.py msgid "" "This is a tank of compressed hydrogen gas. If you need to make water from " @@ -68459,6 +68942,14 @@ msgstr "" " przydatnymi narzędziami do tekstyliów. Użyj zestawu do szycia na ubraniu by" " spróbować je naprawić lub wzmocnić. Wymaga umiejętności krawieckich." +#: lang/json/TOOL_from_json.py +msgid "anesthesia kit" +msgid_plural "anesthesia kits" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #: lang/json/TOOL_from_json.py msgid "shaving kit" msgid_plural "shaving kits" @@ -74564,6 +75055,10 @@ msgstr ".357 SIG" msgid "9x18mm" msgstr "9x18mm" +#: lang/json/ammunition_type_from_json.py +msgid ".380 ACP" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid ".38" msgstr ".38" @@ -75558,6 +76053,18 @@ msgstr "" msgid "Railgun" msgstr "Działo Elektromagnetyczne" +#. ~ Description for Railgun +#: lang/json/bionic_from_json.py +msgid "" +"EM field generators in your arms double the range and damage of thrown iron " +"and steel objects at a cost of 1 power per throw, causing them to leave a " +"trail of electricity that can cause additional damage." +msgstr "" +"System generujący pole elektromagnetyczne w twoich ramionach podwaja zasięg " +"rzucanych przez ciebie żelaznych i stalowych przedmiotów kosztem jednej " +"jednostki mocy na rzut. Wystrzelony przedmiot tworzy ogon zjonizowanego " +"elektrycznie powietrza, co może zadać dodatkowe obrażenia." + #: lang/json/bionic_from_json.py msgid "Fingertip Razors" msgstr "Paznokciowe Żyletki" @@ -76729,6 +77236,14 @@ msgstr "" msgid "Build River Dock/Shallow Bridge" msgstr "" +#: lang/json/construction_from_json.py +msgid "Place Water Mill" +msgstr "" + +#: lang/json/construction_from_json.py +msgid "Place Wind Mill" +msgstr "" + #: lang/json/construction_from_json.py msgid "Build Shallow Temporary Bridge" msgstr "" @@ -82180,6 +82695,40 @@ msgstr "" "Metalowy wieszak rzeźniczy przeznaczony do wieszania tuszy w powietrzu. " "Można go rozłożyć i poskładać do transportu." +#. ~ Description for wind mill +#: lang/json/furniture_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "active wind mill" +msgstr "" + +#. ~ Description for active wind mill +#: lang/json/furniture_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour. Its" +" brake has been removed and it is turning." +msgstr "" + +#. ~ Description for water mill +#: lang/json/furniture_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "active water mill" +msgstr "" + +#. ~ Description for active water mill +#: lang/json/furniture_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour. " +"Its brake has been removed and it is turning." +msgstr "" + #. ~ Description for tourist table #: lang/json/furniture_from_json.py msgid "Small metal folding table, ideal for off-road trips into the wild." @@ -83322,7 +83871,8 @@ msgstr "" "mogą być ponownie użyte." #: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py src/item.cpp +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "pistol" msgstr "pistolet" @@ -83884,6 +84434,14 @@ msgstr[1] "bazowy pistolet" msgstr[2] "bazowy pistolet" msgstr[3] "bazowy pistolet" +#: lang/json/gun_from_json.py +msgid "backup pistol" +msgid_plural "backup pistols" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #: lang/json/gun_from_json.py src/item_factory.cpp msgid "revolver" msgid_plural "revolvers" @@ -84175,6 +84733,28 @@ msgstr[3] "S&W 22A" msgid "A popular .22 pistol." msgstr "Popularny pistolet na amunicję kalibru .22." +#: lang/json/gun_from_json.py +msgid "Jennings J-22" +msgid_plural "Jennings J-22s" +msgstr[0] "Jennings J-22s" +msgstr[1] "Jenningsy J-22s" +msgstr[2] "Jenningsów J-22s" +msgstr[3] "Jenningsów J-22s" + +#: lang/json/gun_from_json.py +msgid "" +"One of the quintessential 'saturday night specials', the Jennings J-22 was " +"very affordably priced with its injection molded zinc slide and frame. " +"Intended to fill the void left after small pocket pistols were banned from " +"import, these were more commonly used by criminals unfazed by their glaring " +"safety issues." +msgstr "" +"Jedną z kwintesencji „sobotnich nocnych specjałów”, Jennings J-22, był " +"bardzo tani w cenie dzięki formowanej wtryskowo cynkowej prowadnicy i ramie." +" Mając na celu wypełnienie pustej przestrzeni po zakazie importowania małych" +" pistoletów kieszonkowych, były one częściej wykorzystywane przez " +"przestępców niezrażonych ich rażącymi kwestiami bezpieczeństwa." + #: lang/json/gun_from_json.py msgid "Remington ACR" msgid_plural "Remington ACRs" @@ -84988,6 +85568,21 @@ msgstr "" "Jeden z najsłynniejszych pistoletów 20-go wieku. Nie nazywasz się Bond, ale " "ta broń może ci się przydać mimo tego." +#: lang/json/gun_from_json.py +msgid "Kel-Tec P32" +msgid_plural "Kel-Tec P32s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of Kel-tec's oldest designs, the P32 is a popular option for deep " +"concealment and backup usage. Despite its extreme light weight and small " +"size, its .32 ACP chambering makes for good handling and recoil control." +msgstr "" + #: lang/json/gun_from_json.py msgid "SIG P226" msgid_plural "SIG P226s" @@ -85105,6 +85700,71 @@ msgstr "" "Popularny pistolet kalibru .38. Opracowany z wieloma bezpiecznikami i " "zbudowany z wytrzymałych materiałów wysokiej jakości." +#: lang/json/gun_from_json.py +msgid "MAC-11" +msgid_plural "MAC-11s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"A lesser known variant of the MAC-10, this machine pistol is chambered in " +".380 ACP for a smaller overall size while remaining inherently subsonic. " +"Smaller in almost every dimension, this inexpensive automatic weapon was " +"declared 'fit only for combat in a phone booth' due to its low weight and " +"absurd fire rate ranging from 1200 to 1400 rounds per minute." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Kel-Tec P3AT" +msgid_plural "Kel-Tec P3ATs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"Essentially a slightly scaled up Kel-tec P32 in .380 ACP, the ever popular " +"P3AT offers better ballistics in a small, concealable lightweight package. " +"Handling leaves something to be desired due to snappier recoil and " +"diminuitive controls." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "FN 1910 .380" +msgid_plural "FN 1910 .380s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"Made infamous in Sarajevo in 1914, the FN1910 was a popular pocket pistol, " +"albeit in .32 ACP. Collectors value the .380 model for its notoriety and " +"more modern terminal performance. If such a humble firearm could start a " +"world war, could it perhaps protect you from the undead?" +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Ruger LCP" +msgid_plural "Ruger LCPs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of the best selling modern day 'pocket pistol's, the LCP is an " +"affordable, polymer framed pistol chambered in .380 ACP. Despite the " +"round's relatively low power, the pistol's low weight and short sight radius" +" make for a moderately poor handling pistol." +msgstr "" + #: lang/json/gun_from_json.py msgid "Glock 22" msgid_plural "Glock 22" @@ -86573,6 +87233,22 @@ msgstr "" "Zaprojektowany dla wszystkich strzelców, Glock 17 reklamowany jest zwłaszcza" " na rynek wojskowy i służb prawa." +#: lang/json/gun_from_json.py +msgid "Kel-Tec PF-9" +msgid_plural "Kel-Tec PF-9s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"The Kel-Tec PF-9 remains one of the most popular backup pistols due to its " +"history of reliability, affordability, and concealability. Chambered in " +"9x19mm, recoil is best described as unpleasant, and follow up shots are " +"difficult to place quickly." +msgstr "" + #: lang/json/gun_from_json.py msgid "Makarov PM" msgid_plural "Makarov PMs" @@ -90030,6 +90706,53 @@ msgctxt "gun_type_type" msgid "crossbow" msgstr "kusza" +#: lang/json/gunmod_from_json.py +msgid "belt clip" +msgid_plural "belt clips" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a belt clip that attaches to the grip or slide of a pistol so as to " +"facilitate 'Mexican carry', the practice of carrying without a holster. It " +"does not offer any protection for the trigger, so users are strongly advised" +" to carry with the chamber empty or select a firearm with a very heavy " +"trigger pull." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "rugerlcp" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kp32" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kp3at" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kpf9" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "cop_38" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "moss_brownie" +msgstr "" + #: lang/json/gunmod_from_json.py msgid "shortened barrel" msgid_plural "shortened barrels" @@ -90889,6 +91612,21 @@ msgstr "" "Składana kolba która mniejsza rozmiar broni, ale wymaga rozłożenia przed " "użyciem. Zwiększa czas potrzebny do dzierżenia broni." +#: lang/json/gunmod_from_json.py +msgid "folding wire stock" +msgid_plural "folding wire stocks" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"A folding wire stock which folds up very compactly but needs unfolding " +"before use. It's somewhat wobbly but is better than nothing at all. " +"Increases the time needed to wield the weapon." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "pistol stock" msgid_plural "pistol stocks" @@ -93311,7 +94049,7 @@ msgstr "Przewróć ziemię" #: lang/json/item_action_from_json.py msgid "Dig water channel here" -msgstr "" +msgstr "Wykop tu kanał wodny" #: lang/json/item_action_from_json.py msgid "Dig through rock" @@ -93475,7 +94213,7 @@ msgstr "Zjedz" #: lang/json/item_action_from_json.py msgid "Dig pit here" -msgstr "" +msgstr "Wykop tu dół" #: lang/json/item_action_from_json.py msgid "Find direction" @@ -94455,24 +95193,16 @@ msgstr "Możesz tutaj składować przedmioty." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"You can 'e'xamine the tile or attempt to pick-up items (default ',') to " -"access the controls, or use the vehicle control key (default '^')." +"You can 'e'xamine the tile to access the controls, or use the vehicle " +"control key (default '^')." msgstr "" -"Możesz zbadać pole (domyślnie 'e') lub spróbować podnieść przedmiot " -"(domyślnie ',') by uzyskać dostęp do sterowania, albo użyć przycisku " -"kontrolującego pojazd (domyślne '^')." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"With a seat or saddle, you drive from here. You can 'e'xamine the tile or " -"attempt to pick-up items (default ',') to access the controls, or use the " -"vehicle control key (default '^')." +"With a seat or saddle, you drive from here. You can 'e'xamine the tile to " +"access the controls, or use the vehicle control key (default '^')." msgstr "" -"Z siedzeniem lub siodłem, możesz stąd kierować. Możesz zbadać pole " -"(domyślnie 'e') lub spróbować podnieść przedmiot (domyślnie ',') by uzyskać " -"dostęp do sterowania, albo użyć przycisku kontrolującego pojazd (domyślne " -"'^')." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -95451,6 +96181,10 @@ msgstr "Śpij" msgid "Control Vehicle" msgstr "Kontroluj Pojazd" +#: lang/json/keybinding_from_json.py +msgid "Toggle Auto Travel Mode" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Toggle Safe Mode" msgstr "Przełącz Tryb Bezpieczny" @@ -95644,9 +96378,25 @@ msgid "Active World Mods" msgstr "Aktywne Mody Świata" #: lang/json/keybinding_from_json.py -msgid "Toggle move mode (run/walk/crouch)" +msgid "Cycle move mode (run/walk/crouch)" msgstr "" +#: lang/json/keybinding_from_json.py +msgid "Reset Movement to Walk" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Run" +msgstr "Przełącz Bieg" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Crouch" +msgstr "Przełącz Skradanie" + +#: lang/json/keybinding_from_json.py +msgid "Movement Mode Menu" +msgstr "Menu Trybu Ruchu" + #: lang/json/keybinding_from_json.py src/game_inventory.cpp msgid "Compare" msgstr "Porównaj" @@ -95791,7 +96541,7 @@ msgstr "Przenieś wszystkie rzeczy" #: lang/json/keybinding_from_json.py msgid "Mark/unmark non-favorite items in multidrop menu" -msgstr "" +msgstr "Zaznacz/odznacz nie-ulubione rzeczy w menu upuszczania" #: lang/json/keybinding_from_json.py msgid "Select items @ North-West" @@ -96406,87 +97156,87 @@ msgstr "Nastawianie Kości" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Irradiation Facility Operation Console" -msgstr "" +msgstr "Konsola Operacyjna Zakładu Napromieniowywania" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Uplink to mainframe servers" -msgstr "" +msgstr "Połącz się z głównym serwerem" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Cycle conveyor belt" -msgstr "" +msgstr "Przewiń pas transmisyjny" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Toggle safety shutters" -msgstr "" +msgstr "Przełącz kurtyny bezpieczeństwa" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Probe radiation levels" -msgstr "" +msgstr "Badaj poziom napromieniowania" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Commence irradiation sequence" -msgstr "" +msgstr "Rozpocznij sekwencję napromieniowywania" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "[Maintenance] Extract radiation core" -msgstr "" +msgstr "[Konserwacja] Wysuń rdzeń promieniotwórczy" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Hazardous Materials Containment" -msgstr "" +msgstr "Skład Materiałów Niebezpiecznych" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Access containment zone" -msgstr "" +msgstr "Dostęp do strefy składowania" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Geiger counter readout" -msgstr "" +msgstr "Odczyt liczników Geigera" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Security Access Terminal" -msgstr "" +msgstr "Terminal Dostępowy Ochrony" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Open doors" -msgstr "" +msgstr "Otwórz drzwi" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Access security locker" -msgstr "" +msgstr "Dostęp do schowka ochrony" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Power Management" -msgstr "" +msgstr "Zarządzanie Zasilaniem" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "External power management" -msgstr "" +msgstr "Zarządzanie zasilaniem zewnętrznym" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Backup power management" -msgstr "" +msgstr "Zarządzanie zasilaniem zapasowym" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Run emergency auto-diagnostic" -msgstr "" +msgstr "Przeprowadź awaryjną auto-diagnostykę" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -96669,7 +97419,7 @@ msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Travelier MOTEL" -msgstr "" +msgstr "MOTEL Podróżnik" #. ~ Computer name #: lang/json/mapgen_from_json.py @@ -97125,22 +97875,22 @@ msgstr "Pokaż Linie Metra" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Vehicle Testing Track" -msgstr "" +msgstr "Tor Testowy Pojadzów" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Weapons Testing Range" -msgstr "" +msgstr "Strzelnica do Testów Broni" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Armory Entrance" -msgstr "" +msgstr "Wejście Zbrojowni" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Hydroponics Entrance" -msgstr "" +msgstr "Wejście Hydroponiki" #. ~ Computer name #: lang/json/mapgen_from_json.py @@ -98399,31 +99149,31 @@ msgstr "rozbity" #: lang/json/material_from_json.py msgid "Dried vegetable" -msgstr "" +msgstr "Uschnięte warzywo" #: lang/json/material_from_json.py msgid "Cured Meat" -msgstr "" +msgstr "Solone Mięso" #: lang/json/material_from_json.py msgid "Processed fod" -msgstr "" +msgstr "Przetworzona żywność" #: lang/json/material_from_json.py msgid "Cheese" -msgstr "" +msgstr "Ser" #: lang/json/material_from_json.py msgid "Ice cream" -msgstr "" +msgstr "Lody" #: lang/json/material_from_json.py msgid "Soil" -msgstr "" +msgstr "Gleba" #: lang/json/material_from_json.py msgid "Titanium" -msgstr "" +msgstr "Tytan" #: lang/json/material_from_json.py msgid "Bronze" @@ -99737,11 +100487,11 @@ msgstr "Och nie! Mój biedny, biedny piesek...." #: lang/json/mission_def_from_json.py msgid "Find 100 Cigarettes" -msgstr "" +msgstr "Znajdź 100 Papierosów" #: lang/json/mission_def_from_json.py msgid "Come on man, I just need a smoke." -msgstr "" +msgstr "No dalej stary, potrzebuję tylko zapalić." #: lang/json/mission_def_from_json.py msgid "" @@ -99762,11 +100512,11 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Got the smokes?" -msgstr "" +msgstr "Masz te papierosy?" #: lang/json/mission_def_from_json.py msgid "Thanks! I'll be sure to put in a good word for you around the center." -msgstr "" +msgstr "Dziękuję! Nie zapomnę szepnąć kilku miłych słów o tobie w centrum." #: lang/json/mission_def_from_json.py msgid "Break into armory to retrieve family photo" @@ -99798,15 +100548,15 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Got the photo? Should've been in my gun safe." -msgstr "" +msgstr "Masz to zdjęcie? Powinno być w moim sejfie z bronią." #: lang/json/mission_def_from_json.py msgid "Thanks! I'll be sure to put in a good word for you around town." -msgstr "" +msgstr "Dziękuję! Nie zapomnę szepnąć kilku miłych słów o tobie w mieście." #: lang/json/mission_def_from_json.py msgid "Find Antibiotics Before You Die!" -msgstr "" +msgstr "Znajdź Antybiotyki Zanim Umrzesz!" #: lang/json/mission_def_from_json.py msgid "Reach Refugee Center" @@ -99990,7 +100740,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Find 40 Canned Food" -msgstr "" +msgstr "Znajdź 40 Puszek z Żywnością" #: lang/json/mission_def_from_json.py msgid "" @@ -102018,11 +102768,11 @@ msgstr "Zadowolony z pogawędki" #: lang/json/morale_type_from_json.py msgid "Ate with table" -msgstr "" +msgstr "Zjadłeś przy stole" #: lang/json/morale_type_from_json.py msgid "Ate like an animal" -msgstr "" +msgstr "Zjadłeś jak świnia" #: lang/json/morale_type_from_json.py msgid "Music" @@ -102046,7 +102796,7 @@ msgstr "Mutageniczne Wyczekiwanie" #: lang/json/morale_type_from_json.py msgid "Good feeling" -msgstr "" +msgstr "Dobre samopoczucie" #: lang/json/morale_type_from_json.py msgid "Supported" @@ -102220,7 +102970,7 @@ msgstr "Niewygodny Ubiór" #: lang/json/morale_type_from_json.py msgid "Nomadic Restlessness" -msgstr "" +msgstr "Zniecierpliwienie Nomada" #: lang/json/morale_type_from_json.py msgid "Found kitten <3" @@ -102256,11 +103006,11 @@ msgstr "Pożądasz ognia" #: lang/json/morale_type_from_json.py msgid "Killed recently" -msgstr "" +msgstr "Niedawno zabiłeś" #: lang/json/morale_type_from_json.py msgid "Longing to kill" -msgstr "" +msgstr "Chęć zabijania" #: lang/json/morale_type_from_json.py msgid "Filthy Gear" @@ -102272,11 +103022,11 @@ msgstr "Zdenerwowanie wspomnieniami o zmasakrowaniu ludzkiego ciała" #: lang/json/morale_type_from_json.py msgid "Dug out a grave" -msgstr "" +msgstr "Odkopałeś grób" #: lang/json/morale_type_from_json.py msgid "Communed with the trees" -msgstr "" +msgstr "Zjednoczenie z drzewami" #: lang/json/morale_type_from_json.py msgid "Debug Morale" @@ -103608,6 +104358,17 @@ msgid "" "easily." msgstr "Masz ponadprzeciętny słuch, i łatwiej ci usłyszeć dalekie odgłosy." +#: lang/json/mutation_from_json.py +msgid "Fey Hearing" +msgstr "" + +#. ~ Description for Fey Hearing +#: lang/json/mutation_from_json.py +msgid "" +"Your not sure the shape of your ears are helping, but regardless you have " +"become very sensitive to sounds." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Outdoorsman" msgstr "Człowiek Lasu" @@ -103877,7 +104638,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Rigid Table Manners" -msgstr "" +msgstr "Surowe Zasady przy Stole" #. ~ Description for Rigid Table Manners #: lang/json/mutation_from_json.py @@ -103887,6 +104648,10 @@ msgid "" "frustrates you, but eating like a civilized person gives you a bigger morale" " bonus." msgstr "" +"Od dziecka wpojono ci zasady zachowania przy stole. Teraz nawet nie " +"potrafisz myśleć o jedzeniu bez stołu. Jedzenie bez niego powoduje " +"frustrację, ale posiłek spożyty jak cywilizowana osoba daje ci większy bonus" +" do morale." #: lang/json/mutation_from_json.py msgid "Strong Stomach" @@ -104032,7 +104797,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Animal Kinship" -msgstr "" +msgstr "Więź ze Zwierzętami" #. ~ Description for Animal Kinship #: lang/json/mutation_from_json.py @@ -104041,6 +104806,8 @@ msgid "" " with innate trust. This only applies to natural animals such as woodland " "creatures." msgstr "" +"Coś w twojej osobie powoduje łagodność zwierząt, i traktują cię z wrodzonym " +"zaufaniem. Dotyczy to wyłącznie naturalnej fauny, np. leśnej." #: lang/json/mutation_from_json.py msgid "Terrifying" @@ -104239,7 +105006,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Killer Drive" -msgstr "" +msgstr "Instynkt Zabójcy" #. ~ Description for Killer Drive #: lang/json/mutation_from_json.py @@ -104247,6 +105014,8 @@ msgid "" "You derive enjoyment from killing things. Putting end to life seem to spark" " some dark satisfaction and thrill, and you crave it every moment." msgstr "" +"Czerpiesz przyjemność z zabijania. Zakańczanie życia wydaje się krzesać " +"mroczne iskry satysfakcji i podniecenia, więc łakniesz tego w każdym czasie." #: lang/json/mutation_from_json.py msgid "Martial Arts Training" @@ -104533,7 +105302,7 @@ msgstr "" msgid "" "You're not able to hear anything, and as such you're not able to talk to " "NPCs." -msgstr "" +msgstr "Niczego nie słyszysz, zatem nie jesteś w stanie rozmawiać z NPCami." #: lang/json/mutation_from_json.py msgid "Slow Learner" @@ -105796,6 +106565,17 @@ msgstr "" "Wypuszczasz pąki tam gdzie miałeś skalp. Twoje kwiaty mają miły zapach, są " "wizualnie uderzające, i dość wrażliwe." +#: lang/json/mutation_from_json.py +msgid "Rosebuds" +msgstr "" + +#. ~ Description for Rosebuds +#: lang/json/mutation_from_json.py +msgid "" +"The top of your head is blooming with rosebuds. They're eye catching, and " +"have a strong fragrance that makes you pleasant to be around." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Mycus Spores" msgstr "Zarodniki Grzybni" @@ -108594,6 +109374,17 @@ msgstr "" msgid "You detach a vine from your body." msgstr "Odłączasz pnącze ze swojego ciała." +#: lang/json/mutation_from_json.py +msgid "Hair Roots" +msgstr "" + +#. ~ Description for Hair Roots +#: lang/json/mutation_from_json.py +msgid "" +"Roots have started growing from your leaf like hair, they don't seem to do " +"much." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Toe Roots" msgstr "Ukorzenione Palce" @@ -111305,13 +112096,15 @@ msgstr "" #: lang/json/overmap_land_use_code_from_json.py msgid "Cemetery" -msgstr "" +msgstr "Cmentarz" #: lang/json/overmap_land_use_code_from_json.py msgid "" "Includes the gravestones, monuments, parking lots, road networks and " "associated buildings." msgstr "" +"Wlicza się w niego nagrobki, pomniki, parkingi, drogi i infrastrukturę " +"towarzyszącą." #: lang/json/overmap_land_use_code_from_json.py msgid "Orchard" @@ -111497,7 +112290,7 @@ msgstr "przestrzeń publiczna" #: lang/json/overmap_terrain_from_json.py msgid "irradiation plant" -msgstr "" +msgstr "zakład napromieniowywania" #: lang/json/overmap_terrain_from_json.py msgid "generic_cropland" @@ -111696,10 +112489,18 @@ msgstr "stacja benzynowa" msgid "pharmacy" msgstr "apteka" +#: lang/json/overmap_terrain_from_json.py +msgid "pharmacy roof" +msgstr "dach apteki" + #: lang/json/overmap_terrain_from_json.py msgid "doctor's office" msgstr "praktyka lekarska" +#: lang/json/overmap_terrain_from_json.py +msgid "doctor's office roof" +msgstr "dach praktyki lekarskiej" + #: lang/json/overmap_terrain_from_json.py msgid "office" msgstr "biuro" @@ -111806,6 +112607,10 @@ msgstr "dach baru" msgid "butcher shop" msgstr "sklep rzeźnika" +#: lang/json/overmap_terrain_from_json.py +msgid "butcher shop roof" +msgstr "dach sklepu rzeźnika" + #: lang/json/overmap_terrain_from_json.py msgid "bike shop" msgstr "sklep z rowerami" @@ -112010,10 +112815,22 @@ msgstr "sex shop" msgid "internet cafe" msgstr "kafejka internetowa" +#: lang/json/overmap_terrain_from_json.py +msgid "internet cafe roof" +msgstr "dach kafejki internetowej" + #: lang/json/overmap_terrain_from_json.py msgid "car showroom" msgstr "salon samochodowy" +#: lang/json/overmap_terrain_from_json.py +msgid "car showroom 2nd floor" +msgstr "2-gie piętro salonu samochodowego" + +#: lang/json/overmap_terrain_from_json.py +msgid "car showroom roof" +msgstr "dach salonu samochodowego" + #: lang/json/overmap_terrain_from_json.py msgid "car dealership" msgstr "diler samochodów" @@ -112042,13 +112859,17 @@ msgstr "stacja radiowa" msgid "gardening allotment" msgstr "ogród działkowy" +#: lang/json/overmap_terrain_from_json.py +msgid "gardening allotment roof" +msgstr "dach ogrodu działkowego" + #: lang/json/overmap_terrain_from_json.py msgid "animal pound" msgstr "staw zwierzęcy" #: lang/json/overmap_terrain_from_json.py msgid "animal pound roof" -msgstr "" +msgstr "dach schroniska dla zwierząt" #: lang/json/overmap_terrain_from_json.py msgid "animal shelter" @@ -112384,7 +113205,7 @@ msgstr "schron ewakuacyjny" #: lang/json/overmap_terrain_from_json.py msgid "evac shelter roof" -msgstr "" +msgstr "dach schronu ewakuacyjnego" #: lang/json/overmap_terrain_from_json.py msgid "LMOE shelter" @@ -112588,11 +113409,11 @@ msgstr "biblioteka" #: lang/json/overmap_terrain_from_json.py msgid "police station roof" -msgstr "" +msgstr "dach posterunku policji" #: lang/json/overmap_terrain_from_json.py msgid "police station 2nd floor" -msgstr "" +msgstr "2-gie piętro posterunku policji" #: lang/json/overmap_terrain_from_json.py msgid "hospital" @@ -112640,7 +113461,7 @@ msgstr "galeria sztuki" #: lang/json/overmap_terrain_from_json.py msgid "art gallery roof" -msgstr "" +msgstr "dach galerii sztuki" #: lang/json/overmap_terrain_from_json.py msgid "state park" @@ -112788,7 +113609,7 @@ msgstr "kręgielnia" #: lang/json/overmap_terrain_from_json.py msgid "bowling alley roof" -msgstr "" +msgstr "dach kręgielnii" #: lang/json/overmap_terrain_from_json.py msgid "boxing gym" @@ -112796,7 +113617,7 @@ msgstr "sala bokserska" #: lang/json/overmap_terrain_from_json.py msgid "boxing gym roof" -msgstr "" +msgstr "dach sali bokserskiej" #: lang/json/overmap_terrain_from_json.py msgid "fitness gym" @@ -112932,11 +113753,11 @@ msgstr "parking w strefie wypoczynku" #: lang/json/overmap_terrain_from_json.py msgid "control tower" -msgstr "" +msgstr "wieża kontroli lotów" #: lang/json/overmap_terrain_from_json.py msgid "control tower roof" -msgstr "" +msgstr "dach wieży kontroli lotów" #: lang/json/overmap_terrain_from_json.py msgid "runway" @@ -112944,27 +113765,27 @@ msgstr "pas startowy" #: lang/json/overmap_terrain_from_json.py msgid "fuel station" -msgstr "" +msgstr "stacja paliw" #: lang/json/overmap_terrain_from_json.py msgid "fuel station roof" -msgstr "" +msgstr "dach stacji paliw" #: lang/json/overmap_terrain_from_json.py msgid "small hangar" -msgstr "" +msgstr "mały hangar" #: lang/json/overmap_terrain_from_json.py msgid "small hangar roof" -msgstr "" +msgstr "dach małego hangaru" #: lang/json/overmap_terrain_from_json.py msgid "waiting area" -msgstr "" +msgstr "poczekalnia" #: lang/json/overmap_terrain_from_json.py msgid "waiting area roof" -msgstr "" +msgstr "dach poczekalni" #: lang/json/overmap_terrain_from_json.py msgid "sewage treatment" @@ -113024,7 +113845,7 @@ msgstr "beznazwy" #: lang/json/overmap_terrain_from_json.py msgid "town hall" -msgstr "" +msgstr "ratusz miejski" #: lang/json/overmap_terrain_from_json.py msgid "Bankrupt Pizzeria" @@ -113257,11 +114078,11 @@ msgstr "mieszkania socjalne" #: lang/json/overmap_terrain_from_json.py msgid "public library" -msgstr "" +msgstr "biblioteka publiczna" #: lang/json/overmap_terrain_from_json.py msgid "public library, 2nd floor" -msgstr "" +msgstr "biblioteka publiczna, 2-gie piętro" #: lang/json/overmap_terrain_from_json.py msgid "mechanics garage" @@ -116052,7 +116873,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Death Row Convict" -msgstr "" +msgstr "Skazaniec Z Celi Śmierci" #. ~ Profession (male Death Row Convict) description #: lang/json/professions_from_json.py @@ -116062,11 +116883,14 @@ msgid "" " is dead, and since true death comes only from your hands, you're in for a " "job." msgstr "" +"Byłeś seryjnym mordercą gotowym na ostatnią drogę, ale teraz wszyscy inni " +"nie żyją, a ponieważ prawdziwa śmierć przychodzi tylko z twoich rąk, czeka " +"cię niezła robota." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Death Row Convict" -msgstr "" +msgstr "Skazaniec Z Celi Śmierci" #. ~ Profession (female Death Row Convict) description #: lang/json/professions_from_json.py @@ -116076,6 +116900,9 @@ msgid "" " is dead, and since true death comes only from your hands, you're in for a " "job." msgstr "" +"Byłaś seryjnym morderczynią gotową na ostatnią drogę, ale teraz wszyscy inni" +" nie żyją, a ponieważ prawdziwa śmierć przychodzi tylko z twoich rąk, czeka " +"cię niezła robota." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -118159,7 +118986,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Serial Killer" -msgstr "" +msgstr "Seryjny Morderca" #. ~ Profession (male Serial Killer) description #: lang/json/professions_from_json.py @@ -118171,11 +118998,16 @@ msgid "" "created an identity for yourself painted in red. But now, it seems, someone" " with skills like yours might actually have a chance." msgstr "" +"Czy to z uwagi na szaleństwo, brak współczucia, lub inną przyczynę, twój " +"nietypowy żywot kręcił się wokół odbierania żyć. Skradziona maska " +"spawalnicza z lokalnego warsztatu i siekiera z wozu strażackiego pozwoliły " +"ci stworzyć tożsamość malowaną czerwonym kolorem. Ale teraz ktoś z twoimi " +"umiejętnościami może mieć nawet szansę." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Serial Killer" -msgstr "" +msgstr "Seryjna Morderczyni" #. ~ Profession (female Serial Killer) description #: lang/json/professions_from_json.py @@ -118187,6 +119019,11 @@ msgid "" "created an identity for yourself painted in red. But now, it seems, someone" " with skills like yours might actually have a chance." msgstr "" +"Czy to z uwagi na szaleństwo, brak współczucia, lub inną przyczynę, twój " +"nietypowy żywot kręcił się wokół odbierania żyć. Skradziona maska " +"spawalnicza z lokalnego warsztatu i siekiera z wozu strażackiego pozwoliły " +"ci stworzyć tożsamość malowaną czerwonym kolorem. Ale teraz ktoś z twoimi " +"umiejętnościami może mieć nawet szansę." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -118223,7 +119060,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Circus Strongman" -msgstr "" +msgstr "Siłacz Cyrkowy" #. ~ Profession (Circus Strongman) description #: lang/json/professions_from_json.py @@ -118235,11 +119072,16 @@ msgid "" "strength (NOTE: To preserve balance, choose this profession *before* " "adjusting your stats. Or don't. I'm a description, not a cop.)" msgstr "" +"Urodziłeś się z wadą genetyczną, która sprawiła, że twoje ciało było " +"nienaturalnie silne. Twoje życie było dziwne i wieloaspektowe, i ostatecznie" +" skończyło się na podróżowaniu z zespołem w górę i w dół linii brzegowej, " +"pokazując siłę (UWAGA: Aby zachować równowagę, wybierz ten zawód * przed * " +"dostosowaniem statystyk. Albo nie. Jestem opisem, a nie gliną.)" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Circus Strongwoman" -msgstr "" +msgstr "Siłaczka Cyrkowa" #. ~ Profession (Circus Strongwoman) description #: lang/json/professions_from_json.py @@ -118251,6 +119093,11 @@ msgid "" "strength (NOTE: To preserve balance, choose this profession *before* " "adjusting your stats. Or don't. I'm a description, not a cop.)" msgstr "" +"Urodziłeś się z wadą genetyczną, która sprawiła, że twoje ciało było " +"nienaturalnie silne. Twoje życie było dziwne i wieloaspektowe, i ostatecznie" +" skończyło się na podróżowaniu z zespołem w górę i w dół linii brzegowej, " +"pokazując siłę (UWAGA: Aby zachować równowagę, wybierz ten zawód * przed * " +"dostosowaniem statystyk. Albo nie. Jestem opisem, a nie gliną.)" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -120040,7 +120887,7 @@ msgid "" msgstr "" #: lang/json/recipe_from_json.py -msgid "We need to add a console to control the radio tower." +msgid "We need to build a console to control the radio tower." msgstr "" #: lang/json/recipe_from_json.py @@ -127644,80 +128491,82 @@ msgstr "Ostrzem czy pistoletem? Jak zabijesz tym razem?" #: lang/json/snippet_from_json.py msgid "Ahh, how delightful would it be to kill something." -msgstr "" +msgstr "Ahh, jak miło byłoby coś zabić." #: lang/json/snippet_from_json.py msgid "You are death, and you are coming for them. Soon." -msgstr "" +msgstr "Jesteś śmiercią i idziesz po nich. Wkrótce." #: lang/json/snippet_from_json.py msgid "" "You whisper a song to yourself. \"Stab stab stab stab stab, and then you " "die! Yeah!\"" msgstr "" +"Mruczysz sobie piosenkę. \"Dziab dziab dziab dziab dziab, i umierasz! " +"Taaak!\"" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"Come, oh sweet death of yours.\"" -msgstr "" +msgstr "Mruczysz do siebie. \"Przyjdź, o słodka śmierci twoja.\"" #: lang/json/snippet_from_json.py msgid "" "You whisper a song to yourself. \"I've seen the future, baby! It is " "murder!\"" -msgstr "" +msgstr "Mruczysz sobie piosenkę. \"Widziałem przyszłość, mała! To morderstwo!\"" #: lang/json/snippet_from_json.py msgid "" "You whisper to yourself. \"Now I am become death, the destroyer of worlds!\"" -msgstr "" +msgstr "Mruczysz do siebie. \"Oto stałem się śmiercią, niszczycielem światów.\"" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"Another one bites the dust!\"" -msgstr "" +msgstr "Mruczysz do siebie. \"Kolejny gryzie piach!\"" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"Death takes you away.\"" -msgstr "" +msgstr "Mruczysz do siebie. \"Śmierć cię zabierze.\"" #: lang/json/snippet_from_json.py msgid "You exhale in bliss." -msgstr "" +msgstr "Wzdychasz z błogością." #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"Your death is my life.\"" -msgstr "" +msgstr "Mruczysz do siebie. \"Twoja śmierć to moje życie.\"" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"No light for you anymore.\"" -msgstr "" +msgstr "Mruczysz do siebie. \"Słońce dla ciebie zaszło.\"" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"Yet another one.\"" -msgstr "" +msgstr "Mruczysz do siebie. \"Oto kolejny.\"" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"Keep'em coming.\"" -msgstr "" +msgstr "Mruczysz do siebie. \"Niech nadchodzą.\"" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"Next!\"" -msgstr "" +msgstr "Mruczysz do siebie. \"Kolejny proszę.\"" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"The goal of all life is death!\"" -msgstr "" +msgstr "Mruczysz do siebie. \"Celem wszelkiego życia jest śmierć!\"" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"By my hand!\"" -msgstr "" +msgstr "Mruczysz do siebie. \"Z mojej ręki!\"" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"Die!\"" -msgstr "" +msgstr "Mruczysz do siebie. \"Giń!\"" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"Your time is up!\"" -msgstr "" +msgstr "Mruczysz do siebie. \"Twój czas się skończył!\"" #: lang/json/snippet_from_json.py msgid "You catch a glimpse of distant green." @@ -131115,6 +131964,78 @@ msgstr "Żaden problem." msgid "Can do." msgstr "Można zrobić." +#: lang/json/snippet_from_json.py +msgid "Whew... smells like skunk!" +msgstr "Fiuuu... cuchnie jak skunks!" + +#: lang/json/snippet_from_json.py +msgid "Man, that smells like some good shit!" +msgstr "Stary, to pachnie jak niezły towar!" + +#: lang/json/snippet_from_json.py +msgid "Hey, don't bogart the joint!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "C'mon, , I can smell it, pass it over." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Wow, that smell takes me back." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Ah, man. Good times, good times. Love that scent." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "What do I smell? Well, I guess it's legal now." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Mmm, that weed smells good." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Man, I can smell the weed, can I have some?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Are you sure it's a good idea to smoke that now?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I don't know... should you really be smoking that stuff?" +msgstr "No nie wiem... czy naprawę powinieneś palić to coś?" + +#: lang/json/snippet_from_json.py +msgid ", that's going to ruin your nose." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Man, that stinks. Put it out!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "You're going to kill yourself smoking that stuff, ." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Oh, wow, that smell... Can I have some?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Ew, smells like burning rubber!" +msgstr "Fuj, śmierdzi jak palona guma!" + +#: lang/json/snippet_from_json.py +msgid "Ugh, that smells rancid!" +msgstr "Ugh, to śmierdzi jakby zjełczało!" + +#: lang/json/snippet_from_json.py +msgid "" +msgstr "" + #: lang/json/snippet_from_json.py msgid "Tell me about how you survived the cataclysm." msgstr "Opowiedz mi o tym jak przetrwałeś kataklizm." @@ -132072,6 +132993,10 @@ msgstr "Mój poprzedni właścicielka kwiczała jak świnia, gdy ją oprawiłem. msgid "\"Hello?\"" msgstr "\"Halo?\"" +#: lang/json/speech_from_json.py +msgid "\"Papaya!\"" +msgstr "" + #: lang/json/speech_from_json.py msgid "\"Who's there?\"" msgstr "\"Kto tam?\"" @@ -134642,8 +135567,8 @@ msgstr "Sklep z Ubraniami" #: lang/json/talk_topic_from_json.py msgid "" -"I'm my own person, but I'm willing to follow your lead. I can do a lot of things for you: I can fight, I can train you or you can train me, I can carry stuff, I can bandage your wounds, I can build faction camps, I can go places, I can guard things, I can even chit-chat with you or talk about my background. You can give me instructions in conversation or by radio or shout commands at me. \n" -"What do you want to know more about?" +"I'm my own person, but I'm willing to follow your lead. I can do a lot of things for you: I can fight, I can train you or you can train me, I can carry stuff, I can bandage your wounds, I can build faction camps, I can go places, I can guard things, I can even chit-chat with you or talk about my background. You can give me instructions in conversation or by radio or shout commands at me.\n" +" What do you want to know more about?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -134704,8 +135629,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If we're next to each other, you can just bump into me and we'll start talking, right? But if I'm farther away, you're going to have to shout a bit (use the 'C'hat command) for me to hear you. You'll need to see me for us to have a conversation. Or we can talk by radios if we both have them. \n" -"When we talk, you can give me instructions about how to fight or when to sleep or whatever. I'll mostly do them, and you can ask me what my current instructions are. Sometimes you'll give me two sets of instructions: a normal set, and an override for a specific situation. I'll tell you which instructions are overriden. You can set and clear overrides with shouted commands." +"If we're next to each other, you can just bump into me and we'll start talking, right? But if I'm farther away, you're going to have to shout a bit (use the 'C'hat command) for me to hear you. You'll need to see me for us to have a conversation. Or we can talk by radios if we both have them.\n" +" When we talk, you can give me instructions about how to fight or when to sleep or whatever. I'll mostly do them, and you can ask me what my current instructions are. Sometimes you'll give me two sets of instructions: a normal set, and an override for a specific situation. I'll tell you which instructions are overriden. You can set and clear overrides with shouted commands." msgstr "" #: lang/json/talk_topic_from_json.py @@ -134719,8 +135644,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Sometimes you need to give orders in a hurry. You can use the 'C'hat command to shout a single specific order. If I hear you, I'll do what you say, as will anyone else following you that hears it. \n" -"Some orders will override other instructions you've given me. If you change my instructions when I've got an override command, I'll tell you which ones are overridden. You can shout an order to clear any overrides." +"Sometimes you need to give orders in a hurry. You can use the 'C'hat command to shout a single specific order. If I hear you, I'll do what you say, as will anyone else following you that hears it.\n" +" Some orders will override other instructions you've given me. If you change my instructions when I've got an override command, I'll tell you which ones are overridden. You can shout an order to clear any overrides, or talk to me and tell me to clear them." msgstr "" #: lang/json/talk_topic_from_json.py @@ -134729,72 +135654,75 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"It's a dangerous world out there, right? So we fight to survive. I'm on your side, and I'll stick with you, but if I think the situation is too dangerous, I'll be honest, I'm going to run. If I see you running but I think it's safe, I'll stay and fight, but you can tell me run with you and I'll stick by you as best I can. \n" -"You can give me some instructions on when I should attack, but I'll make my own decisions about who - I'll try to defend myself and you, though, but if you tell me to stay in one place I'll stay there. \n" -"I'll use guns and grenades if I have them, but you can tell me to not use grenades or not use loud weapons or to not use ranged weapons at all. If I'm shooting, you can tell me how much to aim and whether to try to avoid shooting you or not. \n" -"I'll respect your rules for what types of weapons to use, but I'll choose what to use from my stuff. \n" -"You can also tell me to hold the line and fight at chokepoints, but I'm not great at recognizing them so I may go off to fight something elsewhere anyway." +"It's a dangerous world out there, right? So we fight to survive. I'm on your side, and I'll stick with you, but if I think the situation is too dangerous, I'll be honest, I'm going to run.\n" +" You can't tell me not to run, because I'm going to flee if things are bad, but you can tell me a safe place to retreat by using the zones manager (keybind 'Y'). I'll run toward the closest place you've designated - and you can set zones on vehicles, so if you've got a car, you could tell me to retreat there.\n" +" If I see you running but I think it's safe, I'll stay and fight, but you can tell me run with you and I'll stick by you as best I can.\n" +" You can give me some instructions on when I should attack, but I'll make my own decisions about who - I'll try to defend myself and you, but if you tell me to stay in one place I'll stay there.\n" +" I'll use guns and grenades if I have them, but you can tell me to not use grenades or not use loud weapons or to not use ranged weapons at all. If I'm shooting, you can tell me how much to aim and whether to try to avoid shooting you or not. I'm not so good at recognizing safe shots, so stay out of my line of fire no matter what.\n" +" I'll respect your rules for what types of weapons to use, but I'll choose what to use from my stuff.\n" +" You can also tell me to hold the line and fight at chokepoints, but I'm not great at recognizing them so I may go off to fight something elsewhere anyway." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If I'm better at a skill than you, I can help you improve. But it's boring to teach a lot, so I'm not going to do it very often. And I'm not going to do it when we're in danger or if I'm hungry or tired or if you're driving. \n" -"If we're someplace safe and you're reading a book that improves skills, I'll listen if I don't have that skill. You can even read me books for skills that you already have." +"If I'm better at a skill than you, I can help you improve. But it's boring to teach a lot, so I'm not going to do it very often. And I'm not going to do it when we're in danger or if I'm hungry or tired or if you're driving.\n" +" If we're someplace safe and you're reading a book that improves skills, I'll listen if I don't have that skill. You can even read me books for skills that you already have." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"You give me something to carry, I'll carry it. But I only have so many pockets and I'm only so strong, so I'll drop stuff that's too big to carry. \n" -"I'll also wear stuff - I'll decide what I want to wear, but you can take stuff from me. If I'm wearing something I shouldn't, you can bump into me and sort my armor to get me to take if off. \n" -"I don't like wearing a lot of gear, so if you give me a lot of bulky stuff and things that don't fit, I'm going to take them off and probably drop them. \n" -"Also, since we're friends, I'll give you anything I'm carrying, no questions asked. \n" -"Oh, yeah, if I'm hungry or thirsty and I'm carrying food, I'll eat it. So you might want to watch what you give me, y'know?" +"You give me something to carry, I'll carry it. But I only have so many pockets and I'm only so strong, so I'll drop stuff that's too big to carry.\n" +" I'll also wear stuff - I'll decide what I want to wear, but you can take stuff from me. If I'm wearing something I shouldn't, you can bump into me and sort my armor to get me to take if off.\n" +" I don't like wearing a lot of gear, so if you give me a lot of bulky stuff and things that don't fit, I'm going to take them off and probably drop them.\n" +" Also, since we're friends, I'll give you anything I'm carrying, no questions asked.\n" +" Oh, yeah, if I'm hungry or thirsty and I'm carrying food, I'll eat it. So you might want to watch what you give me, y'know?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If you call me by radio, you can tell me to come to you. If you've got some basecamps set up, you can tell me to go to one of them. I'll start walking, and when I get to where I'm going, I'll guard it. \n" -"Now depending on where I am and where I'm going, it may take me a while to get there. I'll dodge any dangers on the way, don't worry about that, but if you're way the heck away from me and tell me to come, it may be a while until I get to you." +"If you call me by radio, you can tell me to come to you. If you've got some basecamps set up, you can tell me to go to one of them. I'll start walking, and when I get to where I'm going, I'll guard it.\n" +" Now depending on where I am and where I'm going, it may take me a while to get there. I'll dodge any dangers on the way, don't worry about that, but if you're way the heck away from me and tell me to come, it may be a while until I get to you." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"You tell me to guard, I'll stay where I am and guard it - unless I'm in a vehicle, in which case I'll stick with the vehicle. \n" -"I'm not a potted plant, though, so if I hear something dangerous happening, I'm going to go see what it is instead of getting jumped in the dark. If you want me to stay put, tell me not to investigate noises - but if I get shot by some bandit because I can't see where he is and you don't want me to go looking, I won't be happy." +"You tell me to guard, I'll stay where I am and guard it - unless I'm in a vehicle, in which case I'll stick with the vehicle.\n" +" I'm not a potted plant, though, so if I hear something dangerous happening, I'm going to go see what it is instead of getting jumped in the dark. If you want me to stay put, tell me not to investigate noises - but if I get shot by some bandit because I can't see where he is and you don't want me to go looking, I won't be happy.\n" +" You can also use the zone manager (keybind 'Y') to set up no-investigate zone, so if there's some monsters behind a door that you know about, I can ignore them. You can also set on an investigate-only zone, and I won't investigate noises coming from outside the zone. The no-investigate zone takes precedence over the investigate-only, if there's a noise coming from some place in both zones. And if you've got an investigate-only zone set anywhere, even if it's far away, I won't investigate noises coming from outside of it, so be careful with those zones. Like I said, I don't want to get sniped by some bandit because you told me not to go looking for him - but I also don't want to go investigate something pounding at door only to find out it's some horrible monster you forgot to warn me about." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Just in case - how do I tell you to stay put?" +msgid "Just in case - how else can I tell you to stay put?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"We can chit-chat, if you want. People are social animals, right? A little light conversation can do wonders for your mood. But I don't want to be yapping all the time, so if we've chatted recently, I probably am not going to want to talk for a bit. \n" -"You can also ask me about my background. I may not want to talk about it, though." +"We can chit-chat, if you want. People are social animals, right? A little light conversation can do wonders for your mood. But I don't want to be yapping all the time, so if we've chatted recently, I probably am not going to want to talk for a bit.\n" +" You can also ask me about my background. I may not want to talk about it, though." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"You can give me a bunch of instructions. Talk to me about the miscellaneous rules, and I'll tell you what I'm doing and you can give a new instruction. Sometimes you'll have shouted a command that overrides your other instructions, and I'll tell you which instructions are overridden. \n" -"I'm not a chatterbox, but I'll tell you when I see or hear danger or if I'm hurt or hungry or something. You don't want me doing that, you just tell me. \n" -"Also, I'll pulp zombies if you'd like - I would prefer that. \n" -"If I hear something suspicious and can't see if, I'll go take a look, but you can tell me not to do that. \n" -" I'll open and close doors, or open them and leave them ajar, or not going through closed doors. You just tell me what you want. \n" -"I can pick stuff up if want me to, and you can tell me what to pick up. If I've got a bow or crossbow, please tell me to pick up the ammo - it's less fuss for both of us. \n" -"If you've got a vehicle, you can e'x'amine it and use the cre'w' command to assign me a seat. That saves arguments about who needs to sit where." +"You can give me a bunch of instructions. Talk to me about the miscellaneous rules, and I'll tell you what I'm doing and you can give a new instruction. Sometimes you'll have shouted a command that overrides your other instructions, and I'll tell you which instructions are overridden.\n" +" I'm not a chatterbox, but I'll tell you when I see or hear danger or if I'm hurt or hungry or something. You don't want me doing that, you just tell me.\n" +" Also, I'll pulp zombies if you'd like - I would prefer that.\n" +" If I hear something suspicious and can't see if, I'll go take a look, but you can tell me not to do that.\n" +" I'll open and close doors, or open them and leave them ajar, or not going through closed doors. You just tell me what you want.\n" +" I can pick stuff up if want me to, and you can tell me what to pick up. If I've got a bow or crossbow, please tell me to pick up the ammo - it's less fuss for both of us.\n" +" If you've got a vehicle, you can e'x'amine it and use the cre'w' command to assign me a seat. That saves arguments about who needs to sit where." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Here's the list of shouted commands I'll respond to: \n" -"Order me to guard, and I'll stay where I am and watch out for danger. I'll investigate suspicious noises unless you told me not to. \n" -"Order me to follow, and I'll stop guarding and go back to following you. \n" -"Order me to stay awake, and I'll stay awake until I'm too tired to keep my eyes open. \n" -"Order me to sleep when tired, and I'll nap when I get tired. I'll try to tell you when I'm off to bed unless you don't want to hear it. \n" -"Order me to flee, and I'll stick close to you when you run from danger. I won't go running off on my own - though if things really bad, I might be running away already! \n" -"Order me to stop running, and I'll evaluate the danger myself and might go off and fight something while you're doing other things. \n" -"Ordering me to prepare for danger is special: it's an override command. That means I'm going to follow certain instructions, even if you've given me other instructions earlier. Specifically, I'm going to flee with you, I'm not going to open or close doors, I'm not going to sleep until I'm exhausted, and I'm going to try to hold any chokepoints that you're fighting at. \n" -"Ordering me to relax from danger is another special command, and it will clear any overrides I currently have and I'll go back to whatever instructions I had before you told me to prepare for danger." +"Here's the list of shouted commands I'll respond to:\n" +" - Order me to guard, and I'll stay where I am and watch out for danger. I'll investigate suspicious noises unless you told me not to.\n" +" - Order me to follow, and I'll stop guarding and go back to following you.\n" +" - Order me to stay awake, and I'll stay awake until I'm too tired to keep my eyes open.\n" +" - Order me to sleep when tired, and I'll nap when I get tired. I'll try to tell you when I'm off to bed unless you don't want to hear it.\n" +" - Order me to flee, and I'll stick close to you when you run from danger. I won't go running off on my own - though if things really bad, I might be running away already!\n" +" - Order me to stop running, and I'll evaluate the danger myself and might go off and fight something while you're doing other things.\n" +" - Ordering me to prepare for danger is special: it's an override command. That means I'm going to follow certain instructions, even if you've given me other instructions earlier. Specifically, I'm going to flee with you, I'm not going to open or close doors, I'm not going to sleep until I'm exhausted, and I'm going to try to hold any chokepoints that you're fighting at.\n" +" - Ordering me to relax from danger is another special command, and it will clear any overrides I currently have and I'll go back to whatever instructions I had before you told me to prepare for danger." msgstr "" #: lang/json/talk_topic_from_json.py @@ -135076,6 +136004,10 @@ msgstr "Pobudka!" msgid "Go back to sleep." msgstr "Śpij dalej." +#: lang/json/talk_topic_from_json.py +msgid "What is it, friend?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Combat commands..." msgstr "Rozkazy walki..." @@ -135085,11 +136017,7 @@ msgid "Can you teach me anything?" msgstr "Możesz mnie czegoś nauczyć?" #: lang/json/talk_topic_from_json.py -msgid "Let's trade items" -msgstr "Pohandlujmy." - -#: lang/json/talk_topic_from_json.py -msgid "Guard this position" +msgid "Guard this position." msgstr "Stój tu na straży." #: lang/json/talk_topic_from_json.py @@ -135097,12 +136025,12 @@ msgid "I'd like to know a bit more about you..." msgstr "Chciałbym się dowiedzieć o tobie czegoś więcej..." #: lang/json/talk_topic_from_json.py -msgid "I want you to use this item" -msgstr "Użyj tego przedmiotu" +msgid "I want you to use this item." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hold on to this item" -msgstr "Weź ten przedmiot" +msgid "Hold on to this item." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Miscellaneous rules..." @@ -135233,10 +136161,6 @@ msgstr "Tak, to pewne. Żegnaj." msgid "Nah, I'm just kidding." msgstr "Nah, to tylko żarty." -#: lang/json/talk_topic_from_json.py -msgid "*pshhhttt* I'm reading you boss, over." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Stay at your current position." msgstr "Zostań na swojej obecnej pozycji." @@ -135703,7 +136627,7 @@ msgstr "Okej, ruszajmy!" msgid "Yeah... I don't think so." msgstr "Taaak... nie sądzę." -#: lang/json/talk_topic_from_json.py src/npctalk.cpp +#: lang/json/talk_topic_from_json.py msgid "What is it?" msgstr "O co chodzi?" @@ -135883,6 +136807,28 @@ msgstr "Okej, niech będzie, żegnaj!" msgid "Okay" msgstr "Okej" +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm willing to pay per batch for a total of " +"." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Works for me." +msgstr "Dla mnie bomba." + +#: lang/json/talk_topic_from_json.py +msgid "Maybe later." +msgstr "Może później." + +#: lang/json/talk_topic_from_json.py +msgid "Pleasure doing business!" +msgstr "Miło było robić interesy!" + +#: lang/json/talk_topic_from_json.py +msgid "You might be seeing more of me..." +msgstr "Jeszcze mnie zobaczysz..." + #: lang/json/talk_topic_from_json.py msgid "Hey again. *kzzz*" msgstr "Witaj ponownie. *ksss*" @@ -135972,15 +136918,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Not if I kill you first!" -msgstr "" +msgstr "Nie, jeśli zabiję cię pierwszy!" #: lang/json/talk_topic_from_json.py msgid "I'm sorry! I shouldn't have said that!" -msgstr "" +msgstr "Wybacz! Nie powinien był tego mówić." #: lang/json/talk_topic_from_json.py msgid "Yeah, *beeeeep* I don't think so. Bye." -msgstr "" +msgstr "Taaak, *piiiiiip* nie sądzę. Bywaj." #: lang/json/talk_topic_from_json.py msgid "Suit yourself." @@ -136099,7 +137045,7 @@ msgstr "W porządku." #: lang/json/talk_topic_from_json.py msgid "A good word might be helpful. What do you need?" -msgstr "" +msgstr "Dobre słowo może być pomocne. Czego ci trzeba?" #: lang/json/talk_topic_from_json.py msgid "Old Guard huh, I'll go talk to him!" @@ -136689,7 +137635,7 @@ msgstr "Powiedz mi jak działają obozy frakcji." #: lang/json/talk_topic_from_json.py msgid "Tell me how faction camps have changed." -msgstr "" +msgstr "Powiedz mi jak zmieniły się obozy frakcji." #: lang/json/talk_topic_from_json.py msgid "I want you to build a camp here." @@ -136701,7 +137647,7 @@ msgstr "Nic takiego. Porozmawiajmy o czymś innym." #: lang/json/talk_topic_from_json.py msgid "Never mind, let's talk about other things you can do" -msgstr "" +msgstr "Nieważne, porozmawiajmy o innych rzeczach, które możesz robić" #: lang/json/talk_topic_from_json.py msgid "Nothing. Lets' get back to work." @@ -136727,7 +137673,7 @@ msgstr "Nieważne, wróćmy do rozmowy o obozach." #: lang/json/talk_topic_from_json.py msgid "Never mind, let's talk about other things you can do." -msgstr "" +msgstr "Nieważne, porozmawiajmy o innych rzeczach, które możesz robić." #: lang/json/talk_topic_from_json.py msgid "Never mind, let's talk about something else." @@ -136848,10 +137794,6 @@ msgstr "Co trzeba zrobić?" msgid "Yes, set up the bulletin board and then go back to normal duties." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Hope you're here to trade." -msgstr "Liczę że jesteś tu by handlować." - #: lang/json/talk_topic_from_json.py msgid "" "I oversee the food stocks for the center. There was significant looting " @@ -136908,6 +137850,14 @@ msgstr "" msgid "Interesting..." msgstr "Interesujące..." +#: lang/json/talk_topic_from_json.py +msgid "Hope you're here to trade." +msgstr "Liczę że jesteś tu by handlować." + +#: lang/json/talk_topic_from_json.py +msgid "Who are you?" +msgstr "Kim jesteś?" + #: lang/json/talk_topic_from_json.py msgid "Mind if we just chat for a bit?" msgstr "Co powiesz na małą pogawędkę?" @@ -137168,10 +138118,6 @@ msgstr "Marszalu..." msgid "Citizen..." msgstr "Obywatelu..." -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Who are you?" -msgstr "Kim jesteś?" - #: lang/json/talk_topic_from_json.py msgid "Is there any way I can join the 'Old Guard'?" msgstr "Jest jakiś sposób bym dołączył do 'Starej Gwardii'?" @@ -137791,10 +138737,6 @@ msgstr "[$2000, 1d] 10 kłód" msgid "[$12000, 7d] 100 logs" msgstr "[$12000, 7d] 100 kłód" -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Maybe later." -msgstr "Może później." - #: lang/json/talk_topic_from_json.py msgid "I'll be back later." msgstr "Wrócę później." @@ -148137,7 +149079,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "half-built column" -msgstr "" +msgstr "nieukończona kolumna" #. ~ Description for half-built column #: lang/json/terrain_from_json.py @@ -148146,6 +149088,10 @@ msgid "" "rebar foundation. It isn't capable of supporting roofs or shelter, and " "appears to need more resources before being considered complete." msgstr "" +"Pusta drewniana rama w kształcie kolumny, zbudowana na fundamencie z betonu " +"i prętów zbrojeniowych. Nie jest w stanie utrzymać dachów ani schronienia i " +"wydaje się, że potrzebuje więcej zasobów, zanim zostanie uznana za " +"kompletną." #: lang/json/terrain_from_json.py msgid "column" @@ -148154,7 +149100,7 @@ msgstr "kolumna" #. ~ Description for column #: lang/json/terrain_from_json.py msgid "A concrete column." -msgstr "" +msgstr "Betonowa kolumna." #: lang/json/terrain_from_json.py msgid "cloning vat" @@ -148688,7 +149634,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "grave" -msgstr "" +msgstr "grób" #. ~ Description for grave #: lang/json/terrain_from_json.py @@ -148878,6 +149824,10 @@ msgstr "precyzyjnie tnący" msgid "glare protection" msgstr "chroniący przed blaskiem" +#: lang/json/tool_quality_from_json.py +msgid "anesthesia" +msgstr "znieczulenie" + #: lang/json/tool_quality_from_json.py msgid "smoothing" msgstr "wygładzający" @@ -149607,7 +150557,7 @@ msgstr "Tandem" #: lang/json/vehicle_from_json.py msgid "Children's Tricycle" -msgstr "" +msgstr "Dziecięcy Rowerek Trójkołowy" #: lang/json/vehicle_from_json.py msgid "Unicycle" @@ -149615,7 +150565,7 @@ msgstr "Unicykl" #: lang/json/vehicle_from_json.py msgid "4x4 Car" -msgstr "" +msgstr "Samochód z Napędem na Cztery Koła" #: lang/json/vehicle_from_json.py msgid "Beetle" @@ -149951,11 +150901,11 @@ msgstr "unikalny_pusty" #: lang/json/vehicle_from_json.py msgid "Gas Tanker" -msgstr "" +msgstr "Cysterna" #: lang/json/vehicle_from_json.py msgid "Water Tanker" -msgstr "" +msgstr "Cysterna Wodna" #: lang/json/vehicle_from_json.py msgid "Sports Bike" @@ -150126,10 +151076,6 @@ msgstr "Przejście." msgid "wooden aisle" msgstr "drewniane przejście" -#: lang/json/vehicle_part_from_json.py -msgid "floor trunk" -msgstr "bagażnik podłogowy" - #. ~ Description for floor trunk #: lang/json/vehicle_part_from_json.py msgid "An aisle. A hatch lets you access a cargo space beneath it." @@ -150911,13 +151857,9 @@ msgstr "" msgid "" "A sophisticated set of electronic controls that allow you to control the " "vehicle from a vehicle remote while you are not in it. You can 'e'xamine " -"the tile or attempt to pick-up items (default ',') to access the controls, " -"or use the vehicle control key (default '^')." +"the tile to access the controls, or use the vehicle control key (default " +"'^')." msgstr "" -"Złożony elektroniczny zestaw sterujący pozwalający na zdalną kontrolę " -"pojazdu gdy jesteś poza nim. Możesz zbadać pole (domyślnie 'e') lub " -"spróbować podnieść przedmiot (domyślnie ',') by uzyskać dostęp do " -"sterowania, albo użyć przycisku kontrolującego pojazd (domyślne '^')." #: lang/json/vehicle_part_from_json.py msgid "camera control system" @@ -150928,14 +151870,9 @@ msgstr "system kontroli kamer" msgid "" "An LCD display attached to one or more cameras. When turned on, it lets you" " see from the cameras, but drains power from the vehicle's batteries. You " -"can 'e'xamine the tile or attempt to pick-up items (default ',') to access " -"the controls, or use the vehicle control key (default '^')." +"can 'e'xamine the tile to access the controls, or use the vehicle control " +"key (default '^')." msgstr "" -"Wyświetlacz LCD podłączony do jednego lub więcej kamer Po włączeniu pozwala " -"ci obserwować obraz z kamery, ale zużywa prąd z akumulatorów pojazdu. Możesz" -" zbadać pole (domyślnie 'e') lub spróbować podnieść przedmiot (domyślnie " -"',') by uzyskać dostęp do sterowania, albo użyć przycisku kontrolującego " -"pojazd (domyślne '^')." #. ~ Description for security camera #: lang/json/vehicle_part_from_json.py @@ -151310,10 +152247,8 @@ msgstr "Silnik spalinowy. Spala paliwo ze zbiornika w pojeździe." #: lang/json/vehicle_part_from_json.py msgid "" "A combustion engine. Burns diesel fuel from a tank in the vehicle. Can " -"also burn methanol, ethanol, or lamp oil, though somewhat less efficiently." +"also burn biodiesel or lamp oil, though somewhat less efficiently." msgstr "" -"Silnik spalinowy. Spala diesel ze zbiornika w pojeździe. Może też spalać " -"metanol, etanol, i olej do lamp, choć nieco mniej efektywnie." #: lang/json/vehicle_part_from_json.py msgid "A combustion engine. Burns gasoline fuel from a tank in the vehicle." @@ -153831,7 +154766,7 @@ msgstr "Odkrywasz %s!" #: src/activity_handlers.cpp msgid "You discover only damaged organs." -msgstr "" +msgstr "Odkrywasz tylko uszkodzone organy." #: src/activity_handlers.cpp msgid "None of your cutting tools are suitable for butchering." @@ -154416,7 +155351,7 @@ msgstr "Robiąc to niczego się już nie nauczysz." #: src/activity_handlers.cpp #, c-format msgid "%s %s\n" -msgstr "" +msgstr "%s %s\n" #: src/activity_handlers.cpp #, c-format @@ -154431,12 +155366,12 @@ msgstr "" #: src/activity_handlers.cpp #, c-format msgid "Success chance: %.1f%%\n" -msgstr "" +msgstr "Szansa powodzenia: %.1f%%\n" #: src/activity_handlers.cpp #, c-format msgid "Damage chance: %.1f%%" -msgstr "" +msgstr "Szansa uszkodzenia: %.1f%%" #: src/activity_handlers.cpp #, c-format @@ -154567,26 +155502,26 @@ msgstr "hsh!" #: src/activity_handlers.cpp msgid "Something crawls out of the coffin!" -msgstr "" +msgstr "Coś wypełzło z trumny!" #: src/activity_handlers.cpp msgctxt "memorial_male" msgid "Exhumed a grave." -msgstr "" +msgstr "Ekshumowałeś grób." #: src/activity_handlers.cpp msgctxt "memorial_female" msgid "Exhumed a grave." -msgstr "" +msgstr "Ekshumowałeś grób." #: src/activity_handlers.cpp msgid "You finish exhuming a grave." -msgstr "" +msgstr "Kończysz ekshumować grób." #: src/activity_handlers.cpp #, c-format msgid "You finish digging the %s." -msgstr "" +msgstr "Kończysz wykopywanie %s." #: src/activity_handlers.cpp #, c-format @@ -158231,6 +159166,34 @@ msgstr "Bez Podnoszenia przez NPC" msgid "Friendly NPCs don't pickup items inside the zone." msgstr "Przyjaźni NPC nie podnoszą rzeczy wewnątrz obszaru." +#: src/clzones.cpp +msgid "NPC Retreat" +msgstr "" + +#: src/clzones.cpp +msgid "" +"When fleeing, friendly NPCs will attempt to retreat toward this zone if it " +"is within 60 tiles." +msgstr "" + +#: src/clzones.cpp +msgid "NPC Ignore Sounds" +msgstr "" + +#: src/clzones.cpp +msgid "Friendly NPCs won't investigate unseen sounds coming from this zone." +msgstr "" + +#: src/clzones.cpp +msgid "NPC Investigation Area" +msgstr "" + +#: src/clzones.cpp +msgid "" +"Friendly NPCs will investigate unseen sounds only if they come from inside " +"this area." +msgstr "" + #: src/clzones.cpp msgid "Loot: Unsorted" msgstr "Łup: Nieposortowane" @@ -160542,11 +161505,6 @@ msgctxt "in progress craft" msgid " starts working on the %s." msgstr " zaczyna pracę nad %s." -#: src/crafting.cpp -#, c-format -msgid "%s helps with crafting..." -msgstr "%s pomaga ci w produkcji..." - #: src/crafting.cpp #, c-format msgid "%s assists with crafting..." @@ -160562,6 +161520,11 @@ msgstr "%s asystuje ci w masowej produkcji..." msgid "%s watches you craft..." msgstr "%s obserwuje cię przy procesie wytwarzania..." +#: src/crafting.cpp +#, c-format +msgid "%s helps with crafting..." +msgstr "%s pomaga ci w produkcji..." + #: src/crafting.cpp #, c-format msgid "You fail to make the %s, and waste some materials." @@ -160587,6 +161550,17 @@ msgstr "Wytwarzasz %s używając książki za wzór." msgid "You memorized the recipe for %s!" msgstr "Zapamiętujesz przepis na %s!" +#: src/crafting.cpp +#, c-format +msgid "You don't know the recipe for the %s and can't continue crafting." +msgstr "" + +#: src/crafting.cpp +#, c-format +msgid "" +" doesn't know the recipe for the %s and can't continue crafting." +msgstr "" + #: src/crafting.cpp #, c-format msgid "%s (%d/%d nearby)" @@ -161183,6 +162157,190 @@ msgstr "" "NaciśnijC (lub c) by skopiować tą " "wiadomość do schowka." +#: src/debug_menu.cpp +msgid "Mutate" +msgstr "Mutuj" + +#: src/debug_menu.cpp +msgid "Change all skills" +msgstr "Zmień wszystkie umiejętności" + +#: src/debug_menu.cpp +msgid "Learn all melee styles" +msgstr "Naucz się wszystkich stylów walki" + +#: src/debug_menu.cpp +msgid "Unlock all recipes" +msgstr "Odblokuj wszystkie receptury" + +#: src/debug_menu.cpp +msgid "Edit player/NPC" +msgstr "Edytuj gracza/NPC" + +#: src/debug_menu.cpp +msgid "Damage self" +msgstr "" + +#: src/debug_menu.cpp +msgid "Set automove route" +msgstr "Ustaw trasę autoruchu" + +#: src/debug_menu.cpp +msgid "Player..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Check game state" +msgstr "" + +#: src/debug_menu.cpp +msgid "Display hordes" +msgstr "Wyświetl hordy" + +#: src/debug_menu.cpp +msgid "Test item group" +msgstr "" + +#: src/debug_menu.cpp +msgid "Show sound clustering" +msgstr "" + +#: src/debug_menu.cpp +msgid "Display weather" +msgstr "Wyświetl pogodę" + +#: src/debug_menu.cpp +msgid "Display overmap scents" +msgstr "Wyświetl mapę zapachów" + +#: src/debug_menu.cpp +msgid "Show mutation category levels" +msgstr "Pokaż poziomy kategorii mutacji" + +#: src/debug_menu.cpp +msgid "Draw benchmark (X seconds)" +msgstr "Benchmark 'rysowania' (5 sekund)" + +#: src/debug_menu.cpp +msgid "Test trait group" +msgstr "Testuj grupę cech" + +#: src/debug_menu.cpp +msgid "Show debug message" +msgstr "Pokaż wiadomości debug" + +#: src/debug_menu.cpp +msgid "Crash game (test crash handling)" +msgstr "Zawieś grę (test postępowania z zawieszeniem gry)" + +#: src/debug_menu.cpp +msgid "Toggle NPC pathfinding on map" +msgstr "" + +#: src/debug_menu.cpp +msgid "Info..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - short range" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - long range" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - adjacent overmap" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn an item" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn NPC" +msgstr "Spawnuj NPC" + +#: src/debug_menu.cpp +msgid "Spawn monster" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn a vehicle" +msgstr "Spawnuj pojazd" + +#: src/debug_menu.cpp +msgid "Spawn artifact" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn clairvoyance artifact" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawning..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Reveal map" +msgstr "Odkryj mapę" + +#: src/debug_menu.cpp +msgid "Kill NPCs" +msgstr "Zabij NPC..." + +#: src/debug_menu.cpp +msgid "Map editor" +msgstr "Edytor map" + +#: src/debug_menu.cpp +msgid "Change weather" +msgstr "Zmień pogodę" + +#: src/debug_menu.cpp +msgid "Change wind direction" +msgstr "Zmień kierunek wiatru" + +#: src/debug_menu.cpp +msgid "Change wind speed" +msgstr "Zmień siłę wiatru" + +#: src/debug_menu.cpp +msgid "Kill all monsters" +msgstr "Zabij wszystkie potwory" + +#: src/debug_menu.cpp +msgid "Change time" +msgstr "Zmień czas" + +#: src/debug_menu.cpp +msgid "Overmap editor" +msgstr "Edytor mapy zasadniczej" + +#: src/debug_menu.cpp +msgid "Spawn map extra" +msgstr "" + +#: src/debug_menu.cpp +msgid "Map..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Quit to main menu" +msgstr "" + +#: src/debug_menu.cpp +msgid "" +"Debug Functions - Using these will cheat not only the game, but yourself.\n" +"You won't grow. You won't improve.\n" +"Taking this shortcut will gain you nothing. Your victory will be hollow.\n" +"Nothing will be risked and nothing will be gained." +msgstr "" + #: src/debug_menu.cpp #, c-format msgid "You teleport to point (%d,%d,%d)." @@ -161625,6 +162783,210 @@ msgstr "Usuń misję bez właściwego posporzątania" msgid "Drew %d times in %.3f seconds. (%.3f fps average)" msgstr "Narysowano %d razy w %.3f sekund. (%.3f FPS przeciętnie)" +#: src/debug_menu.cpp +msgid "Current overmap revealed." +msgstr "Obecna mapa zasadnicza ujawniona." + +#: src/debug_menu.cpp +#, c-format +msgid "Location %d:%d in %d:%d, %s\n" +msgstr "Lokacja %d:%d in %d:%d, %s\n" + +#: src/debug_menu.cpp +#, c-format +msgid "" +"Current turn: %d.\n" +"%s\n" +msgstr "" +"Obecna tura: %d.\n" +"%s\n" + +#: src/debug_menu.cpp +#, c-format +msgid "%d creature exists.\n" +msgid_plural "%d creatures exist.\n" +msgstr[0] "%d stworzenie istnieje.\n" +msgstr[1] "%d stworzeń istnieje.\n" +msgstr[2] "%d stworzeń istnieje.\n" +msgstr[3] "%d stworzeń istnieje.\n" + +#: src/debug_menu.cpp +msgid "NPCs are going to spawn." +msgstr "NPC się pojawią." + +#: src/debug_menu.cpp +msgid "NPCs are NOT going to spawn." +msgstr "NPC się NIE pojawią." + +#: src/debug_menu.cpp +#, c-format +msgid "%s: map ( %d:%d ) pos ( %d:%d )" +msgstr "%s: mapa (%d:%d) poz (%d:%d)" + +#: src/debug_menu.cpp +#, c-format +msgid "(you: %d:%d)" +msgstr "(ty: %d:%d)" + +#: src/debug_menu.cpp +#, c-format +msgid "Stomach Contents: %d ml / %d ml kCal: %d, Water: %d ml" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "" +"Guts Contents: %d ml / %d ml kCal: %d, Water: %d ml\n" +"Hunger: %d, Thirst: %d, kCal: %d / %d" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "%s's head implodes!" +msgstr "Głowa %s imploduje!" + +#: src/debug_menu.cpp +msgid "Choose vehicle to spawn" +msgstr "Wybierz pojazd który ma się pojawić" + +#. ~ Menu entry in vehicle wish menu: 1st string: displayed name, 2nd string: +#. internal name of vehicle +#: src/debug_menu.cpp +#, c-format +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + +#: src/debug_menu.cpp +msgid "Martial arts debug." +msgstr "Dubugowanie sztuk walki." + +#: src/debug_menu.cpp +msgid "Your eyes blink rapidly as knowledge floods your brain." +msgstr "Twoje powieki gwałtownie mrugają gdy wiedza zalewa ci umysł." + +#: src/debug_menu.cpp +msgid "You now know a lot more than just 10 styles of kung fu." +msgstr "Teraz znasz o wiele więcej niż tylko 10 stylów kung fu." + +#: src/debug_menu.cpp +msgid "Recipe debug." +msgstr "Debugowanie receptur." + +#: src/debug_menu.cpp +msgid "You know how to craft that now." +msgstr "Teraz wiesz jak to wytworzyć." + +#: src/debug_menu.cpp +msgid "Select new weather pattern:" +msgstr "Wybierz nowy rodzaj pogody:" + +#: src/debug_menu.cpp +msgid "Disable weather forcing" +msgstr "Wyłącz wymuszanie pogody" + +#: src/debug_menu.cpp +msgid "Keep normal weather patterns" +msgstr "Zachowaj normalne zjawiska pogodowe" + +#: src/debug_menu.cpp +msgid "Select new wind direction:" +msgstr "Wybierz nowy kierunek wiatru:" + +#: src/debug_menu.cpp +msgid "Disable direction forcing" +msgstr "Wyłącz wymuszenie kierunku" + +#: src/debug_menu.cpp +msgid "Keep normal wind direction" +msgstr "Zachowaj normalny kierunek wiatru" + +#: src/debug_menu.cpp +msgid "Select new wind speed:" +msgstr "Wybierz nową prędkość wiatru:" + +#: src/debug_menu.cpp +msgid "Disable speed forcing" +msgstr "Wyłącz wymuszenie prędkości" + +#: src/debug_menu.cpp +msgid "Keep normal wind speed" +msgstr "Zachowaj normalną prędkość wiatru" + +#: src/debug_menu.cpp +#, c-format +msgid "Damage self for how much? hp: %d" +msgstr "Jak bardzo chcesz się uszkodzić? hp: %d" + +#: src/debug_menu.cpp +msgid "This binary was not compiled with tiles support." +msgstr "" +"Ten element binarny nie został skompilowany ze wsparciem obsługi kafelek." + +#: src/debug_menu.cpp +msgid "year" +msgstr "rok" + +#: src/debug_menu.cpp +msgid "season" +msgstr "pora roku" + +#: src/debug_menu.cpp +msgid "day" +msgstr "dzień" + +#: src/debug_menu.cpp +msgid "hour" +msgstr "godzina" + +#: src/debug_menu.cpp +msgid "minute" +msgstr "minuta" + +#: src/debug_menu.cpp src/martialarts.cpp src/martialarts.cpp +msgid "turn" +msgid_plural "turns" +msgstr[0] "tura" +msgstr[1] "tur" +msgstr[2] "tur" +msgstr[3] "tur" + +#: src/debug_menu.cpp +msgid "Set year to?" +msgstr "Ustaw rok na?" + +#: src/debug_menu.cpp +msgid "Set season to? (0 = spring)" +msgstr "Ustaw porę roku na? (0 = wiosna)" + +#: src/debug_menu.cpp +msgid "Set days to?" +msgstr "Ustaw dni na?" + +#: src/debug_menu.cpp +msgid "Set hour to?" +msgstr "Ustaw godzinę na?" + +#: src/debug_menu.cpp +msgid "Set minute to?" +msgstr "Ustaw minuty na?" + +#: src/debug_menu.cpp +#, c-format +msgid "Set turn to? (One day is %i turns)" +msgstr "Ustaw turę na? (Jeden dzień to %i tur)" + +#: src/debug_menu.cpp +msgid "Enter benchmark length (in milliseconds):" +msgstr "Wprowadź czas benchmarku (w milisekundach):" + +#: src/debug_menu.cpp +msgid "" +"Quit without saving? This may cause issues such as duplicated or missing " +"items and vehicles!" +msgstr "" +"Wyjść bez zapisywania? To może spowodować problemy takie jak zduplikowane " +"lub brakujące przedmioty i pojazdy!" + #: src/defense.cpp #, c-format msgid "Please wait as the map generates [ 0%% ]" @@ -163203,6 +164565,10 @@ msgstr "Podąża za tobą" msgid "Leading" msgstr "Przewodzi" +#: src/faction.cpp +msgid "Patrolling" +msgstr "" + #: src/faction.cpp msgid "Guarding" msgstr "Stróżuje" @@ -164339,6 +165705,10 @@ msgstr "" msgid "Select an end point." msgstr "Wybierz punkt końcowy." +#: src/faction_camp.cpp +msgid "Spiked pits must be built over existing trenches!" +msgstr "" + #: src/faction_camp.cpp msgid "Invalid terrain in construction path." msgstr "Niewłaściwy teren w linii budowy." @@ -164885,14 +166255,6 @@ msgstr "Nie ma przedmiotów w punkcie zrzutu..." msgid "You distribute %d kcal worth of food to your companions." msgstr "Rozdajesz ekwiwalent %d kcal żywności wśród swoich towarzyszy." -#: src/faction_camp.cpp -msgid "Accessed camp inventory whilst position does not refer to a camp" -msgstr "" - -#: src/faction_camp.cpp -msgid "consume components for camp mission, but no camp found" -msgstr "" - #: src/faction_camp.cpp #, c-format msgid "While %s, a silent specter approaches %s..." @@ -165360,26 +166722,6 @@ msgstr "gęsty grzybobójczy gaz" msgid "smoke vent" msgstr "komin" -#: src/field.cpp -msgid "Whew... smells like skunk!" -msgstr "Fiuuu... cuchnie jak skunks!" - -#: src/field.cpp -msgid "Man, that smells like some good shit!" -msgstr "Stary, to pachnie jak niezły towar!" - -#: src/field.cpp -msgid "I don't know... should you really be smoking that stuff?" -msgstr "No nie wiem... czy naprawę powinieneś palić to coś?" - -#: src/field.cpp -msgid "Ew, smells like burning rubber!" -msgstr "Fuj, śmierdzi jak palona guma!" - -#: src/field.cpp -msgid "Ugh, that smells rancid!" -msgstr "Ugh, to śmierdzi jakby zjełczało!" - #: src/field.cpp #, c-format msgid "A %s hits you!" @@ -165931,373 +167273,6 @@ msgstr "dane stanu UI" msgid "Failed to save game data" msgstr "Nie udało się zapisać danych gry" -#: src/game.cpp -msgid "" -"Debug Functions - Using these will cheat not only the game, but yourself. You won't grow. You won't improve.\n" -"Taking this shortcut will gain you nothing. Your victory will be hollow.\n" -"Nothing will be risked and nothing will be gained." -msgstr "" - -#: src/game.cpp -msgid "Wish for an item" -msgstr "Zażycz sobie przedmiotu" - -#: src/game.cpp -msgid "Teleport - Short Range" -msgstr "Teleportacja - Krótki Zasięg" - -#: src/game.cpp -msgid "Teleport - Long Range" -msgstr "Teleportacja - Daleki Zasięg" - -#: src/game.cpp -msgid "Reveal map" -msgstr "Odkryj mapę" - -#: src/game.cpp -msgid "Spawn NPC" -msgstr "Spawnuj NPC" - -#: src/game.cpp -msgid "Spawn Monster" -msgstr "Spawnuj Potwora" - -#: src/game.cpp -msgid "Check game state..." -msgstr "Sprawdź stan gry..." - -#: src/game.cpp -msgid "Kill NPCs" -msgstr "Zabij NPC..." - -#: src/game.cpp -msgid "Mutate" -msgstr "Mutuj" - -#: src/game.cpp -msgid "Spawn a vehicle" -msgstr "Spawnuj pojazd" - -#: src/game.cpp -msgid "Change all skills" -msgstr "Zmień wszystkie umiejętności" - -#: src/game.cpp -msgid "Learn all melee styles" -msgstr "Naucz się wszystkich stylów walki" - -#: src/game.cpp -msgid "Unlock all recipes" -msgstr "Odblokuj wszystkie receptury" - -#: src/game.cpp -msgid "Edit player/NPC" -msgstr "Edytuj gracza/NPC" - -#: src/game.cpp -msgid "Spawn Artifact" -msgstr "Spawnuj Artefakt" - -#: src/game.cpp -msgid "Spawn Clairvoyance Artifact" -msgstr "Spawnuj Artefakt Jasnowidzenia" - -#: src/game.cpp -msgid "Map editor" -msgstr "Edytor map" - -#: src/game.cpp -msgid "Change weather" -msgstr "Zmień pogodę" - -#: src/game.cpp -msgid "Change wind direction" -msgstr "Zmień kierunek wiatru" - -#: src/game.cpp -msgid "Change wind speed" -msgstr "Zmień siłę wiatru" - -#: src/game.cpp -msgid "Kill all monsters" -msgstr "Zabij wszystkie potwory" - -#: src/game.cpp -msgid "Display hordes" -msgstr "Wyświetl hordy" - -#: src/game.cpp -msgid "Test Item Group" -msgstr "Testuj Grupę Przedmiotów" - -#: src/game.cpp -msgid "Damage Self" -msgstr "Zadaj Sobie Obrażenia" - -#: src/game.cpp -msgid "Show Sound Clustering" -msgstr "Pokaż Gromadzenie Dźwięków" - -#: src/game.cpp -msgid "Display weather" -msgstr "Wyświetl pogodę" - -#: src/game.cpp -msgid "Display overmap scents" -msgstr "Wyświetl mapę zapachów" - -#: src/game.cpp -msgid "Change time" -msgstr "Zmień czas" - -#: src/game.cpp -msgid "Set automove route" -msgstr "Ustaw trasę autoruchu" - -#: src/game.cpp -msgid "Show mutation category levels" -msgstr "Pokaż poziomy kategorii mutacji" - -#: src/game.cpp -msgid "Overmap editor" -msgstr "Edytor mapy zasadniczej" - -#: src/game.cpp -msgid "Draw benchmark (X seconds)" -msgstr "Benchmark 'rysowania' (5 sekund)" - -#: src/game.cpp -msgid "Teleport - Adjacent overmap" -msgstr "Teleportacja - Pobliska Mapa Zasadnicza" - -#: src/game.cpp -msgid "Test trait group" -msgstr "Testuj grupę cech" - -#: src/game.cpp -msgid "Show debug message" -msgstr "Pokaż wiadomości debug" - -#: src/game.cpp -msgid "Crash game (test crash handling)" -msgstr "Zawieś grę (test postępowania z zawieszeniem gry)" - -#: src/game.cpp -msgid "Spawn Map Extra" -msgstr "Spawnuj Extra Lokację" - -#: src/game.cpp -msgid "Toggle NPC pathfinding on map" -msgstr "" - -#: src/game.cpp -msgid "Quit to Main Menu" -msgstr "Wyjdź do Głównego Menu" - -#: src/game.cpp -msgid "Current overmap revealed." -msgstr "Obecna mapa zasadnicza ujawniona." - -#: src/game.cpp -#, c-format -msgid "Location %d:%d in %d:%d, %s\n" -msgstr "Lokacja %d:%d in %d:%d, %s\n" - -#: src/game.cpp -#, c-format -msgid "" -"Current turn: %d.\n" -"%s\n" -msgstr "" -"Obecna tura: %d.\n" -"%s\n" - -#: src/game.cpp -#, c-format -msgid "%d creature exists.\n" -msgid_plural "%d creatures exist.\n" -msgstr[0] "%d stworzenie istnieje.\n" -msgstr[1] "%d stworzeń istnieje.\n" -msgstr[2] "%d stworzeń istnieje.\n" -msgstr[3] "%d stworzeń istnieje.\n" - -#: src/game.cpp -msgid "NPCs are going to spawn." -msgstr "NPC się pojawią." - -#: src/game.cpp -msgid "NPCs are NOT going to spawn." -msgstr "NPC się NIE pojawią." - -#: src/game.cpp -#, c-format -msgid "%s: map ( %d:%d ) pos ( %d:%d )" -msgstr "%s: mapa (%d:%d) poz (%d:%d)" - -#: src/game.cpp -#, c-format -msgid "(you: %d:%d)" -msgstr "(ty: %d:%d)" - -#: src/game.cpp -#, c-format -msgid "Stomach Contents: %d ml / %d ml kCal: %d, Water: %d ml" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "" -"Guts Contents: %d ml / %d ml kCal: %d, Water: %d ml\n" -"Hunger: %d, Thirst: %d, kCal: %d / %d" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "%s's head implodes!" -msgstr "Głowa %s imploduje!" - -#: src/game.cpp -msgid "Choose vehicle to spawn" -msgstr "Wybierz pojazd który ma się pojawić" - -#. ~ Menu entry in vehicle wish menu: 1st string: displayed name, 2nd string: -#. internal name of vehicle -#: src/game.cpp -#, c-format -msgid "%1$s (%2$s)" -msgstr "%1$s (%2$s)" - -#: src/game.cpp -msgid "Martial arts debug." -msgstr "Dubugowanie sztuk walki." - -#: src/game.cpp -msgid "Your eyes blink rapidly as knowledge floods your brain." -msgstr "Twoje powieki gwałtownie mrugają gdy wiedza zalewa ci umysł." - -#: src/game.cpp -msgid "You now know a lot more than just 10 styles of kung fu." -msgstr "Teraz znasz o wiele więcej niż tylko 10 stylów kung fu." - -#: src/game.cpp -msgid "Recipe debug." -msgstr "Debugowanie receptur." - -#: src/game.cpp -msgid "You know how to craft that now." -msgstr "Teraz wiesz jak to wytworzyć." - -#: src/game.cpp -msgid "Select new weather pattern:" -msgstr "Wybierz nowy rodzaj pogody:" - -#: src/game.cpp -msgid "Disable weather forcing" -msgstr "Wyłącz wymuszanie pogody" - -#: src/game.cpp -msgid "Keep normal weather patterns" -msgstr "Zachowaj normalne zjawiska pogodowe" - -#: src/game.cpp -msgid "Select new wind direction:" -msgstr "Wybierz nowy kierunek wiatru:" - -#: src/game.cpp -msgid "Disable direction forcing" -msgstr "Wyłącz wymuszenie kierunku" - -#: src/game.cpp -msgid "Keep normal wind direction" -msgstr "Zachowaj normalny kierunek wiatru" - -#: src/game.cpp -msgid "Select new wind speed:" -msgstr "Wybierz nową prędkość wiatru:" - -#: src/game.cpp -msgid "Disable speed forcing" -msgstr "Wyłącz wymuszenie prędkości" - -#: src/game.cpp -msgid "Keep normal wind speed" -msgstr "Zachowaj normalną prędkość wiatru" - -#: src/game.cpp -#, c-format -msgid "Damage self for how much? hp: %d" -msgstr "Jak bardzo chcesz się uszkodzić? hp: %d" - -#: src/game.cpp -msgid "This binary was not compiled with tiles support." -msgstr "" -"Ten element binarny nie został skompilowany ze wsparciem obsługi kafelek." - -#: src/game.cpp -msgid "year" -msgstr "rok" - -#: src/game.cpp -msgid "season" -msgstr "pora roku" - -#: src/game.cpp -msgid "day" -msgstr "dzień" - -#: src/game.cpp -msgid "hour" -msgstr "godzina" - -#: src/game.cpp -msgid "minute" -msgstr "minuta" - -#: src/game.cpp src/martialarts.cpp src/martialarts.cpp -msgid "turn" -msgid_plural "turns" -msgstr[0] "tura" -msgstr[1] "tur" -msgstr[2] "tur" -msgstr[3] "tur" - -#: src/game.cpp -msgid "Set year to?" -msgstr "Ustaw rok na?" - -#: src/game.cpp -msgid "Set season to? (0 = spring)" -msgstr "Ustaw porę roku na? (0 = wiosna)" - -#: src/game.cpp -msgid "Set days to?" -msgstr "Ustaw dni na?" - -#: src/game.cpp -msgid "Set hour to?" -msgstr "Ustaw godzinę na?" - -#: src/game.cpp -msgid "Set minute to?" -msgstr "Ustaw minuty na?" - -#: src/game.cpp -#, c-format -msgid "Set turn to? (One day is %i turns)" -msgstr "Ustaw turę na? (Jeden dzień to %i tur)" - -#: src/game.cpp -msgid "Enter benchmark length (in milliseconds):" -msgstr "Wprowadź czas benchmarku (w milisekundach):" - -#: src/game.cpp -msgid "" -"Quit without saving? This may cause issues such as duplicated or missing " -"items and vehicles!" -msgstr "" -"Wyjść bez zapisywania? To może spowodować problemy takie jak zduplikowane " -"lub brakujące przedmioty i pojazdy!" - #: src/game.cpp msgid "You haven't killed any monsters yet!" msgstr "Nie zabiłeś jeszcze żadnych potworów!" @@ -166904,14 +167879,6 @@ msgstr "" msgid "Without extra fuel it will burn for %s." msgstr "Bez podsycania będzie się palić przez %s." -#: src/game.cpp -msgid "You can't do that while driving." -msgstr "Nie możesz tego robić gdy prowadzisz." - -#: src/game.cpp -msgid "You can't do that on a moving vehicle." -msgstr "Nie możesz tego robić w poruszającym się pojeździe." - #: src/game.cpp #, c-format msgid "The %s is too unstable to remove anything." @@ -169354,6 +170321,22 @@ msgstr "%s z %s (%d)" msgid "Draw what?" msgstr "Wyciągnąć co?" +#: src/handle_action.cpp +msgid "Change to which movement mode?" +msgstr "" + +#: src/handle_action.cpp +msgid "Walk" +msgstr "" + +#: src/handle_action.cpp +msgid "Run" +msgstr "" + +#: src/handle_action.cpp +msgid "Crouch" +msgstr "" + #: src/handle_action.cpp msgid "Auto-move canceled" msgstr "Auto-ruch anulowany" @@ -169442,6 +170425,14 @@ msgstr "nowe domyślne przypisanie to '^'." msgid "You can't operate a vehicle while you're in your shell." msgstr "Nie możesz prowadzić pojazdu dopóki jesteś w swojej skorupie." +#: src/handle_action.cpp +msgid "Auto travel mode OFF!" +msgstr "" + +#: src/handle_action.cpp +msgid "Auto travel mode ON!" +msgstr "" + #: src/handle_action.cpp msgid "Safe mode ON!" msgstr "Tryb bezpieczny WŁĄCZONY!" @@ -170023,6 +171014,20 @@ msgstr "Pozyskujesz: pąk maku" msgid "You harvest and drop: poppy bud" msgstr "Pozyskujesz i upuszczasz: pąk maku" +#: src/iexamine.cpp +msgid "The cactus' nettles sting you!" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You harvest: %s." +msgstr "Pozyskujesz: %s." + +#: src/iexamine.cpp +#, c-format +msgid "You harvest and drop: %s." +msgstr "Pozyskujesz i upuszczasz: %s." + #: src/iexamine.cpp msgid "If only you had a shovel to dig up those roots..." msgstr "Gdybyś tylko miał szpadel do wykopania tych korzeni..." @@ -170039,16 +171044,6 @@ msgstr "Pozyskujesz i upuszczasz: korzeń dalii" msgid "Nothing can be harvested from this plant in current season." msgstr "" -#: src/iexamine.cpp -#, c-format -msgid "You harvest: %s." -msgstr "Pozyskujesz: %s." - -#: src/iexamine.cpp -#, c-format -msgid "You harvest and drop: %s." -msgstr "Pozyskujesz i upuszczasz: %s." - #: src/iexamine.cpp msgid "You couldn't harvest anything." msgstr "Nie mogłeś nic zebrać." @@ -170952,10 +171947,10 @@ msgstr "" "Zakończono." #: src/iexamine.cpp -msgid "You need an anesthesia kit for autodoc to perform any operation." +msgid "" +"You need an anesthesia kit with at least one charge for autodoc to perform " +"any operation." msgstr "" -"Potrzebujesz zestawu anestezjologicznego by przeprowadzić jakąkolwiek " -"operację." #: src/iexamine.cpp msgid "Choose CBM to install" @@ -171011,6 +172006,46 @@ msgstr "Nie masz żadnych zainstalowanych bionik." msgid "%1$s doesn't have any bionics installed." msgstr "%1$s nie ma żadnych zainstalowanych bionik." +#: src/iexamine.cpp +msgid "This mill already contains flour." +msgstr "" + +#: src/iexamine.cpp +msgid "Remove it before starting the mill again." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "This rack contains %s, which can't be milled!" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You remove the %s from the mill." +msgstr "" + +#: src/iexamine.cpp +msgid "" +"This mill is empty. Fill it with starchy products such as wheat, barley or " +"oats and try again." +msgstr "" + +#: src/iexamine.cpp +msgid "" +"This mill is overloaded with products, and the millstone can't turn. Remove" +" some and try again." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgctxt "volume units" +msgid "You think that you can load about %s %s in it." +msgstr "Wydaje ci się że możesz załadować około %s %s do środka." + +#: src/iexamine.cpp +msgid "You remove the brake on the millstone and it slowly starts to turn." +msgstr "" + #: src/iexamine.cpp msgid "This rack already contains smoked food." msgstr "Ta wędzarnia zawiera już wędzoną żywność." @@ -171115,6 +172150,134 @@ msgstr "Nie możesz włożyć aż tyle." msgid "You carefully place %s %s in the rack." msgstr "Ostrożnie wkładasz %s %s do wędzarni." +#: src/iexamine.cpp +msgid "You can't place more food while it's milling." +msgstr "" + +#: src/iexamine.cpp +msgid "Load mill with what kind of product?" +msgstr "" + +#: src/iexamine.cpp +msgid "You don't have any products that can be milled." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "Insert how many %s into the mill?" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgctxt "item amount and name" +msgid "You carefully place %s %s in the mill." +msgstr "" + +#: src/iexamine.cpp +msgid "The water mill needs to be over shallow flowing water to work." +msgstr "" + +#: src/iexamine.cpp +msgid "The wind mill needs to be outside in the wind to work." +msgstr "" + +#: src/iexamine.cpp +msgid "What to do with the mill?" +msgstr "" + +#: src/iexamine.cpp +msgid "Inspect mill" +msgstr "" + +#: src/iexamine.cpp +msgid "" +"Remove brake and start milling... insert some products for milling first" +msgstr "" + +#: src/iexamine.cpp +msgid "Remove brake and start milling" +msgstr "" + +#: src/iexamine.cpp +msgid "Remove brake and start milling, milling will take about 6 hours." +msgstr "" + +#: src/iexamine.cpp +msgid "Insert products for milling... mill is full" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "Insert products for milling... remaining capacity is %s %s" +msgstr "" + +#: src/iexamine.cpp +msgid "Fill the mill with starchy products such as wheat, barley or oats." +msgstr "" + +#: src/iexamine.cpp +msgid "Remove products from mill" +msgstr "" + +#: src/iexamine.cpp +msgid "Apply brake to mill" +msgstr "" + +#: src/iexamine.cpp +msgid "Applying the brake will stop milling process." +msgstr "" + +#: src/iexamine.cpp +msgid "There's a mill here. It is turning and milling." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "It will finish milling in about %d hour." +msgid_plural "It will finish milling in about %d hours." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: src/iexamine.cpp +msgid "It will finish milling in less than an hour." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "It should take about %d minutes to finish milling." +msgstr "" + +#: src/iexamine.cpp +msgid "There's a mill here." +msgstr "" + +#: src/iexamine.cpp +msgid "You inspect its contents and find: " +msgstr "Sprawdzasz zawartość i znajdujesz:" + +#: src/iexamine.cpp +msgid "... that it is empty." +msgstr "... że jest pusty." + +#: src/iexamine.cpp +msgid "You see some grains that are not yet milled to fine flour." +msgstr "" + +#: src/iexamine.cpp +msgid "It is already milling." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You remove %s from the mill." +msgstr "" + +#: src/iexamine.cpp +msgid "You stop the milling process." +msgstr "" + #: src/iexamine.cpp msgid "What to do with the smoking rack:" msgstr "Co chcesz zrobić z wędzarnią:" @@ -171226,14 +172389,6 @@ msgstr "Koniec wędzenia powinien nastąpić za %d minut." msgid "There's a smoking rack here." msgstr "Jest tu wędzarnia." -#: src/iexamine.cpp -msgid "You inspect its contents and find: " -msgstr "Sprawdzasz zawartość i znajdujesz:" - -#: src/iexamine.cpp -msgid "... that it is empty." -msgstr "... że jest pusty." - #: src/iexamine.cpp msgid "You see some smoldering embers there." msgstr "Widzisz tu tlące się niedopałki." @@ -173137,6 +174292,10 @@ msgstr "|." msgid "\\." msgstr "\\." +#: src/item.cpp +msgid "XX" +msgstr "" + #: src/item.cpp msgid ".." msgstr ".." @@ -183818,7 +184977,7 @@ msgstr "Zagłębiasz się w sobie." #: src/mutation.cpp msgid "You are really going against your beliefs here." -msgstr "" +msgstr "Naprawdę naginasz tu swoje zasady." #: src/mutation.cpp msgid "This is fun!" @@ -183876,15 +185035,22 @@ msgstr "jesteśmy drużyną, ogarniemy to!" #: src/mutation.cpp msgid "You can only do that in a wooded area." -msgstr "" +msgstr "Możesz to zrobić tylko w terenie zalesionym." #: src/mutation.cpp msgid "You can only do that next to a tree." -msgstr "" +msgstr "Możesz to zrobić tylko w pobliżu drzewa." #: src/mutation.cpp msgid "You reach out to the trees with your roots." +msgstr "Sięgasz swoimi korzeniami ku drzewom." + +#: src/mutation.cpp +msgid "" +"You lay next to the trees letting your hair roots tangle with the trees." msgstr "" +"Układasz się wśród drzew pozwalając włoskom swoich korzeni owinąć się wokół " +"korzeni drzew." #: src/mutation.cpp msgid "Bionic power storage increased by 100." @@ -185154,6 +186320,10 @@ msgstr "Jest twoim przyjacielem." msgid "Is following you." msgstr "Podąża za tobą." +#: src/npc.cpp +msgid "Is guiding you." +msgstr "" + #: src/npc.cpp msgid "Will try to kill you or flee from you if you reveal yourself." msgstr "Będzie chciał cię zabić lub ucieknie przed tobą jeśli się ujawnisz." @@ -185616,10 +186786,6 @@ msgstr "Przydała by mi się jeszcze pomoc w pewnej sprawie." msgid " If you are interested, I have another job for you." msgstr "Jak jesteś zainteresowany, to miałbym jeszcze robotę do zrobienia." -#: src/npctalk.cpp -msgid "Pleasure doing business!" -msgstr "Miło było robić interesy!" - #: src/npctalk.cpp msgid "Shall we resume?" msgstr "Wznawiamy?" @@ -185742,23 +186908,6 @@ msgstr "Co ty nie powiesz." msgid "I have news." msgstr "Mam wieści." -#: src/npctalk.cpp -#, c-format -msgid "Delivering %s." -msgstr "Dostarczam %s." - -#: src/npctalk.cpp -msgid "Works for me." -msgstr "Dla mnie bomba." - -#: src/npctalk.cpp -msgid "You might be seeing more of me..." -msgstr "Jeszcze mnie zobaczysz..." - -#: src/npctalk.cpp -msgid "Delivering bandages." -msgstr "Dostarczam bandaże." - #: src/npctalk.cpp msgid "Yes, let's resume training " msgstr "Tak, wznówmy trening" @@ -185991,11 +187140,6 @@ msgstr "" msgid "My current location" msgstr "Moja obecna lokalizacja" -#: src/npctalk_funcs.cpp -#, c-format -msgid "I'm willing to pay %s per batch for a total of %s" -msgstr "Zapłacę %s za partię, co razem będzie %s" - #. ~ %1$s is the NPC's translated name, %2$s is the translated faction camp #. name #: src/npctalk_funcs.cpp @@ -186019,11 +187163,11 @@ msgstr "" #: src/npctalk_funcs.cpp msgid "he" -msgstr "" +msgstr "on" #: src/npctalk_funcs.cpp msgid "she" -msgstr "" +msgstr "ona" #: src/npctalk_funcs.cpp #, c-format @@ -186669,11 +187813,11 @@ msgstr "Ustawia głośność efektów dźwiękowych odtwarzanych przez grę." #: src/options.cpp msgid "Ambient sound volume" -msgstr "" +msgstr "Głośność dźwięków tła" #: src/options.cpp msgid "Adjust the volume of ambient sounds being played by the game." -msgstr "" +msgstr "Ustawia głośność efektów dźwiękowych tła odtwarzanych przez grę." #: src/options.cpp msgid "Language" @@ -186918,11 +188062,11 @@ msgstr "Prawa" #: src/options.cpp msgid "Draw sidebar spacers" -msgstr "" +msgstr "Rysuj dzielniki panelu bocznego" #: src/options.cpp msgid "If true, adds an extra space between sidebar panels." -msgstr "" +msgstr "Włączone: dodaje dodatkowy wiersz pomiędzy panelami panelu bocznego." #: src/options.cpp msgid "Message log flow" @@ -187110,12 +188254,14 @@ msgstr "Ukryj - klawiatura" #: src/options.cpp msgid "Edge scrolling" -msgstr "" +msgstr "Przewijaj przy krawędzi" #: src/options.cpp msgid "" "If true, enables edge scrolling/panning with mouse when looking or peeking." msgstr "" +"Włączone: włącza przewijanie przy krawędzi ekranu używając myszki podczas " +"rozglądania się." #: src/options.cpp msgid "Animations" @@ -187135,13 +188281,15 @@ msgstr "Jeśli prawdziwe, wyświetli animacje pogody." #: src/options.cpp msgid "Projectile animation" -msgstr "" +msgstr "Animacja pocisków" #: src/options.cpp msgid "" "If true, will display animations for projectiles like bullets, arrows, and " "thrown items." msgstr "" +"Włączone: wyświetli animację pocisków, np. kul, strzał, rzucanych " +"przedmiotów." #: src/options.cpp msgid "SCT animation" @@ -187193,87 +188341,87 @@ msgstr "Ustawia wielkość terminalu wzdłuż osi Y. Wymaga restartu gry." #: src/options.cpp msgid "Font blending" -msgstr "" +msgstr "Blending czcionki" #: src/options.cpp msgid "If true, fonts will look better." -msgstr "" +msgstr "Włączone: czcionki będą wyglądać lepiej" #: src/options.cpp msgid "Font width" -msgstr "" +msgstr "Szerokość czcionki" #: src/options.cpp msgid "Set the font width. Requires restart." -msgstr "" +msgstr "Ustawia szerokość czcionki. Wymagany restart." #: src/options.cpp msgid "Font height" -msgstr "" +msgstr "Wysokość czcionki" #: src/options.cpp msgid "Set the font height. Requires restart." -msgstr "" +msgstr "Ustawia wysokość czcionki. Wymagany restart." #: src/options.cpp msgid "Font size" -msgstr "" +msgstr "Rozmiar czcionki" #: src/options.cpp msgid "Set the font size. Requires restart." -msgstr "" +msgstr "Ustawia rozmiar czcionki. Wymagany restart." #: src/options.cpp msgid "Map font width" -msgstr "" +msgstr "Szerokość czcionki mapy" #: src/options.cpp msgid "Set the map font width. Requires restart." -msgstr "" +msgstr "Ustawia szerokość czcionki mapy. Wymagany restart." #: src/options.cpp msgid "Map font height" -msgstr "" +msgstr "Wysokość czcionki mapy" #: src/options.cpp msgid "Set the map font height. Requires restart." -msgstr "" +msgstr "Ustawia wysokość czcionki mapy. Wymagany restart." #: src/options.cpp msgid "Map font size" -msgstr "" +msgstr "Rozmiar czcionki mapy" #: src/options.cpp msgid "Set the map font size. Requires restart." -msgstr "" +msgstr "Ustawia rozmiar czcionki mapy. Wymagany restart." #: src/options.cpp msgid "Overmap font width" -msgstr "" +msgstr "Szerokość czcionki mapy zasadniczej" #: src/options.cpp msgid "Set the overmap font width. Requires restart." -msgstr "" +msgstr "Ustawia szerokość czcionki mapy zasadniczej. Wymagany restart." #: src/options.cpp msgid "Overmap font height" -msgstr "" +msgstr "Wysokość czcionki mapy zasadniczej" #: src/options.cpp msgid "Set the overmap font height. Requires restart." -msgstr "" +msgstr "Ustawia wysokość czcionki mapy zasadniczej. Wymagany restart." #: src/options.cpp msgid "Overmap font size" -msgstr "" +msgstr "Rozmiar czcionki mapy zasadniczej" #: src/options.cpp msgid "Set the overmap font size. Requires restart." -msgstr "" +msgstr "Ustawia rozmiar czcionki mapy zasadniczej. Wymagany restart." #: src/options.cpp msgid "SDL ASCII lines" -msgstr "" +msgstr "Linie ASCII SDL" #: src/options.cpp msgid "" @@ -187281,6 +188429,8 @@ msgid "" "characters. Use this option when your selected font doesn't contain " "necessary glyphs." msgstr "" +"Użyj metod SDL do rysowania lini ASCII zamiast Unicode. Użyj tej opcji gdy " +"twoja czcionka nie ma potrzebnych glifów." #: src/options.cpp msgid "Use tiles" @@ -187786,6 +188936,9 @@ msgid "" " cataclysm. Can be overridden by scenarios. Increasing this will cause food " "rot and monster evolution to advance." msgstr "" +"Jak wiele dni po kataklizmie zjawia się gracz. Dzień 0 to dzień kataklizmu. " +"Może być nadpisany przez scenariusze. Zwiększenie powoduje psucie żywności i" +" postęp ewolucji potworów." #: src/options.cpp msgid "Season length" @@ -187914,6 +189067,8 @@ msgid "" "If true, experimental z-level maps will be enabled. Turn this off if you " "experience excessive slowdown." msgstr "" +"Zaznaczone: włącza eksperymentalne z-poziomy. Wyłącz gdy doświadczasz " +"nadmiernych spowolnień." #: src/options.cpp msgid "Align up and down stairs" @@ -188813,71 +189968,71 @@ msgstr "%1$s %2$s z %3$s" #: src/panels.cpp msgid "Str " -msgstr "" +msgstr "Sił" #: src/panels.cpp msgid "Dex " -msgstr "" +msgstr "Zrę" #: src/panels.cpp msgid "Int " -msgstr "" +msgstr "Int" #: src/panels.cpp msgid "Per " -msgstr "" +msgstr "Per" #: src/panels.cpp msgid "New moon" -msgstr "" +msgstr "Nów księżyca" #: src/panels.cpp msgid "Waxing crescent" -msgstr "" +msgstr "Przed pierwszą kwadrą" #: src/panels.cpp msgid "Half moon" -msgstr "" +msgstr "Kwadra (półksiężyc)" #: src/panels.cpp msgid "Waxing gibbous" -msgstr "" +msgstr "Po pierwszej kwadrze" #: src/panels.cpp msgid "Full moon" -msgstr "" +msgstr "Pełnia" #: src/panels.cpp msgid "Waning gibbous" -msgstr "" +msgstr "Przed ostatnią kwadrą" #: src/panels.cpp msgid "Waning crescent" -msgstr "" +msgstr "Po ostatniej kwadrze" #: src/panels.cpp msgid "Dark moon" -msgstr "" +msgstr "Ciemny księżyc" #: src/panels.cpp msgid "Around midnight" -msgstr "" +msgstr "Około północy" #: src/panels.cpp msgid "Dead of night" -msgstr "" +msgstr "Środek nocy" #: src/panels.cpp msgid "Around dawn" -msgstr "" +msgstr "Przed świtem" #: src/panels.cpp msgid "Early morning" -msgstr "" +msgstr "Wczesny poranek" #: src/panels.cpp msgid "Morning" -msgstr "" +msgstr "Poranek" #: src/panels.cpp msgid "Around noon" @@ -188945,35 +190100,35 @@ msgstr "Ból" #: src/panels.cpp msgid "SAFE" -msgstr "" +msgstr "BEZP" #: src/panels.cpp msgid "STM" -msgstr "" +msgstr "STA" #: src/panels.cpp msgid "PWR" -msgstr "" +msgstr "MOC" #: src/panels.cpp msgid "STR" -msgstr "" +msgstr "SIŁ" #: src/panels.cpp msgid "DEX" -msgstr "" +msgstr "ZRĘ" #: src/panels.cpp msgid "INT" -msgstr "" +msgstr "INT" #: src/panels.cpp msgid "PER" -msgstr "" +msgstr "PER" #: src/panels.cpp msgid "DEAF" -msgstr "" +msgstr "GŁUCH" #: src/panels.cpp msgid "Sound:" @@ -189048,15 +190203,15 @@ msgstr "Moc :" #: src/panels.cpp msgid "Safe :" -msgstr "" +msgstr "Bezp :" #: src/panels.cpp msgid "On" -msgstr "" +msgstr "Wł" #: src/panels.cpp msgid "Place: " -msgstr "" +msgstr "Gdzie:" #: src/panels.cpp msgid "Sky : Underground" @@ -189098,6 +190253,10 @@ msgstr "Temp.: %s" msgid "Wield:" msgstr "Dzier:" +#: src/panels.cpp +msgid "Style:" +msgstr "Styl:" + #: src/panels.cpp msgid "Food :" msgstr "Pożyw:" @@ -189128,7 +190287,7 @@ msgstr "Stm" #: src/panels.cpp msgid "Spd " -msgstr "" +msgstr "Prę" #: src/panels.cpp msgid "POWER" @@ -189188,7 +190347,7 @@ msgstr "Temp.: " #: src/panels.cpp msgid "to open sidebar options" -msgstr "" +msgstr "by otworzyć opcje panelu bocznego" #: src/panels.cpp msgid "panel_options" @@ -189200,11 +190359,11 @@ msgstr "OPCJE PANELU" #: src/panels.cpp msgid "Toggle panels on/off" -msgstr "" +msgstr "Przełącz panele wł/wył" #: src/panels.cpp msgid "Change display order" -msgstr "" +msgstr "Zmień kolejność wyświetlania" #: src/panels.cpp msgid "Exit" @@ -189261,6 +190420,18 @@ msgstr "Jesteś przeciążony!" msgid "You struggle to carry such a large volume!" msgstr "Trudzisz się by nieść tak duży pakunek." +#: src/pickup.cpp +msgid "Get items from vehicle cargo" +msgstr "Weź przedmioty z bagażnika pojazdu" + +#: src/pickup.cpp +msgid "Get items from where?" +msgstr "Weź przedmioty skąd?" + +#: src/pickup.cpp src/vehicle_use.cpp +msgid "Get items on the ground" +msgstr "Weź przedmioty z ziemi" + #: src/pickup.cpp msgid "Next page" msgstr "Następna strona" @@ -189764,17 +190935,17 @@ msgid "You're too tired to run." msgstr "Jesteś zbyt zmęczony by biec." #: src/player.cpp -msgid "You start walking." -msgstr "" +msgid "You start crouching." +msgstr "Zaczynasz iść przykucnięty." #: src/player.cpp -msgid "You start crouching." -msgstr "" +msgid "You start walking." +msgstr "Zaczynasz chodzić." #: src/player.cpp #, c-format msgid "Your ground sonar detected a %1$s to the %2$s!" -msgstr "" +msgstr "Twój sonar ziemny wykrył %1$s w kierunku %2$s!" #: src/player.cpp #, c-format @@ -190040,7 +191211,7 @@ msgstr "GŁÓD świdruje ci trzewia!" #: src/player.cpp msgid "You feel like you haven't eaten in days..." -msgstr "" +msgstr "Czujesz się jakbyś nie jadł od wielu dni..." #: src/player.cpp msgid "Your stomach feels so empty..." @@ -190142,10 +191313,12 @@ msgid "" "Your body collapses due to sleep deprivation, your neglected fatigue rushing" " back all at once, and you pass out on the spot." msgstr "" +"Twoje ciało załamuje się z braku snu, zaniedbywane zmęczenie uderza z siłą " +"kafara, i tracisz przytomność na miejscu." #: src/player.cpp msgid " collapses to the ground from exhaustion." -msgstr "" +msgstr " upada na ziemię z wyczerpania." #: src/player.cpp #, c-format @@ -190289,7 +191462,7 @@ msgstr "Twoje kiszki bulgoczą gdy coś w nich umiera." #: src/player.cpp #, c-format msgid "You're too malnourished to keep your %s going." -msgstr "" +msgstr "Jesteś zbyt wygłodzony by dalej prowadzić %s." #: src/player.cpp #, c-format @@ -190375,7 +191548,7 @@ msgstr "%1$s mówi: \"%2$s\"" #: src/player.cpp #, c-format msgid "You increase %1$s to level %2$d." -msgstr "" +msgstr "Ulepszasz %1$s do poziomu %2$d." #: src/player.cpp msgid "Hey, can you hear me?" @@ -190864,7 +192037,7 @@ msgstr "Pocierasz swoje zmęczone oczy." #: src/player.cpp msgid " tiredly rubs their eyes." -msgstr "" +msgstr " pociera zmęczone oczy." #: src/player.cpp msgid "You let out a small yawn." @@ -190872,7 +192045,7 @@ msgstr "Wyrywa ci się małe ziewnięcie." #: src/player.cpp msgid " lets out a small yawn." -msgstr "" +msgstr " ziewa cicho." #: src/player.cpp msgid "You stretch your back." @@ -190880,7 +192053,7 @@ msgstr "Rozciągasz plecy." #: src/player.cpp msgid " streches their back." -msgstr "" +msgstr " rozciąga plecy." #: src/player.cpp msgid "You feel mentally tired." @@ -190888,7 +192061,7 @@ msgstr "Odczuwasz psychiczne zmęczenie." #: src/player.cpp msgid " lets out a huge yawn." -msgstr "" +msgstr " ziewa rozdzierająco." #: src/player.cpp msgid "You feel lightheaded for a moment." @@ -190937,8 +192110,8 @@ msgid "Your shaking legs make you stumble." msgstr "Twoje drżące nogi plączą się i potykają." #: src/player.cpp -msgid " stumbles." +msgstr " potyka się." #: src/player.cpp msgid " falls over!" @@ -191866,15 +193039,15 @@ msgstr "Próbujesz zasnąć." #: src/player.cpp msgid "Your soporific inducer starts working its magic." -msgstr "" +msgstr "Twój induktor nasenny zaczyna odprawiać swój czar." #: src/player.cpp msgid "Your soporific inducer doesn't have enough power to operate." -msgstr "" +msgstr "Twój induktor nasenny nie ma wystarczająco mocy by działać." #: src/player.cpp msgid "Your soporific inducer runs out of power!" -msgstr "" +msgstr "Twojemu induktorowi nasennemu kończy się moc!" #: src/player.cpp msgid "Your soporific inducer starts back up." @@ -192046,11 +193219,11 @@ msgstr "Twoja umiejętność %s została zredukowana do %d!" #: src/player.cpp msgid "Very Hungry" -msgstr "" +msgstr "Bardzo Głodny" #: src/player.cpp msgid "Peckish" -msgstr "" +msgstr "Głodnawy" #: src/player_display.cpp #, c-format @@ -192223,7 +193396,7 @@ msgstr "Przewiń do kolejnej kategorii" #: src/player_display.cpp msgid "Cycle to previous category" -msgstr "" +msgstr "Przewiń do poprzedniej kategorii" #: src/player_display.cpp msgid "Toggle skill training" @@ -192277,7 +193450,7 @@ msgstr "Pragnienie -%s%d%%" #: src/player_display.cpp #, c-format msgid "Starving -%s%d%%" -msgstr "" +msgstr "Głodujesz -%s%d%%" #: src/player_display.cpp #, c-format @@ -192936,7 +194109,7 @@ msgstr "Jest za gorąco na sen." #: src/player_hardcoded_effects.cpp msgid "It looks like you woke up just before your alarm." -msgstr "" +msgstr "Wygląda na to że obudziłeś się przed tuż przed budzikiem." #: src/player_hardcoded_effects.cpp msgid "Your internal chronometer went off and you haven't slept a wink." @@ -192952,7 +194125,7 @@ msgstr "Twój wewnętrzny zegar cię budzi." #: src/player_hardcoded_effects.cpp msgid "Your alarm is going off." -msgstr "" +msgstr "Twój alarm się włączył." #: src/ranged.cpp #, c-format @@ -193042,22 +194215,22 @@ msgstr "Czujesz przypływ euforii gdy płomienie spowijają %s!" #: src/ranged.cpp msgctxt "amount of backward momentum" msgid "High" -msgstr "" +msgstr "Wysoki" #: src/ranged.cpp msgctxt "amount of backward momentum" msgid "Medium" -msgstr "" +msgstr "Średni" #: src/ranged.cpp msgctxt "amount of backward momentum" msgid "Low" -msgstr "" +msgstr "Niski" #: src/ranged.cpp msgctxt "amount of backward momentum" msgid "None" -msgstr "" +msgstr "Brak" #: src/ranged.cpp #, c-format @@ -193090,17 +194263,17 @@ msgstr "Przesuń kursor na cel strzałkami" #: src/ranged.cpp #, c-format msgid "[%s] Cycle targets; [%c] to fire." -msgstr "" +msgstr "[%s] Przewija cele; [%c] by strzelić." #: src/ranged.cpp #, c-format msgid "[%c] target self; [%c] toggle snap-to-target" -msgstr "" +msgstr "[%c] wyceluj w siebie; [%c] przełącz przyciąganie do celu" #: src/ranged.cpp #, c-format msgid "[%c] to steady your aim. (10 moves)" -msgstr "" +msgstr "%c by stabilnie wycelować (10 ruchów)" #: src/ranged.cpp #, c-format @@ -193115,7 +194288,7 @@ msgstr "[%c] by zmienić tryb strzelania. " #: src/ranged.cpp #, c-format msgid "[%c] to reload/switch ammo." -msgstr "" +msgstr "[%c] by przeładować/zmienić amunicję." #: src/ranged.cpp msgid "Mouse: LMB: Target, Wheel: Cycle, RMB: Fire" @@ -193128,7 +194301,7 @@ msgstr "Stabilność" #: src/ranged.cpp #, c-format msgid "Symbols:%s" -msgstr "" +msgstr "Symbole:%s" #: src/ranged.cpp msgid "Current Aim" @@ -193139,6 +194312,8 @@ msgstr "Obecne Celowanie" msgid "" "[%s] %s: Moves to fire: %d" msgstr "" +"[%s] %s: Ruchów by strzelić: " +"%d" #: src/ranged.cpp msgctxt "aim_confidence" @@ -193172,7 +194347,7 @@ msgstr "Regularny Strzał" #: src/ranged.cpp #, c-format msgid "[%c] to aim and fire." -msgstr "" +msgstr "[%c] by wymierzyć i strzelić." #: src/ranged.cpp msgid "Careful Aim" @@ -193181,7 +194356,7 @@ msgstr "Dokładne Celowanie" #: src/ranged.cpp #, c-format msgid "[%c] to take careful aim and fire." -msgstr "" +msgstr "[%c] by dokładnie wymierzyć i strzelić." #: src/ranged.cpp msgid "Precise Aim" @@ -193190,7 +194365,7 @@ msgstr "Precyzyjne Celowanie" #: src/ranged.cpp #, c-format msgid "[%c] to take precise aim and fire." -msgstr "" +msgstr "[%c] by precyzyjnie wymierzyć i strzelić." #: src/ranged.cpp #, c-format @@ -193369,12 +194544,12 @@ msgstr "Potrzebne składniki:" #: src/requirements.cpp #, c-format msgid "%s (%d of %ld)" -msgstr "" +msgstr "%s (%d z %ld)" #: src/requirements.cpp #, c-format msgid "%s of %ld" -msgstr "" +msgstr "%s z %ld" #: src/requirements.cpp msgid "OR" @@ -194316,7 +195491,7 @@ msgstr "> %1$s%2$s %3$i dla ekstra osi kierowniczych." #: src/veh_interact.cpp #, c-format msgid "strength ( assisted ) %d" -msgstr "" +msgstr "siła ( wspomagana ) %d" #: src/veh_interact.cpp #, c-format @@ -195130,6 +196305,11 @@ msgstr "Nie spełniasz wymogów by reperować %s." msgid "You repair the %1$s's %2$s." msgstr "Naprawiasz %2$s w %1$s." +#: src/veh_utils.cpp +#, c-format +msgid "You replace the %1$s's %2$s." +msgstr "Wymieniasz %2$s w %1$s." + #: src/vehicle.cpp msgid "Lost connection with the vehicle due to distance!" msgstr "Straciłeś kontakt z pojazdem z uwagi na odległość!" @@ -195538,10 +196718,6 @@ msgstr " (wadliwy)" msgid " holding %s" msgstr "trzyma %s" -#: src/vehicle_part.cpp -msgid "XX" -msgstr "" - #: src/vehicle_part.cpp #, c-format msgid "Insufficient power to enable %s" @@ -196009,10 +197185,6 @@ msgstr "Wyłącz pralkę" msgid "Activate the washing machine (1.5 hours)" msgstr "Włącz pralkę (1,5 godziny)" -#: src/vehicle_use.cpp -msgid "Get items on the ground" -msgstr "Weź przedmioty z ziemi" - #: src/vehicle_use.cpp msgid "Use the hotplate" msgstr "Użyj płyty grzewczej" @@ -196048,7 +197220,7 @@ msgstr "Przeładuj siewnik nasionami" #: src/vehicle_use.cpp #, c-format msgid "Craft at the %s" -msgstr "" +msgstr "Majsterkuj przy %s" #: src/vehicle_use.cpp #, c-format @@ -196445,7 +197617,7 @@ msgstr "Wybierz świat, by wejść do gry" #: src/worldfactory.cpp msgid "last world info" -msgstr "" +msgstr "info ostatniego świata" #: src/worldfactory.cpp msgid " ACTIVE WORLD MODS " diff --git a/lang/po/ru.po b/lang/po/ru.po index 62c19d8f86660..3286cf3cceaea 100644 --- a/lang/po/ru.po +++ b/lang/po/ru.po @@ -26,7 +26,6 @@ # Violent Tormentor , 2018 # Oleksii Filonenko , 2018 # Tymur Valiiev , 2019 -# Victor_U , 2019 # Максим <2.6makc@gmail.com>, 2019 # Sergey Surname , 2019 # Jose , 2019 @@ -40,21 +39,22 @@ # Kiryl Surahatau , 2019 # Brett Dong , 2019 # korick3 korick3 , 2019 -# Vlasov Vitaly , 2019 # Arex , 2019 -# Антон Бурмистров <22.valiant@gmail.com>, 2019 # Timofey Kostenko , 2019 -# Darkon Rabbit, 2019 -# Midas , 2019 +# Vlasov Vitaly , 2019 # Zhar the Mad , 2019 +# Midas , 2019 +# Антон Бурмистров <22.valiant@gmail.com>, 2019 +# Darkon Rabbit, 2019 +# Victor_U , 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-26 14:19+0800\n" +"POT-Creation-Date: 2019-05-03 13:47+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: Zhar the Mad , 2019\n" +"Last-Translator: Victor_U , 2019\n" "Language-Team: Russian (https://www.transifex.com/cataclysm-dda-translators/teams/2217/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -73,10 +73,11 @@ msgstr[3] "батарейки" #. ~ Description for battery #: lang/json/AMMO_from_json.py msgid "" -"A set of universal batteries. Used to charge almost any electronic device." +"Some free-floating battery charge. This can be reloaded into rechargable " +"battery cells, but can never be unloaded." msgstr "" -"Комплект универсальных батареек. Используются для зарядки практически любого" -" электронного устройства." +"Свободный заряд батареи. Может быть перемещен в заряжаемый аккумулятор, но " +"после этого не может быть извлечен." #: lang/json/AMMO_from_json.py msgid "aluminum foil" @@ -1068,22 +1069,21 @@ msgstr "" "Оперённое деревянное древко стрелы с тупым резиновым наконечником. Может " "оглушить слабых противников. Имеет хороший шанс уцелеть после выстрела." -#: lang/json/AMMO_from_json.py -msgid "anesthetic kit" -msgstr "набор для анестезии" +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "anesthetic" +msgstr "анестетики" -#. ~ Description for anesthetic kit +#. ~ Description for anesthetic #: lang/json/AMMO_from_json.py msgid "" -"A kit for inducing anesthesia for surgery, containing specialized canisters " -"with a variety of powerful hypnotic, analgetic, and stimulative drugs. It's" -" intended for use in specialized medical equipment, and can't be " -"administered manually." +"A variety of powerful hypnotic, analgetic, and stimulative drugs. It's " +"intended for use in specialized medical equipment, and can't be administered" +" manually. You can reload an anesthetic kit with it." msgstr "" -"Набор для введения анестезии для хирургических операций. Содержит в себе " -"специализированные ампулы с различными мощными снотворными, обезболивающими " -"и стимулирующими препаратами. Набор используется в специализированном " -"медицинском оборудовании, поэтому препараты из него нельзя ввести вручную." +"Набор мощных снотворных, обезболивающих и стимулирующих препаратов, которые " +"используются в специализированном медицинском оборудовании, поэтому " +"препараты из него нельзя ввести вручную. Может быть использован для " +"перезарядки набора анестезии." #: lang/json/AMMO_from_json.py msgid "sulfur" @@ -1938,6 +1938,24 @@ msgstr "" "Топливо на основе нефти. Изготовлено из побочного продукта процесса " "получения бензина." +#: lang/json/AMMO_from_json.py +msgid "biodiesel" +msgid_plural "biodiesel" +msgstr[0] "биодизель" +msgstr[1] "биодизель" +msgstr[2] "биодизель" +msgstr[3] "биодизель" + +#. ~ Description for biodiesel +#: lang/json/AMMO_from_json.py +msgid "" +"Vegetable oil- or animal fat-based diesel fuel consisting of long-chain " +"alkyl (methyl, ethyl, or propyl) esters." +msgstr "" +"Дизельное топливо на основе растительного масла или животных жиров, " +"состоящее из длинной алкил- (метил-, этил- или пропил-) цепочки сложных " +"эфиров." + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "gasoline" msgid_plural "gasoline" @@ -2168,6 +2186,37 @@ msgstr "" "способная запускать заряды перегретого газа на околосветовой скорости без " "отдачи. Эта изготовлена вручную из запчастей." +#: lang/json/AMMO_from_json.py +msgid "throwing stick" +msgstr "метательная палка" + +#. ~ Description for throwing stick +#: lang/json/AMMO_from_json.py +msgid "" +"A stick carved into a shape suitable for throwing at a target. Not a " +"boomerang, so don't expect it to return to your hand." +msgstr "" +"Палка, заточенная таким образом, чтобы её можно было метать в цель. Это не " +"бумеранг, так что не ожидайте, что она сама вернётся вам в руку." + +#: lang/json/AMMO_from_json.py +msgid "anesthetic kit" +msgstr "набор для анестезии" + +#. ~ Description for anesthetic kit +#. ~ Description for anesthesia kit +#: lang/json/AMMO_from_json.py lang/json/TOOL_from_json.py +msgid "" +"A kit for inducing anesthesia for surgery, containing specialized canisters " +"with a variety of powerful hypnotic, analgetic, and stimulative drugs. It's" +" intended for use in specialized medical equipment, and can't be " +"administered manually." +msgstr "" +"Набор для введения анестезии для хирургических операций. Содержит в себе " +"специализированные ампулы с различными мощными снотворными, обезболивающими " +"и стимулирующими препаратами. Набор используется в специализированном " +"медицинском оборудовании, поэтому препараты из него нельзя ввести вручную." + #: lang/json/AMMO_from_json.py msgid "H&K 12mm" msgstr "снаряд H&K 12 мм" @@ -2770,6 +2819,69 @@ msgstr[1] "переснаряжённых патрона .38 Супер" msgstr[2] "переснаряжённых патронов .38 Супер" msgstr[3] "переснаряжённый патрон .38 Супер" +#: lang/json/AMMO_from_json.py +msgid ".380 ACP FMJ" +msgstr "патрон .380 ACP ОП" + +#. ~ Description for .380 ACP FMJ +#: lang/json/AMMO_from_json.py +msgid "" +".380 ACP ammunition with a brass jacketed 95gr bullet. Popular in pocket " +"pistols for over a century, it is often considered the weakest caliber to " +"consider carrying. One should be careful not to chamber it in 9x18mm " +"Makarov or 9x19mm firearms." +msgstr "" +"Оболочечные патроны .380 ACP с латунным покрытием и 95-грановой пулей. Более" +" века используются в карманных пистолетах и считаются самым слабым калибром." +" Тебе не следует использовать эти патроны в пистолетах 9x19mm или 9x18mm " +"Макарова." + +#: lang/json/AMMO_from_json.py +msgid ".380 ACP JHP" +msgstr "патрон .380 ACP ЭП" + +#. ~ Description for .380 ACP JHP +#: lang/json/AMMO_from_json.py +msgid "" +".380 ACP ammunition with a 95gr jacketed hollow point bullet. It is a " +"popular round for small concealable backup pistols, and often the weakest " +"recommended defensive caliber. One should be careful not to chamber it in " +"9x18mm Makarov or 9x19mm firearms." +msgstr "" +"Экспансивные патроны .380 ACP с 95-грановой пулей. Являются популярным типом" +" патронов для маленьких пистолетов скрытого ношения, и часто наиболее слабым" +" для самозащиты. Тебе не следует использовать эти патроны в пистолетах " +"9x19mm или 9x18mm Макарова." + +#: lang/json/AMMO_from_json.py +msgid ".380 ACP +P" +msgstr ".380 ACP +P" + +#. ~ Description for .380 ACP +P +#: lang/json/AMMO_from_json.py +msgid "" +"Overpressure .380 ACP ammunition with a 90gr jacketed hollow point bullet. " +"These defensive loadings are designed to maximise performance and tend to be" +" more accurate than practice ammo. One should be careful not to chamber it " +"in 9x18mm Makarov or 9x19mm firearms." +msgstr "" +"Экспансивные патроны повышенного давления .380 ACP с 90-грановой пулей. Эти " +"пули разработаны для максимальной эффективности и имеют более высокую " +"точность, чем обычные боеприпасы. Тебе не следует использовать эти патроны в" +" пистолетах 9x19mm или 9x18mm Макарова." + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP FMJ" +msgstr "переснаряжённый патрон .380 ACP ОП" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP JHP" +msgstr "переснаряжённый патрон .380 ACP ЭП" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP +P" +msgstr "переснаряжённый патрон .380 ACP +P" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "10mm Auto" msgid_plural "10mm Auto" @@ -4914,23 +5026,6 @@ msgstr "" "Заострённый болт с оперением, вырезан из кости. Он лёгкий, наносит приличный" " урон и довольно точен. Имеет хороший шанс уцелеть после выстрела." -#: lang/json/AMMO_from_json.py -msgid "throwing stick" -msgid_plural "throwing sticks" -msgstr[0] "метательная палка" -msgstr[1] "метательные палки" -msgstr[2] "метательных палок" -msgstr[3] "метательная палка" - -#. ~ Description for throwing stick -#: lang/json/AMMO_from_json.py -msgid "" -"A stick carved into a shape suitable for throwing at a target. Not a " -"boomerang, so don't expect it to return to your hand." -msgstr "" -"Палка, заточенная таким образом, чтобы её можно было метать в цель. Это не " -"бумеранг, так что не ожидайте, что она сама вернётся вам в руку." - #: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py msgid "wooden javelin" msgid_plural "wooden javelins" @@ -7209,13 +7304,13 @@ msgstr[3] "пара кольчужных рукавов" #. ~ Description for pair of chainmail sleeves #: lang/json/ARMOR_from_json.py msgid "" -"Customized chainmail arms. Each sleeve has leather straps to connect them " -"with each other. The lack of fingers makes them less cumbersome and allows " -"them to be used with gloves." +"Customized chainmail arms. Each sleeve has straps to connect them with each" +" other. The lack of fingers makes them less cumbersome and allows them to " +"be used with gloves." msgstr "" -"Подогнанные под себя кольчужные нарукавники. Каждый рукав имеет кожаные " -"ремни, чтобы соединять их друг с другом. Отсутствие пальцев делает " -"нарукавники менее громоздкими и позволяет использовать их с перчатками." +"Подогнанные под себя кольчужные нарукавники. Каждый рукав имеет ремни, чтобы" +" соединять их друг с другом. Отсутствие пальцев делает нарукавники менее " +"громоздкими и позволяет использовать их с перчатками." #: lang/json/ARMOR_from_json.py msgid "chainmail coif" @@ -7243,12 +7338,11 @@ msgstr[3] "пара кольчужных штанов" #. ~ Description for chainmail leggings #: lang/json/ARMOR_from_json.py msgid "" -"Customized chainmail legs. Their leather straps keep everything in place, " -"and the lack of toes and heels allows them to work perfectly well with " -"footwear." +"Customized chainmail legs. Their straps keep everything in place, and the " +"lack of toes and heels allows them to work perfectly well with footwear." msgstr "" -"Подогнанные под себя кольчужные штаны. Кожаные ремни держат всё вместе, а " -"отсутствие носков и пяток позволяет носить их вместе обувью." +"Подогнанные под себя кольчужные штаны. Ремни держат всё вместе, а отсутствие" +" носков и пяток позволяет носить их вместе обувью." #: lang/json/ARMOR_from_json.py msgid "chainmail hauberk" @@ -7262,13 +7356,14 @@ msgstr[3] "кольчужный хауберк" #: lang/json/ARMOR_from_json.py msgid "" "A fully customized chainmail outfit, leaving the head uncovered. The shirt," -" arms, and leggings have been modified with leather straps to deal with " -"uneven weight distribution and to allow them to be used separately." +" arms, and leggings have been modified with straps and combined with a " +"gambeson to deal with uneven weight distribution, cold environments and to " +"allow them to be used separately." msgstr "" "Полностью подогнанный под себя кольчужный костюм без головного убора. " -"Рубашка, рукава и штаны с помощью кожаных ремней были изменены таким " -"образом, чтобы выровнять распределение веса и позволить этим частям " -"использоваться по отдельности." +"Рубашка, рукава и штаны были дополнены ремнями и соединены с гамбезоном, " +"чтобы бороться с неравномерным распределением веса, холодной погодой и " +"возможностью пользоваться частями по отдельности." #: lang/json/ARMOR_from_json.py msgid "chainmail armor" @@ -7282,12 +7377,14 @@ msgstr[3] "кольчужные доспехи" #: lang/json/ARMOR_from_json.py msgid "" "A fully customized chainmail suit. The coif, shirt, arms, and leggings have" -" been modified with leather straps to deal with uneven weight distribution " -"and to allow them to be used separately." +" been modified with straps and combined with a gambeson to deal with uneven " +"weight distribution, cold environments and to allow them to be used " +"separately." msgstr "" -"Полностью подогнанный под себя кольчужный костюм. Шапка, рубашка, рукава и " -"штаны с помощью кожаных ремней были изменены таким образом, чтобы выровнять " -"распределение веса и позволить этим частям использоваться по отдельности." +"Полностью подогнанный под себя кольчужный костюм. Шлем, рубашка, рукава и " +"штаны были дополнены ремнями и соединены с гамбезоном, чтобы бороться с " +"неравномерным распределением веса, холодной погодой и возможностью " +"пользоваться частями по отдельности." #: lang/json/ARMOR_from_json.py msgid "chainmail vest" @@ -7301,11 +7398,10 @@ msgstr[3] "кольчужный жилет" #: lang/json/ARMOR_from_json.py msgid "" "A customized chainmail vest. It's a sleeveless piece of chainmail with " -"small leather straps designed to better distribute the weight." +"small straps designed to better distribute the weight." msgstr "" "Подогнанный под себя кольчужный жилет. Представляет собой кольчугу без " -"рукавов с маленькими кожаными ремнями, рассчитанную для лучшего " -"распределения веса." +"рукавов с маленькими ремнями, рассчитанную для лучшего распределения веса." #: lang/json/ARMOR_from_json.py msgid "leather chaps" @@ -15662,6 +15758,25 @@ msgstr "" "Удобная и быстро расстёгиваемая кобура для небольшого оружия. Активируйте, " "чтобы вложить/достать оружие." +#: lang/json/ARMOR_from_json.py +msgid "deep concealment holster" +msgid_plural "deep concealment holsters" +msgstr[0] "кобура скрытого ношения" +msgstr[1] "кобуры скрытого ношения" +msgstr[2] "кобуры скрытого ношения" +msgstr[3] "кобура скрытого ношения" + +#. ~ Description for deep concealment holster +#: lang/json/ARMOR_from_json.py +msgid "" +"An elastic band with numerous provisions for concealing a very small pistol " +"close to the body. It is awkward to use without practice. Activate to " +"holster/draw a gun." +msgstr "" +"Гибкая лента со множеством креплений, которые используются для сокрытия " +"маленького пистолета близко к телу. Неудобно использовать без подготовки. " +"Активируйте, чтобы вложить/достать пистолет." + #: lang/json/ARMOR_from_json.py msgid "survivor harness" msgid_plural "survivor harnesses" @@ -16324,8 +16439,8 @@ msgstr[1] "КБМ: Активная система обороны" msgstr[2] "КБМ: Активная система обороны" msgstr[3] "КБМ: Активная система обороны" -#. ~ Description for Active Defense System #. ~ Description for Active Defense System CBM +#. ~ Description for Active Defense System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A thin forcefield surrounds your body, continually draining power. Anything" @@ -16346,8 +16461,8 @@ msgstr[1] "КБМ: Улучшенный микрореактор" msgstr[2] "КБМ: Улучшенный микрореактор" msgstr[3] "КБМ: Улучшенный микрореактор" -#. ~ Description for Advanced Microreactor System #. ~ Description for Advanced Microreactor CBM +#. ~ Description for Advanced Microreactor System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This stripped down mini-reactor is safer than it appears due to integrated " @@ -16366,8 +16481,8 @@ msgstr[1] "КБМ: Сигнализация" msgstr[2] "КБМ: Сигнализация" msgstr[3] "КБМ: Сигнализация" -#. ~ Description for Alarm System #. ~ Description for Alarm System CBM +#. ~ Description for Alarm System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A motion-detecting alarm system will notice almost all movement within a " @@ -16473,8 +16588,8 @@ msgstr[1] "КБМ: Поглощение батарей" msgstr[2] "КБМ: Поглощение батарей" msgstr[3] "КБМ: Поглощение батарей" -#. ~ Description for Battery System #. ~ Description for Battery System CBM +#. ~ Description for Battery System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have a battery draining attachment, and thus can make use of the energy " @@ -16493,8 +16608,8 @@ msgstr[1] "КБМ: Мономолекулярный клинок" msgstr[2] "КБМ: Мономолекулярный клинок" msgstr[3] "КБМ: Мономолекулярный клинок" -#. ~ Description for Monomolecular Blade #. ~ Description for Monomolecular Blade CBM +#. ~ Description for Monomolecular Blade #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A deadly foot-long blade made of advanced material now resides inside your " @@ -16572,8 +16687,8 @@ msgstr[1] "КБМ: Фильтр крови" msgstr[2] "КБМ: Фильтр крови" msgstr[3] "КБМ: Фильтр крови" -#. ~ Description for Blood Filter #. ~ Description for Blood Filter CBM +#. ~ Description for Blood Filter #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A filtration system in your heart allows you to actively filter out chemical" @@ -16611,8 +16726,8 @@ msgstr[1] "КБМ: Подкожное карбоновое волокно" msgstr[2] "КБМ: Подкожное карбоновое волокно" msgstr[3] "КБМ: Подкожное карбоновое волокно" -#. ~ Description for Subdermal Carbon Filament #. ~ Description for Subdermal Carbon Filament CBM +#. ~ Description for Subdermal Carbon Filament #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Lying just beneath your skin is a thin armor made of carbon nanotubes. This" @@ -16629,8 +16744,8 @@ msgstr[1] "КБМ: Цепная молния" msgstr[2] "КБМ: Цепная молния" msgstr[3] "КБМ: Цепная молния" -#. ~ Description for Chain Lightning #. ~ Description for Chain Lightning CBM +#. ~ Description for Chain Lightning #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your body is equipped with a chain lightning generator, allowing you to emit" @@ -16669,8 +16784,8 @@ msgstr[1] "КБМ: Внутренний климат-контроль" msgstr[2] "КБМ: Внутренний климат-контроль" msgstr[3] "КБМ: Внутренний климат-контроль" -#. ~ Description for Internal Climate Control #. ~ Description for Internal Climate Control CBM +#. ~ Description for Internal Climate Control #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Throughout your body lies a network of thermal piping which eases the " @@ -16687,8 +16802,8 @@ msgstr[1] "КБМ: Система невидимости" msgstr[2] "КБМ: Система невидимости" msgstr[3] "КБМ: Система невидимости" -#. ~ Description for Cloaking System #. ~ Description for Cloaking System CBM +#. ~ Description for Cloaking System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This high-power system uses a set of cameras and LEDs to make you blend into" @@ -16726,8 +16841,8 @@ msgstr[1] "КБМ: Ускорение рефлексов" msgstr[2] "КБМ: Ускорение рефлексов" msgstr[3] "КБМ: Ускорение рефлексов" -#. ~ Description for Wired Reflexes #. ~ Description for Wired Reflexes CBM +#. ~ Description for Wired Reflexes #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your reaction time has been greatly enhanced with bionic nerve stimulators, " @@ -16744,8 +16859,8 @@ msgstr[1] "КБМ: Улучшение пищеварительной систе msgstr[2] "КБМ: Улучшение пищеварительной системы" msgstr[3] "КБМ: Улучшение пищеварительной системы" -#. ~ Description for Expanded Digestive System #. ~ Description for Expanded Digestive System CBM +#. ~ Description for Expanded Digestive System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have been outfitted with three synthetic stomachs and industrial-grade " @@ -16765,8 +16880,8 @@ msgstr[1] "КБМ: Усилитель слуха" msgstr[2] "КБМ: Усилитель слуха" msgstr[3] "КБМ: Усилитель слуха" -#. ~ Description for Enhanced Hearing #. ~ Description for Enhanced Hearing CBM +#. ~ Description for Enhanced Hearing #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "When this bionic is active, your hearing will be drastically improved, " @@ -16805,8 +16920,8 @@ msgstr[1] "КБМ: ЭМИ излучатель" msgstr[2] "КБМ: ЭМИ излучатель" msgstr[3] "КБМ: ЭМИ излучатель" -#. ~ Description for EMP Projector #. ~ Description for EMP Projector CBM +#. ~ Description for EMP Projector #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A ranged EMP generator system is implanted on the palm of your right hand " @@ -16826,8 +16941,8 @@ msgstr[1] "КБМ: Сжигатель этанола" msgstr[2] "КБМ: Сжигатель этанола" msgstr[3] "КБМ: Сжигатель этанола" -#. ~ Description for Ethanol Burner #. ~ Description for Ethanol Burner CBM +#. ~ Description for Ethanol Burner #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You burn alcohol as fuel in an extremely efficient reaction. However, you " @@ -16844,8 +16959,8 @@ msgstr[1] "КБМ: Воздушный конденсатор испарений" msgstr[2] "КБМ: Воздушный конденсатор испарений" msgstr[3] "КБМ: Воздушный конденсатор испарений" -#. ~ Description for Aero-Evaporator #. ~ Description for Aero-Evaporator CBM +#. ~ Description for Aero-Evaporator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This unit draws moisture from the surrounding air, which then is poured from" @@ -16862,8 +16977,8 @@ msgstr[1] "КБМ: Алмазная роговица" msgstr[2] "КБМ: Алмазная роговица" msgstr[3] "КБМ: Алмазная роговица" -#. ~ Description for Diamond Cornea #. ~ Description for Diamond Cornea CBM +#. ~ Description for Diamond Cornea #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Your vision is greatly enhanced, giving you a +2 bonus to perception." msgstr "Ваше зрение значительно усиливается, что даёт бонус +2 к восприятию." @@ -16897,8 +17012,8 @@ msgstr[1] "КБМ: Искажение лица" msgstr[2] "КБМ: Искажение лица" msgstr[3] "КБМ: Искажение лица" -#. ~ Description for Facial Distortion #. ~ Description for Facial Distortion CBM +#. ~ Description for Facial Distortion #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Through controlled application of electrochemical impulses, you are capable " @@ -16917,8 +17032,8 @@ msgstr[1] "КБМ: Диэлектрическая система конденс msgstr[2] "КБМ: Диэлектрическая система конденсаторов" msgstr[3] "КБМ: Диэлектрическая система конденсаторов" -#. ~ Description for Dielectric Capacitance System #. ~ Description for Dielectric Capacitance System CBM +#. ~ Description for Dielectric Capacitance System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Throughout your body lies a network of miniature piezoelectric capacitors " @@ -17010,8 +17125,8 @@ msgstr[1] "КБМ: Встроенная печь" msgstr[2] "КБМ: Встроенная печь" msgstr[3] "КБМ: Встроенная печь" -#. ~ Description for Internal Furnace #. ~ Description for Internal Furnace CBM +#. ~ Description for Internal Furnace #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "When this bionic is active, you can burn nearly any organic material as fuel" @@ -17068,8 +17183,8 @@ msgstr[1] "КБМ: Почвенный эхолокатор" msgstr[2] "КБМ: Почвенный эхолокатор" msgstr[3] "КБМ: Почвенный эхолокатор" -#. ~ Description for Terranian Sonar #. ~ Description for Terranian Sonar CBM +#. ~ Description for Terranian Sonar #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your feet are equipped with precision sonar equipment, allowing you to " @@ -17087,8 +17202,8 @@ msgstr[1] "КБМ: Тепловое поглощение" msgstr[2] "КБМ: Тепловое поглощение" msgstr[3] "КБМ: Тепловое поглощение" -#. ~ Description for Heat Drain #. ~ Description for Heat Drain CBM +#. ~ Description for Heat Drain #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While fighting unarmed against a warm-blooded opponent, there is a chance " @@ -17127,8 +17242,8 @@ msgstr[1] "КБМ: Гидравлические мышцы" msgstr[2] "КБМ: Гидравлические мышцы" msgstr[3] "КБМ: Гидравлические мышцы" -#. ~ Description for Hydraulic Muscles #. ~ Description for Hydraulic Muscles CBM +#. ~ Description for Hydraulic Muscles #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While activated, your muscles will be greatly enhanced, increasing your " @@ -17145,8 +17260,8 @@ msgstr[1] "КБМ: Инфракрасное зрение" msgstr[2] "КБМ: Инфракрасное зрение" msgstr[3] "КБМ: Инфракрасное зрение" -#. ~ Description for Infrared Vision #. ~ Description for Infrared Vision CBM +#. ~ Description for Infrared Vision #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your range of vision extends into the infrared, allowing you to see warm-" @@ -17163,8 +17278,8 @@ msgstr[1] "КБМ: Встроенный сопроцессор" msgstr[2] "КБМ: Встроенный сопроцессор" msgstr[3] "КБМ: Встроенный сопроцессор" -#. ~ Description for Cerebral Booster #. ~ Description for Cerebral Booster CBM +#. ~ Description for Cerebral Booster #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your brain has been enhanced with bionic coprocessors, giving you a +2 bonus" @@ -17200,8 +17315,8 @@ msgstr[1] "КБМ: Система воспроизведения лейкоци msgstr[2] "КБМ: Система воспроизведения лейкоцитов" msgstr[3] "КБМ: Система воспроизведения лейкоцитов" -#. ~ Description for Leukocyte Breeder System #. ~ Description for Leukocyte Breeder System CBM +#. ~ Description for Leukocyte Breeder System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You are equipped with bionic stimulators which augment your haematopoiesis " @@ -17222,8 +17337,8 @@ msgstr[1] "КБМ: Мини-огнемёт" msgstr[2] "КБМ: Мини-огнемёт" msgstr[3] "КБМ: Мини-огнемёт" -#. ~ Description for Mini-Flamethrower #. ~ Description for Mini-Flamethrower CBM +#. ~ Description for Mini-Flamethrower #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "The index fingers of both hands have powerful fire starters which extend " @@ -17276,8 +17391,8 @@ msgstr[1] "КБМ: Глазная мембрана" msgstr[2] "КБМ: Глазная мембрана" msgstr[3] "КБМ: Глазная мембрана" -#. ~ Description for Nictating Membrane #. ~ Description for Nictating Membrane CBM +#. ~ Description for Nictating Membrane #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your eyes have a thin membrane that closes over your eyes while underwater, " @@ -17314,8 +17429,8 @@ msgstr[1] "КБМ: Метаболический обмен" msgstr[2] "КБМ: Метаболический обмен" msgstr[3] "КБМ: Метаболический обмен" -#. ~ Description for Metabolic Interchange #. ~ Description for Metabolic Interchange CBM +#. ~ Description for Metabolic Interchange #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your digestive system and power supply are interconnected. Bionic energy is" @@ -17333,8 +17448,8 @@ msgstr[1] "КБМ: Считыватель погоды" msgstr[2] "КБМ: Считыватель погоды" msgstr[3] "КБМ: Считыватель погоды" -#. ~ Description for Weather Reader #. ~ Description for Weather Reader CBM +#. ~ Description for Weather Reader #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A multitude of scientific instruments and sensors collect environmental " @@ -17353,8 +17468,8 @@ msgstr[1] "КБМ: Ремонтные наноботы" msgstr[2] "КБМ: Ремонтные наноботы" msgstr[3] "КБМ: Ремонтные наноботы" -#. ~ Description for Repair Nanobots #. ~ Description for Repair Nanobots CBM +#. ~ Description for Repair Nanobots #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Inside your body is a fleet of tiny dormant robots. While activated they " @@ -17373,8 +17488,8 @@ msgstr[1] "КБМ: Генератор искусственной ночи" msgstr[2] "КБМ: Генератор искусственной ночи" msgstr[3] "КБМ: Генератор искусственной ночи" -#. ~ Description for Artificial Night Generator #. ~ Description for Artificial Night Generator CBM +#. ~ Description for Artificial Night Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Destructive interference eliminates all light within a 15 tile radius." msgstr "" @@ -17405,8 +17520,8 @@ msgstr[1] "КБМ: Наступательная система обороны" msgstr[2] "КБМ: Наступательная система обороны" msgstr[3] "КБМ: Наступательная система обороны" -#. ~ Description for Offensive Defense System #. ~ Description for Offensive Defense System CBM +#. ~ Description for Offensive Defense System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A thin forcefield surrounds your body, continually draining power. This " @@ -17425,8 +17540,8 @@ msgstr[1] "КБМ: Притупление чувств" msgstr[2] "КБМ: Притупление чувств" msgstr[3] "КБМ: Притупление чувств" -#. ~ Description for Sensory Dulling #. ~ Description for Sensory Dulling CBM +#. ~ Description for Sensory Dulling #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your nervous system is wired to allow you to inhibit the signals of pain, " @@ -17462,8 +17577,8 @@ msgstr[1] "КБМ: Интерфейс силовой брони" msgstr[2] "КБМ: Интерфейс силовой брони" msgstr[3] "КБМ: Интерфейс силовой брони" -#. ~ Description for Power Armor Interface #. ~ Description for Power Armor Interface CBM +#. ~ Description for Power Armor Interface #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Interfaces your power system with the internal charging port on suits of " @@ -17480,8 +17595,8 @@ msgstr[1] "КБМ: Интерфейс силовой брони Мк. II" msgstr[2] "КБМ: Интерфейс силовой брони Мк. II" msgstr[3] "КБМ: Интерфейс силовой брони Мк. II" -#. ~ Description for Power Armor Interface Mk. II #. ~ Description for Power Armor Mk. II Interface CBM +#. ~ Description for Power Armor Interface Mk. II #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Interfaces your power system with the internal charging port on suits of " @@ -17500,8 +17615,8 @@ msgstr[1] "КБМ: Доп. аккумулятор" msgstr[2] "КБМ: Доп. аккумулятор" msgstr[3] "КБМ: Доп. аккумулятор" -#. ~ Description for Power Storage #. ~ Description for Power Storage CBM +#. ~ Description for Power Storage #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Compact Bionics Module that upgrades your power capacity by 100 units. " @@ -17520,8 +17635,8 @@ msgstr[1] "КБМ: Доп. аккумулятор Мк. II" msgstr[2] "КБМ: Доп. аккумулятор Мк. II" msgstr[3] "КБМ: Доп. аккумулятор Мк. II" -#. ~ Description for Power Storage Mk. II #. ~ Description for Power Storage CBM Mk. II +#. ~ Description for Power Storage Mk. II #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Compact Bionics Module developed at DoubleTech Industries as a replacement " @@ -17539,8 +17654,8 @@ msgstr[1] "КБМ: Вероятностное путешествие" msgstr[2] "КБМ: Вероятностное путешествие" msgstr[3] "КБМ: Вероятностное путешествие" -#. ~ Description for Probability Travel #. ~ Description for Probability Travel CBM +#. ~ Description for Probability Travel #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Increases your body's wavelength, allowing you to quantum tunnel through " @@ -17597,18 +17712,17 @@ msgstr[1] "КБМ: Рельсотрон" msgstr[2] "КБМ: Рельсотрон" msgstr[3] "КБМ: Рельсотрон" -#. ~ Description for Railgun #. ~ Description for Railgun CBM -#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +#: lang/json/BIONIC_ITEM_from_json.py msgid "" -"EM field generators in your arms double the range and damage of thrown iron " -"and steel objects at a cost of 1 power per throw, causing them to leave a " -"trail of electricity that can cause additional damage." +"EM field generators in your arms increase the range and damage of thrown " +"iron and steel objects at a cost of 1 power per throw, causing them to leave" +" a trail of electricity that can cause additional damage." msgstr "" -"Электромагнитный генератор в ваших руках удваивает дистанцию и урон метания " -"железных и стальных предметов. Обходится в 1 единицу энергии за бросок, при " -"метании предмет оставляет за собой электрический след, который может " -"причинять дополнительный урон." +"Электромагнитный генератор в ваших руках увеличивает дистанцию и урон " +"метания железных и стальных предметов. Обходится в 1 единицу энергии за " +"бросок, при метании предмет оставляет за собой электрический след, который " +"может причинять дополнительный урон." #: lang/json/BIONIC_ITEM_from_json.py msgid "Fingertip Razors CBM" @@ -17618,8 +17732,8 @@ msgstr[1] "КБМ: Бионические когти" msgstr[2] "КБМ: Бионические когти" msgstr[3] "КБМ: Бионические когти" -#. ~ Description for Fingertip Razors #. ~ Description for Fingertip Razors CBM +#. ~ Description for Fingertip Razors #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You possess razor-sharp retractable claws underneath your fingernails, ten " @@ -17639,8 +17753,8 @@ msgstr[1] "КБМ: Встроенный микрореактор" msgstr[2] "КБМ: Встроенный микрореактор" msgstr[3] "КБМ: Встроенный микрореактор" -#. ~ Description for Microreactor System #. ~ Description for Internal Microreactor CBM +#. ~ Description for Microreactor System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This stripped down mini-reactor may not be the best thing to have in your " @@ -17676,8 +17790,8 @@ msgstr[1] "КБМ: Очистительный агрегат" msgstr[2] "КБМ: Очистительный агрегат" msgstr[3] "КБМ: Очистительный агрегат" -#. ~ Description for Recycler Unit #. ~ Description for Recycler Unit CBM +#. ~ Description for Recycler Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your digestive system has been outfitted with a series of filters and " @@ -17696,8 +17810,8 @@ msgstr[1] "КБМ: Дистанционное управление" msgstr[2] "КБМ: Дистанционное управление" msgstr[3] "КБМ: Дистанционное управление" -#. ~ Description for Remote Controller #. ~ Description for Remote Controller CBM +#. ~ Description for Remote Controller #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A small module connected to your brain allows you to interface with nearby " @@ -17714,8 +17828,8 @@ msgstr[1] "КБМ: Звуковой резонатор" msgstr[2] "КБМ: Звуковой резонатор" msgstr[3] "КБМ: Звуковой резонатор" -#. ~ Description for Sonic Resonator #. ~ Description for Sonic Resonator CBM +#. ~ Description for Sonic Resonator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your entire body may resonate at very high power, creating a short-range " @@ -17734,8 +17848,8 @@ msgstr[1] "КБМ: Обонятельная маскировка" msgstr[2] "КБМ: Обонятельная маскировка" msgstr[3] "КБМ: Обонятельная маскировка" -#. ~ Description for Olfactory Mask #. ~ Description for Olfactory Mask CBM +#. ~ Description for Olfactory Mask #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While this system is powered, your body will produce very little odor, " @@ -17752,8 +17866,8 @@ msgstr[1] "КБМ: Аромавизоры" msgstr[2] "КБМ: Аромавизоры" msgstr[3] "КБМ: Аромавизоры" -#. ~ Description for Scent Vision #. ~ Description for Scent Vision CBM +#. ~ Description for Scent Vision #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While this system is powered, you're able to visually sense your own scent, " @@ -17771,8 +17885,8 @@ msgstr[1] "КБМ: Электрошокер" msgstr[2] "КБМ: Электрошокер" msgstr[3] "КБМ: Электрошокер" -#. ~ Description for Electroshock Unit #. ~ Description for Electroshock Unit CBM +#. ~ Description for Electroshock Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While fighting unarmed, or with a weapon that conducts electricity, there is" @@ -17791,8 +17905,8 @@ msgstr[1] "КБМ: Генератор ударной волны" msgstr[2] "КБМ: Генератор ударной волны" msgstr[3] "КБМ: Генератор ударной волны" -#. ~ Description for Shockwave Generator #. ~ Description for Shockwave Generator CBM +#. ~ Description for Shockwave Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You generate a powerful shockwave, knocking back all nearby creatures. " @@ -17812,8 +17926,8 @@ msgstr[1] "КБМ: Синаптический ускоритель" msgstr[2] "КБМ: Синаптический ускоритель" msgstr[3] "КБМ: Синаптический ускоритель" -#. ~ Description for Synaptic Accelerator #. ~ Description for Synaptic Accelerator CBM +#. ~ Description for Synaptic Accelerator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py #, no-python-format msgid "" @@ -17921,8 +18035,8 @@ msgstr[1] "КБМ: Телепортатор" msgstr[2] "КБМ: Телепортатор" msgstr[3] "КБМ: Телепортатор" -#. ~ Description for Teleportation Unit #. ~ Description for Teleportation Unit CBM +#. ~ Description for Teleportation Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This highly experimental unit folds space over short distances, instantly " @@ -17942,8 +18056,8 @@ msgstr[1] "КБМ: Замедление времени" msgstr[2] "КБМ: Замедление времени" msgstr[3] "КБМ: Замедление времени" -#. ~ Description for Time Dilation #. ~ Description for Time Dilation CBM +#. ~ Description for Time Dilation #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "At the cost of all stored bionic power, you may increase your body speed and" @@ -17963,8 +18077,8 @@ msgstr[1] "КБМ: Встроенный набор инструментов" msgstr[2] "КБМ: Встроенный набор инструментов" msgstr[3] "КБМ: Встроенный набор инструментов" -#. ~ Description for Integrated Toolset #. ~ Description for Integrated Toolset CBM +#. ~ Description for Integrated Toolset #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Surgically implanted in your hands and fingers is a complete tool set - " @@ -18002,8 +18116,8 @@ msgstr[1] "КБМ: Суставные сервоприводы" msgstr[2] "КБМ: Суставные сервоприводы" msgstr[3] "КБМ: Суставные сервоприводы" -#. ~ Description for Joint Servo #. ~ Description for Joint Servo CBM +#. ~ Description for Joint Servo #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your leg joints have been equipped with servomotors that provide power-" @@ -18024,8 +18138,8 @@ msgstr[1] "КБМ: Сверх-уклонение" msgstr[2] "КБМ: Сверх-уклонение" msgstr[3] "КБМ: Сверх-уклонение" -#. ~ Description for Uncanny Dodge #. ~ Description for Uncanny Dodge CBM +#. ~ Description for Uncanny Dodge #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your nervous system has been augmented with bionic processors, allowing you " @@ -18042,8 +18156,8 @@ msgstr[1] "КБМ: Единая энергосистема" msgstr[2] "КБМ: Единая энергосистема" msgstr[3] "КБМ: Единая энергосистема" -#. ~ Description for Internal Unified Power System #. ~ Description for Unified Power System CBM +#. ~ Description for Internal Unified Power System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have a unified power system wired into your power banks. Objects that " @@ -18061,8 +18175,8 @@ msgstr[1] "КБМ: Встроенный хронометр" msgstr[2] "КБМ: Встроенный хронометр" msgstr[3] "КБМ: Встроенный хронометр" -#. ~ Description for Internal Chronometer #. ~ Description for Internal Chronometer CBM +#. ~ Description for Internal Chronometer #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have been equipped with an internal atomic clock, ensuring that you will" @@ -18158,8 +18272,8 @@ msgstr[1] "КБМ: Модификатор вкуса" msgstr[2] "КБМ: Модификатор вкуса" msgstr[3] "КБМ: Модификатор вкуса" -#. ~ Description for Taste Modifier #. ~ Description for Taste Modifier CBM +#. ~ Description for Taste Modifier #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A set of highly sensitive sensors is installed in your mouth, and a small " @@ -18444,8 +18558,8 @@ msgstr "" "У вас имеется небольшая солнечная панель. Под прямыми солнечными лучами ваши" " аккумуляторы медленно заряжаются." -#. ~ Description for Solar Panels #. ~ Description for Solar Panels CBM +#. ~ Description for Solar Panels #: lang/json/BIONIC_ITEM_from_json.py lang/json/BIONIC_ITEM_from_json.py #: lang/json/bionic_from_json.py msgid "" @@ -18541,8 +18655,8 @@ msgstr[1] "КБМ: Ионный перегрузочный генератор" msgstr[2] "КБМ: Ионный перегрузочный генератор" msgstr[3] "КБМ: Ионный перегрузочный генератор" -#. ~ Description for Ionic Overload Generator #. ~ Description for Ionic Overload Generator CBM +#. ~ Description for Ionic Overload Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A powerful ion energy generator is implanted on your chest. Fires a " @@ -25513,6 +25627,23 @@ msgstr[3] "молоко" msgid "Baby cow food, appropriated for adult humans. Spoils rapidly." msgstr "Пища телят, приготовленная для взрослых людей. Быстро портится." +#: lang/json/COMESTIBLE_from_json.py +msgid "reconstituted milk" +msgid_plural "reconstituted milk" +msgstr[0] "восстановленное молоко" +msgstr[1] "восстановленного молока" +msgstr[2] "восстановленного молока" +msgstr[3] "восстановленное молоко" + +#. ~ Description for reconstituted milk +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Baby cow food, appropriated for adult humans. This milk has been " +"reconstituted from a processed milk. Spoils rapidly." +msgstr "" +"Пища телят, приготовленная для взрослых людей. Было восстановлено из " +"переработанного молока. Быстро портится." + #: lang/json/COMESTIBLE_from_json.py msgid "coffee milk" msgstr "кофе с молоком" @@ -29531,22 +29662,23 @@ msgstr "" "готово для курения." #: lang/json/COMESTIBLE_from_json.py -msgid "pink tablet" -msgstr "розовая таблетка" +msgid "pink tab" +msgstr "розовая марка" -#. ~ Use action activation_message for pink tablet. +#. ~ Use action activation_message for pink tab. #: lang/json/COMESTIBLE_from_json.py msgid "You eat the pink tablet." msgstr "Вы принимаете розовую таблетку." -#. ~ Description for pink tablet +#. ~ Description for pink tab #: lang/json/COMESTIBLE_from_json.py msgid "" -"Tiny pink candies shaped like hearts, already dosed with some sort of drug." -" Really only useful for entertainment. Will cause hallucinations." +"Tiny pink tabs resembling postage stamps, already dosed with some sort of " +"drug. Really only useful for entertainment. Will cause hallucinations." msgstr "" -"Маленькие розовые конфетки в форме сердечек. Содержат галлюциноген и годятся" -" разве что для поднятия настроения." +"Маленькая розовая марка, похожая на почтовую, но уже вымоченная в " +"определенном наркотике. Пригодна только для развлечения и вызывает " +"галлюцинации." #: lang/json/COMESTIBLE_from_json.py msgid "medical gauze" @@ -32387,6 +32519,15 @@ msgstr[3] "горсть абрикосов" msgid "A smooth-skinned fruit, related to the peach." msgstr "Гладкокожий фрукт, похожий на персик." +#: lang/json/COMESTIBLE_from_json.py +msgid "cactus pad" +msgstr "росток кактуса" + +#. ~ Description for cactus pad +#: lang/json/COMESTIBLE_from_json.py +msgid "An edible pad of a cactus." +msgstr "Съедобный росток кактуса." + #: lang/json/COMESTIBLE_from_json.py msgid "barley" msgstr "ячмень" @@ -34767,6 +34908,15 @@ msgstr "" "для ваших хот-догов и гамбургеров, или, если всё совсем плохо, сразу в " "живот." +#: lang/json/COMESTIBLE_from_json.py +msgid "nopalito" +msgstr "нопалито" + +#. ~ Description for nopalito +#: lang/json/COMESTIBLE_from_json.py +msgid "A less prickly version of cactus pads." +msgstr "Менее колючая версия ростков кактуса." + #: lang/json/COMESTIBLE_from_json.py msgid "wheat cereal" msgstr "пшеничные хлопья" @@ -37672,6 +37822,19 @@ msgstr[3] "фальшивый предмет" msgid "Dummy item. If you see this, then something went wrong." msgstr "Пустышка. Если вы видите это, то что-то пошло не так." +#: lang/json/GENERIC_from_json.py +msgid "semi ground grains" +msgid_plural "semi ground grains" +msgstr[0] "недомолотое зерно" +msgstr[1] "недомолотое зерно" +msgstr[2] "недомолотое зерно" +msgstr[3] "недомолотое зерно" + +#. ~ Description for semi ground grains +#: lang/json/GENERIC_from_json.py +msgid "A paste of half-finished milled grains, not yet flour." +msgstr "Масса из недомолотых зерен, все еще не мука." + #: lang/json/GENERIC_from_json.py msgid "smoldering embers" msgid_plural "smoldering embers" @@ -37761,8 +37924,8 @@ msgstr "огонь поблизости" #. ~ Description for wind #. ~ Description for a smoking device and a source of flame #. ~ Description for abstract map -#. ~ Description for weapon #. ~ Description for seeing this is a bug +#. ~ Description for weapon #: lang/json/GENERIC_from_json.py lang/json/GENERIC_from_json.py #: lang/json/TOOL_from_json.py lang/json/TOOL_from_json.py #: lang/json/skill_from_json.py @@ -40691,6 +40854,23 @@ msgstr "" "Установленное на бампере устройство для крепления и перевозки запасного " "колеса сзади транспорта. Соедините с колесом, чтобы смонтировать." +#: lang/json/GENERIC_from_json.py +msgid "welding component kit" +msgid_plural "welding component kits" +msgstr[0] "набор для сварочной станции" +msgstr[1] "наборов для сварочной станции" +msgstr[2] "наборов для сварочной станции" +msgstr[3] "наборы для сварочной станции" + +#. ~ Description for welding component kit +#: lang/json/GENERIC_from_json.py +msgid "" +"A set of components useful for constructing a full-featured welding station," +" complete with soldering capability." +msgstr "" +"Набор деталей для сборки полноценного сварочного верстака в комплекте с " +"паяльной станцией." + #: lang/json/GENERIC_from_json.py msgid "canister grenade" msgid_plural "canister grenades" @@ -44494,6 +44674,23 @@ msgid "" msgstr "" "Тяжёлая рама, оснащённая крепежами и точками крепления для перевозки груза." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "floor trunk" +msgid_plural "floor trunks" +msgstr[0] "багажник в полу" +msgstr[1] "багажников в полу" +msgstr[2] "багажников в полу" +msgstr[3] "багажники в полу" + +#. ~ Description for floor trunk +#: lang/json/GENERIC_from_json.py +msgid "" +"A section of flooring with a cargo-space beneath, and a hinged door for " +"access." +msgstr "" +"Место в полу, предназначенное для хранения грузов с откидным люком для " +"доступа." + #: lang/json/GENERIC_from_json.py msgid "livestock carrier" msgid_plural "livestock carriers" @@ -44600,14 +44797,15 @@ msgstr[3] "УБП-совместимая станция зарядки" msgid "" "A Unified Power System recharging station designed to operate on vehicle " "power. Once installed in a vehicle storage space and turned on from a " -"dashboard or electronics control unit, it will slowly charge all tools with " -"rechargeable batteries in that space. The system can only be installed in " -"existing storage compartments." +"dashboard or electronics control unit, it will slowly charge all UPS " +"compatible tools and battery cells in that space. The system can only be " +"installed in existing storage compartments." msgstr "" "Станция зарядки Унифицированных Блоков Питания, предназначенная для " "подключения к автомобильному аккумулятору. Устанавливается в уже имеющийся " "грузовой отсек. После включения через систему управления медленно заряжает в" -" нём всё, у чего есть аккумулятор." +" нём всё, у чего есть аккумулятор. Система может быть установлена только на " +"существующее багажное место." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py #: lang/json/vehicle_part_from_json.py @@ -46536,6 +46734,19 @@ msgstr[3] "гильза 9x18 мм" msgid "An empty casing from a 9x18mm round." msgstr "Пустая гильза от патрона 9х18 мм." +#: lang/json/GENERIC_from_json.py +msgid ".380 ACP casing" +msgid_plural ".380 ACP casings" +msgstr[0] "гильза .380 ACP" +msgstr[1] "гильз .380 ACP" +msgstr[2] "гильз .380 ACP" +msgstr[3] "гильзы .380 ACP" + +#. ~ Description for .380 ACP casing +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a .380 ACP round." +msgstr "Пустая гильза от патрона .380 ACP." + #: lang/json/GENERIC_from_json.py msgid "shotgun hull" msgid_plural "shotgun hulls" @@ -51070,6 +51281,107 @@ msgstr "АРТЕФАКТЫ" msgid "ARMOR" msgstr "БРОНЯ" +#: lang/json/MAGAZINE_from_json.py +msgid "ultra-light battery cell" +msgstr "сверхлегкий аккумулятор" + +#. ~ Description for ultra-light battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a light battery cell designed for small size over everything else. " +"It retains its universal compatibility, though." +msgstr "" +"Легкий аккумулятор, который был специально разработан ради своего малого " +"размера. Тем не менее, он сохраняет свою универсальную совместимость." + +#: lang/json/MAGAZINE_from_json.py +msgid "light battery cell" +msgstr "легкий аккумулятор" + +#. ~ Description for light battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a light battery cell, universally compatible with all kinds of small" +" devices." +msgstr "Легкий аккумулятор, совместимый с любыми видами малых устройств." + +#: lang/json/MAGAZINE_from_json.py +msgid "light battery cell (high-capacity)" +msgid_plural "light battery cells (high-capacity)" +msgstr[0] "легкий аккумулятор (ёмкий)" +msgstr[1] "легких аккумуляторов (ёмкие)" +msgstr[2] "легких аккумуляторов (ёмкие)" +msgstr[3] "легкие аккумуляторы (ёмкие)" + +#. ~ Description for light battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity light battery cell, universally compatible with all " +"kinds of personal electronic devices." +msgstr "" +"Ёмкий малый аккумулятор, совместимый со всеми персональными электронными " +"устройствами." + +#: lang/json/MAGAZINE_from_json.py +msgid "medium battery cell" +msgstr "средний аккумулятор" + +#. ~ Description for medium battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a medium battery cell, universally compatible with all kinds of " +"appliances and power tools." +msgstr "" +"Средний аккумулятор, совместимый со всеми видами приборов и " +"электроинструментов." + +#: lang/json/MAGAZINE_from_json.py +msgid "medium battery cell (high-capacity)" +msgid_plural "medium battery cells (high-capacity)" +msgstr[0] "средний аккумулятор (ёмкий)" +msgstr[1] "средних аккумуляторов (ёмких)" +msgstr[2] "средних аккумуляторов (ёмких)" +msgstr[3] "средние аккумуляторы (ёмкие)" + +#. ~ Description for medium battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity medium battery cell, universally compatible with all" +" kinds of appliances and power tools." +msgstr "" +"Ёмкий средний аккумулятор, совместимый со всеми видами приборов и " +"электроинструментов." + +#: lang/json/MAGAZINE_from_json.py +msgid "heavy battery cell" +msgstr "тяжелый аккумулятор" + +#. ~ Description for heavy battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a heavy battery cell, universally compatible with all kinds of " +"industrial-grade equipment and large tools." +msgstr "" +"Тяжелый аккумулятор, совместимый со всеми типами заводского оборудования и " +"станками." + +#: lang/json/MAGAZINE_from_json.py +msgid "heavy battery cell (high-capacity)" +msgid_plural "heavy battery cells (high-capacity)" +msgstr[0] "тяжелый аккумулятор (ёмкий)" +msgstr[1] "тяжелых аккумуляторов (ёмких)" +msgstr[2] "тяжелых аккумуляторов (ёмких)" +msgstr[3] "тяжелые аккумуляторы (ёмкие)" + +#. ~ Description for heavy battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity heavy battery cell, universally compatible with all " +"kinds of industrial-grade equipment and large tools." +msgstr "" +"Ёмкий тяжелый аккумулятор, совместимый со всеми типами заводского " +"оборудования и станками." + #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "fuel bunker" msgstr "топливный бункер" @@ -51237,6 +51549,15 @@ msgstr "S&W 22A магазин" msgid "A standard capacity magazine for the popular S&W 22A pistol." msgstr "Магазин стандартной ёмкости для использования с популярным S&W 22A." +#: lang/json/MAGAZINE_from_json.py +msgid "Jennings J-22 magazine" +msgstr "" + +#. ~ Description for Jennings J-22 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A cheap 6-round steel box magazine for the Jennings J-22." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "LW-5 speedloader" msgstr "обойма LW-5" @@ -51542,6 +51863,15 @@ msgstr "" "Стандартный магазин на 20 патронов калибра .32 ACP для использования с ПП " "Skorpion Vz. 61." +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec P32 magazine" +msgstr "" + +#. ~ Description for Kel-Tec P32 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 7-round steel box magazine for the Kel-Tec P32." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "P226 magazine .357 SIG" msgstr "P226 .357 SIG магазин" @@ -51592,6 +51922,43 @@ msgstr "" "Эта обойма для быстрой перезарядки совместимого револьвера вмещает 5 " "патронов калибра .38." +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec P3AT magazine" +msgstr "" + +#. ~ Description for Kel-Tec P3AT magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 6-round steel box magazine for the Kel-Tec P3AT." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "FN 1910 magazine" +msgstr "" + +#. ~ Description for FN 1910 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "" +"A standard 6-round steel box magazine for the FN 1910. It looks a bit old." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "Ruger LCP magazine" +msgstr "" + +#. ~ Description for Ruger LCP magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 6-round capacity magazine for the Ruger LCP pistol." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "MAC-11 magazine" +msgstr "" + +#. ~ Description for MAC-11 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A cheap 32-round steel box magazine for use with the MAC-11 SMG." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid ".40 6-round speedloader" msgstr ".40 обойма на 6 патронов" @@ -52299,6 +52666,15 @@ msgstr "" "Стандартный стальной коробчатый магазин на 32 патрона для использования с ПП" " Узи." +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec PF-9 magazine" +msgstr "" + +#. ~ Description for Kel-Tec PF-9 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 7-round steel box magazine for the Kel-Tec PF-9." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "Makarov PM magazine" msgstr "ПМ магазин" @@ -53139,6 +53515,16 @@ msgstr "" "Добавляет сеть разорённых пиццерий со всё ещё функционирующими " "аниматрониками внутри." +#: lang/json/MOD_INFO_from_json.py +msgid "Battery Migration for Existing Games" +msgstr "Миграция заряда батарей для существующий миров." + +#. ~ Description for Battery Migration for Existing Games +#: lang/json/MOD_INFO_from_json.py +msgid "Allows you to reload and unload battery cells with legacy batteries." +msgstr "" +"Позволяет перезаряжать аккумуляторы при использовании старого типа батарей." + #: lang/json/MOD_INFO_from_json.py msgid "Boats" msgstr "Лодки" @@ -59594,8 +59980,8 @@ msgstr "" msgid "guardin gnome" msgstr "садовый гном" -#. ~ Description for garden gnome #. ~ Description for guardin gnome +#. ~ Description for garden gnome #: lang/json/MONSTER_from_json.py lang/json/furniture_from_json.py msgid "A normal and completely harmless garden gnome." msgstr "Обычный и совершенно безопасный садовый гном." @@ -60775,25 +61161,6 @@ msgstr "" " можете присоединить её к любому устройству с питанием от батареек, чтобы " "можно было использовать плутониевые заряды как источник питания." -#: lang/json/TOOLMOD_from_json.py -msgid "extra battery mod" -msgid_plural "extra battery mods" -msgstr[0] "расширитель заряда батарей" -msgstr[1] "расширителя заряда батарей" -msgstr[2] "расширителей заряда батарей" -msgstr[3] "расширитель заряда батарей" - -#. ~ Description for extra battery mod -#: lang/json/TOOLMOD_from_json.py -msgid "" -"This is a homemade battery compartment made with spare electronics. With " -"enough electronics skill, you could attach this to any electronic tool to " -"double the amount of batteries it can hold." -msgstr "" -"Это самодельная батарея, сделанная из подручной электроники. С достаточным " -"уровнем навыка электроники, вы можете прикрепить её к любым электронным " -"инструментам, чтобы удвоить количество зарядов, которое они могут держать." - #: lang/json/TOOLMOD_from_json.py msgid "UPS conversion mod" msgid_plural "UPS conversion mods" @@ -60852,6 +61219,57 @@ msgstr "" "Модификация батарейного отсека, которая позволяет использовать автомобильные" " и маленькие аккумуляторы в обычных инструментах." +#: lang/json/TOOLMOD_from_json.py +msgid "light battery mod" +msgid_plural "light battery mods" +msgstr[0] "модификация: легких энергоносителей" +msgstr[1] "модификация: легких энергоносителей" +msgstr[2] "модификация: легких энергоносителей" +msgstr[3] "модификация: легких энергоносителей" + +#. ~ Description for light battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of light batteries in tools " +"that otherwise could not." +msgstr "" +"Модификация батарейного отсека, которая позволяет использовать легкие " +"энергоносители в инструментах, которые в ином случае не подходят им." + +#: lang/json/TOOLMOD_from_json.py +msgid "medium battery mod" +msgid_plural "medium battery mods" +msgstr[0] "модификация: средних энергоносителей" +msgstr[1] "модификация: средних энергоносителей" +msgstr[2] "модификация: средних энергоносителей" +msgstr[3] "модификация: средних энергоносителей" + +#. ~ Description for medium battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of medium batteries in tools " +"that otherwise could not." +msgstr "" +"Модификация батарейного отсека, которая позволяет использовать средние " +"энергоносители в инструментах, которые в ином случае не подходят им." + +#: lang/json/TOOLMOD_from_json.py +msgid "heavy battery mod" +msgid_plural "heavy battery mods" +msgstr[0] "модификация: тяжелых энергоносителей" +msgstr[1] "модификация: тяжелых энергоносителей" +msgstr[2] "модификация: тяжелых энергоносителей" +msgstr[3] "модификация: тяжелых энергоносителей" + +#. ~ Description for heavy battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of heavy batteries in tools " +"that otherwise could not." +msgstr "" +"Модификация батарейного отсека, которая позволяет использовать тяжелые " +"энергоносители в инструментах, которые в ином случае не подходят им." + #: lang/json/TOOLMOD_from_json.py msgid "cybernetic power port mod" msgid_plural "cybernetic power port mods" @@ -63658,6 +64076,40 @@ msgstr "" "Огромный стальной блок необычной формы с долотообразными выступами по краям." " Используется в большинстве рецептов по металлообработке." +#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +msgid "water mill" +msgid_plural "water mills" +msgstr[0] "водяная мельница" +msgstr[1] "водяных мельниц" +msgstr[2] "водяных мельниц" +msgstr[3] "водяная мельница" + +#. ~ Description for water mill +#: lang/json/TOOL_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour. Can" +" be placed via the construction menu." +msgstr "" +"Небольшая водяная мельница, которая может перемалывать крахмалистые продукты" +" в муку. Установка производится через строительное меню." + +#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +msgid "wind mill" +msgid_plural "wind mills" +msgstr[0] "ветряная мельница" +msgstr[1] "ветряных мельниц" +msgstr[2] "ветряных мельниц" +msgstr[3] "ветряная мельница" + +#. ~ Description for wind mill +#: lang/json/TOOL_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour. Can " +"be placed via the construction menu." +msgstr "" +"Небольшая ветряная мельница, которая может перемалывать крахмалистые " +"продукты в муку. Установка производится через строительное меню." + #: lang/json/TOOL_from_json.py msgid "wood axe" msgid_plural "wood axes" @@ -67690,30 +68142,10 @@ msgstr[3] "световая лента" #. ~ Description for lightstrip #: lang/json/TOOL_from_json.py msgid "" -"This is a light-emitting circuit wired directly to some batteries. It " -"provides some weak light and can't be turned off. When the batteries die, " -"you'll need to scrap it to recover the components that are reusable." -msgstr "" -"Светоизлучающие трубки соединены напрямую с батарейками. Сейчас излучают " -"слабый свет и не могут быть выключены. По истечении заряда лампу надо " -"утилизировать для получения компонентов, годных к повторному использованию." - -#: lang/json/TOOL_from_json.py -msgid "lightstrip (unpowered)" -msgid_plural "lightstrips (unpowered)" -msgstr[0] "световая лента (без питания)" -msgstr[1] "световые ленты (без питания)" -msgstr[2] "световых лент (без питания)" -msgstr[3] "световая лента (без питания)" - -#. ~ Description for lightstrip (unpowered) -#: lang/json/TOOL_from_json.py -msgid "" -"This is a unpowered lightstrip. You could connect it to batteries to get a " -"light-emitting circuit." +"This is a light-emitting circuit that has been wired directly to a battery." +" It provides some weak light and can't be turned off until the battery " +"dies." msgstr "" -"Это незапитанная световая лента. К ней можно подключить батареи, чтобы " -"получить источник света." #: lang/json/TOOL_from_json.py msgid "lightstrip (inactive)" @@ -67731,15 +68163,9 @@ msgstr "Вы необратимо активируете световую пол #. ~ Description for lightstrip (inactive) #: lang/json/TOOL_from_json.py msgid "" -"This is a light-emitting circuit wired directly to some batteries. It will " -"provide some weak light once activated and can't be turned off. When the " -"batteries die, you'll need to scrap it to recover the components that are " -"reusable." +"This is a light-emitting circuit that can be wired directly to a battery. " +"It provides some weak light and can't be turned off until the battery dies." msgstr "" -"Это светоизлучающий контур, запитанный от батарейками. После активации " -"излучает слабый свет и не может быть выключен. По истечению заряда контур " -"надо утилизировать для получения компонентов, годных к повторному " -"использованию." #: lang/json/TOOL_from_json.py msgid "lobotomizer" @@ -68461,7 +68887,15 @@ msgstr "" "Баллон со сжатым азотом. Азот полезен из-за своей инертности. Не пытайтесь " "им дышать." -#. ~ Description for nitrogen tank +#: lang/json/TOOL_from_json.py +msgid "hydrogen tank" +msgid_plural "hydrogen tanks" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for hydrogen tank #: lang/json/TOOL_from_json.py msgid "" "This is a tank of compressed hydrogen gas. If you need to make water from " @@ -69304,6 +69738,14 @@ msgstr "" "другие полезные инструменты. Используйте его на одежде, чтобы попытаться " "восстановить или укрепить её. При этом используется навык шитья." +#: lang/json/TOOL_from_json.py +msgid "anesthesia kit" +msgid_plural "anesthesia kits" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #: lang/json/TOOL_from_json.py msgid "shaving kit" msgid_plural "shaving kits" @@ -75511,6 +75953,10 @@ msgstr ".357 SIG" msgid "9x18mm" msgstr "9х18 мм" +#: lang/json/ammunition_type_from_json.py +msgid ".380 ACP" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid ".38" msgstr ".38" @@ -76522,6 +76968,18 @@ msgstr "" msgid "Railgun" msgstr "Рельсотрон" +#. ~ Description for Railgun +#: lang/json/bionic_from_json.py +msgid "" +"EM field generators in your arms double the range and damage of thrown iron " +"and steel objects at a cost of 1 power per throw, causing them to leave a " +"trail of electricity that can cause additional damage." +msgstr "" +"Электромагнитный генератор в ваших руках удваивает дистанцию и урон метания " +"железных и стальных предметов. Обходится в 1 единицу энергии за бросок, при " +"метании предмет оставляет за собой электрический след, который может " +"причинять дополнительный урон." + #: lang/json/bionic_from_json.py msgid "Fingertip Razors" msgstr "Бионические когти" @@ -77712,6 +78170,14 @@ msgstr "Строить речной мост" msgid "Build River Dock/Shallow Bridge" msgstr "Строить причал/мост на мелководье" +#: lang/json/construction_from_json.py +msgid "Place Water Mill" +msgstr "Поставить водяную мельницу" + +#: lang/json/construction_from_json.py +msgid "Place Wind Mill" +msgstr "Поставить ветряную мельницу" + #: lang/json/construction_from_json.py msgid "Build Shallow Temporary Bridge" msgstr "Строить временный мост" @@ -83225,6 +83691,44 @@ msgstr "" "Металлическая стойка, на которой можно подвешивать тушу для разделки. Её " "можно разобрать и сложить для удобства переноски." +#. ~ Description for wind mill +#: lang/json/furniture_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour." +msgstr "" +"Небольшая ветряная мельница, которая может перемалывать крахмалистые " +"продукты в муку." + +#: lang/json/furniture_from_json.py +msgid "active wind mill" +msgstr "Ветряная мельница в работе." + +#. ~ Description for active wind mill +#: lang/json/furniture_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour. Its" +" brake has been removed and it is turning." +msgstr "" + +#. ~ Description for water mill +#: lang/json/furniture_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour." +msgstr "" +"Небольшая водяная мельница, которая может перемалывать крахмалистые продукты" +" в муку." + +#: lang/json/furniture_from_json.py +msgid "active water mill" +msgstr "" + +#. ~ Description for active water mill +#: lang/json/furniture_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour. " +"Its brake has been removed and it is turning." +msgstr "" + #. ~ Description for tourist table #: lang/json/furniture_from_json.py msgid "Small metal folding table, ideal for off-road trips into the wild." @@ -84475,7 +84979,8 @@ msgstr "" "имеют хороший шанс уцелеть, и их можно будет повторно использовать" #: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py src/item.cpp +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "pistol" msgstr "пистолет" @@ -85043,6 +85548,14 @@ msgstr[1] "базовых пистолета" msgstr[2] "базовых пистолетов" msgstr[3] "базовый пистолет" +#: lang/json/gun_from_json.py +msgid "backup pistol" +msgid_plural "backup pistols" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #: lang/json/gun_from_json.py src/item_factory.cpp msgid "revolver" msgid_plural "revolvers" @@ -85335,6 +85848,23 @@ msgstr[3] "S&W 22A" msgid "A popular .22 pistol." msgstr "Популярный пистолет калибра .22." +#: lang/json/gun_from_json.py +msgid "Jennings J-22" +msgid_plural "Jennings J-22s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of the quintessential 'saturday night specials', the Jennings J-22 was " +"very affordably priced with its injection molded zinc slide and frame. " +"Intended to fill the void left after small pocket pistols were banned from " +"import, these were more commonly used by criminals unfazed by their glaring " +"safety issues." +msgstr "" + #: lang/json/gun_from_json.py msgid "Remington ACR" msgid_plural "Remington ACRs" @@ -86151,6 +86681,21 @@ msgstr "" "Один из самых знаменитых пистолетов ХХ века. Хоть вы и не Джеймс Бонд, этот " "пистолет может вам пригодиться." +#: lang/json/gun_from_json.py +msgid "Kel-Tec P32" +msgid_plural "Kel-Tec P32s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of Kel-tec's oldest designs, the P32 is a popular option for deep " +"concealment and backup usage. Despite its extreme light weight and small " +"size, its .32 ACP chambering makes for good handling and recoil control." +msgstr "" + #: lang/json/gun_from_json.py msgid "SIG P226" msgid_plural "SIG P226s" @@ -86270,6 +86815,71 @@ msgstr "" "стандартам безопасности, изготавливался из прочных и высококачественных " "материалов." +#: lang/json/gun_from_json.py +msgid "MAC-11" +msgid_plural "MAC-11s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"A lesser known variant of the MAC-10, this machine pistol is chambered in " +".380 ACP for a smaller overall size while remaining inherently subsonic. " +"Smaller in almost every dimension, this inexpensive automatic weapon was " +"declared 'fit only for combat in a phone booth' due to its low weight and " +"absurd fire rate ranging from 1200 to 1400 rounds per minute." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Kel-Tec P3AT" +msgid_plural "Kel-Tec P3ATs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"Essentially a slightly scaled up Kel-tec P32 in .380 ACP, the ever popular " +"P3AT offers better ballistics in a small, concealable lightweight package. " +"Handling leaves something to be desired due to snappier recoil and " +"diminuitive controls." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "FN 1910 .380" +msgid_plural "FN 1910 .380s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"Made infamous in Sarajevo in 1914, the FN1910 was a popular pocket pistol, " +"albeit in .32 ACP. Collectors value the .380 model for its notoriety and " +"more modern terminal performance. If such a humble firearm could start a " +"world war, could it perhaps protect you from the undead?" +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Ruger LCP" +msgid_plural "Ruger LCPs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of the best selling modern day 'pocket pistol's, the LCP is an " +"affordable, polymer framed pistol chambered in .380 ACP. Despite the " +"round's relatively low power, the pistol's low weight and short sight radius" +" make for a moderately poor handling pistol." +msgstr "" + #: lang/json/gun_from_json.py msgid "Glock 22" msgid_plural "Glock 22" @@ -87743,6 +88353,22 @@ msgstr "" "Пистолет Глок 17 предназначен для сил охраны правопорядка и военных " "подразделений, но подходит для любых стрелков." +#: lang/json/gun_from_json.py +msgid "Kel-Tec PF-9" +msgid_plural "Kel-Tec PF-9s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"The Kel-Tec PF-9 remains one of the most popular backup pistols due to its " +"history of reliability, affordability, and concealability. Chambered in " +"9x19mm, recoil is best described as unpleasant, and follow up shots are " +"difficult to place quickly." +msgstr "" + #: lang/json/gun_from_json.py msgid "Makarov PM" msgid_plural "Makarov PMs" @@ -91253,6 +91879,53 @@ msgctxt "gun_type_type" msgid "crossbow" msgstr "арбалет" +#: lang/json/gunmod_from_json.py +msgid "belt clip" +msgid_plural "belt clips" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a belt clip that attaches to the grip or slide of a pistol so as to " +"facilitate 'Mexican carry', the practice of carrying without a holster. It " +"does not offer any protection for the trigger, so users are strongly advised" +" to carry with the chamber empty or select a firearm with a very heavy " +"trigger pull." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "rugerlcp" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kp32" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kp3at" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kpf9" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "cop_38" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "moss_brownie" +msgstr "" + #: lang/json/gunmod_from_json.py msgid "shortened barrel" msgid_plural "shortened barrels" @@ -92141,6 +92814,21 @@ msgstr "" "необходимо разложить перед использованием. Увеличивает время, необходимое " "для взятия в руки оружия." +#: lang/json/gunmod_from_json.py +msgid "folding wire stock" +msgid_plural "folding wire stocks" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"A folding wire stock which folds up very compactly but needs unfolding " +"before use. It's somewhat wobbly but is better than nothing at all. " +"Increases the time needed to wield the weapon." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "pistol stock" msgid_plural "pistol stocks" @@ -95761,24 +96449,16 @@ msgstr "Вы можете хранить здесь предметы." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"You can 'e'xamine the tile or attempt to pick-up items (default ',') to " -"access the controls, or use the vehicle control key (default '^')." +"You can 'e'xamine the tile to access the controls, or use the vehicle " +"control key (default '^')." msgstr "" -"Вы можете «e» изучить тайл или попытаться поднять предметы (по умолчанию " -"«,»), чтобы получить доступ к управлению, или использовать клавишу " -"управления (по умолчанию «^»)." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"With a seat or saddle, you drive from here. You can 'e'xamine the tile or " -"attempt to pick-up items (default ',') to access the controls, or use the " -"vehicle control key (default '^')." +"With a seat or saddle, you drive from here. You can 'e'xamine the tile to " +"access the controls, or use the vehicle control key (default '^')." msgstr "" -"Отсюда можно управлять транспортом, если есть сиденье или седло. Вы можете " -"«e» изучить тайл или попытаться поднять предметы (по умолчанию «,»), чтобы " -"получить доступ к управлению, или использовать клавишу управления (по " -"умолчанию «^»)." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -96757,6 +97437,10 @@ msgstr "Спать" msgid "Control Vehicle" msgstr "Управлять транспортом" +#: lang/json/keybinding_from_json.py +msgid "Toggle Auto Travel Mode" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Toggle Safe Mode" msgstr "Вкл/Выкл безопасный режим" @@ -96950,8 +97634,24 @@ msgid "Active World Mods" msgstr "Активные моды мира" #: lang/json/keybinding_from_json.py -msgid "Toggle move mode (run/walk/crouch)" -msgstr "Переключить режим движения (бежать/идти/красться)" +msgid "Cycle move mode (run/walk/crouch)" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Reset Movement to Walk" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Run" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Crouch" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Movement Mode Menu" +msgstr "" #: lang/json/keybinding_from_json.py src/game_inventory.cpp msgid "Compare" @@ -104968,6 +105668,17 @@ msgid "" "easily." msgstr "У вас хороший слух, вам легче услышать удалённые звуки." +#: lang/json/mutation_from_json.py +msgid "Fey Hearing" +msgstr "" + +#. ~ Description for Fey Hearing +#: lang/json/mutation_from_json.py +msgid "" +"Your not sure the shape of your ears are helping, but regardless you have " +"become very sensitive to sounds." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Outdoorsman" msgstr "Бродяга" @@ -107187,6 +107898,17 @@ msgstr "" "У вас зацвела голова. Ваши цветы приятно пахнут, выглядят потрясающе и " "весьма чувствительны." +#: lang/json/mutation_from_json.py +msgid "Rosebuds" +msgstr "" + +#. ~ Description for Rosebuds +#: lang/json/mutation_from_json.py +msgid "" +"The top of your head is blooming with rosebuds. They're eye catching, and " +"have a strong fragrance that makes you pleasant to be around." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Mycus Spores" msgstr "Споры микус" @@ -109974,6 +110696,17 @@ msgstr "" msgid "You detach a vine from your body." msgstr "Вы отделяете лиану от своего тела." +#: lang/json/mutation_from_json.py +msgid "Hair Roots" +msgstr "" + +#. ~ Description for Hair Roots +#: lang/json/mutation_from_json.py +msgid "" +"Roots have started growing from your leaf like hair, they don't seem to do " +"much." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Toe Roots" msgstr "Корни на ногах" @@ -113105,10 +113838,18 @@ msgstr "АЗС" msgid "pharmacy" msgstr "аптека" +#: lang/json/overmap_terrain_from_json.py +msgid "pharmacy roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "doctor's office" msgstr "частная клиника" +#: lang/json/overmap_terrain_from_json.py +msgid "doctor's office roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "office" msgstr "офис" @@ -113215,6 +113956,10 @@ msgstr "крыша бара" msgid "butcher shop" msgstr "мясная лавка" +#: lang/json/overmap_terrain_from_json.py +msgid "butcher shop roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "bike shop" msgstr "байк-шоп" @@ -113419,10 +114164,22 @@ msgstr "секс-шоп" msgid "internet cafe" msgstr "интернет-кафе" +#: lang/json/overmap_terrain_from_json.py +msgid "internet cafe roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "car showroom" msgstr "автосалон" +#: lang/json/overmap_terrain_from_json.py +msgid "car showroom 2nd floor" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "car showroom roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "car dealership" msgstr "автосалон" @@ -113451,6 +114208,10 @@ msgstr "радиостанция" msgid "gardening allotment" msgstr "садоводческий магазин" +#: lang/json/overmap_terrain_from_json.py +msgid "gardening allotment roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "animal pound" msgstr "загон для животных" @@ -121527,8 +122288,8 @@ msgstr "" "- это основа вышки." #: lang/json/recipe_from_json.py -msgid "We need to add a console to control the radio tower." -msgstr "Нам нужно добавить консоль для управления радиовышкой." +msgid "We need to build a console to control the radio tower." +msgstr "" #: lang/json/recipe_from_json.py msgid "Survey land for a farm shop." @@ -132779,6 +133540,78 @@ msgstr "Нет проблем." msgid "Can do." msgstr "Могу сделать." +#: lang/json/snippet_from_json.py +msgid "Whew... smells like skunk!" +msgstr "Фу… воняет как скунс!" + +#: lang/json/snippet_from_json.py +msgid "Man, that smells like some good shit!" +msgstr "Чувак, эта хрень неплохо пахнет!" + +#: lang/json/snippet_from_json.py +msgid "Hey, don't bogart the joint!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "C'mon, , I can smell it, pass it over." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Wow, that smell takes me back." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Ah, man. Good times, good times. Love that scent." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "What do I smell? Well, I guess it's legal now." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Mmm, that weed smells good." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Man, I can smell the weed, can I have some?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Are you sure it's a good idea to smoke that now?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I don't know... should you really be smoking that stuff?" +msgstr "Я не знаю… ты в самом деле будешь курить эту штуку?" + +#: lang/json/snippet_from_json.py +msgid ", that's going to ruin your nose." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Man, that stinks. Put it out!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "You're going to kill yourself smoking that stuff, ." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Oh, wow, that smell... Can I have some?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Ew, smells like burning rubber!" +msgstr "Бе, пахнет как жжёная резина!" + +#: lang/json/snippet_from_json.py +msgid "Ugh, that smells rancid!" +msgstr "Ух, воняет тухлятиной!" + +#: lang/json/snippet_from_json.py +msgid "" +msgstr "" + #: lang/json/snippet_from_json.py msgid "Tell me about how you survived the cataclysm." msgstr "Расскажи, как тебе удалось пережить катаклизм." @@ -133730,6 +134563,10 @@ msgstr "Моя прежняя хозяйка визжала как свинья, msgid "\"Hello?\"" msgstr "«Хелло?»" +#: lang/json/speech_from_json.py +msgid "\"Papaya!\"" +msgstr "" + #: lang/json/speech_from_json.py msgid "\"Who's there?\"" msgstr "«Кто здесь?»" @@ -136307,11 +137144,9 @@ msgstr "Магазин Одежды" #: lang/json/talk_topic_from_json.py msgid "" -"I'm my own person, but I'm willing to follow your lead. I can do a lot of things for you: I can fight, I can train you or you can train me, I can carry stuff, I can bandage your wounds, I can build faction camps, I can go places, I can guard things, I can even chit-chat with you or talk about my background. You can give me instructions in conversation or by radio or shout commands at me. \n" -"What do you want to know more about?" +"I'm my own person, but I'm willing to follow your lead. I can do a lot of things for you: I can fight, I can train you or you can train me, I can carry stuff, I can bandage your wounds, I can build faction camps, I can go places, I can guard things, I can even chit-chat with you or talk about my background. You can give me instructions in conversation or by radio or shout commands at me.\n" +" What do you want to know more about?" msgstr "" -"Я сам по себе, но мне бы хотелось пойти вместе с тобой. Я могу кучу вещей: драться, учить тебя или учиться у тебя, нести вещи, перевязывать твои раны, строить лагеря, идти куда-нибудь, охранять что-нибудь, даже просто болтать или рассказать о своём прошлом. Ты можешь дать мне указания при разговоре или по радио или крикнуть мне команду.\n" -"Что бы тебе хотелось обо мне узнать?" #: lang/json/talk_topic_from_json.py msgid "Forget I asked." @@ -136371,11 +137206,9 @@ msgstr "Ещё что-то, что мне следует знать?" #: lang/json/talk_topic_from_json.py msgid "" -"If we're next to each other, you can just bump into me and we'll start talking, right? But if I'm farther away, you're going to have to shout a bit (use the 'C'hat command) for me to hear you. You'll need to see me for us to have a conversation. Or we can talk by radios if we both have them. \n" -"When we talk, you can give me instructions about how to fight or when to sleep or whatever. I'll mostly do them, and you can ask me what my current instructions are. Sometimes you'll give me two sets of instructions: a normal set, and an override for a specific situation. I'll tell you which instructions are overriden. You can set and clear overrides with shouted commands." +"If we're next to each other, you can just bump into me and we'll start talking, right? But if I'm farther away, you're going to have to shout a bit (use the 'C'hat command) for me to hear you. You'll need to see me for us to have a conversation. Or we can talk by radios if we both have them.\n" +" When we talk, you can give me instructions about how to fight or when to sleep or whatever. I'll mostly do them, and you can ask me what my current instructions are. Sometimes you'll give me two sets of instructions: a normal set, and an override for a specific situation. I'll tell you which instructions are overriden. You can set and clear overrides with shouted commands." msgstr "" -"Если мы стоим рядом, ты можешь просто уткнуться в меня, и мы начнём болтать, ладно? Но если я стою подальше, тебе нужно немного покричать (при помощи команды 'Говорить' - клавиша С по умолчанию), чтоб я тебя услышал. Тебе надо меня видеть, чтоб мы могли поговорить. Или мы можем побеседовать по рации, если они есть у нас обоих.\n" -"Во время разговора ты можешь давать мне указания насчёт того, как сражаться, или когда спать, или что угодно. Я буду стараться их выполнять, и ты можешь спросить меня о текущих указаниях. Иногда ты можешь дать мне два типа указаний: обычные и экстренные, перекрывающие обычные. Я скажу тебе, какие указания перекрываются. Ты можешь задавать и отменять перекрытия при помощи команд криком." #: lang/json/talk_topic_from_json.py msgid "" @@ -136388,11 +137221,9 @@ msgstr "Спасибо. Я хочу, чтоб ты сделал кое-что е #: lang/json/talk_topic_from_json.py msgid "" -"Sometimes you need to give orders in a hurry. You can use the 'C'hat command to shout a single specific order. If I hear you, I'll do what you say, as will anyone else following you that hears it. \n" -"Some orders will override other instructions you've given me. If you change my instructions when I've got an override command, I'll tell you which ones are overridden. You can shout an order to clear any overrides." +"Sometimes you need to give orders in a hurry. You can use the 'C'hat command to shout a single specific order. If I hear you, I'll do what you say, as will anyone else following you that hears it.\n" +" Some orders will override other instructions you've given me. If you change my instructions when I've got an override command, I'll tell you which ones are overridden. You can shout an order to clear any overrides, or talk to me and tell me to clear them." msgstr "" -"Иногда тебе нужно срочно отдать приказы. При помощи команды 'Говорить' (С) ты можешь выкрикнуть один конкретный приказ. Если я тебя услышу, то выполню его, равно как и все твои последователи, кто услышит приказ. \n" -"Некоторые приказы перекроют указания, которые ты мне дал раньше. Если ты поменяешь указания, когда я получил перекрывающую команду, я скажу тебе, что именно перекрыто. Ты можешь выкрикнуть приказ отменить все перекрытия." #: lang/json/talk_topic_from_json.py msgid "Good to know. What orders can I give?" @@ -136400,107 +137231,76 @@ msgstr "Здорово. Какие приказы я могу отдать?" #: lang/json/talk_topic_from_json.py msgid "" -"It's a dangerous world out there, right? So we fight to survive. I'm on your side, and I'll stick with you, but if I think the situation is too dangerous, I'll be honest, I'm going to run. If I see you running but I think it's safe, I'll stay and fight, but you can tell me run with you and I'll stick by you as best I can. \n" -"You can give me some instructions on when I should attack, but I'll make my own decisions about who - I'll try to defend myself and you, though, but if you tell me to stay in one place I'll stay there. \n" -"I'll use guns and grenades if I have them, but you can tell me to not use grenades or not use loud weapons or to not use ranged weapons at all. If I'm shooting, you can tell me how much to aim and whether to try to avoid shooting you or not. \n" -"I'll respect your rules for what types of weapons to use, but I'll choose what to use from my stuff. \n" -"You can also tell me to hold the line and fight at chokepoints, but I'm not great at recognizing them so I may go off to fight something elsewhere anyway." +"It's a dangerous world out there, right? So we fight to survive. I'm on your side, and I'll stick with you, but if I think the situation is too dangerous, I'll be honest, I'm going to run.\n" +" You can't tell me not to run, because I'm going to flee if things are bad, but you can tell me a safe place to retreat by using the zones manager (keybind 'Y'). I'll run toward the closest place you've designated - and you can set zones on vehicles, so if you've got a car, you could tell me to retreat there.\n" +" If I see you running but I think it's safe, I'll stay and fight, but you can tell me run with you and I'll stick by you as best I can.\n" +" You can give me some instructions on when I should attack, but I'll make my own decisions about who - I'll try to defend myself and you, but if you tell me to stay in one place I'll stay there.\n" +" I'll use guns and grenades if I have them, but you can tell me to not use grenades or not use loud weapons or to not use ranged weapons at all. If I'm shooting, you can tell me how much to aim and whether to try to avoid shooting you or not. I'm not so good at recognizing safe shots, so stay out of my line of fire no matter what.\n" +" I'll respect your rules for what types of weapons to use, but I'll choose what to use from my stuff.\n" +" You can also tell me to hold the line and fight at chokepoints, but I'm not great at recognizing them so I may go off to fight something elsewhere anyway." msgstr "" -"Вокруг нас мир, полный опасностей, верно? Поэтому мы сражаемся за выживание. Я на твоей стороне, и я буду рядом, но если я посчитаю ситуацию слишком опасной - буду честен, я свалю. Если ты убежишь, но я буду думать, что всё безопасно, я останусь и буду сражаться, но ты можешь приказать мне бежать вместе с тобой, и я постараюсь держаться ближе к тебе, насколько возможно.\n" -"Ты можешь дать мне указания, когда я должен атаковать, но я сам решу, кого именно - хотя я постараюсь защитить себя и тебя, а если ты мне скажешь стоять на месте, я буду там стоять. \n" -"Если у меня есть пушки и гранаты, я буду ими пользоваться, но ты можешь приказать мне не использовать гранаты, или не использовать громкое оружие, или вообще не пользоваться дальнобойным оружием. Если я стреляю, ты можешь указать мне, насколько тщательно целиться и пытаться ли не попасть в тебя. \n" -"Я последую твоим правилам насчёт типа оружия, но оружие выберу сам из имеющегося у меня. \n" -"Ты также можешь приказать мне держать строй и сражаться в узких местах, но я не очень хорошо их распознаю, поэтому могу отойти куда-нибудь и сражаться там." #: lang/json/talk_topic_from_json.py msgid "" -"If I'm better at a skill than you, I can help you improve. But it's boring to teach a lot, so I'm not going to do it very often. And I'm not going to do it when we're in danger or if I'm hungry or tired or if you're driving. \n" -"If we're someplace safe and you're reading a book that improves skills, I'll listen if I don't have that skill. You can even read me books for skills that you already have." +"If I'm better at a skill than you, I can help you improve. But it's boring to teach a lot, so I'm not going to do it very often. And I'm not going to do it when we're in danger or if I'm hungry or tired or if you're driving.\n" +" If we're someplace safe and you're reading a book that improves skills, I'll listen if I don't have that skill. You can even read me books for skills that you already have." msgstr "" -"Если мой навык выше твоего, я могу помочь тебе поднять его. Но много учиться - скучно, так что я нечасто буду этим заниматься. И я не собираюсь учить тебя, если мы в опасности, или я хочу есть, или устал, или ты за рулём. \n" -"Если мы в безопасном месте, а ты читаешь улучшающую навык книгу, я буду слушать, если у меня нет такого навыка. Ты даже можешь читать мне книги по навыкам, которые у тебя уже развиты." #: lang/json/talk_topic_from_json.py msgid "" -"You give me something to carry, I'll carry it. But I only have so many pockets and I'm only so strong, so I'll drop stuff that's too big to carry. \n" -"I'll also wear stuff - I'll decide what I want to wear, but you can take stuff from me. If I'm wearing something I shouldn't, you can bump into me and sort my armor to get me to take if off. \n" -"I don't like wearing a lot of gear, so if you give me a lot of bulky stuff and things that don't fit, I'm going to take them off and probably drop them. \n" -"Also, since we're friends, I'll give you anything I'm carrying, no questions asked. \n" -"Oh, yeah, if I'm hungry or thirsty and I'm carrying food, I'll eat it. So you might want to watch what you give me, y'know?" +"You give me something to carry, I'll carry it. But I only have so many pockets and I'm only so strong, so I'll drop stuff that's too big to carry.\n" +" I'll also wear stuff - I'll decide what I want to wear, but you can take stuff from me. If I'm wearing something I shouldn't, you can bump into me and sort my armor to get me to take if off.\n" +" I don't like wearing a lot of gear, so if you give me a lot of bulky stuff and things that don't fit, I'm going to take them off and probably drop them.\n" +" Also, since we're friends, I'll give you anything I'm carrying, no questions asked.\n" +" Oh, yeah, if I'm hungry or thirsty and I'm carrying food, I'll eat it. So you might want to watch what you give me, y'know?" msgstr "" -"Ты даёшь мне что-нибудь нести, я это несу. Но у меня не бесконечные карманы и я не бесконечно сильный, так что я сброшу слишком большой груз. \n" -"А ещё я ношу одежду - я сам решаю, что надеть, но ты можешь что-нибудь снять. Если я ношу что-то, чего носить не должен, ты можешь уткнуться в меня и рассортировать мою броню, чтоб снять это. \n" -"Мне не по вкусу носить кучу снаряжения, так что если ты мне дашь много неудобных вещей и неподходящих по размеру шмоток, я сниму их и, наверное, выкину. \n" -"Также, поскольку мы друзья, я без вопросов дам тебе любой предмет из моего инвентаря. \n" -"Ах да, если я хочу есть или пить и у меня есть припасы, я их съем. Так что тебе, наверное, стоит смотреть, что ты мне даёшь, лады?" #: lang/json/talk_topic_from_json.py msgid "" -"If you call me by radio, you can tell me to come to you. If you've got some basecamps set up, you can tell me to go to one of them. I'll start walking, and when I get to where I'm going, I'll guard it. \n" -"Now depending on where I am and where I'm going, it may take me a while to get there. I'll dodge any dangers on the way, don't worry about that, but if you're way the heck away from me and tell me to come, it may be a while until I get to you." +"If you call me by radio, you can tell me to come to you. If you've got some basecamps set up, you can tell me to go to one of them. I'll start walking, and when I get to where I'm going, I'll guard it.\n" +" Now depending on where I am and where I'm going, it may take me a while to get there. I'll dodge any dangers on the way, don't worry about that, but if you're way the heck away from me and tell me to come, it may be a while until I get to you." msgstr "" -"Если ты вызовешь меня по рации, ты можешь приказать мне прийти к тебе. Если у тебя есть лагеря, ты можешь приказать мне идти к одному из них. Я отправлюсь в путь, и стану на страже, когда доберусь. \n" -"Это может занять какое-то время в зависимости от того, где я и куда я иду. Я буду избегать любых опасностей по пути, не беспокойся, но если ты у чёрта на рогах и зовёшь меня, придётся изрядно подождать, пока я не приду." #: lang/json/talk_topic_from_json.py msgid "" -"You tell me to guard, I'll stay where I am and guard it - unless I'm in a vehicle, in which case I'll stick with the vehicle. \n" -"I'm not a potted plant, though, so if I hear something dangerous happening, I'm going to go see what it is instead of getting jumped in the dark. If you want me to stay put, tell me not to investigate noises - but if I get shot by some bandit because I can't see where he is and you don't want me to go looking, I won't be happy." +"You tell me to guard, I'll stay where I am and guard it - unless I'm in a vehicle, in which case I'll stick with the vehicle.\n" +" I'm not a potted plant, though, so if I hear something dangerous happening, I'm going to go see what it is instead of getting jumped in the dark. If you want me to stay put, tell me not to investigate noises - but if I get shot by some bandit because I can't see where he is and you don't want me to go looking, I won't be happy.\n" +" You can also use the zone manager (keybind 'Y') to set up no-investigate zone, so if there's some monsters behind a door that you know about, I can ignore them. You can also set on an investigate-only zone, and I won't investigate noises coming from outside the zone. The no-investigate zone takes precedence over the investigate-only, if there's a noise coming from some place in both zones. And if you've got an investigate-only zone set anywhere, even if it's far away, I won't investigate noises coming from outside of it, so be careful with those zones. Like I said, I don't want to get sniped by some bandit because you told me not to go looking for him - but I also don't want to go investigate something pounding at door only to find out it's some horrible monster you forgot to warn me about." msgstr "" -"Ты приказываешь мне стоять на страже, я стою на месте и охраняю его - если только я не в транспорте, тогда я буду охранять транспорт. \n" -"Я не растение в горшке, так что если я услышу что-то опасное, я схожу посмотреть и не буду ждать, пока на меня прыгнут из темноты. Если ты хочешь, чтоб я стоял как вкопанный, прикажи мне не исследовать шум - но если какой-нибудь бандит подстрелит меня, потому что я его не видел, а ты запретил мне сходить посмотреть, я расстроюсь." #: lang/json/talk_topic_from_json.py -msgid "Just in case - how do I tell you to stay put?" -msgstr "На всякий случай, как мне сказать тебе остановится?" +msgid "Just in case - how else can I tell you to stay put?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"We can chit-chat, if you want. People are social animals, right? A little light conversation can do wonders for your mood. But I don't want to be yapping all the time, so if we've chatted recently, I probably am not going to want to talk for a bit. \n" -"You can also ask me about my background. I may not want to talk about it, though." +"We can chit-chat, if you want. People are social animals, right? A little light conversation can do wonders for your mood. But I don't want to be yapping all the time, so if we've chatted recently, I probably am not going to want to talk for a bit.\n" +" You can also ask me about my background. I may not want to talk about it, though." msgstr "" -"Мы можем поболтать, если хочешь. Люди - социальные животные, верно? Немного простой болтовни творит чудеса с твоим настроением. Но я не хочу без перерыва молоть языком, так что если мы недавно поболтали, я какое-то время не захочу снова говорить. \n" -"Ещё ты можешь спросить меня о моём прошлом. Однако мне необязательно захочется об этом говорить." #: lang/json/talk_topic_from_json.py msgid "" -"You can give me a bunch of instructions. Talk to me about the miscellaneous rules, and I'll tell you what I'm doing and you can give a new instruction. Sometimes you'll have shouted a command that overrides your other instructions, and I'll tell you which instructions are overridden. \n" -"I'm not a chatterbox, but I'll tell you when I see or hear danger or if I'm hurt or hungry or something. You don't want me doing that, you just tell me. \n" -"Also, I'll pulp zombies if you'd like - I would prefer that. \n" -"If I hear something suspicious and can't see if, I'll go take a look, but you can tell me not to do that. \n" -" I'll open and close doors, or open them and leave them ajar, or not going through closed doors. You just tell me what you want. \n" -"I can pick stuff up if want me to, and you can tell me what to pick up. If I've got a bow or crossbow, please tell me to pick up the ammo - it's less fuss for both of us. \n" -"If you've got a vehicle, you can e'x'amine it and use the cre'w' command to assign me a seat. That saves arguments about who needs to sit where." +"You can give me a bunch of instructions. Talk to me about the miscellaneous rules, and I'll tell you what I'm doing and you can give a new instruction. Sometimes you'll have shouted a command that overrides your other instructions, and I'll tell you which instructions are overridden.\n" +" I'm not a chatterbox, but I'll tell you when I see or hear danger or if I'm hurt or hungry or something. You don't want me doing that, you just tell me.\n" +" Also, I'll pulp zombies if you'd like - I would prefer that.\n" +" If I hear something suspicious and can't see if, I'll go take a look, but you can tell me not to do that.\n" +" I'll open and close doors, or open them and leave them ajar, or not going through closed doors. You just tell me what you want.\n" +" I can pick stuff up if want me to, and you can tell me what to pick up. If I've got a bow or crossbow, please tell me to pick up the ammo - it's less fuss for both of us.\n" +" If you've got a vehicle, you can e'x'amine it and use the cre'w' command to assign me a seat. That saves arguments about who needs to sit where." msgstr "" -"Ты можешь дать мне кучу указаний. Поговори со мной о разных правилах, и я скажу тебе, что я делаю, и ты сможешь дать мне новое указание. Иногда ты кричишь команду, которая перекрывает текущие инструкции, и я скажу тебе, что было перекрыто. \n" -"Я не болтун, но я скажу тебе, если я увижу или услышу опасность, или если я ранен, или голоден, или что-то ещё. Если не хочешь это слышать. просто скажи мне. \n" -"Ещё я буду разбивать трупы зомби, если ты не против. \n" -"Если я услышу что-то подозрительное, но ничего не вижу, я схожу посмотреть, но ты можешь приказать мне не делать этого. \n" -"Я буду открывать и закрывать двери, или открывать и оставлять нараспашку, или не трогать закрытые двери. Просто скажи, чего хочешь. \n" -"Если прикажешь, я буду подбирать предметы, и ты можешь пояснить, какие предметы мне подбирать. Если у меня лук или арбалет, пожалуйста, позволь мне подбирать боеприпасы - меньше геморроя для нас обоих. \n" -"Если у тебя есть транспорт, ты можешь осмотреть его ('x') и назначить мне сиденье (клавиша 'команда', по умолчанию 'x'). Предотвратит споры, где кому сидеть." #: lang/json/talk_topic_from_json.py msgid "" -"Here's the list of shouted commands I'll respond to: \n" -"Order me to guard, and I'll stay where I am and watch out for danger. I'll investigate suspicious noises unless you told me not to. \n" -"Order me to follow, and I'll stop guarding and go back to following you. \n" -"Order me to stay awake, and I'll stay awake until I'm too tired to keep my eyes open. \n" -"Order me to sleep when tired, and I'll nap when I get tired. I'll try to tell you when I'm off to bed unless you don't want to hear it. \n" -"Order me to flee, and I'll stick close to you when you run from danger. I won't go running off on my own - though if things really bad, I might be running away already! \n" -"Order me to stop running, and I'll evaluate the danger myself and might go off and fight something while you're doing other things. \n" -"Ordering me to prepare for danger is special: it's an override command. That means I'm going to follow certain instructions, even if you've given me other instructions earlier. Specifically, I'm going to flee with you, I'm not going to open or close doors, I'm not going to sleep until I'm exhausted, and I'm going to try to hold any chokepoints that you're fighting at. \n" -"Ordering me to relax from danger is another special command, and it will clear any overrides I currently have and I'll go back to whatever instructions I had before you told me to prepare for danger." +"Here's the list of shouted commands I'll respond to:\n" +" - Order me to guard, and I'll stay where I am and watch out for danger. I'll investigate suspicious noises unless you told me not to.\n" +" - Order me to follow, and I'll stop guarding and go back to following you.\n" +" - Order me to stay awake, and I'll stay awake until I'm too tired to keep my eyes open.\n" +" - Order me to sleep when tired, and I'll nap when I get tired. I'll try to tell you when I'm off to bed unless you don't want to hear it.\n" +" - Order me to flee, and I'll stick close to you when you run from danger. I won't go running off on my own - though if things really bad, I might be running away already!\n" +" - Order me to stop running, and I'll evaluate the danger myself and might go off and fight something while you're doing other things.\n" +" - Ordering me to prepare for danger is special: it's an override command. That means I'm going to follow certain instructions, even if you've given me other instructions earlier. Specifically, I'm going to flee with you, I'm not going to open or close doors, I'm not going to sleep until I'm exhausted, and I'm going to try to hold any chokepoints that you're fighting at.\n" +" - Ordering me to relax from danger is another special command, and it will clear any overrides I currently have and I'll go back to whatever instructions I had before you told me to prepare for danger." msgstr "" -"Вот список выкрикиваемых команд, которым я буду следовать: \n" -"Прикажи мне стоять на страже, и я буду стоять на месте и высматривать опасность. Я буду исследовать подозрительные шумы, если ты не прикажешь обратное. \n" -"Прикажи мне следовать, и я прекращу стоять на страже и буду следовать за тобой. \n" -"Прикажи мне бодрствовать, и я не сомкну глаз, пока не устану настолько, что они сами начнут закрываться. \n" -"Прикажи мне спать по необходимости, и я буду спать, когда устану. Я скажу тебе, когда отправлюсь спать, если ты не прикажешь не говорить этого. \n" -"Прикажи мне убегать, и я буду держаться с тобой, когда ты побежишь от опасности. Сам я не побегу - впрочем, если всё будет совсем плохо, я уже, наверно, сам начну сваливать! \n" -"Прикажи мне прекратить убегать, и я сам оценю опасность и могу вступить в бой и сражаться, пока ты чем-то занят. \n" -"Прикажи мне приготовиться к опасности - это особенный приказ: это перекрывающая команда. Это значит, я буду следовать определённым указаниям, даже если б ты раньше дал мне другие. Например, я буду убегать вместе с тобой, я не буду открывать или закрывать двери, я не буду спать, пока совсем не устану, и я постараюсь удерживать любые узкие места, где ты сражаешься. \n" -"Прикажи мне отставить готовиться к опасности - это другая особая команда, и она отменит все перекрытия, и я вернусь к указаниям, что ты давал мне до приказа готовиться к опасности." #: lang/json/talk_topic_from_json.py msgid "Thanks. How can I give you instructions normally?" @@ -136791,6 +137591,10 @@ msgstr "Подъём!" msgid "Go back to sleep." msgstr "Спи дальше." +#: lang/json/talk_topic_from_json.py +msgid "What is it, friend?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Combat commands..." msgstr "Боевые команды…" @@ -136800,11 +137604,7 @@ msgid "Can you teach me anything?" msgstr "Ты можешь меня чему-нибудь научить?" #: lang/json/talk_topic_from_json.py -msgid "Let's trade items" -msgstr "Давай обменяемся предметами." - -#: lang/json/talk_topic_from_json.py -msgid "Guard this position" +msgid "Guard this position." msgstr "Охраняй эту позицию." #: lang/json/talk_topic_from_json.py @@ -136812,12 +137612,12 @@ msgid "I'd like to know a bit more about you..." msgstr "Я бы хотел узнать чуть больше о тебе..." #: lang/json/talk_topic_from_json.py -msgid "I want you to use this item" -msgstr "Используй этот предмет." +msgid "I want you to use this item." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hold on to this item" -msgstr "Держи этот предмет." +msgid "Hold on to this item." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Miscellaneous rules..." @@ -136948,10 +137748,6 @@ msgstr "Да, я уверен. Пока." msgid "Nah, I'm just kidding." msgstr "Не, я просто пошутил." -#: lang/json/talk_topic_from_json.py -msgid "*pshhhttt* I'm reading you boss, over." -msgstr "*пшшш-пшшш* я слышу вас, босс, приём." - #: lang/json/talk_topic_from_json.py msgid "Stay at your current position." msgstr "Оставайся на том же месте." @@ -137424,7 +138220,7 @@ msgstr "Ладно, пошли!" msgid "Yeah... I don't think so." msgstr "Да?.. Я так не думаю." -#: lang/json/talk_topic_from_json.py src/npctalk.cpp +#: lang/json/talk_topic_from_json.py msgid "What is it?" msgstr "В чём дело?" @@ -137604,6 +138400,28 @@ msgstr "Ладно, хорошо, пока." msgid "Okay" msgstr "Ладно." +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm willing to pay per batch for a total of " +"." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Works for me." +msgstr "Сойдёт." + +#: lang/json/talk_topic_from_json.py +msgid "Maybe later." +msgstr "Может позже." + +#: lang/json/talk_topic_from_json.py +msgid "Pleasure doing business!" +msgstr "Приятно иметь с тобой дело!" + +#: lang/json/talk_topic_from_json.py +msgid "You might be seeing more of me..." +msgstr "Думаю, мы ещё встретимся..." + #: lang/json/talk_topic_from_json.py msgid "Hey again. *kzzz*" msgstr "Снова привет. *жжж*" @@ -138597,10 +139415,6 @@ msgstr "Что нужно сделать?" msgid "Yes, set up the bulletin board and then go back to normal duties." msgstr "Да, установи доску и вернись к нормальной работе." -#: lang/json/talk_topic_from_json.py -msgid "Hope you're here to trade." -msgstr "Надеюсь, вы здесь, чтобы поторговать." - #: lang/json/talk_topic_from_json.py msgid "" "I oversee the food stocks for the center. There was significant looting " @@ -138658,6 +139472,14 @@ msgstr "" msgid "Interesting..." msgstr "Интересно..." +#: lang/json/talk_topic_from_json.py +msgid "Hope you're here to trade." +msgstr "Надеюсь, вы здесь, чтобы поторговать." + +#: lang/json/talk_topic_from_json.py +msgid "Who are you?" +msgstr "Кто ты?" + #: lang/json/talk_topic_from_json.py msgid "Mind if we just chat for a bit?" msgstr "Не против, если мы немного поболтаем?" @@ -138922,10 +139744,6 @@ msgstr "Маршал..." msgid "Citizen..." msgstr "Гражданин..." -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Who are you?" -msgstr "Кто ты?" - #: lang/json/talk_topic_from_json.py msgid "Is there any way I can join the 'Old Guard'?" msgstr "Могу ли я присоединиться к «Старой Гвардии»?" @@ -139542,10 +140360,6 @@ msgstr "[$2000, 1 день] 10 брёвен" msgid "[$12000, 7d] 100 logs" msgstr "[$12000, 7 дней] 100 брёвен" -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Maybe later." -msgstr "Может позже." - #: lang/json/talk_topic_from_json.py msgid "I'll be back later." msgstr "Я вернусь позже." @@ -150762,6 +151576,10 @@ msgstr "точного разрезания" msgid "glare protection" msgstr "защиты от ослепляющего блеска" +#: lang/json/tool_quality_from_json.py +msgid "anesthesia" +msgstr "" + #: lang/json/tool_quality_from_json.py msgid "smoothing" msgstr "сглаживания" @@ -152010,10 +152828,6 @@ msgstr "Проход." msgid "wooden aisle" msgstr "деревянный проход" -#: lang/json/vehicle_part_from_json.py -msgid "floor trunk" -msgstr "багажник в полу" - #. ~ Description for floor trunk #: lang/json/vehicle_part_from_json.py msgid "An aisle. A hatch lets you access a cargo space beneath it." @@ -152803,13 +153617,9 @@ msgstr "" msgid "" "A sophisticated set of electronic controls that allow you to control the " "vehicle from a vehicle remote while you are not in it. You can 'e'xamine " -"the tile or attempt to pick-up items (default ',') to access the controls, " -"or use the vehicle control key (default '^')." +"the tile to access the controls, or use the vehicle control key (default " +"'^')." msgstr "" -"Сложная электронная система управления, позволяющая контролировать транспорт" -" удаленно, без присутствия в нем. Вы можете «e» изучить тайл или попытаться " -"поднять предметы (по умолчанию «,»), чтобы получить доступ к управлению, или" -" использовать клавишу управления (по умолчанию «^»)." #: lang/json/vehicle_part_from_json.py msgid "camera control system" @@ -152820,14 +153630,9 @@ msgstr "система управления камерами" msgid "" "An LCD display attached to one or more cameras. When turned on, it lets you" " see from the cameras, but drains power from the vehicle's batteries. You " -"can 'e'xamine the tile or attempt to pick-up items (default ',') to access " -"the controls, or use the vehicle control key (default '^')." +"can 'e'xamine the tile to access the controls, or use the vehicle control " +"key (default '^')." msgstr "" -"LCD экран, подключенный к одной или нескольким камерам. Во включенном режиме" -" позволяет смотреть через камеры, но потребляет энергию из батарей " -"транспорта. Вы можете \"e\" изучить тайл или поднять предметы(по-умолчанию " -"\",\"), чтобы получить доступ к управлению, или использовать клавишу " -"управления (по умолчанию «^»). " #. ~ Description for security camera #: lang/json/vehicle_part_from_json.py @@ -153207,11 +154012,10 @@ msgstr "Двигатель внутреннего сгорания. Сжигае #: lang/json/vehicle_part_from_json.py msgid "" "A combustion engine. Burns diesel fuel from a tank in the vehicle. Can " -"also burn methanol, ethanol, or lamp oil, though somewhat less efficiently." +"also burn biodiesel or lamp oil, though somewhat less efficiently." msgstr "" -"Двигатель внутреннего сгорания. Сжигает дизель в баке транспорта. Также " -"может сжигать метанол, этанол или ламповое масло, хотя и с меньшей " -"эффективностью." +"Двигатель внутреннего сгорания. Сжигает дизель из бака транспорта. Также " +"может сжигать биодизель или ламповое масло, хотя и с меньшей эффективностью." #: lang/json/vehicle_part_from_json.py msgid "A combustion engine. Burns gasoline fuel from a tank in the vehicle." @@ -160222,6 +161026,34 @@ msgstr "Без подбора у нейтралов" msgid "Friendly NPCs don't pickup items inside the zone." msgstr "Дружественные NPC не не поднимают вещи внутри зоны." +#: src/clzones.cpp +msgid "NPC Retreat" +msgstr "" + +#: src/clzones.cpp +msgid "" +"When fleeing, friendly NPCs will attempt to retreat toward this zone if it " +"is within 60 tiles." +msgstr "" + +#: src/clzones.cpp +msgid "NPC Ignore Sounds" +msgstr "" + +#: src/clzones.cpp +msgid "Friendly NPCs won't investigate unseen sounds coming from this zone." +msgstr "" + +#: src/clzones.cpp +msgid "NPC Investigation Area" +msgstr "" + +#: src/clzones.cpp +msgid "" +"Friendly NPCs will investigate unseen sounds only if they come from inside " +"this area." +msgstr "" + #: src/clzones.cpp msgid "Loot: Unsorted" msgstr "Предметы: несортированное" @@ -162619,11 +163451,6 @@ msgctxt "in progress craft" msgid " starts working on the %s." msgstr " начинает работать над %s" -#: src/crafting.cpp -#, c-format -msgid "%s helps with crafting..." -msgstr "%s помогает с производством..." - #: src/crafting.cpp #, c-format msgid "%s assists with crafting..." @@ -162639,6 +163466,11 @@ msgstr "%s может помочь с серией..." msgid "%s watches you craft..." msgstr "%s наблюдает за сборкой..." +#: src/crafting.cpp +#, c-format +msgid "%s helps with crafting..." +msgstr "%s помогает с производством..." + #: src/crafting.cpp #, c-format msgid "You fail to make the %s, and waste some materials." @@ -162664,6 +163496,17 @@ msgstr "Вы сделали %s, используя книгу в качеств msgid "You memorized the recipe for %s!" msgstr "Вы запомнили рецепт %s!" +#: src/crafting.cpp +#, c-format +msgid "You don't know the recipe for the %s and can't continue crafting." +msgstr "" + +#: src/crafting.cpp +#, c-format +msgid "" +" doesn't know the recipe for the %s and can't continue crafting." +msgstr "" + #: src/crafting.cpp #, c-format msgid "%s (%d/%d nearby)" @@ -163260,6 +164103,190 @@ msgstr "" "Нажмите C (или c), чтобы " "скопировать это сообщение в буфер обмена." +#: src/debug_menu.cpp +msgid "Mutate" +msgstr "Мутировать" + +#: src/debug_menu.cpp +msgid "Change all skills" +msgstr "Изменить все навыки" + +#: src/debug_menu.cpp +msgid "Learn all melee styles" +msgstr "Выучить все боевые стили" + +#: src/debug_menu.cpp +msgid "Unlock all recipes" +msgstr "Изучить все рецепты" + +#: src/debug_menu.cpp +msgid "Edit player/NPC" +msgstr "Редактировать игрока/NPC" + +#: src/debug_menu.cpp +msgid "Damage self" +msgstr "" + +#: src/debug_menu.cpp +msgid "Set automove route" +msgstr "Установить маршрут автодвижения" + +#: src/debug_menu.cpp +msgid "Player..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Check game state" +msgstr "" + +#: src/debug_menu.cpp +msgid "Display hordes" +msgstr "Показать орды" + +#: src/debug_menu.cpp +msgid "Test item group" +msgstr "" + +#: src/debug_menu.cpp +msgid "Show sound clustering" +msgstr "" + +#: src/debug_menu.cpp +msgid "Display weather" +msgstr "Показать погоду" + +#: src/debug_menu.cpp +msgid "Display overmap scents" +msgstr "Показать запахи" + +#: src/debug_menu.cpp +msgid "Show mutation category levels" +msgstr "Показать уровни категорий мутации" + +#: src/debug_menu.cpp +msgid "Draw benchmark (X seconds)" +msgstr "Запустить бенчмарк (X секунд)" + +#: src/debug_menu.cpp +msgid "Test trait group" +msgstr "Протестировать группу черт" + +#: src/debug_menu.cpp +msgid "Show debug message" +msgstr "Показать отладочное сообщение" + +#: src/debug_menu.cpp +msgid "Crash game (test crash handling)" +msgstr "Вылет игры (тест обработки вылета)" + +#: src/debug_menu.cpp +msgid "Toggle NPC pathfinding on map" +msgstr "" + +#: src/debug_menu.cpp +msgid "Info..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - short range" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - long range" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - adjacent overmap" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn an item" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn NPC" +msgstr "Вызвать NPC" + +#: src/debug_menu.cpp +msgid "Spawn monster" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn a vehicle" +msgstr "Вызвать транспорт" + +#: src/debug_menu.cpp +msgid "Spawn artifact" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn clairvoyance artifact" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawning..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Reveal map" +msgstr "Открыть карту" + +#: src/debug_menu.cpp +msgid "Kill NPCs" +msgstr "Убить NPC" + +#: src/debug_menu.cpp +msgid "Map editor" +msgstr "Редактор карты" + +#: src/debug_menu.cpp +msgid "Change weather" +msgstr "Сменить погоду" + +#: src/debug_menu.cpp +msgid "Change wind direction" +msgstr "Сменить направление ветра" + +#: src/debug_menu.cpp +msgid "Change wind speed" +msgstr "Сменить скорость ветра" + +#: src/debug_menu.cpp +msgid "Kill all monsters" +msgstr "Убить всех монстров" + +#: src/debug_menu.cpp +msgid "Change time" +msgstr "Изменить время" + +#: src/debug_menu.cpp +msgid "Overmap editor" +msgstr "Редактор карты мира" + +#: src/debug_menu.cpp +msgid "Spawn map extra" +msgstr "" + +#: src/debug_menu.cpp +msgid "Map..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Quit to main menu" +msgstr "" + +#: src/debug_menu.cpp +msgid "" +"Debug Functions - Using these will cheat not only the game, but yourself.\n" +"You won't grow. You won't improve.\n" +"Taking this shortcut will gain you nothing. Your victory will be hollow.\n" +"Nothing will be risked and nothing will be gained." +msgstr "" + #: src/debug_menu.cpp #, c-format msgid "You teleport to point (%d,%d,%d)." @@ -163702,6 +164729,213 @@ msgstr "Удалить задание без правильной очистки msgid "Drew %d times in %.3f seconds. (%.3f fps average)" msgstr "Отрисовано %d раз за %.3f секунд. (%.3f fps в среднем)" +#: src/debug_menu.cpp +msgid "Current overmap revealed." +msgstr "Карта окрестностей раскрыта." + +#: src/debug_menu.cpp +#, c-format +msgid "Location %d:%d in %d:%d, %s\n" +msgstr "Положение %d:%d на %d:%d, %s\n" + +#: src/debug_menu.cpp +#, c-format +msgid "" +"Current turn: %d.\n" +"%s\n" +msgstr "" +"Ход: %d.\n" +"%s\n" + +#: src/debug_menu.cpp +#, c-format +msgid "%d creature exists.\n" +msgid_plural "%d creatures exist.\n" +msgstr[0] "%d существо присутствует.\n" +msgstr[1] "%d существа присутствует.\n" +msgstr[2] "%d существ присутствует.\n" +msgstr[3] "%d существо присутствует.\n" + +#: src/debug_menu.cpp +msgid "NPCs are going to spawn." +msgstr "NPC собираются зарождаться." + +#: src/debug_menu.cpp +msgid "NPCs are NOT going to spawn." +msgstr "NPC не собираются зарождаться." + +#: src/debug_menu.cpp +#, c-format +msgid "%s: map ( %d:%d ) pos ( %d:%d )" +msgstr "%s: карта (%d:%d) позиция (%d:%d)" + +#: src/debug_menu.cpp +#, c-format +msgid "(you: %d:%d)" +msgstr "(вы: %d:%d)" + +#: src/debug_menu.cpp +#, c-format +msgid "Stomach Contents: %d ml / %d ml kCal: %d, Water: %d ml" +msgstr "В желудке: %d мл / %d мл ккал: %d, Вода: %d мл" + +#: src/debug_menu.cpp +#, c-format +msgid "" +"Guts Contents: %d ml / %d ml kCal: %d, Water: %d ml\n" +"Hunger: %d, Thirst: %d, kCal: %d / %d" +msgstr "" +"Содержимое кишечника: %d мл / %d мл ккал: %d, Вода: %d мл\n" +"Голод: %d, Жажда: %d, ккал: %d / %d" + +#: src/debug_menu.cpp +#, c-format +msgid "%s's head implodes!" +msgstr "голова %s взорвалась!" + +#: src/debug_menu.cpp +msgid "Choose vehicle to spawn" +msgstr "Выберете машину для создания" + +#. ~ Menu entry in vehicle wish menu: 1st string: displayed name, 2nd string: +#. internal name of vehicle +#: src/debug_menu.cpp +#, c-format +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + +#: src/debug_menu.cpp +msgid "Martial arts debug." +msgstr "Отладка боевых искусств" + +#: src/debug_menu.cpp +msgid "Your eyes blink rapidly as knowledge floods your brain." +msgstr "" +"Вы начинаете очень быстро моргать, когда поток знаний устремляется в ваш " +"мозг." + +#: src/debug_menu.cpp +msgid "You now know a lot more than just 10 styles of kung fu." +msgstr "Сейчас вы знаете более 10 стилей кунг-фу." + +#: src/debug_menu.cpp +msgid "Recipe debug." +msgstr "Отладка рецептов." + +#: src/debug_menu.cpp +msgid "You know how to craft that now." +msgstr "Теперь вы знаете, как создавать всё что угодно." + +#: src/debug_menu.cpp +msgid "Select new weather pattern:" +msgstr "Выберите новый шаблон погоды:" + +#: src/debug_menu.cpp +msgid "Disable weather forcing" +msgstr "Запретить принудительную погоду" + +#: src/debug_menu.cpp +msgid "Keep normal weather patterns" +msgstr "Не менять погоду" + +#: src/debug_menu.cpp +msgid "Select new wind direction:" +msgstr "Выберите новое направление ветра:" + +#: src/debug_menu.cpp +msgid "Disable direction forcing" +msgstr "Отменить изменение направления" + +#: src/debug_menu.cpp +msgid "Keep normal wind direction" +msgstr "Оставить нормальное направление ветра" + +#: src/debug_menu.cpp +msgid "Select new wind speed:" +msgstr "Выберите новую скорость ветра:" + +#: src/debug_menu.cpp +msgid "Disable speed forcing" +msgstr "Отменить изменение скорости" + +#: src/debug_menu.cpp +msgid "Keep normal wind speed" +msgstr "Оставить нормальную скорость ветра" + +#: src/debug_menu.cpp +#, c-format +msgid "Damage self for how much? hp: %d" +msgstr "Насколько сильно ранить себя? ОЗ: %d" + +#: src/debug_menu.cpp +msgid "This binary was not compiled with tiles support." +msgstr "Этот исполняемый файл был скомпилирован без поддержки тайлов." + +#: src/debug_menu.cpp +msgid "year" +msgstr "год" + +#: src/debug_menu.cpp +msgid "season" +msgstr "время года" + +#: src/debug_menu.cpp +msgid "day" +msgstr "день" + +#: src/debug_menu.cpp +msgid "hour" +msgstr "час" + +#: src/debug_menu.cpp +msgid "minute" +msgstr "минута" + +#: src/debug_menu.cpp src/martialarts.cpp src/martialarts.cpp +msgid "turn" +msgid_plural "turns" +msgstr[0] "ход" +msgstr[1] "ходов" +msgstr[2] "ходов" +msgstr[3] "ходов" + +#: src/debug_menu.cpp +msgid "Set year to?" +msgstr "Установить год?" + +#: src/debug_menu.cpp +msgid "Set season to? (0 = spring)" +msgstr "Установить время года? (0 = весна)" + +#: src/debug_menu.cpp +msgid "Set days to?" +msgstr "Установить дни?" + +#: src/debug_menu.cpp +msgid "Set hour to?" +msgstr "Установить час?" + +#: src/debug_menu.cpp +msgid "Set minute to?" +msgstr "Установить минуты?" + +#: src/debug_menu.cpp +#, c-format +msgid "Set turn to? (One day is %i turns)" +msgstr "Установить ход? (один день = %i ходов)" + +#: src/debug_menu.cpp +msgid "Enter benchmark length (in milliseconds):" +msgstr "Укажите продолжительность бенчмарка (в миллисекундах):" + +#: src/debug_menu.cpp +msgid "" +"Quit without saving? This may cause issues such as duplicated or missing " +"items and vehicles!" +msgstr "" +"Выйти без сохранения? Возможно будут проблемы: исчезновение или клонирование" +" предметов и транспорта!" + #: src/defense.cpp #, c-format msgid "Please wait as the map generates [ 0%% ]" @@ -165277,6 +166511,10 @@ msgstr "Следует" msgid "Leading" msgstr "Руководит" +#: src/faction.cpp +msgid "Patrolling" +msgstr "" + #: src/faction.cpp msgid "Guarding" msgstr "На страже" @@ -166452,6 +167690,10 @@ msgstr "" msgid "Select an end point." msgstr "Выберите конечную точку." +#: src/faction_camp.cpp +msgid "Spiked pits must be built over existing trenches!" +msgstr "Ямы с шипами нужно строить поверх существующих траншей!" + #: src/faction_camp.cpp msgid "Invalid terrain in construction path." msgstr "На пути постройки неправильная местность." @@ -167005,14 +168247,6 @@ msgstr "На точке сброса не найдено никаких пред msgid "You distribute %d kcal worth of food to your companions." msgstr "Вы распределяете еду ценностью %d ккал между вашими компаньонами." -#: src/faction_camp.cpp -msgid "Accessed camp inventory whilst position does not refer to a camp" -msgstr "" - -#: src/faction_camp.cpp -msgid "consume components for camp mission, but no camp found" -msgstr "" - #: src/faction_camp.cpp #, c-format msgid "While %s, a silent specter approaches %s..." @@ -167479,26 +168713,6 @@ msgstr "плотный фунгицидный газ" msgid "smoke vent" msgstr "дым из вытяжки" -#: src/field.cpp -msgid "Whew... smells like skunk!" -msgstr "Фу… воняет как скунс!" - -#: src/field.cpp -msgid "Man, that smells like some good shit!" -msgstr "Чувак, эта хрень неплохо пахнет!" - -#: src/field.cpp -msgid "I don't know... should you really be smoking that stuff?" -msgstr "Я не знаю… ты в самом деле будешь курить эту штуку?" - -#: src/field.cpp -msgid "Ew, smells like burning rubber!" -msgstr "Бе, пахнет как жжёная резина!" - -#: src/field.cpp -msgid "Ugh, that smells rancid!" -msgstr "Ух, воняет тухлятиной!" - #: src/field.cpp #, c-format msgid "A %s hits you!" @@ -168050,379 +169264,6 @@ msgstr "данные о состоянии интерфейса" msgid "Failed to save game data" msgstr "Не удалось сохранить данные игры" -#: src/game.cpp -msgid "" -"Debug Functions - Using these will cheat not only the game, but yourself. You won't grow. You won't improve.\n" -"Taking this shortcut will gain you nothing. Your victory will be hollow.\n" -"Nothing will be risked and nothing will be gained." -msgstr "" -"Отладочные функции - Если вы их используете, то обманываете не только игру, но и себя. Вы не разовьётесь. Вы не станете лучше.\n" -"Эта горячая клавиша вам ничего не даст. Ваша победа будет фальшивой.\n" -"Вы ничем не рискнёте и ничего не получите." - -#: src/game.cpp -msgid "Wish for an item" -msgstr "Пожелать предмет" - -#: src/game.cpp -msgid "Teleport - Short Range" -msgstr "Телепорт на небольшие расстояния" - -#: src/game.cpp -msgid "Teleport - Long Range" -msgstr "Телепорт на большие расстояния" - -#: src/game.cpp -msgid "Reveal map" -msgstr "Открыть карту" - -#: src/game.cpp -msgid "Spawn NPC" -msgstr "Вызвать NPC" - -#: src/game.cpp -msgid "Spawn Monster" -msgstr "Вызвать монстра" - -#: src/game.cpp -msgid "Check game state..." -msgstr "Проверить состояние игры…" - -#: src/game.cpp -msgid "Kill NPCs" -msgstr "Убить NPC" - -#: src/game.cpp -msgid "Mutate" -msgstr "Мутировать" - -#: src/game.cpp -msgid "Spawn a vehicle" -msgstr "Вызвать транспорт" - -#: src/game.cpp -msgid "Change all skills" -msgstr "Изменить все навыки" - -#: src/game.cpp -msgid "Learn all melee styles" -msgstr "Выучить все боевые стили" - -#: src/game.cpp -msgid "Unlock all recipes" -msgstr "Изучить все рецепты" - -#: src/game.cpp -msgid "Edit player/NPC" -msgstr "Редактировать игрока/NPC" - -#: src/game.cpp -msgid "Spawn Artifact" -msgstr "Получить артефакт" - -#: src/game.cpp -msgid "Spawn Clairvoyance Artifact" -msgstr "Вызвать артефакт ясновидения" - -#: src/game.cpp -msgid "Map editor" -msgstr "Редактор карты" - -#: src/game.cpp -msgid "Change weather" -msgstr "Сменить погоду" - -#: src/game.cpp -msgid "Change wind direction" -msgstr "Сменить направление ветра" - -#: src/game.cpp -msgid "Change wind speed" -msgstr "Сменить скорость ветра" - -#: src/game.cpp -msgid "Kill all monsters" -msgstr "Убить всех монстров" - -#: src/game.cpp -msgid "Display hordes" -msgstr "Показать орды" - -#: src/game.cpp -msgid "Test Item Group" -msgstr "Тест группы предметов" - -#: src/game.cpp -msgid "Damage Self" -msgstr "Ранить себя" - -#: src/game.cpp -msgid "Show Sound Clustering" -msgstr "Показать кластеры звука" - -#: src/game.cpp -msgid "Display weather" -msgstr "Показать погоду" - -#: src/game.cpp -msgid "Display overmap scents" -msgstr "Показать запахи" - -#: src/game.cpp -msgid "Change time" -msgstr "Изменить время" - -#: src/game.cpp -msgid "Set automove route" -msgstr "Установить маршрут автодвижения" - -#: src/game.cpp -msgid "Show mutation category levels" -msgstr "Показать уровни категорий мутации" - -#: src/game.cpp -msgid "Overmap editor" -msgstr "Редактор карты мира" - -#: src/game.cpp -msgid "Draw benchmark (X seconds)" -msgstr "Запустить бенчмарк (X секунд)" - -#: src/game.cpp -msgid "Teleport - Adjacent overmap" -msgstr "Телепортироваться в соседнюю карту " - -#: src/game.cpp -msgid "Test trait group" -msgstr "Протестировать группу черт" - -#: src/game.cpp -msgid "Show debug message" -msgstr "Показать отладочное сообщение" - -#: src/game.cpp -msgid "Crash game (test crash handling)" -msgstr "Вылет игры (тест обработки вылета)" - -#: src/game.cpp -msgid "Spawn Map Extra" -msgstr "Вызвать Дополнительную Локацию" - -#: src/game.cpp -msgid "Toggle NPC pathfinding on map" -msgstr "" - -#: src/game.cpp -msgid "Quit to Main Menu" -msgstr "Выйти в главное меню" - -#: src/game.cpp -msgid "Current overmap revealed." -msgstr "Карта окрестностей раскрыта." - -#: src/game.cpp -#, c-format -msgid "Location %d:%d in %d:%d, %s\n" -msgstr "Положение %d:%d на %d:%d, %s\n" - -#: src/game.cpp -#, c-format -msgid "" -"Current turn: %d.\n" -"%s\n" -msgstr "" -"Ход: %d.\n" -"%s\n" - -#: src/game.cpp -#, c-format -msgid "%d creature exists.\n" -msgid_plural "%d creatures exist.\n" -msgstr[0] "%d существо присутствует.\n" -msgstr[1] "%d существа присутствует.\n" -msgstr[2] "%d существ присутствует.\n" -msgstr[3] "%d существо присутствует.\n" - -#: src/game.cpp -msgid "NPCs are going to spawn." -msgstr "NPC собираются зарождаться." - -#: src/game.cpp -msgid "NPCs are NOT going to spawn." -msgstr "NPC не собираются зарождаться." - -#: src/game.cpp -#, c-format -msgid "%s: map ( %d:%d ) pos ( %d:%d )" -msgstr "%s: карта (%d:%d) позиция (%d:%d)" - -#: src/game.cpp -#, c-format -msgid "(you: %d:%d)" -msgstr "(вы: %d:%d)" - -#: src/game.cpp -#, c-format -msgid "Stomach Contents: %d ml / %d ml kCal: %d, Water: %d ml" -msgstr "В желудке: %d мл / %d мл ккал: %d, Вода: %d мл" - -#: src/game.cpp -#, c-format -msgid "" -"Guts Contents: %d ml / %d ml kCal: %d, Water: %d ml\n" -"Hunger: %d, Thirst: %d, kCal: %d / %d" -msgstr "" -"Содержимое кишечника: %d мл / %d мл ккал: %d, Вода: %d мл\n" -"Голод: %d, Жажда: %d, ккал: %d / %d" - -#: src/game.cpp -#, c-format -msgid "%s's head implodes!" -msgstr "голова %s взорвалась!" - -#: src/game.cpp -msgid "Choose vehicle to spawn" -msgstr "Выберете машину для создания" - -#. ~ Menu entry in vehicle wish menu: 1st string: displayed name, 2nd string: -#. internal name of vehicle -#: src/game.cpp -#, c-format -msgid "%1$s (%2$s)" -msgstr "%1$s (%2$s)" - -#: src/game.cpp -msgid "Martial arts debug." -msgstr "Отладка боевых искусств" - -#: src/game.cpp -msgid "Your eyes blink rapidly as knowledge floods your brain." -msgstr "" -"Вы начинаете очень быстро моргать, когда поток знаний устремляется в ваш " -"мозг." - -#: src/game.cpp -msgid "You now know a lot more than just 10 styles of kung fu." -msgstr "Сейчас вы знаете более 10 стилей кунг-фу." - -#: src/game.cpp -msgid "Recipe debug." -msgstr "Отладка рецептов." - -#: src/game.cpp -msgid "You know how to craft that now." -msgstr "Теперь вы знаете, как создавать всё что угодно." - -#: src/game.cpp -msgid "Select new weather pattern:" -msgstr "Выберите новый шаблон погоды:" - -#: src/game.cpp -msgid "Disable weather forcing" -msgstr "Запретить принудительную погоду" - -#: src/game.cpp -msgid "Keep normal weather patterns" -msgstr "Не менять погоду" - -#: src/game.cpp -msgid "Select new wind direction:" -msgstr "Выберите новое направление ветра:" - -#: src/game.cpp -msgid "Disable direction forcing" -msgstr "Отменить изменение направления" - -#: src/game.cpp -msgid "Keep normal wind direction" -msgstr "Оставить нормальное направление ветра" - -#: src/game.cpp -msgid "Select new wind speed:" -msgstr "Выберите новую скорость ветра:" - -#: src/game.cpp -msgid "Disable speed forcing" -msgstr "Отменить изменение скорости" - -#: src/game.cpp -msgid "Keep normal wind speed" -msgstr "Оставить нормальную скорость ветра" - -#: src/game.cpp -#, c-format -msgid "Damage self for how much? hp: %d" -msgstr "Насколько сильно ранить себя? ОЗ: %d" - -#: src/game.cpp -msgid "This binary was not compiled with tiles support." -msgstr "Этот исполняемый файл был скомпилирован без поддержки тайлов." - -#: src/game.cpp -msgid "year" -msgstr "год" - -#: src/game.cpp -msgid "season" -msgstr "время года" - -#: src/game.cpp -msgid "day" -msgstr "день" - -#: src/game.cpp -msgid "hour" -msgstr "час" - -#: src/game.cpp -msgid "minute" -msgstr "минута" - -#: src/game.cpp src/martialarts.cpp src/martialarts.cpp -msgid "turn" -msgid_plural "turns" -msgstr[0] "ход" -msgstr[1] "ходов" -msgstr[2] "ходов" -msgstr[3] "ходов" - -#: src/game.cpp -msgid "Set year to?" -msgstr "Установить год?" - -#: src/game.cpp -msgid "Set season to? (0 = spring)" -msgstr "Установить время года? (0 = весна)" - -#: src/game.cpp -msgid "Set days to?" -msgstr "Установить дни?" - -#: src/game.cpp -msgid "Set hour to?" -msgstr "Установить час?" - -#: src/game.cpp -msgid "Set minute to?" -msgstr "Установить минуты?" - -#: src/game.cpp -#, c-format -msgid "Set turn to? (One day is %i turns)" -msgstr "Установить ход? (один день = %i ходов)" - -#: src/game.cpp -msgid "Enter benchmark length (in milliseconds):" -msgstr "Укажите продолжительность бенчмарка (в миллисекундах):" - -#: src/game.cpp -msgid "" -"Quit without saving? This may cause issues such as duplicated or missing " -"items and vehicles!" -msgstr "" -"Выйти без сохранения? Возможно будут проблемы: исчезновение или клонирование" -" предметов и транспорта!" - #: src/game.cpp msgid "You haven't killed any monsters yet!" msgstr "Вы не убили ни одного монстра!" @@ -169027,14 +169868,6 @@ msgstr "" msgid "Without extra fuel it will burn for %s." msgstr "Без дополнительного топлива он будет продолжать гореть ещё %s." -#: src/game.cpp -msgid "You can't do that while driving." -msgstr "Вы не можете сделать этого, пока управляете транспортом." - -#: src/game.cpp -msgid "You can't do that on a moving vehicle." -msgstr "Вы не можете сделать это в движущейся машине." - #: src/game.cpp #, c-format msgid "The %s is too unstable to remove anything." @@ -171480,6 +172313,22 @@ msgstr "%s из %s (%d)" msgid "Draw what?" msgstr "Взять что?" +#: src/handle_action.cpp +msgid "Change to which movement mode?" +msgstr "Какой режим передвижения включить?" + +#: src/handle_action.cpp +msgid "Walk" +msgstr "" + +#: src/handle_action.cpp +msgid "Run" +msgstr "" + +#: src/handle_action.cpp +msgid "Crouch" +msgstr "" + #: src/handle_action.cpp msgid "Auto-move canceled" msgstr "Авто-перемещение отменено." @@ -171568,6 +172417,14 @@ msgstr "новая клавиша по умолчанию: «^»." msgid "You can't operate a vehicle while you're in your shell." msgstr "Вы не можете управлять транспортом, находясь в своей раковине." +#: src/handle_action.cpp +msgid "Auto travel mode OFF!" +msgstr "" + +#: src/handle_action.cpp +msgid "Auto travel mode ON!" +msgstr "" + #: src/handle_action.cpp msgid "Safe mode ON!" msgstr "Безопасный режим ВКЛ!" @@ -172147,6 +173004,20 @@ msgstr "Вы добыли: бутон мака" msgid "You harvest and drop: poppy bud" msgstr "Вы добыли и выбросили: бутон мака" +#: src/iexamine.cpp +msgid "The cactus' nettles sting you!" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You harvest: %s." +msgstr "Вы добыли: %s." + +#: src/iexamine.cpp +#, c-format +msgid "You harvest and drop: %s." +msgstr "Вы добыли и выбросили: %s." + #: src/iexamine.cpp msgid "If only you had a shovel to dig up those roots..." msgstr "Если бы только у вас была лопата, чтобы выкопать те корни..." @@ -172163,16 +173034,6 @@ msgstr "Вы добыли и выбросили: корень георгина" msgid "Nothing can be harvested from this plant in current season." msgstr "С этого растения нельзя ничего собрать в это время года." -#: src/iexamine.cpp -#, c-format -msgid "You harvest: %s." -msgstr "Вы добыли: %s." - -#: src/iexamine.cpp -#, c-format -msgid "You harvest and drop: %s." -msgstr "Вы добыли и выбросили: %s." - #: src/iexamine.cpp msgid "You couldn't harvest anything." msgstr "Вы не можете ничего собрать." @@ -173082,10 +173943,12 @@ msgstr "" "работы." #: src/iexamine.cpp -msgid "You need an anesthesia kit for autodoc to perform any operation." +msgid "" +"You need an anesthesia kit with at least one charge for autodoc to perform " +"any operation." msgstr "" -"Вам потребуется набор для анестезии, чтобы автодок мог провести какую-либо " -"операцию." +"Вам потребуется набор для анестезии с как минимум одним зарядом, чтобы " +"автодок мог провести какую-либо операцию." #: src/iexamine.cpp msgid "Choose CBM to install" @@ -173143,6 +174006,50 @@ msgstr "У вас не установлена никакая бионика." msgid "%1$s doesn't have any bionics installed." msgstr "У %1$s не установлена никакая бионика." +#: src/iexamine.cpp +msgid "This mill already contains flour." +msgstr "В мельнице уже содержится мука." + +#: src/iexamine.cpp +msgid "Remove it before starting the mill again." +msgstr "Извлеките её, прежде чем снова запустить мельницу." + +#: src/iexamine.cpp +#, c-format +msgid "This rack contains %s, which can't be milled!" +msgstr "В мельнице лежит %s, это нельзя перемалывать!" + +#: src/iexamine.cpp +#, c-format +msgid "You remove the %s from the mill." +msgstr "Вы вынимаете %s из мельницы." + +#: src/iexamine.cpp +msgid "" +"This mill is empty. Fill it with starchy products such as wheat, barley or " +"oats and try again." +msgstr "" +"Мельница пуста. Положите в неё крахмалистые продукты, такие как пшеница, " +"ячмень или овес, и попробуйте ещё раз." + +#: src/iexamine.cpp +msgid "" +"This mill is overloaded with products, and the millstone can't turn. Remove" +" some and try again." +msgstr "" +"Мельница перегружена продуктами, и жернов не может вращаться. Удалите часть " +"и попробуйте ещё раз." + +#: src/iexamine.cpp +#, c-format +msgctxt "volume units" +msgid "You think that you can load about %s %s in it." +msgstr "Вы думаете, что сможете загрузить около %s %s в неё." + +#: src/iexamine.cpp +msgid "You remove the brake on the millstone and it slowly starts to turn." +msgstr "Вы снимаете тормоз с жернова, и он медленно начинает вращаться." + #: src/iexamine.cpp msgid "This rack already contains smoked food." msgstr "В коптильне уже имеется копчёная еда." @@ -173247,6 +174154,140 @@ msgstr "Вы не можете положить так много." msgid "You carefully place %s %s in the rack." msgstr "Вы аккуратно кладёте %s %s в коптильню." +#: src/iexamine.cpp +msgid "You can't place more food while it's milling." +msgstr "Вы не можете разместить больше еды, пока она перемалывается." + +#: src/iexamine.cpp +msgid "Load mill with what kind of product?" +msgstr "Что положить в мельницу?" + +#: src/iexamine.cpp +msgid "You don't have any products that can be milled." +msgstr "У вас нет продуктов, которые можно перемолоть." + +#: src/iexamine.cpp +#, c-format +msgid "Insert how many %s into the mill?" +msgstr "Сколько %s положить в мельницу?" + +#: src/iexamine.cpp +#, c-format +msgctxt "item amount and name" +msgid "You carefully place %s %s in the mill." +msgstr "Вы аккуратно кладёте %s %s в мельницу." + +#: src/iexamine.cpp +msgid "The water mill needs to be over shallow flowing water to work." +msgstr "" +"Водяная мельница заработает, если будет находиться над мелкой проточной " +"водой." + +#: src/iexamine.cpp +msgid "The wind mill needs to be outside in the wind to work." +msgstr "Ветряная мельница заработает, если будет снаружи на ветру." + +#: src/iexamine.cpp +msgid "What to do with the mill?" +msgstr "Что делать с мельницей?" + +#: src/iexamine.cpp +msgid "Inspect mill" +msgstr "Осмотреть мельницу" + +#: src/iexamine.cpp +msgid "" +"Remove brake and start milling... insert some products for milling first" +msgstr "" +"Снять с тормоза и начать перемалывать.... сначала положите туда какой-нибудь" +" продукт" + +#: src/iexamine.cpp +msgid "Remove brake and start milling" +msgstr "Снять с тормоза и начать перемалывать" + +#: src/iexamine.cpp +msgid "Remove brake and start milling, milling will take about 6 hours." +msgstr "Снять с тормоза и начать перемалывать. Это займёт примерно 6 часов." + +#: src/iexamine.cpp +msgid "Insert products for milling... mill is full" +msgstr "Положить продукт для перемолки... мельница заполнена" + +#: src/iexamine.cpp +#, c-format +msgid "Insert products for milling... remaining capacity is %s %s" +msgstr "Положить продукт для перемолки... осталось %s %s" + +#: src/iexamine.cpp +msgid "Fill the mill with starchy products such as wheat, barley or oats." +msgstr "" +"Наполните мельницу крахмалосодержащими продуктами, такими как пшеница, " +"ячмень или овес." + +#: src/iexamine.cpp +msgid "Remove products from mill" +msgstr "Извлечь продукты из мельницы." + +#: src/iexamine.cpp +msgid "Apply brake to mill" +msgstr "" + +#: src/iexamine.cpp +msgid "Applying the brake will stop milling process." +msgstr "Применение тормоза остановит процесс помола." + +#: src/iexamine.cpp +msgid "There's a mill here. It is turning and milling." +msgstr "Это мельница, жернова вращаются и перемалывают." + +#: src/iexamine.cpp +#, c-format +msgid "It will finish milling in about %d hour." +msgid_plural "It will finish milling in about %d hours." +msgstr[0] "До конца помола осталось %d час." +msgstr[1] "До конца помола осталось %d часа." +msgstr[2] "До конца помола осталось %d часов." +msgstr[3] "До конца помола осталось %d час." + +#: src/iexamine.cpp +msgid "It will finish milling in less than an hour." +msgstr "До конца помола осталось меньше часа." + +#: src/iexamine.cpp +#, c-format +msgid "It should take about %d minutes to finish milling." +msgstr "До конца помола осталось примерно %d минут." + +#: src/iexamine.cpp +msgid "There's a mill here." +msgstr "Здесь мельница." + +#: src/iexamine.cpp +msgid "You inspect its contents and find: " +msgstr "Вы осматриваете содержимое и видите:" + +#: src/iexamine.cpp +msgid "... that it is empty." +msgstr "...что внутри пусто." + +#: src/iexamine.cpp +msgid "You see some grains that are not yet milled to fine flour." +msgstr "Вы видите несколько зерен, которые еще не перемолоты до мелкой муки." + +#: src/iexamine.cpp +msgid "It is already milling." +msgstr "Она уже перемалывает." + +#: src/iexamine.cpp +#, c-format +msgid "You remove %s from the mill." +msgstr "Вы вынимаете %s из мельницы." + +#: src/iexamine.cpp +msgid "You stop the milling process." +msgstr "Вы останавливаете процесс помола." + #: src/iexamine.cpp msgid "What to do with the smoking rack:" msgstr "Что делать с коптильней:" @@ -173359,14 +174400,6 @@ msgstr "Еда закончит коптиться через %d минут." msgid "There's a smoking rack here." msgstr "Это коптильня." -#: src/iexamine.cpp -msgid "You inspect its contents and find: " -msgstr "Вы осматриваете содержимое и видите:" - -#: src/iexamine.cpp -msgid "... that it is empty." -msgstr "...что внутри пусто." - #: src/iexamine.cpp msgid "You see some smoldering embers there." msgstr "Вы видите здесь немного тлеющих угольков." @@ -175271,6 +176304,10 @@ msgstr "|." msgid "\\." msgstr "\\." +#: src/item.cpp +msgid "XX" +msgstr "" + #: src/item.cpp msgid ".." msgstr ".." @@ -186061,6 +187098,11 @@ msgstr "Вы можете делать это только рядом с дер msgid "You reach out to the trees with your roots." msgstr "Вы тянетесь к деревьям своими корнями." +#: src/mutation.cpp +msgid "" +"You lay next to the trees letting your hair roots tangle with the trees." +msgstr "" + #: src/mutation.cpp msgid "Bionic power storage increased by 100." msgstr "Хранилище бионической энергии увеличено на 100." @@ -187338,6 +188380,10 @@ msgstr "Является вашим другом." msgid "Is following you." msgstr "Следует за вами." +#: src/npc.cpp +msgid "Is guiding you." +msgstr "Направляет тебя." + #: src/npc.cpp msgid "Will try to kill you or flee from you if you reveal yourself." msgstr "Попытается убить вас или сбежать от вас, если вы обнаружите себя." @@ -187802,10 +188848,6 @@ msgstr "Если вам интересно, мне бы пригодилась msgid " If you are interested, I have another job for you." msgstr " Если тебе интересно, то у меня есть для тебя другая работа." -#: src/npctalk.cpp -msgid "Pleasure doing business!" -msgstr "Приятно иметь с тобой дело!" - #: src/npctalk.cpp msgid "Shall we resume?" msgstr "Продолжим?" @@ -187928,23 +188970,6 @@ msgstr "Расскажи мне об этом." msgid "I have news." msgstr "У меня есть новости." -#: src/npctalk.cpp -#, c-format -msgid "Delivering %s." -msgstr "Продажа: %s." - -#: src/npctalk.cpp -msgid "Works for me." -msgstr "Сойдёт." - -#: src/npctalk.cpp -msgid "You might be seeing more of me..." -msgstr "Думаю, мы ещё встретимся..." - -#: src/npctalk.cpp -msgid "Delivering bandages." -msgstr "Доставить бинты." - #: src/npctalk.cpp msgid "Yes, let's resume training " msgstr "Да, давай продолжим тренировку " @@ -188177,11 +189202,6 @@ msgstr "%s в месте (%d, %d)" msgid "My current location" msgstr "Мое текущее местоположение" -#: src/npctalk_funcs.cpp -#, c-format -msgid "I'm willing to pay %s per batch for a total of %s" -msgstr "Я могу заплатить %s за единицу товара, итого за всё - %s." - #. ~ %1$s is the NPC's translated name, %2$s is the translated faction camp #. name #: src/npctalk_funcs.cpp @@ -191308,6 +192328,10 @@ msgstr "Темп : %s" msgid "Wield:" msgstr "В руках: " +#: src/panels.cpp +msgid "Style:" +msgstr "Стиль:" + #: src/panels.cpp msgid "Food :" msgstr "Еда :" @@ -191471,6 +192495,18 @@ msgstr "Вы перегружены!" msgid "You struggle to carry such a large volume!" msgstr "Вы с трудом тащите такой большой объём предметов!" +#: src/pickup.cpp +msgid "Get items from vehicle cargo" +msgstr "Берите вещи из багажника транспорта." + +#: src/pickup.cpp +msgid "Get items from where?" +msgstr "Откуда брать вещи?" + +#: src/pickup.cpp src/vehicle_use.cpp +msgid "Get items on the ground" +msgstr "Поднять предметы с земли" + #: src/pickup.cpp msgid "Next page" msgstr "След. страница" @@ -191974,14 +193010,14 @@ msgstr "Вы начали бежать." msgid "You're too tired to run." msgstr "Вы слишком устали, чтобы бежать." -#: src/player.cpp -msgid "You start walking." -msgstr "Вы начали идти." - #: src/player.cpp msgid "You start crouching." msgstr "Вы начали красться." +#: src/player.cpp +msgid "You start walking." +msgstr "Вы начали идти." + #: src/player.cpp #, c-format msgid "Your ground sonar detected a %1$s to the %2$s!" @@ -193140,8 +194176,8 @@ msgid "Your shaking legs make you stumble." msgstr "Ваши трясущиеся ноги заставляют вас спотыкаться." #: src/player.cpp -msgid " stumbles." +msgstr " спотыкается." #: src/player.cpp msgid " falls over!" @@ -194492,7 +195528,7 @@ msgstr "Жажда %s-%d%%" #: src/player_display.cpp #, c-format msgid "Starving -%s%d%%" -msgstr "" +msgstr "Умирает с голоду -%s%d%%" #: src/player_display.cpp #, c-format @@ -195577,12 +196613,12 @@ msgstr "Необходимые компоненты:" #: src/requirements.cpp #, c-format msgid "%s (%d of %ld)" -msgstr "" +msgstr "%s (%d из %ld)" #: src/requirements.cpp #, c-format msgid "%s of %ld" -msgstr "" +msgstr "%s из %ld" #: src/requirements.cpp msgid "OR" @@ -197344,6 +198380,11 @@ msgstr "Не выполнены условия для ремонта %s." msgid "You repair the %1$s's %2$s." msgstr "Вы починили %2$s в машине (%1$s)." +#: src/veh_utils.cpp +#, c-format +msgid "You replace the %1$s's %2$s." +msgstr "Вы заменили %1$s %2$s." + #: src/vehicle.cpp msgid "Lost connection with the vehicle due to distance!" msgstr "Потеряно соединение с транспортом из-за расстояния!" @@ -197759,10 +198800,6 @@ msgstr " (дефект)" msgid " holding %s" msgstr " содержит %s" -#: src/vehicle_part.cpp -msgid "XX" -msgstr "" - #: src/vehicle_part.cpp #, c-format msgid "Insufficient power to enable %s" @@ -198233,10 +199270,6 @@ msgstr "Выключить стиральную машину" msgid "Activate the washing machine (1.5 hours)" msgstr "Включить стиральную машину (1,5 часа)" -#: src/vehicle_use.cpp -msgid "Get items on the ground" -msgstr "Поднять предметы с земли" - #: src/vehicle_use.cpp msgid "Use the hotplate" msgstr "Использовать электроплитку" @@ -198672,7 +199705,7 @@ msgstr "Выберите мир, чтобы начать игру" #: src/worldfactory.cpp msgid "last world info" -msgstr "" +msgstr "Последняя информация о мире" #: src/worldfactory.cpp msgid " ACTIVE WORLD MODS " diff --git a/lang/po/zh_CN.po b/lang/po/zh_CN.po index 6ac9d3f33dfbb..2932991c4b299 100644 --- a/lang/po/zh_CN.po +++ b/lang/po/zh_CN.po @@ -8,6 +8,7 @@ # D Laboratory , 2018 # dikai li , 2018 # 1 23 , 2018 +# Brett Dong , 2018 # 4c6e1d75b9f86fe32f55f91342c2d6a6, 2018 # Mizu Izumi, 2018 # 高 励贤 <475964436@qq.com>, 2018 @@ -17,7 +18,6 @@ # EhNuhc Nehc , 2018 # Jianxiang Wang , 2018 # 等离子 坦克 , 2019 -# Brett Dong , 2019 # Dao Da , 2019 # zao lv , 2019 # Silencess Shakespeare , 2019 @@ -27,12 +27,12 @@ # iopop, 2019 # fei li , 2019 # JeffChen , 2019 -# 万 和 <380014507@qq.com>, 2019 # 何方神圣 何 <1366003560@qq.com>, 2019 # 羽 偌 , 2019 # Alan Zk <488872@qq.com>, 2019 # cainiao , 2019 # lu ck , 2019 +# 万 和 <380014507@qq.com>, 2019 # Amans Tofu , 2019 # L rient <1972308206@qq.com>, 2019 # @@ -40,7 +40,7 @@ msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-26 14:19+0800\n" +"POT-Creation-Date: 2019-05-03 13:47+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" "Last-Translator: L rient <1972308206@qq.com>, 2019\n" "Language-Team: Chinese (China) (https://www.transifex.com/cataclysm-dda-translators/teams/2217/zh_CN/)\n" @@ -58,10 +58,9 @@ msgstr[0] "电池" #. ~ Description for battery #: lang/json/AMMO_from_json.py msgid "" -"A set of universal batteries. Used to charge almost any electronic device." -msgstr "" -"一组几乎可以给所有电子设备供电的通用电池。\n" -"“大灾变前研制出后全面推广使用的新型电源,几乎任何电子器械都可以通用。”" +"Some free-floating battery charge. This can be reloaded into rechargable " +"battery cells, but can never be unloaded." +msgstr "浮置式安装电池,可以为可充电电池盒补充电量,装载后无法取出。" #: lang/json/AMMO_from_json.py msgid "aluminum foil" @@ -74,7 +73,7 @@ msgid "" " of tin in the past." msgstr "" "一小块由金属铝压延而成的铝制薄片。\n" -"“有时也被称作‘锡箔’,因为曾经由锡制成。”" +"\"有时也被称作'锡箔',因为曾经由锡制成。\"" #: lang/json/AMMO_from_json.py msgid "cent" @@ -159,7 +158,7 @@ msgstr "卷烟纸" #: lang/json/AMMO_from_json.py msgid "These are thin paper strips intended for the rolling of cigarettes." msgstr "" -"一卷烟丝用的小纸带。\n" +"卷烟丝用的小纸带。\n" "\"实在没有烟丝就用胡子吧。\"" #: lang/json/AMMO_from_json.py @@ -287,7 +286,7 @@ msgid "" "energy based weapons. The result was the standard fusion pack, capable of " "delivering bolts of superheated gas at near light speed with no recoil." msgstr "" -"一包研制于21世纪中期的军方研制的标准核聚变能源包,用于新兴的能量武器。能射出接近光速的超高温气体,还没有任何后坐力影响。\n" +"一包21世纪中期的军方研制的标准核聚变能源包,用于新兴的能量武器。能射出接近光速的超高温气体,还没有任何后坐力影响。\n" "\"使星球大战式的枪战场景成为可能。\"" #: lang/json/AMMO_from_json.py @@ -300,7 +299,7 @@ msgid "" "A 60mm high-explosive anti-tank round. It could blow through up to two feet" " of concrete." msgstr "" -"一枚66mm高爆反坦克火箭弹,它能击穿厚达2英尺的混凝土等材质掩体。\n" +"一枚66mm 高爆反坦克火箭弹,它能击穿厚达2英尺的混凝土等材质掩体。\n" "\"掩体在其面前形同虚设。\"" #: lang/json/AMMO_from_json.py @@ -312,7 +311,7 @@ msgstr "120mm 高爆反坦克弹" msgid "" "A 120mm high-explosive anti-tank round. It could ruin anyone's whole day." msgstr "" -"一颗120mm高爆反坦克炮弹。在一定距离上能有效击穿带反应装甲的坦克及装甲目标。\n" +"一颗120mm 高爆反坦克炮弹。在一定距离上能有效击穿带反应装甲的坦克及装甲目标。\n" "\"摊上任何人都会造就'最长的一天'。\"" #: lang/json/AMMO_from_json.py @@ -335,7 +334,7 @@ msgstr ".22 弹壳(未用过)" #. ~ Description for unused .22 casing #: lang/json/AMMO_from_json.py msgid "An unfired, like-new .22 round casing, with the primer still intact." -msgstr "一些未使用过的崭新的 .22弹壳,弹壳完整,附有底火。" +msgstr "一些未使用过的崭新的.22 弹壳,弹壳完整,附有底火。" #: lang/json/AMMO_from_json.py msgid "gunpowder" @@ -425,8 +424,8 @@ msgid "" "Rubber slugs from a shotgun beanbag round. You could use them to make new " "beanbag rounds." msgstr "" -"一些从沙包弹里拆出来的橡胶弹头,用来制作暴力镇压示威份子们的沙包弹。\n" -"\"灾变前维持人类社会公序良俗的必备品。\"" +"一些从沙包弹里拆出来的橡胶弹头,用来制作暴力镇压示威分子们的沙包弹。\n" +"\"大灾变前维持人类社会公序良俗的必备品。\"" #: lang/json/AMMO_from_json.py msgid "copper" @@ -460,9 +459,7 @@ msgstr "锡块" #. ~ Description for tin #: lang/json/AMMO_from_json.py msgid "Tin and pewter scraps. Usable in making ammo." -msgstr "" -"一些可以用来制造物品的废锡料。\n" -"\"焊接时会散发一股沁人心肺的味道。\"" +msgstr "一些可以用来制造物品的废锡料,也可用于制造弹药。" #: lang/json/AMMO_from_json.py msgid "medical tape" @@ -482,11 +479,11 @@ msgstr "PG-7VL 93mm 火箭弹" #. ~ Description for PG-7VL 93mm rocket #: lang/json/AMMO_from_json.py msgid "93mm single-stage high-explosive ammunition for the RPG-7." -msgstr "一枚用于RPG-7的93mm单级高爆火箭弹。" +msgstr "一枚用于RPG-7的93mm 单级高爆火箭弹。" #: lang/json/AMMO_from_json.py msgid "M235 66mm TPA rocket" -msgstr "M235 TPA 66mm 燃烧火箭弹" +msgstr "M235 66mm TPA 燃烧火箭弹" #. ~ Description for M235 66mm TPA rocket #: lang/json/AMMO_from_json.py @@ -494,7 +491,7 @@ msgid "" "66mm incendiary rockets used in the M202 FLASH rocket launcher. Their " "warheads are filled with a thickened pyrophoric agent, which burns at 2200 " "degrees Fahrenheit." -msgstr "M202 FLASH火箭筒使用的66mm燃烧弹。弹头中装填了TPA(经过聚异丁烯增稠的三乙基铝),燃烧温度达到1200°C。" +msgstr "M202 FLASH 火箭筒使用的66mm 燃烧弹。弹头中装填了TPA(经过聚异丁烯增稠的三乙基铝),燃烧温度达到1200°C。" #: lang/json/AMMO_from_json.py msgid "placeholder ammunition" @@ -549,8 +546,8 @@ msgid "" " be activated by a Rivtech jet injector device. A label on the side warns " "against using more than two doses per hour." msgstr "" -"一只小小的装满了快速伤口愈合化合物的玻璃瓶。里面的药剂只能用Rivtech公司专用的注射器来激活使用,药水瓶上贴着的侧标上印着一行警告:\"每小时最多使用两剂。\"\n" -"\"让您拥有超级英雄般的愈合能力,但请遵医嘱。\"" +"一只小小的装满了快速伤口愈合化合物的玻璃瓶。里面的药剂只能用Rivtech公司专用的注射器来激活使用,药水瓶上贴着的侧标上印着一行警告。\n" +"\"每小时最多使用两剂。让您拥有超级英雄般的愈合能力,但请遵医嘱。\"" #: lang/json/AMMO_from_json.py msgid "RA10K stimulant module" @@ -623,7 +620,7 @@ msgstr "鱼饵" #: lang/json/AMMO_from_json.py msgid "A bait used in traps to lure fish." msgstr "" -"一个鱼饵,放捕鱼用具里用来捕鱼。\n" +"一个鱼饵,放在捕鱼用具里用来捕鱼。\n" "\"无法吸引一个宝箱。\"" #: lang/json/AMMO_from_json.py @@ -689,7 +686,7 @@ msgid "" "The result of an interrupted charcoal making process. Useless, except as " "fuel in a charcoal kiln." msgstr "" -"一些中断了制造木炭过程,在半途就拆解取出来的东西。无用,除了塞回炭窑当燃料。\n" +"一些中断了制造木炭过程,在半途就取出来的东西。无用,除了塞回炭窑当燃料。\n" "\"半途而废的意外产物,但也是意料之中的废物。\"" #: lang/json/AMMO_from_json.py @@ -757,7 +754,7 @@ msgstr "木制锥头箭" msgid "" "A fletched wooden arrow shaft with a pointed tip. Useful for piercing " "armor. Stands a decent chance of remaining intact once fired." -msgstr "装有尖锐箭头的木制羽箭,适于穿透盔甲。射出后有概率保持完好。" +msgstr "装有尖锐箭头的木制羽箭,适于穿透盔甲。射出后有较高概率保持完好。" #: lang/json/AMMO_from_json.py msgid "simple wooden small game arrow" @@ -781,7 +778,7 @@ msgid "" "A fletched wooden arrow shaft with a bladed tip. Useful for maximising " "damage to the target. Stands a decent chance of remaining intact once " "fired." -msgstr "装有带刃箭头的木制羽箭,能对目标造成最大化的伤害。射出后有概率保持完好。" +msgstr "装有带刃箭头的木制羽箭,能对目标造成最大化的伤害。射出后有较高概率保持完好。" #: lang/json/AMMO_from_json.py msgid "simple wooden arrow" @@ -804,7 +801,7 @@ msgid "" "A fletched wooden arrow shaft with a blunt tip. Useful for hunting small " "woodland creatures without splattering them all over the ground. Stands a " "decent chance of remaining intact once fired." -msgstr "装有钝箭头的木制羽箭,适用于捕猎小型林地生物,防止它被爆射成满地碎肉。射出后有概率保持完好。" +msgstr "装有钝箭头的木制羽箭,适用于捕猎小型林地生物,防止它被爆射成满地碎肉。射出后有较高概率保持完好。" #: lang/json/AMMO_from_json.py msgid "makeshift wooden arrow" @@ -837,7 +834,7 @@ msgstr "铝制宽刃箭" msgid "" "A fletched aluminum arrow shaft with a bladed tip. Useful for maximising " "damage to the target. Stands a good chance of remaining intact once fired." -msgstr "装有带刃箭头的铝制羽箭,能对目标造成最大化的伤害。射出后有较高概率保持完好。" +msgstr "装有带刃箭头的铝制羽箭,能对目标造成最大化的伤害。射出后有很高概率保持完好。" #: lang/json/AMMO_from_json.py msgid "aluminum field point arrow" @@ -848,7 +845,7 @@ msgstr "铝制锥头箭" msgid "" "A fletched aluminum arrow shaft with a pointed tip. Useful for piercing " "armor. Stands a good chance of remaining intact once fired." -msgstr "装有尖锐箭头的铝制羽箭,适于穿透盔甲。射出后有较高概率保持完好。 " +msgstr "装有尖锐箭头的铝制羽箭,适于穿透盔甲。射出后有很高概率保持完好。 " #: lang/json/AMMO_from_json.py msgid "aluminum small game arrow" @@ -860,7 +857,7 @@ msgid "" "A fletched aluminum arrow shaft with a blunt tip. Useful for hunting small " "woodland creatures without splattering them all over the ground. Stands a " "good chance of remaining intact once fired." -msgstr "装有钝箭头的铝制羽箭,适用于捕猎小型林地生物,防止它被爆射成满地碎肉。射出后有较高概率保持完好。" +msgstr "装有钝箭头的铝制羽箭,适用于捕猎小型林地生物,防止它被爆射成满地碎肉。射出后有很高概率保持完好。" #: lang/json/AMMO_from_json.py msgid "carbon fiber hunting arrow" @@ -872,7 +869,7 @@ msgid "" "A fletched carbon fiber arrow shaft with an expanding broadhead tip. Deals " "impressive damage to targets. Stands a good chance of remaining intact once" " fired." -msgstr "装有大号宽刃箭头的碳纤维羽箭,能对目标造成惊人的伤害,射出后有较高概率保持完好。" +msgstr "装有大号宽刃箭头的碳纤维羽箭,能对目标造成惊人的伤害,射出后有很高概率保持完好。" #: lang/json/AMMO_from_json.py msgid "explosive arrow" @@ -925,7 +922,7 @@ msgid "" "light weight makes it unsuitable for use as a tool." msgstr "" "一把重量很轻的投掷用轻斧。它没有斧刃,而且重量太轻,这让它没法当作工具使用。\n" -"\"中土世界的矮人都是善用飞斧的好手。\"" +"\"中土世界的矮人专用。\"" #: lang/json/AMMO_from_json.py msgid "lawn dart" @@ -977,7 +974,7 @@ msgstr "金属枪矛" msgid "" "An underwater fishing spear made from metal. It's light, but doesn't have " "much range. Stands a very good chance of remaining intact once fired." -msgstr "一支全金属打造的水下枪矛,很轻,但射程并不远。射击后很高概率可以保持完好。" +msgstr "一支全金属打造的水下枪矛,很轻,但射程并不远。射击后极大概率可以保持完好。" #: lang/json/AMMO_from_json.py msgid "carbon fiber fishing spear" @@ -1000,20 +997,19 @@ msgstr "钝头木箭" msgid "" "A fletched wooden arrow shaft with a blunt rubber tip. Can stun weaker " "enemies. Stands a good chance of remaining intact once fired." -msgstr "装有橡胶钝头的木制羽箭,能够击晕较弱的敌人,射出后有较高概率保持完好。" +msgstr "装有橡胶钝头的木制羽箭,能够击晕较弱的敌人,射出后有很高概率保持完好。" -#: lang/json/AMMO_from_json.py -msgid "anesthetic kit" -msgstr "麻醉工具箱" +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "anesthetic" +msgstr "麻醉剂" -#. ~ Description for anesthetic kit +#. ~ Description for anesthetic #: lang/json/AMMO_from_json.py msgid "" -"A kit for inducing anesthesia for surgery, containing specialized canisters " -"with a variety of powerful hypnotic, analgetic, and stimulative drugs. It's" -" intended for use in specialized medical equipment, and can't be " -"administered manually." -msgstr "一整套用于手术麻醉的工具箱,内含装有各种强力催眠剂、止痛剂及兴奋剂的瓶子。该工具箱设计主要用于专业医疗设备使用,暂时无法直接使用。" +"A variety of powerful hypnotic, analgetic, and stimulative drugs. It's " +"intended for use in specialized medical equipment, and can't be administered" +" manually. You can reload an anesthetic kit with it." +msgstr "各种强力催眠药、安眠药和兴奋剂。用于专业医疗设备使用,无法直接使用。你可以用它重新装填麻醉工具箱。" #: lang/json/AMMO_from_json.py msgid "sulfur" @@ -1052,9 +1048,7 @@ msgid "" "Portland is most likely long gone, but its memory persists in cement. This " "ubiquitous binder can be used for all kinds of advanced masonry. Just add " "water." -msgstr "" -"一堆粉状水硬性无机粘合材料,加水搅拌后成浆体,可用于建筑。\n" -"\"波特兰可能早就被毁灭了,但它的回忆还残留在水泥之中。\"" +msgstr "一堆粉状水硬性无机粘合材料,加水搅拌后成浆体,可用于建筑。" #: lang/json/AMMO_from_json.py msgid "limestone" @@ -1106,7 +1100,7 @@ msgstr[0] "泥土" msgid "" "A pile of loosely packed, slightly damp loamy soil. This mixture of sand, " "silt and clay is ideal for growing plants." -msgstr "一堆松软的,略微潮湿的肥沃土壤。 这种沙子,淤泥和粘土的混合物是种植植物的理想材料。" +msgstr "一堆松软的,略微潮湿的肥沃土壤。 这种由沙子、淤泥和粘土的混合物是种植植物的理想材料。" #: lang/json/AMMO_from_json.py msgid "aluminum powder" @@ -1273,7 +1267,7 @@ msgstr "一小撮硝石。有时用于肥料制造,但这无所不在的硝酸 #: lang/json/AMMO_from_json.py msgid "niter" msgid_plural "niter" -msgstr[0] "硝石矿石" +msgstr[0] "硝石矿" #. ~ Description for niter #: lang/json/AMMO_from_json.py @@ -1510,7 +1504,7 @@ msgid "" "A fletched wooden crossbow bolt with a bladed tip. Useful for maximising " "damage to the target. Stands a decent chance of remaining intact once " "fired." -msgstr "装有带刃箭头的木制弩矢,能对目标造成最大化的伤害。射出后有概率保持完好。" +msgstr "装有带刃箭头的木制弩矢,能对目标造成最大化的伤害。射出后有较高概率保持完好。" #: lang/json/AMMO_from_json.py msgid "wooden bodkin bolt" @@ -1521,7 +1515,7 @@ msgstr "木制锥头弩矢" msgid "" "A fletched wooden crossbow bolt with a pointed tip. Useful for piercing " "armor. Stands a decent chance of remaining intact once fired." -msgstr "装有尖锐箭头的木制弩矢,适于穿透盔甲。射出后有概率保持完好。" +msgstr "装有尖锐箭头的木制弩矢,适于穿透盔甲。射出后有较高概率保持完好。" #: lang/json/AMMO_from_json.py msgid "wooden small game bolt" @@ -1533,7 +1527,7 @@ msgid "" "A fletched wooden crossbow bolt with a blunt tip. Useful for hunting small " "woodland creatures without splattering them all over the ground. Stands a " "decent chance of remaining intact once fired." -msgstr "装有钝箭头的木制弩矢,适用于捕猎小型林地生物,防止它被爆射成满地碎肉。射出后有概率保持完好。" +msgstr "装有钝箭头的木制弩矢,适用于捕猎小型林地生物,防止它被爆射成满地碎肉。射出后有较高概率保持完好。" #: lang/json/AMMO_from_json.py msgid "simple metal bolt" @@ -1555,7 +1549,7 @@ msgstr "铝制宽刃弩矢" msgid "" "A fletched aluminum crossbow bolt with a bladed tip. Useful for maximising " "damage to the target. Stands a good chance of remaining intact once fired." -msgstr "装有带刃箭头的铝制弩矢,能对目标造成最大化的伤害。射出后有较高概率保持完好。" +msgstr "装有带刃箭头的铝制弩矢,能对目标造成最大化的伤害。射出后有很高概率保持完好。" #: lang/json/AMMO_from_json.py msgid "aluminum field point bolt" @@ -1566,7 +1560,7 @@ msgstr "铝制锥头弩矢" msgid "" "A fletched aluminum crossbow bolt with a pointed tip. Useful for piercing " "armor. Stands a good chance of remaining intact once fired." -msgstr "装有尖锐箭头的铝制弩矢,适于穿透盔甲。射出后有较高概率保持完好。 " +msgstr "装有尖锐箭头的铝制弩矢,适于穿透盔甲。射出后有很高概率保持完好。 " #: lang/json/AMMO_from_json.py msgid "aluminum small game bolt" @@ -1578,7 +1572,7 @@ msgid "" "A fletched aluminum crossbow bolt with a blunt tip. Useful for hunting " "small woodland creatures without splattering them all over the ground. " "Stands a good chance of remaining intact once fired." -msgstr "装有钝箭头的铝制弩矢,适用于捕猎小型林地生物,防止它被爆射成满地碎肉。射出后有较高概率保持完好。" +msgstr "装有钝箭头的铝制弩矢,适用于捕猎小型林地生物,防止它被爆射成满地碎肉。射出后有很高概率保持完好。" #: lang/json/AMMO_from_json.py msgid "explosive crossbow bolt" @@ -1643,6 +1637,18 @@ msgid "" "Petroleum-based fuel made from a byproduct of the gasoline making process." msgstr "从加工汽油的副产品中提炼出来的石化燃料。" +#: lang/json/AMMO_from_json.py +msgid "biodiesel" +msgid_plural "biodiesel" +msgstr[0] "生物柴油" + +#. ~ Description for biodiesel +#: lang/json/AMMO_from_json.py +msgid "" +"Vegetable oil- or animal fat-based diesel fuel consisting of long-chain " +"alkyl (methyl, ethyl, or propyl) esters." +msgstr "由植物油或动物脂肪为原料制成的柴油,主要成分是长链烷基(甲基、乙基或丙基)酯。" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "gasoline" msgid_plural "gasoline" @@ -1665,7 +1671,7 @@ msgstr[0] "灯油" #. ~ Description for lamp oil #: lang/json/AMMO_from_json.py msgid "A thin and clean-burning oil made for use in oil lamps." -msgstr "一份无烟轻型灯油,在油灯中使用。" +msgstr "一份轻型无烟灯油,在油灯中使用。" #: lang/json/AMMO_from_json.py msgid "napalm" @@ -1835,6 +1841,33 @@ msgstr "" "一包研制于21世纪中期的手工制造简易替代核聚变能源包,能射出接近光速的超高温气体,还没有任何后坐力影响。\n" "\"造就帝国冲锋队卓越枪法的元凶。\"" +#: lang/json/AMMO_from_json.py +msgid "throwing stick" +msgstr "掷棍" + +#. ~ Description for throwing stick +#: lang/json/AMMO_from_json.py +msgid "" +"A stick carved into a shape suitable for throwing at a target. Not a " +"boomerang, so don't expect it to return to your hand." +msgstr "" +"一根削尖的木棍,适合投掷,投掷后可拾取反复使用。\n" +"\"如果掌握原力就可以自动回到手中。\"" + +#: lang/json/AMMO_from_json.py +msgid "anesthetic kit" +msgstr "麻醉工具箱" + +#. ~ Description for anesthetic kit +#. ~ Description for anesthesia kit +#: lang/json/AMMO_from_json.py lang/json/TOOL_from_json.py +msgid "" +"A kit for inducing anesthesia for surgery, containing specialized canisters " +"with a variety of powerful hypnotic, analgetic, and stimulative drugs. It's" +" intended for use in specialized medical equipment, and can't be " +"administered manually." +msgstr "一整套用于手术麻醉的工具箱,内含装有各种强力催眠剂、止痛剂及兴奋剂的瓶子。该工具箱设计主要用于专业医疗设备使用,暂时无法直接使用。" + #: lang/json/AMMO_from_json.py msgid "H&K 12mm" msgstr "H&K 12mm弹" @@ -1856,7 +1889,7 @@ msgid "" "20x66mm caseless shotgun rounds, sublethal beanbag type. Proprietary " "ammunition for Rivtech shotguns. Being caseless rounds, these cannot be " "disassembled or reloaded." -msgstr "20X66mm无壳霰弹,非致死的沙包弹药,Rivtech 霰弹枪专用,由于是无壳弹,所以不可拆解和复装。" +msgstr "20X66mm 无壳霰弹,非致死的沙包弹药,Rivtech霰弹枪专用,由于是无壳弹,所以不可拆解和复装。" #: lang/json/AMMO_from_json.py msgid "handmade 20x66mm flechette" @@ -1867,7 +1900,7 @@ msgstr "自制 26X66mm 镖型弹" msgid "" "Handcrafted bootleg duplicates of Rivtech 20x66mm caseless flechette rounds." " Being caseless rounds, these cannot be disassembled or reloaded." -msgstr "手工制造的盗版Rivtech的26x66mm镖形弹,由于是无壳弹,所以不可拆解和复装。" +msgstr "手工制造的盗版Rivtech的26x66mm 镖形弹,由于是无壳弹,所以不可拆解和复装。" #: lang/json/AMMO_from_json.py msgid "handmade 20x66mm buckshot" @@ -1878,7 +1911,7 @@ msgstr "自制 26X66mm 猎鹿弹" msgid "" "Handcrafted bootleg duplicates of Rivtech 20x66mm caseless buckshot rounds." " Being caseless rounds, these cannot be disassembled or reloaded." -msgstr "手工制造的盗版Rivtech的26x66mm猎鹿弹,由于是无壳弹,所以不可拆解和复装。" +msgstr "手工制造的盗版Rivtech的26x66mm 猎鹿弹,由于是无壳弹,所以不可拆解和复装。" #: lang/json/AMMO_from_json.py msgid "handmade 20x66mm slug" @@ -1889,7 +1922,7 @@ msgstr "自制 26X66mm 独头弹" msgid "" "Handcrafted bootleg duplicates of Rivtech 20x66mm caseless solid projectile " "rounds. Being caseless rounds, these cannot be disassembled or reloaded." -msgstr "手工制造的盗版Rivtech的26x66mm合金弹,由于是无壳弹,所以不可拆解和复装。" +msgstr "手工制造的盗版Rivtech的26x66mm 合金弹,由于是无壳弹,所以不可拆解和复装。" #: lang/json/AMMO_from_json.py msgid "20x66mm explosive" @@ -1901,7 +1934,7 @@ msgid "" "20x66mm caseless shotgun rounds, explosive projectile type. Proprietary " "ammunition for Rivtech shotguns. Being caseless rounds, these cannot be " "disassembled or reloaded." -msgstr "20X66mm无壳霰弹,爆裂弹型,Rivtech 霰弹枪专用。由于是无壳弹,所以不可拆解和复装。" +msgstr "20X66mm 无壳霰弹,爆裂弹型,Rivtech霰弹枪专用。由于是无壳弹,所以不可拆解和复装。" #: lang/json/AMMO_from_json.py msgid "20x66mm flare" @@ -1913,7 +1946,7 @@ msgid "" "20x66mm caseless shotgun rounds, signal flare type. Proprietary ammunition " "for Rivtech shotguns. Being caseless rounds, these cannot be disassembled " "or reloaded." -msgstr "20X66mm无壳霰弹,信号弹型,Rivtech 霰弹枪专用。由于是无壳弹,所以不可拆解和复装。" +msgstr "20X66mm 无壳霰弹,信号弹型,Rivtech霰弹枪专用。由于是无壳弹,所以不可拆解和复装。" #: lang/json/AMMO_from_json.py msgid "20x66mm flechette" @@ -1925,7 +1958,7 @@ msgid "" "20x66mm caseless shotgun rounds, flechette type. Proprietary ammunition for" " Rivtech shotguns. Being caseless rounds, these cannot be disassembled or " "reloaded." -msgstr "20X66mm无壳霰弹,内含大量钢镖,Rivtech 霰弹枪专用。由于是无壳弹,所以不可拆解和复装。" +msgstr "20X66mm 无壳霰弹,内含大量钢镖,Rivtech霰弹枪专用。由于是无壳弹,所以不可拆解和复装。" #: lang/json/AMMO_from_json.py msgid "20x66mm frag" @@ -1937,7 +1970,7 @@ msgid "" "20x66mm caseless shotgun rounds, explosive fragmentation type. Proprietary " "ammunition for Rivtech shotguns. Being caseless rounds, these cannot be " "disassembled or reloaded." -msgstr "20X66mm无壳霰弹,破片榴弹型,Rivtech 霰弹枪专用。由于是无壳弹,所以不可拆解和复装。" +msgstr "20X66mm 无壳霰弹,破片榴弹型,Rivtech霰弹枪专用。由于是无壳弹,所以不可拆解和复装。" #: lang/json/AMMO_from_json.py msgid "20x66mm incendiary" @@ -1949,7 +1982,7 @@ msgid "" "20x66mm caseless shotgun rounds, incendiary type. Proprietary ammunition " "for Rivtech shotguns. Being caseless rounds, these cannot be disassembled " "or reloaded." -msgstr "20X66mm无壳霰弹,燃烧弹型,Rivtech 霰弹枪专用。由于是无壳弹,所以不可拆解和复装。" +msgstr "20X66mm 无壳霰弹,燃烧弹型,Rivtech霰弹枪专用。由于是无壳弹,所以不可拆解和复装。" #: lang/json/AMMO_from_json.py msgid "20x66mm buckshot" @@ -1961,7 +1994,7 @@ msgid "" "20x66mm caseless shotgun rounds, buckshot type. Proprietary ammunition for " "Rivtech shotguns. Being caseless rounds, these cannot be disassembled or " "reloaded." -msgstr "20X66mm无壳霰弹,猎鹿弹型,Rivtech 霰弹枪专用。由于是无壳弹,所以不可拆解和复装。" +msgstr "20X66mm 无壳霰弹,猎鹿弹型,Rivtech霰弹枪专用。由于是无壳弹,所以不可拆解和复装。" #: lang/json/AMMO_from_json.py msgid "20x66mm slug" @@ -1973,7 +2006,7 @@ msgid "" "20x66mm caseless shotgun rounds, solid projectile type. Proprietary " "ammunition for Rivtech shotguns. Being caseless rounds, these cannot be " "disassembled or reloaded." -msgstr "20X66mm无壳霰弹,实心独头型,Rivtech 霰弹枪专用。由于是无壳弹,所以不可拆解和复装。" +msgstr "20X66mm 无壳霰弹,实心独头型,Rivtech霰弹枪专用。由于是无壳弹,所以不可拆解和复装。" #: lang/json/AMMO_from_json.py msgid ".22 CB" @@ -2001,7 +2034,7 @@ msgid "" "recoil. It is most useful for rifle training, and hunting small animals." msgstr "" "30格令的.22 LR(Long Rifle)口径全金属被甲弹。.22 " -"LR弹的威力极小,停止作用极弱,射程短,后坐力可忽略不计。它的最大用处是用于训练枪法以及猎杀小型动物。" +"LR弹的威力极小,停止力极弱,射程短,后坐力可忽略不计。它的最大用处是用于训练枪法以及猎杀小型动物。" #: lang/json/AMMO_from_json.py msgid ".22 LR" @@ -2015,7 +2048,7 @@ msgid "" "recoil. It is most useful for rifle training, and hunting small animals." msgstr "" "40格令的.22 LR(Long Rifle)口径铅制无被甲弹。.22 " -"LR弹的威力极小,停止作用极弱,射程短,后坐力可忽略不计。它的最大用处是用于训练枪法以及猎杀小型动物。" +"LR弹的威力极小,停止力极弱,射程短,后坐力可忽略不计。它的最大用处是用于训练枪法以及猎杀小型动物。" #: lang/json/AMMO_from_json.py msgid ".22 rat-shot" @@ -2031,11 +2064,11 @@ msgstr "一种.22口径的弹药,将许多小颗粒霰弹装在一个易碎塑 #: lang/json/AMMO_from_json.py msgid "handloaded .22 LR" -msgstr "复装.22 LR弹" +msgstr "复装 .22 LR弹" #: lang/json/AMMO_from_json.py msgid "handloaded .22 FMJ" -msgstr "复装.22 全金属被甲弹" +msgstr "复装 .22 全金属被甲弹" #: lang/json/AMMO_from_json.py msgid ".223 Remington" @@ -2049,7 +2082,8 @@ msgid "" "wide variety of weapons. It generates lower pressure than 5.56 NATO leading" " to slightly decreased accuracy and recoil." msgstr "" -"36格令的.223雷明顿空尖弹。在过去近一个世纪以来,.223口径在民用射击领域极受欢迎,能找到有许多使用这个口径弹药的枪械。它比军用的5.56北约标准弹的膛压更低,所以精度更差,后坐力更低。" +"36格令的.223 " +"雷明顿空尖弹。在过去近一个世纪以来,.223口径在民用射击领域极受欢迎,能找到有许多使用这个口径弹药的枪械。它比军用的5.56北约标准弹的膛压更低,所以精度更差,后坐力更低。" #: lang/json/AMMO_from_json.py msgid "5.56 NATO M855A1" @@ -2062,7 +2096,7 @@ msgid "" "Its light weight, high accuracy, and manageable recoil lead to widespread " "use in the 20th century and it remains popular among militaries and " "civilians." -msgstr "62格令的5.56x45mm全金属被甲钢芯弹。重量轻,高精准和可接受的后座力令该弹种在20世纪被广泛使用,至今仍在军用和民用领域流行。" +msgstr "62格令的5.56x45mm 全金属被甲钢芯弹。重量轻,高精准和可接受的后座力令该弹种在20世纪被广泛使用,至今仍在军用和民用领域流行。" #: lang/json/AMMO_from_json.py msgid "5.56 NATO tracer" @@ -2074,20 +2108,20 @@ msgid "" "This ammunition is a one-in-five mix of M855A1 and M856 tracer rounds to " "help keep the weapon they are fired from on target." msgstr "" -"这种弹药为 M855A1 普通弹与 M856 曳光弹按4:1比例混合而成,有助于射击者保持火力在目标上。\n" -"\"曳光弹是双刃剑。——不详\"" +"这种弹药为 M855A1 普通弹与 M856 曳光弹按4:1比例混合而成,有助于射击者稳定瞄准目标。\n" +"\"曳光弹是双刃剑。—— 无名氏\"" #: lang/json/AMMO_from_json.py msgid "reloaded .223 Remington" -msgstr "复装.223 雷明顿弹" +msgstr "复装 .223 雷明顿弹" #: lang/json/AMMO_from_json.py msgid "reloaded 5.56 NATO" -msgstr "复装5.56 NATO弹" +msgstr "复装 5.56 NATO弹" #: lang/json/AMMO_from_json.py msgid "reloaded 5.56 NATO tracer" -msgstr "复装5.56 NATO 曳光弹" +msgstr "复装 5.56 NATO 曳光弹" #: lang/json/AMMO_from_json.py msgid ".300 Winchester Magnum" @@ -2101,12 +2135,12 @@ msgid "" "proven popular with hunters and snipers, although it is not as common as " ".308 or .30-06." msgstr "" -"220格令的.300 口径温彻斯特马格南空尖弹。.300 " +"220格令的.300口径温彻斯特马格南空尖弹。.300 " "温彻斯特马格南弹是1963年投入使用的一种极具威力和精准度的步枪子弹,在猎人和狙击手中很流行,只是它的名气还比不上.308或者.30-06子弹。" #: lang/json/AMMO_from_json.py msgid "reloaded .300 Winchester Magnum" -msgstr "复装.300 温彻斯特马格南弹" +msgstr "复装 .300 温彻斯特马格南弹" #. ~ Description for reloaded .300 Winchester Magnum #: lang/json/AMMO_from_json.py @@ -2129,8 +2163,7 @@ msgid "" "capable of taking down large targets with ease. While not advisable, it may" " be possible to use it in some firearms chambered for .30-06." msgstr "" -"130格令的 .270 " -"口径温彻斯特软尖弹。和.30-06口径子弹相似,.270口径子弹也曾经是风靡一时的狩猎用子弹,直到21世纪中期被新的子弹设计所取代,这种大威力子弹能够轻易地击倒大型猎物,然而尽管并不提倡,这种子弹也可以装进某些使用.30-06口径子弹的枪械里使用。" +"130格令的.270口径温彻斯特软尖弹。和.30-06口径子弹相似,.270口径子弹也曾经是风靡一时的狩猎用子弹,直到21世纪中期被新的子弹设计所取代,这种大威力子弹能够轻易地击倒大型猎物,然而尽管并不提倡,这种子弹也可以装进某些使用.30-06口径子弹的枪械里使用。" #: lang/json/AMMO_from_json.py msgid ".30-06 Springfield" @@ -2143,8 +2176,7 @@ msgid "" "cartridge has excellent accuracy, range, and stopping power making it " "popular with hunters and snipers for well over a century." msgstr "" -"165格令的 .30-06 " -"口径斯普林菲尔德(春田)软尖弹。.30-06口径弹药有优良的精准度、射程和停止作用,在民用和军用的精准射击领域都已流行了近一个世纪。" +"165格令的.30-06口径斯普林菲尔德(春田)软尖弹。.30-06口径弹药有优良的精准度、射程和停止作用,在民用和军用的精准射击领域都已流行了近一个世纪。" #: lang/json/AMMO_from_json.py msgid ".30-06 M14A1 tracer" @@ -2168,23 +2200,23 @@ msgid "" "Armor piercing .30-06 M2 ammunition with 168gr FMJ bullets. It is an " "extremely powerful and accurate cartridge but pays for its armor penetration" " abilities with lowered damage." -msgstr "168格令的.30-06 口径 M2 全金属被甲穿甲弹。高动能而且精准的子弹,但是这种型号的子弹通过降低致伤能力来提高穿甲性能。" +msgstr "168格令的.30-06口径 M2 全金属被甲穿甲弹。高动能而且精准的子弹,但是这种型号的子弹通过降低致伤能力来提高穿甲性能。" #: lang/json/AMMO_from_json.py msgid "reloaded .270 Winchester" -msgstr "复装.270 温彻斯特弹" +msgstr "复装 .270 温彻斯特弹" #: lang/json/AMMO_from_json.py msgid "reloaded .30-06 Springfield" -msgstr "复装.30-06 春田弹" +msgstr "复装 .30-06 春田弹" #: lang/json/AMMO_from_json.py msgid "reloaded .30-06 incendiary" -msgstr "复装.30-06 燃烧弹" +msgstr "复装 .30-06 燃烧弹" #: lang/json/AMMO_from_json.py msgid "reloaded .30-06 M2 AP" -msgstr "复装.30-06 M2 穿甲弹" +msgstr "复装 .30-06 M2 穿甲弹" #: lang/json/AMMO_from_json.py msgid ".308 Winchester" @@ -2196,7 +2228,7 @@ msgid "" ".308 Winchester ammunition with 168gr hollow point bullets. The .308 round " "is one of the most popular hunting cartridges in the world due to its " "accuracy and power." -msgstr "168格令的.308 温彻斯特空尖弹。.308 系列的威力与精准,令其成为世界上最受欢迎的猎枪子弹之一。" +msgstr "168格令的.308 温彻斯特空尖弹。.308系列的威力与精准,令其成为世界上最受欢迎的猎枪子弹之一。" #: lang/json/AMMO_from_json.py msgid "7.62x51mm M80" @@ -2221,19 +2253,19 @@ msgid "" "keep the weapon they are fired from on target." msgstr "" "这种弹药为 M80 普通弹与 M62 曳光弹按4:1混合而成,有助于射击者保持火力在目标上。\n" -"\"曳光弹是双刃剑。——不详\"" +"\"曳光弹是双刃剑。—— 无名氏\"" #: lang/json/AMMO_from_json.py msgid "reloaded .308 Winchester" -msgstr "复装.308 温彻斯特弹" +msgstr "复装 .308 温彻斯特弹" #: lang/json/AMMO_from_json.py msgid "reloaded 7.62x51mm" -msgstr "复装7.62x51mm弹" +msgstr "复装 7.62x51mm弹" #: lang/json/AMMO_from_json.py msgid "reloaded 7.62x51mm incendiary" -msgstr "复装7.62x51mm 燃烧弹" +msgstr "复装 7.62x51mm 燃烧弹" #: lang/json/AMMO_from_json.py msgid ".32 ACP" @@ -2248,7 +2280,7 @@ msgstr ".32 ACP弹是20世纪流行的手枪弹药,尽管威力小于.38弹或 #: lang/json/AMMO_from_json.py msgid "reloaded .32 ACP" -msgstr "复装.32 ACP弹" +msgstr "复装 .32 ACP弹" #: lang/json/AMMO_from_json.py msgid ".357 SIG FMJ" @@ -2275,11 +2307,11 @@ msgstr ".357 西格弹的空尖弹型号。.357 西格弹是一种高速手枪 #: lang/json/AMMO_from_json.py msgid "reloaded .357 SIG FMJ" -msgstr "复装.357 西格全金属被甲弹" +msgstr "复装 .357 西格全金属被甲弹" #: lang/json/AMMO_from_json.py msgid "reloaded .357 SIG JHP" -msgstr "复装.357 西格空尖弹" +msgstr "复装 .357 西格空尖弹" #: lang/json/AMMO_from_json.py msgid ".36 paper cartridge" @@ -2329,17 +2361,74 @@ msgstr "90格令的.38 超级弹是一种被甲空尖弹。于1929年面世,.3 #: lang/json/AMMO_from_json.py msgid "reloaded .38 FMJ" -msgstr "复装.38 全金属被甲弹" +msgstr "复装 .38 全金属被甲弹" #: lang/json/AMMO_from_json.py msgid "reloaded .38 Special" msgid_plural "reloaded .38 Special" -msgstr[0] "复装.38 特制弹" +msgstr[0] "复装 .38 特制弹" #: lang/json/AMMO_from_json.py msgid "reloaded .38 Super" msgid_plural "reloaded .38 Super" -msgstr[0] "复装.38 超级弹" +msgstr[0] "复装 .38 超级弹" + +#: lang/json/AMMO_from_json.py +msgid ".380 ACP FMJ" +msgstr ".380 ACP FMJ弹" + +#. ~ Description for .380 ACP FMJ +#: lang/json/AMMO_from_json.py +msgid "" +".380 ACP ammunition with a brass jacketed 95gr bullet. Popular in pocket " +"pistols for over a century, it is often considered the weakest caliber to " +"consider carrying. One should be careful not to chamber it in 9x18mm " +"Makarov or 9x19mm firearms." +msgstr "" +"95格令的.380 柯尔特自动手枪(Automatic Colt Pistol)全金属披甲弹(Full Metal " +"Jacket),黄铜弹壳。作为袖珍手枪的子弹流行了一个多世纪,该口径的子弹通常被认为是威力最弱的。注意不要将其放入9x18mm的马卡罗夫手枪或9x19mm的火器中。" + +#: lang/json/AMMO_from_json.py +msgid ".380 ACP JHP" +msgstr ".380 ACP JHP弹" + +#. ~ Description for .380 ACP JHP +#: lang/json/AMMO_from_json.py +msgid "" +".380 ACP ammunition with a 95gr jacketed hollow point bullet. It is a " +"popular round for small concealable backup pistols, and often the weakest " +"recommended defensive caliber. One should be careful not to chamber it in " +"9x18mm Makarov or 9x19mm firearms." +msgstr "" +"95格令的.380 柯尔特自动手枪(Automatic Colt Pistol)背甲空尖弹(Jacketed Hollow " +"Point)。它是一种流行的袖珍防御手枪子弹,该口径的子弹通常被认为是威力最弱的。注意不要将其放入9x18mm的马卡罗夫手枪或9x19mm的火器中。" + +#: lang/json/AMMO_from_json.py +msgid ".380 ACP +P" +msgstr ".380 ACP +P弹" + +#. ~ Description for .380 ACP +P +#: lang/json/AMMO_from_json.py +msgid "" +"Overpressure .380 ACP ammunition with a 90gr jacketed hollow point bullet. " +"These defensive loadings are designed to maximise performance and tend to be" +" more accurate than practice ammo. One should be careful not to chamber it " +"in 9x18mm Makarov or 9x19mm firearms." +msgstr "" +"90格令的.380 柯尔特自动手枪(Automatic Colt Pistol)背甲空尖弹(Jacketed Hollow " +"Point),超压型。这些子弹是为了最大限度地提高性能而设计的,而且比练习型弹药更精确。注意不要将其放入9x18mm的马卡罗夫手枪或9x19mm的火器中。" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP FMJ" +msgstr "复装 .380 ACP FMJ弹" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP JHP" +msgstr "复装 .380 ACP JHP弹" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP +P" +msgstr "复装 .380 ACP +P弹" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "10mm Auto" @@ -2428,7 +2517,7 @@ msgstr "40mm 照明弹" msgid "" "A 40mm signal flare. It will burn brightly for up to a minute, and will " "also leave a streak of smoke cover in its wake." -msgstr "一颗40mm照明榴弹。它会明亮地燃烧大约一分钟,并同时会在它的飞行轨迹上留下一道烟雾的痕迹。" +msgstr "一颗40mm 照明榴弹。它会明亮地燃烧大约一分钟,并同时会在它的飞行轨迹上留下一道烟雾的痕迹。" #: lang/json/AMMO_from_json.py msgid "40mm flashbang" @@ -2439,7 +2528,7 @@ msgstr "40mm 闪光弹" msgid "" "A 40mm grenade with a flashbang load. It will detonate with a blast of " "light and sound, designed to blind, deafen, and disorient anyone nearby." -msgstr "一颗40mm闪光榴弹。它能在引爆后产生强光和巨响,对附近的所有目标产生致盲、失聪的效果。" +msgstr "一颗40mm 闪光榴弹。它能在引爆后产生强光和巨响,对附近的所有目标产生致盲、失聪的效果。" #: lang/json/AMMO_from_json.py msgid "40mm flechette" @@ -2459,7 +2548,7 @@ msgstr "40mm 破片榴弹" msgid "" "A 40mm grenade with a small explosive load and a high number of damaging " "fragments." -msgstr "一颗40mm破片榴弹,能产生小型爆炸和大量冲击碎片。" +msgstr "一颗40mm 破片榴弹,能产生小型爆炸和大量冲击碎片。" #: lang/json/AMMO_from_json.py msgid "40mm incendiary" @@ -2472,7 +2561,7 @@ msgid "" "A 40mm grenade with a small napalm load, designed to create a burst of " "flame." msgstr "" -"一个装载小型凝固汽油弹的40mm榴弹,爆炸时能产生高温火焰,内装有由汽油和其他化学品制成的胶状物,爆炸时向四周溅射,发出一千摄氏度左右的高温,并能粘在其他物体上长时间燃烧。" +"一个装载小型凝固汽油弹的40mm口径榴弹,爆炸时能产生高温火焰,内装有由汽油和其他化学品制成的胶状物,爆炸时向四周溅射,发出一千摄氏度左右的高温,并能粘在其他物体上长时间燃烧。" #: lang/json/AMMO_from_json.py msgid "40mm buckshot" @@ -2492,7 +2581,7 @@ msgstr "40mm 烟雾弹" #. ~ Description for 40mm smoke cover #: lang/json/AMMO_from_json.py msgid "A 40mm grenade designed to provide smoke cover." -msgstr "设计用来提供烟幕掩护的40mm榴弹。" +msgstr "设计用来提供烟幕掩护的40mm口径榴弹。" #: lang/json/AMMO_from_json.py msgid "40mm teargas" @@ -2504,7 +2593,7 @@ msgstr[0] "40mm 催泪瓦斯弹" msgid "" "A 40mm grenade with a teargas load. It will burst in a cloud of highly " "incapacitating gas." -msgstr "一颗40mm催泪瓦斯榴弹。它爆炸后会散发的气雾能使目标暂时丧失战斗力。" +msgstr "一颗40mm 催泪瓦斯榴弹。它爆炸后会散发的气雾能使目标暂时丧失战斗力。" #: lang/json/AMMO_from_json.py msgid ".44 Magnum FMJ" @@ -2515,7 +2604,7 @@ msgstr ".44 马格南全金属被甲弹" msgid "" "A brass-jacketed variant of the .44 Magnum round. This increases " "penetration slightly at the cost of reduced damage from expansion." -msgstr ".44 口径的马格南弹的黄铜全被甲改装型号,通过牺牲弹头扩张所带来的破坏力,使其穿透力得以稍微提升。" +msgstr ".44口径的马格南弹的黄铜全被甲改装型号,通过牺牲弹头扩张所带来的破坏力,使其穿透力得以稍微提升。" #: lang/json/AMMO_from_json.py msgid ".44 Magnum" @@ -2528,20 +2617,19 @@ msgid "" "of the most powerful handgun cartridges available. It has excellent " "stopping power but suffers from extremely high recoil for a handgun round." msgstr "" -"240格令的.44 " -"口径马格南被甲空尖弹。.44马格南弹是目前手枪子弹中威力最大的弹种之一。它有着优异的停止力,但同时作为一种手枪弹药来说它的后坐力也非常高。" +"240格令的.44口径马格南被甲空尖弹。.44马格南弹是目前手枪子弹中威力最大的弹种之一。它有着优异的停止力,但同时作为一种手枪弹药来说它的后坐力也非常高。" #: lang/json/AMMO_from_json.py msgid "reloaded .44 Magnum FMJ" -msgstr "复装.44 马格南全金属被甲弹" +msgstr "复装 .44 马格南全金属被甲弹" #: lang/json/AMMO_from_json.py msgid "reloaded .44 Magnum" -msgstr "复装.44 马格南弹" +msgstr "复装 .44 马格南弹" #: lang/json/AMMO_from_json.py msgid ".44 paper cartridge" -msgstr ".44纸卷弹" +msgstr ".44 纸卷弹" #. ~ Description for .44 paper cartridge #: lang/json/AMMO_from_json.py @@ -2559,7 +2647,7 @@ msgstr ".45 ACP 全金属被甲弹" msgid "" ".45 ACP ammunition with 230gr FMJ bullets. Noted for its stopping power, " "the .45 ACP round has been common for almost 150 years." -msgstr "230格令的 .45 口径 ACP 全金属被甲弹。由于其优秀的停止作用,.45 口径ACP手枪弹已经流行了将近150年了。" +msgstr "230格令的.45口径 ACP 全金属被甲弹。由于其优秀的停止作用,.45口径ACP手枪弹已经流行了将近150年了。" #: lang/json/AMMO_from_json.py msgid ".45 ACP JHP" @@ -2572,8 +2660,8 @@ msgid "" "to replace the .38 Long Colt cartridge in the early 20th century. It has " "good stopping power but above average recoil." msgstr "" -"185格令的.45 口径 ACP 被甲空尖弹。.45 口径 ACP 弹是20世纪早期被研发出来,用于代替.38 长柯尔特弹(.38 LC)。.45 " -"口径ACP弹有着良好的停止作用,但后坐力略高于普通子弹。" +"185格令的.45口径 ACP 被甲空尖弹。.45口径ACP弹是20世纪早期被研发出来,用于代替.38 长柯尔特弹(.38 " +"LC)。.45口径ACP弹有着良好的停止作用,但后坐力略高于普通子弹。" #: lang/json/AMMO_from_json.py msgid ".45 ACP +P" @@ -2585,19 +2673,19 @@ msgid "" "Overpressure .45 ACP ammunition with 200gr JHP bullets. This +P ammunition " "has higher muzzle energy than typical loads leading to greater damage, " "accuracy and recoil." -msgstr "200格令的 .45 口径 ACP 增压被甲空尖弹。增压弹拥有更高的枪口动能,相比同口径普通弹有着更高伤害、精准度,和更大的后坐力。" +msgstr "200格令的.45口径 ACP 增压被甲空尖弹。增压弹拥有更高的枪口动能,相比同口径普通弹有着更高伤害、精准度,和更大的后坐力。" #: lang/json/AMMO_from_json.py msgid "reloaded .45 FMJ" -msgstr "复装.45 全金属被甲弹" +msgstr "复装 .45 全金属被甲弹" #: lang/json/AMMO_from_json.py msgid "reloaded .45 ACP JHP" -msgstr "复装.45 ACP 空尖弹" +msgstr "复装 .45 ACP 空尖弹" #: lang/json/AMMO_from_json.py msgid "reloaded .45 ACP +P" -msgstr "复装.45 ACP +P弹" +msgstr "复装 .45 ACP +P弹" #: lang/json/AMMO_from_json.py msgid ".454 Casull" @@ -2612,12 +2700,12 @@ msgid "" "many rifle rounds, although it suffers from extreme recoil making it " "unsuitable for most purposes." msgstr "" -"300格令的 .454 口径卡苏尔被甲软尖弹。.454 口径卡苏尔弹是 .45 口径长柯尔特弹(.45 " +"300格令的.454口径卡苏尔被甲软尖弹。.454口径卡苏尔弹是.45口径长柯尔特弹(.45 " "LC)的弹壳拉伸加厚版,它有着令人惊异的高能量装药,能打出比许多步枪子弹都要好的停止作用,但同时它击发时极高的后坐力使得它不适用于大多数环境。" #: lang/json/AMMO_from_json.py msgid "reloaded .454 Casull" -msgstr "复装.454 卡苏尔弹" +msgstr "复装 .454 卡苏尔弹" #: lang/json/AMMO_from_json.py msgid "4.6x30mm" @@ -2630,12 +2718,12 @@ msgid "" "round was developed by H&K to compete with FN Herstal's 5.7x28mm cartridge." " It has low recoil and excellent armor penetration." msgstr "" -"31格令的4.6x30mm 口径镀铜钢芯弹,4.6x30mm口径子弹是由H&K公司研制,用来与FN " +"31格令的4.6x30mm口径镀铜钢芯弹,4.6x30mm口径子弹是由H&K公司研制,用来与FN " "Herstal公司的5.7x28mm口径弹药竞争的弹种。该弹有着较低后坐力,和优秀的穿甲性能。" #: lang/json/AMMO_from_json.py msgid "reloaded 4.6x30mm" -msgstr "复装4.6x30mm弹" +msgstr "复装 4.6x30mm弹" #: lang/json/AMMO_from_json.py msgid ".460 Rowland HCFN" @@ -2646,7 +2734,7 @@ msgstr ".460 罗兰德平头硬质弹" msgid "" "A plated, hard cast flat nosed variant of the .460 Rowland round. This " "increases penetration slightly at the cost of reduced damage from expansion." -msgstr ".460 口径的罗兰德弹的平头硬质弹型号,通过牺牲弹头扩张所带来的破坏力,使其穿透力得以稍微提升。" +msgstr ".460口径的罗兰德弹的平头硬质弹型号,通过牺牲弹头扩张所带来的破坏力,使其穿透力得以稍微提升。" #: lang/json/AMMO_from_json.py msgid ".460 Rowland" @@ -2661,23 +2749,23 @@ msgid "" " dimensionally identical to .45ACP, save for having a longer case and deeper" " seated bullets to prevent ammunition mix-ups." msgstr "" -"185格令的.460 口径罗兰德弹。.460 罗兰德弹设计初衷是一款模拟 .44 马格南弹特性的自动手枪弹。和 .44 口径弹一样,.460 " -"罗兰德弹有着非凡的威力和后坐力。除了为防止两种弹药混淆而采用了更长的弹壳及更深的弹头之外,它在尺寸上与.45 ACP 弹几乎完全相同。" +"185格令的.460口径罗兰德弹。.460 罗兰德弹设计初衷是一款模拟.44 马格南弹特性的自动手枪弹。和.44口径弹一样,.460 " +"罗兰德弹有着非凡的威力和后坐力。除了为防止两种弹药混淆而采用了更长的弹壳及更深的弹头之外,它在尺寸上与.45 ACP弹几乎完全相同。" #: lang/json/AMMO_from_json.py msgid "reloaded .460 Rowland FMJ" -msgstr "复装.460 罗兰德全金属被甲弹" +msgstr "复装 .460 罗兰德全金属被甲弹" #. ~ Description for reloaded .460 Rowland FMJ #: lang/json/AMMO_from_json.py msgid "" "A brass-jacketed variant of the .460 Rowland round. This increases " "penetration slightly at the cost of reduced damage from expansion." -msgstr ".460 口径的罗兰德弹的全金属被甲弹型号,通过牺牲弹头扩张所带来的破坏力,使其穿透力得以稍微提升。" +msgstr ".460 罗兰德弹的全金属被甲弹型号,通过牺牲弹头扩张所带来的破坏力,使其穿透力得以稍微提升。" #: lang/json/AMMO_from_json.py msgid "reloaded .460 Rowland" -msgstr "复装.460 罗兰德弹" +msgstr "复装 .460 罗兰德弹" #: lang/json/AMMO_from_json.py msgid ".50 BMG tracer" @@ -2689,7 +2777,7 @@ msgid "" "A tracer variant of the powerful .50 BMG sniper round. Tracer rounds to " "help keep the weapon they are fired from on target at the risk of igniting " "flammable substances." -msgstr "一些 .50 BMG 狙击弹的曳光弹改进型,曳光弹种可帮助保持对射击目标的瞄准,但同时也有引燃可燃物的危险。" +msgstr "一些.50 BMG 狙击弹的曳光弹改进型,曳光弹种可帮助保持对射击目标的瞄准,但同时也有引燃可燃物的危险。" #: lang/json/AMMO_from_json.py msgid ".50 BMG Ball" @@ -2716,11 +2804,12 @@ msgid "" "Variant of the .50 BMG round that uses a core of very dense, hardened " "tungsten steel. Penetration is increased, but damage is reduced." msgstr "" -"一种相对比较少见的.50勃朗宁机枪弹,它的弹头中原本灌铅的地方,换成了一个极为坚硬的钨钢穿甲弹芯,这大大改善了它的穿甲能力,但是高穿甲的代价是伤害比铅芯子弹要小一些。" +"一种相对比较少见的.50 " +"勃朗宁机枪弹,它的弹头中原本灌铅的地方,换成了一个极为坚硬的钨钢穿甲弹芯,这大大改善了它的穿甲能力,但是高穿甲的代价是伤害比铅芯子弹要小一些。" #: lang/json/AMMO_from_json.py msgid "reloaded .50 BMG tracer" -msgstr "复装.50 BMG 曳光弹" +msgstr "复装 .50 BMG 曳光弹" #. ~ Description for reloaded .50 BMG tracer #: lang/json/AMMO_from_json.py @@ -2728,11 +2817,11 @@ msgid "" "A tracer variant of the powerful .50 BMG sniper round. Tracer rounds to " "help keep the weapon they are fired from on target at the risk of igniting " "flammable substances. This one has been hand-reloaded." -msgstr "一些 .50 BMG 狙击弹的曳光弹改进型,曳光弹种可帮助保持对射击目标的瞄准,但同时也有引燃可燃物的危险。这是手工复装的型号。" +msgstr "一些.50 BMG 狙击弹的曳光弹改进型,曳光弹种可帮助保持对射击目标的瞄准,但同时也有引燃可燃物的危险。这是手工复装的型号。" #: lang/json/AMMO_from_json.py msgid "reloaded .50 BMG Ball" -msgstr "复装.50 BMG 普通弹" +msgstr "复装 .50 BMG 普通弹" #. ~ Description for reloaded .50 BMG Ball #: lang/json/AMMO_from_json.py @@ -2747,7 +2836,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded .50 BMG AP" -msgstr "复装.50 BMG 穿甲弹" +msgstr "复装 .50 BMG 穿甲弹" #. ~ Description for reloaded .50 BMG AP #: lang/json/AMMO_from_json.py @@ -2756,7 +2845,7 @@ msgid "" "tungsten steel. Penetration is increased, but damage is reduced. This one " "has been hand-reloaded." msgstr "" -"一种相对比较少见的 .50 BMG " +"一种相对比较少见的.50 BMG " "弹,它弹头中原本灌铅的地方换成了一个极为坚硬的钨钢穿甲弹芯,这大大改善了它的穿甲能力,但是高穿甲的代价是伤害比铅芯子弹要小一些。这是手工复装的型号。" #: lang/json/AMMO_from_json.py @@ -2773,7 +2862,7 @@ msgstr "500格令的.500 S&W 马格南弹,这款子弹的威力无比巨大, #: lang/json/AMMO_from_json.py msgid "reloaded .500 S&W Magnum" -msgstr "复装.500 S&W 马格南弹" +msgstr "复装 .500 S&W 马格南弹" #: lang/json/AMMO_from_json.py msgid "5.45x39mm 7N10" @@ -2787,7 +2876,7 @@ msgid "" " to the older 7.62x39mm round and quickly replaced it in Soviet military " "use." msgstr "" -"56格令的5.45x39mm 7N10全金属被甲弹。5.45x39mm口径弹药在1974年随着AK-" +"56格令的5.45x39mm 7N10 全金属被甲弹。5.45x39mm口径弹药在1974年随着AK-" "74的流行而广泛流行开来,因其较7.62x39mm口径的老式型号有着更优异的破坏力,因此该种弹药在发布后就迅速地取代了老式子弹。" #: lang/json/AMMO_from_json.py @@ -2799,11 +2888,11 @@ msgstr "5.45x39mm 7N22弹" msgid "" "Armor piercing 5.45x39mm ammunition with 57gr bullets containing a steel " "penetrator. Developed in 1998 by the Russian military." -msgstr "57格令的5.45x39mm 7N22钢芯穿甲弹,俄军于1998年研制。" +msgstr "57格令的5.45x39mm 7N22 钢芯穿甲弹,俄军于1998年研制。" #: lang/json/AMMO_from_json.py msgid "reloaded 5.45x39mm" -msgstr "复装5.45x39mm弹" +msgstr "复装 5.45x39mm弹" #. ~ Description for reloaded 5.45x39mm #: lang/json/AMMO_from_json.py @@ -2815,14 +2904,14 @@ msgstr "5.45x39mm口径子弹是AK枪族自1974年以来的标准弹药。这种 #: lang/json/AMMO_from_json.py msgid "reloaded 5.45x39mm AP" -msgstr "复装5.45x39mm 穿甲弹" +msgstr "复装 5.45x39mm 穿甲弹" #. ~ Description for reloaded 5.45x39mm AP #: lang/json/AMMO_from_json.py msgid "" "Armor piercing 5.45x39mm ammunition with hand-reloaded bullets containing a " "steel penetrator. Developed in 1998 by the Russian military." -msgstr "57格令的5.45x39mm 7N22钢芯穿甲弹,俄军于1998年研制生产。这是手工复装的型号。" +msgstr "57格令的5.45x39mm 7N22 钢芯穿甲弹,俄军于1998年研制生产。这是手工复装的型号。" #: lang/json/AMMO_from_json.py msgid "5.7x28mm SS190" @@ -2838,12 +2927,12 @@ msgid "" "reliable. It has very low recoil and its armor penetration is a defining " "feature." msgstr "" -"31格令的5.7x28mm SS190全金属被甲穿甲弹。5.7x28mm口径子弹是由FN " +"31格令的5.7x28mm SS190 全金属被甲穿甲弹。5.7x28mm口径子弹是由FN " "Herstal公司设计,计划用来在北约中取代9x19mm口径子弹的弹种。尽管弹种取代计划被最终取消了,5.7x28mm口径子弹也已经在许多地区冲突中得到了使用,并证明了它的可靠性能。该种弹药的后坐力很低,并且穿甲性能不俗。" #: lang/json/AMMO_from_json.py msgid "reloaded 5.7x28mm" -msgstr "复装5.7x28mm弹" +msgstr "复装 5.7x28mm弹" #: lang/json/AMMO_from_json.py msgid "RA110 5x50mm flechette" @@ -2870,7 +2959,7 @@ msgstr "Rivtech 5x50mm 穿甲弹被设计用于对抗现代防弹衣,最大的 #: lang/json/AMMO_from_json.py msgid "reloaded 5x50mm flechette" -msgstr "复装5x50mm 镖形弹" +msgstr "复装 5x50mm 镖形弹" #. ~ Description for reloaded 5x50mm flechette #: lang/json/AMMO_from_json.py @@ -2897,7 +2986,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded .700 NX" -msgstr "复装.700 NX弹" +msgstr "复装 .700 NX弹" #: lang/json/AMMO_from_json.py msgid "7.62x39mm 57-N-231" @@ -2926,12 +3015,12 @@ msgid "" "the 1960s. It destabilizes much faster than M43 after hitting a target " "leading to greater damage." msgstr "" -"123格令的7.62x39mm M67 型弹。由于7.62x39mm M43型子弹的终端弹道性能不足,于是在20世纪60年代,7.62x39mm " +"123格令的7.62x39mm M67 型子弹。由于7.62x39mm M43型子弹的终端弹道性能不足,于是在20世纪60年代,7.62x39mm " "M67型子弹在南斯拉夫被研发出来。它在击中目标之后会比M43型子弹更快地出现弹头翻滚,给目标造成更大的伤害。" #: lang/json/AMMO_from_json.py msgid "reloaded 7.62x39mm M43" -msgstr "复装7.62x39mm M43弹" +msgstr "复装 7.62x39mm M43弹" #. ~ Description for reloaded 7.62x39mm M43 #: lang/json/AMMO_from_json.py @@ -2942,11 +3031,11 @@ msgid "" "beginning to yaw after 26cm." msgstr "" "121.9格令的7.62x39mm " -"M43型弹。由二战时期的苏联研发,7.62x39mm口径弹药迅速地流行全世界。由于弹道稳定性过好,导致其破坏力很差。据实验,该型号子弹在射入目标内26厘米后才开始明显翻滚。" +"M43型子弹。由二战时期的苏联研发,7.62x39mm口径弹药迅速地流行全世界。由于弹道稳定性过好,导致其破坏力很差。据实验,该型号子弹在射入目标内26厘米后才开始明显翻滚。" #: lang/json/AMMO_from_json.py msgid "reloaded 7.62x39mm M67" -msgstr "复装7.62x39mm M67弹" +msgstr "复装 7.62x39mm M67弹" #: lang/json/AMMO_from_json.py msgid "7.62x54mmR" @@ -2966,7 +3055,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded 7.62x54mmR" -msgstr "复装7.62x54mm R弹" +msgstr "复装 7.62x54mmR弹" #: lang/json/AMMO_from_json.py msgid "7.62x25mm JHP" @@ -2978,7 +3067,7 @@ msgid "" "A commercial version of the 7.62x25mm cartridge created for the armed forces" " of Soviet Russia. It was derived from the 7.63x25mm cartridge used by the " "C96 pistol." -msgstr "为苏俄军方制造的 7.62x25mm 弹药的民用版本,它衍生自C96手枪所使用的 7.63x25mm 弹药。" +msgstr "为苏俄军方制造的7.62x25mm弹药的民用版本,它衍生自C96手枪所使用的 7.63x25mm弹药。" #: lang/json/AMMO_from_json.py msgid "7.62x25mm FMJ hot load" @@ -3005,7 +3094,7 @@ msgstr "7.62x25mm 托卡列夫手枪弹的次音速衍生版本,供微声武 #: lang/json/AMMO_from_json.py msgid "reloaded 7.62x25mm" -msgstr "复装7.62x25mm弹" +msgstr "复装 7.62x25mm弹" #: lang/json/AMMO_from_json.py msgid "84x246mm HE rocket" @@ -3016,7 +3105,7 @@ msgstr "84x246mm 高爆火箭弹" msgid "" "A 84x246mm High Explosive anti-personnel round for the Carl Gustav M3 " "recoilless rifle. Designed to be highly effective against personnel." -msgstr "用于卡尔古斯塔夫 M3 无后坐力炮的84X246mm高爆弹,用于有效杀伤人员。" +msgstr "用于卡尔古斯塔夫 M3 无后坐力炮的84X246mm 高爆弹,用于有效杀伤人员。" #: lang/json/AMMO_from_json.py msgid "84x246mm HEDP rocket" @@ -3028,7 +3117,7 @@ msgid "" "A 84x246mm High Explosive Dual Purpose anti-materiel round for the Carl " "Gustav M3 recoilless rifle. Designed to be highly effective against " "vehicles and structures." -msgstr "用于卡尔古斯塔夫 M3 无后坐力炮的 84x246mm 高爆两用反器材弹,用于有效打击车辆和建筑。" +msgstr "用于卡尔古斯塔夫 M3 无后坐力炮的84x246mm 高爆两用反器材弹,用于有效打击车辆和建筑。" #: lang/json/AMMO_from_json.py msgid "84x246mm smoke rocket" @@ -3040,7 +3129,7 @@ msgid "" "A 84x246mm smoke marker round for the Carl Gustav M3 recoilless rifle. " "Commonly used for signaling, target designation, and for screening troop " "movements." -msgstr "一枚用于卡尔古斯塔夫 M3 无后坐力炮的84x246mm烟雾弹,常用于发信号、指示目标和掩护部队。" +msgstr "一枚用于卡尔古斯塔夫 M3 无后坐力炮的84x246mm 烟雾弹,常用于发信号、指示目标和掩护部队。" #: lang/json/AMMO_from_json.py msgid "bootleg 8x40mm JHP" @@ -3051,7 +3140,7 @@ msgstr "自制 8x40mm 空尖无壳弹" msgid "" "Bootleg duplicates of Rivtech 8x40mm caseless rounds. Being caseless " "rounds, these cannot be disassembled or reloaded." -msgstr "小作坊制作的仿制8x40mm无壳弹。由于是无壳弹,因此不能被拆解或是复装。" +msgstr "小作坊制作的仿制8x40mm 无壳弹。由于是无壳弹,因此不能被拆解或是复装。" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "8x40mm caseless" @@ -3074,7 +3163,7 @@ msgid "" "8x40mm caseless rounds, light sporting load sold for civilian use. " "Proprietary ammunition for Rivtech firearms. Being caseless rounds, these " "cannot be disassembled or reloaded." -msgstr "8x40mm无壳弹,民用运动型轻装药量版,Rivtech枪械的专用弹药。由于是无壳弹,因此不能被拆解或复装。" +msgstr "8x40mm 无壳弹,民用运动型轻装药量版,Rivtech枪械的专用弹药。由于是无壳弹,因此不能被拆解或复装。" #: lang/json/AMMO_from_json.py msgid "8x40mm FMJ" @@ -3086,7 +3175,7 @@ msgid "" "8x40mm caseless rounds, full metal jacket. Military grade ammunition for " "Rivtech firearms. Being caseless rounds, these cannot be disassembled or " "reloaded." -msgstr "8x40mm无壳弹,全金属被甲型号。Rivtech枪械的专用军用型弹药。由于是无壳弹,因此不能被拆解或复装。" +msgstr "8x40mm 无壳弹,全金属被甲型号。Rivtech枪械的专用军用型弹药。由于是无壳弹,因此不能被拆解或复装。" #: lang/json/AMMO_from_json.py msgid "8x40mm HVP" @@ -3099,7 +3188,7 @@ msgid "" "military grade, armor-piercing ammunition that fires a single depleted " "uranium flechette. Being caseless rounds, these cannot be disassembled or " "reloaded." -msgstr "8x40无壳弹,脱壳高速穿甲型号。属于顶尖军火,弹头是一根贫铀制成的镖形穿甲杆。由于是无壳弹,因此不能被拆解或是复装。" +msgstr "8x40mm 无壳弹,脱壳高速穿甲型号。属于顶尖军火,弹头是一根贫铀制成的镖形穿甲杆。由于是无壳弹,因此不能被拆解或是复装。" #: lang/json/AMMO_from_json.py msgid "8x40mm tracer" @@ -3113,7 +3202,7 @@ msgid "" " ammunition for Rivtech firearms. Being caseless rounds, these cannot be " "disassembled or reloaded." msgstr "" -"8x40mm无壳弹,装有曳光剂,用于指示射击目标,但有点燃可燃物的危险。Rivtech枪械的专用军用型弹药。由于是无壳弹,因此不能被拆解或是复装。" +"8x40mm 无壳弹,装有曳光剂,用于指示射击目标,但有点燃可燃物的危险。Rivtech枪械的专用军用型弹药。由于是无壳弹,因此不能被拆解或是复装。" #: lang/json/AMMO_from_json.py msgid "8x40mm JHP" @@ -3125,7 +3214,7 @@ msgid "" "8x40mm caseless rounds, jacketed hollowpoint. Military grade ammunition for" " Rivtech firearms. Being caseless rounds, these cannot be disassembled or " "reloaded." -msgstr "8x40mm无壳弹,被甲空尖弹型号。Rivtech枪械的专用军用型弹药。由于是无壳弹,因此不能被拆解或复装。" +msgstr "8x40mm 无壳弹,被甲空尖弹型号。Rivtech枪械的专用军用型弹药。由于是无壳弹,因此不能被拆解或复装。" #: lang/json/AMMO_from_json.py msgid "9x19mm JHP" @@ -3163,7 +3252,7 @@ msgstr "9x19mm +P弹" msgid "" "Overpressure 9x19mm ammunition. The round's increased velocity results in " "superior accuracy and stopping power at the cost of higher recoil." -msgstr "115格令的9x19mm 口径增压弹。在增大后坐力的代价下,子弹的初速度更高,命中率也更高。" +msgstr "115格令的9x19mm口径增压弹。在增大后坐力的代价下,子弹的初速度更高,命中率也更高。" #: lang/json/AMMO_from_json.py msgid "9x19mm +P+" @@ -3178,19 +3267,19 @@ msgstr "在9x19mm +P子弹的基础之上更进一步地提高了膛压,可以 #: lang/json/AMMO_from_json.py msgid "reloaded 9x19mm JHP" -msgstr "复装9x19mm 空尖弹" +msgstr "复装 9x19mm 空尖弹" #: lang/json/AMMO_from_json.py msgid "reloaded 9x19mm FMJ" -msgstr "复装9x19mm 全金属被甲弹" +msgstr "复装 9x19mm 全金属被甲弹" #: lang/json/AMMO_from_json.py msgid "reloaded 9x19mm +P" -msgstr "复装9x19mm +P弹" +msgstr "复装 9x19mm +P弹" #: lang/json/AMMO_from_json.py msgid "reloaded 9x19mm +P+" -msgstr "复装9x19mm +P+弹" +msgstr "复装 9x19mm +P+弹" #: lang/json/AMMO_from_json.py msgid "9x18mm 57-N-181S" @@ -3203,7 +3292,8 @@ msgid "" "round was very common in the Eastern Bloc during the 20th century and " "remained in Russian military service into the 21st century." msgstr "" -"93格令的9x18mm马卡洛夫全金属被甲钢芯弹。类似欧洲的9x19mm弹,9x18mm在20世纪被东欧社会主义国家广泛使用,在21世纪依然服务于俄罗斯军队。" +"93格令的9x18mm " +"马卡洛夫全金属被甲钢芯弹。类似欧洲的9x19mm弹,9x18mm弹在20世纪被东欧社会主义国家广泛使用,在21世纪依然服务于俄罗斯军队。" #: lang/json/AMMO_from_json.py msgid "9x18mm SP-7" @@ -3216,7 +3306,7 @@ msgid "" "Eastern Bloc during the 20th century and remained in Russian military " "service into the 21st century." msgstr "" -"9x18mm马卡洛夫SP-7弹,类似欧洲的9x19mm弹,9x18mm在20世纪被东欧社会主义国家广泛使用,在21世纪依然服务于俄罗斯军队。" +"9x18mm 马卡洛夫 SP-7弹,类似欧洲的9x19mm弹,9x18mm弹在20世纪被东欧社会主义国家广泛使用,在21世纪依然服务于俄罗斯军队。" #: lang/json/AMMO_from_json.py msgid "9x18mm RG028" @@ -3227,11 +3317,11 @@ msgstr "9x18mm RG028弹" msgid "" "9x18mm Makarov RG028 ammunition. The RG028 round uses bullets with a " "hardened steel core to improve armor penetration." -msgstr "9x18mm马卡洛夫 RG028弹的弹头带有一个硬化钢芯,具有更好的护甲穿透能力。" +msgstr "9x18mm 马卡洛夫 RG028弹的弹头带有一个硬化钢芯,具有更好的护甲穿透能力。" #: lang/json/AMMO_from_json.py msgid "reloaded 9x18mm" -msgstr "复装9x18mm弹" +msgstr "复装 9x18mm弹" #. ~ Description for reloaded 9x18mm #: lang/json/AMMO_from_json.py @@ -3244,7 +3334,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded 9x18mm +P+" -msgstr "复装9x18mm +P+弹" +msgstr "复装 9x18mm +P+弹" #. ~ Description for reloaded 9x18mm +P+ #: lang/json/AMMO_from_json.py @@ -3253,11 +3343,11 @@ msgid "" "Makarov PM. This one has been hand-reloaded to generate higher internal " "pressure, boosting flight stability and damage." msgstr "" -"9x18mm马卡洛夫手枪弹,主要用于马卡洛夫PM手枪的前苏联制式子弹。这种弹药被重新装填,增加了内压,提供更高飞行稳定性及伤害。这是手工复装的型号。" +"9x18mm 马卡洛夫手枪弹,主要用于马卡洛夫PM手枪的前苏联制式子弹。这种弹药被重新装填,增加了内压,提供更高飞行稳定性及伤害。这是手工复装的型号。" #: lang/json/AMMO_from_json.py msgid "reloaded 9x18mm FMJ" -msgstr "复装9x18mm 全金属被甲弹" +msgstr "复装 9x18mm 全金属被甲弹" #. ~ Description for reloaded 9x18mm FMJ #: lang/json/AMMO_from_json.py @@ -3350,19 +3440,19 @@ msgstr "一管彩弹游戏里使用的非致命性小彩弹,几乎不能造成 #: lang/json/AMMO_from_json.py msgid "reloaded birdshot" -msgstr "复装猎鸟弹" +msgstr "复装 猎鸟弹" #: lang/json/AMMO_from_json.py msgid "reloaded 00 shot" -msgstr "复装猎鹿弹" +msgstr "复装 猎鹿弹" #: lang/json/AMMO_from_json.py msgid "reloaded flechette shell" -msgstr "复装镖形霰弹" +msgstr "复装 镖形霰弹" #: lang/json/AMMO_from_json.py msgid "reloaded shotgun slug" -msgstr "复装独头弹" +msgstr "复装 独头弹" #: lang/json/AMMO_from_json.py msgid "00 shot" @@ -3373,9 +3463,7 @@ msgstr "猎鹿弹" msgid "" "A shell filled with metal pellets. Extremely damaging, plus the spread " "makes it very accurate at short range. Favored by SWAT forces." -msgstr "" -"一种填满了金属圆珠的弹药,威力极强,同时由于这种弹药的散射特性,使其在近距离射击时的命中率很高,因此深受SWAT部队的喜爱。\n" -"\"每一枚子弹撂倒一个操蛋的、天杀的发情驼鹿!\"" +msgstr "一种填满了金属圆珠的弹药,威力极强,同时由于这种弹药的散射特性,使其在近距离射击时的命中率很高,因此深受SWAT部队的喜爱。" #: lang/json/AMMO_from_json.py msgid "shotgun beanbag" @@ -3531,9 +3619,7 @@ msgstr[0] "镁粉" msgid "" "A gray powder composed of the highly flammable alkaline earth metal " "magnesium. Useful for constructing flares and similar items." -msgstr "" -"一种灰色粉末,主要成分是高可燃性的碱土金属镁。用于制造信号弹和类似物品。\n" -"\"某个绿皮家伙的克星,可惜不是丧尸,而是火星猎人。\"" +msgstr "一种灰色粉末,主要成分是高可燃性的碱土金属镁。用于制造信号弹和类似物品。" #: lang/json/AMMO_from_json.py msgid "scrap metal" @@ -3544,7 +3630,7 @@ msgstr "金属废料" msgid "" "A bulky assortment of small bits of scrap steel useful in all kinds of " "crafting." -msgstr "各式各样的小块金属碎片,经过梳理,可用于各种物品制作。" +msgstr "各式各样的小块金属碎片,经过整理,可用于各种物品制作。" #: lang/json/AMMO_from_json.py msgid "silver" @@ -3604,7 +3690,7 @@ msgstr "一些燃烧弹中的易燃物,可以用于制作燃烧弹。" #: lang/json/AMMO_from_json.py msgid "handloaded .22 CB" msgid_plural "handloaded .22 CB" -msgstr[0] "复装.22 CB弹" +msgstr[0] "复装 .22 CB弹" #. ~ Description for handloaded .22 CB #: lang/json/AMMO_from_json.py @@ -3619,7 +3705,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "handloaded .22 rat-shot" -msgstr "复装.22 猎鼠弹" +msgstr "复装 .22 猎鼠弹" #. ~ Description for handloaded .22 rat-shot #: lang/json/AMMO_from_json.py @@ -3633,7 +3719,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded shotgun beanbag" -msgstr "复装沙包弹" +msgstr "复装 沙包弹" #. ~ Description for reloaded shotgun beanbag #: lang/json/AMMO_from_json.py @@ -3696,8 +3782,8 @@ msgid "" "improved .280 British, Alexander Sarafanov himself developed the 6.54x42mm " "rifle cartridge for his new SVS-24 Assault Rifle." msgstr "" -"一种6.52x42mm口径的120格令全金属被甲弹。从改进型.280弹药中获得启发, Alexander Sarafanov为他的新型SVS-" -"24突击步枪设计了6.54x42mm步枪弹。" +"一种6.52x42mm口径的120格令全金属被甲弹。从改进型.280弹药中获得启发, 亚力山大·萨拉法诺夫为他的新型SVS-24 " +"突击步枪设计了6.54x42mm 步枪弹。" #: lang/json/AMMO_from_json.py msgid "6.54x42mm 9N12" @@ -3712,8 +3798,8 @@ msgid "" " 20th and 21st century, whenever depleted uranium was unavailable or " "undesirable." msgstr "" -"6.54x42mm " -"9N12步枪弹的弹头拥有一根碳化钨弹芯,这给予了它优秀的穿甲性能。在二十世纪到二十一世纪,当贫铀材料缺乏或者不被需要的时候,碳化钨材料就被用于制造反坦克弹药。" +"6.54x42mm 9N12 " +"步枪弹的弹头拥有一根碳化钨弹芯,这给予了它优秀的穿甲性能。在二十世纪到二十一世纪,当贫铀材料缺乏或者不被需要的时候,碳化钨材料就被用于制造反坦克弹药。" #: lang/json/AMMO_from_json.py msgid ".20 DREAD Pellet" @@ -3730,7 +3816,7 @@ msgstr "\"恐惧\"金属球弹采用电磁加速原理发射,因此不会产 #: lang/json/AMMO_from_json.py msgid "reloaded 6.54x42mm" msgid_plural "reloaded 6.54x42mm" -msgstr[0] "复装6.54x42mm弹" +msgstr[0] "复装 6.54x42mm弹" #. ~ Description for reloaded 6.54x42mm #: lang/json/AMMO_from_json.py @@ -3739,13 +3825,12 @@ msgid "" "6.54x42mm rifle cartridge for his new SVS-24 Assault Rifle. This one has " "been hand-reloaded." msgstr "" -"从改进型.280弹药中获得启发, Alexander Sarafanov为他的新型SVS-" -"24突击步枪设计了6.54x42mm步枪弹。这是手工复装的型号。" +"从改进型.280弹药中获得启发, 亚历山大·萨拉法诺夫为他的新型 SVS-24 突击步枪设计了6.54x42mm 步枪弹。这是手工复装的型号。" #: lang/json/AMMO_from_json.py msgid "reloaded light rifle ammo" msgid_plural "reloaded light rifle ammo" -msgstr[0] "复装轻型步枪弹" +msgstr[0] "复装 轻型步枪弹" #. ~ Description for reloaded light rifle ammo #: lang/json/AMMO_from_json.py @@ -3757,7 +3842,7 @@ msgstr "手工复装的轻型步枪通用子弹,主要用来射击小型猎物 #: lang/json/AMMO_from_json.py msgid "reloaded rifle ammo" msgid_plural "reloaded rifle ammo" -msgstr[0] "复装步枪弹" +msgstr[0] "复装 步枪弹" #. ~ Description for reloaded rifle ammo #: lang/json/AMMO_from_json.py @@ -3769,7 +3854,7 @@ msgstr "手工复装的中型步枪通用子弹,主要用来击倒大型猎物 #: lang/json/AMMO_from_json.py msgid "reloaded pistol ammo" msgid_plural "reloaded pistol ammo" -msgstr[0] "复装手枪弹" +msgstr[0] "复装 手枪弹" #. ~ Description for reloaded pistol ammo #: lang/json/AMMO_from_json.py @@ -3780,7 +3865,7 @@ msgstr "用于半自动手枪和冲锋枪的复装子弹。" #: lang/json/AMMO_from_json.py msgid "reloaded pistol ammo+" msgid_plural "reloaded pistol ammo+" -msgstr[0] "复装手枪弹(增压型)" +msgstr[0] "复装 手枪弹(增压型)" #. ~ Description for reloaded pistol ammo+ #: lang/json/AMMO_from_json.py @@ -3792,7 +3877,7 @@ msgstr "手工复装的高动能型手枪子弹,额外增加了火药装药量 #: lang/json/AMMO_from_json.py msgid "reloaded pistol ammo, AP" msgid_plural "reloaded pistol ammo, AP" -msgstr[0] "复装手枪弹(穿甲型)" +msgstr[0] "复装 手枪弹(穿甲型)" #. ~ Description for reloaded pistol ammo, AP #: lang/json/AMMO_from_json.py @@ -3804,7 +3889,7 @@ msgstr "手工复装的穿甲手枪弹。拥有较高的穿透力和较低的杀 #: lang/json/AMMO_from_json.py msgid "reloaded revolver ammo" msgid_plural "reloaded revolver ammo" -msgstr[0] "复装左轮手枪弹" +msgstr[0] "复装 左轮手枪弹" #. ~ Description for reloaded revolver ammo #: lang/json/AMMO_from_json.py @@ -3814,11 +3899,11 @@ msgstr "手工复装的左轮子弹,可供大口径的左轮手枪和马格南 #: lang/json/AMMO_from_json.py msgid "reloaded light rifle ammo, incendiary" msgid_plural "reloaded light rifle ammo, incendiary" -msgstr[0] "复装轻型步枪弹(燃烧弹)" +msgstr[0] "复装 轻型步枪弹(燃烧型)" #: lang/json/AMMO_from_json.py msgid "reloaded rifle ammo, incendiary" -msgstr "复装步枪弹(燃烧弹)" +msgstr "复装 步枪弹(燃烧型)" #. ~ Description for reloaded rifle ammo, incendiary #: lang/json/AMMO_from_json.py @@ -3831,7 +3916,7 @@ msgstr "手工复装的中型步枪通用燃烧弹,弹头受到撞击会猛烈 #: lang/json/AMMO_from_json.py msgid "reloaded heavy rifle ammo" msgid_plural "reloaded heavy rifle ammo" -msgstr[0] "复装重型步枪弹" +msgstr[0] "复装 重型步枪弹" #. ~ Description for reloaded heavy rifle ammo #: lang/json/AMMO_from_json.py @@ -3843,7 +3928,7 @@ msgstr "手工复装的重型机枪通用弹药,机关枪和军用设施使用 #: lang/json/AMMO_from_json.py msgid "reloaded heavy rifle ammo, AP" msgid_plural "reloaded heavy rifle ammo, AP" -msgstr[0] "复装重型步枪弹(穿甲型)" +msgstr[0] "复装 重型步枪弹(穿甲弹)" #. ~ Description for reloaded heavy rifle ammo, AP #: lang/json/AMMO_from_json.py @@ -3856,7 +3941,7 @@ msgstr "手工复装的重型机枪通用穿甲增强型弹药,机关枪和军 #: lang/json/AMMO_from_json.py msgid "reloaded heavy rifle ammo, incendiary" msgid_plural "reloaded heavy rifle ammo, incendiary" -msgstr[0] "复装重型步枪弹(燃烧弹)" +msgstr[0] "复装 重型步枪弹(燃烧型)" #. ~ Description for reloaded heavy rifle ammo, incendiary #: lang/json/AMMO_from_json.py @@ -3871,7 +3956,7 @@ msgstr "手工复装的重型机枪通用燃烧弹,机关枪和军用设施使 msgid "" "A 84x246mm High Explosive anti-personnel round for the recoilless rifle. " "Designed to be highly effective against personnel." -msgstr "用于无后坐力炮的84X246mm高爆弹,用于有效杀伤人员。" +msgstr "用于无后坐力炮的84X246mm 高爆弹,用于有效杀伤人员。" #. ~ Description for 84x246mm HEDP rocket #: lang/json/AMMO_from_json.py @@ -3879,14 +3964,14 @@ msgid "" "A 84x246mm High Explosive Dual Purpose anti-materiel round for the " "recoilless rifle. Designed to be highly effective against vehicles and " "structures." -msgstr "用于无后坐力炮的 84X246mm 高爆两用反器材弹,用于有效打击车辆和建筑。" +msgstr "用于无后坐力炮的84X246mm 高爆两用反器材弹,用于有效打击车辆和建筑。" #. ~ Description for 84x246mm smoke rocket #: lang/json/AMMO_from_json.py msgid "" "A 84x246mm smoke marker round for the recoilless rifle. Commonly used for " "signaling, target designation, and for screening troop movements." -msgstr "用于无后坐力炮的84x246mm烟雾弹,常用于发信号、指示目标和掩护部队。" +msgstr "用于无后坐力炮的84x246mm 烟雾弹,常用于发信号、指示目标和掩护部队。" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "pistol ammo" @@ -3947,7 +4032,7 @@ msgstr "低后坐力的步枪弹药,用于小型猎物和人类。" #: lang/json/AMMO_from_json.py msgid "light rifle ammo, incendiary" msgid_plural "light rifle ammo, incendiary" -msgstr[0] "轻型步枪弹(燃烧弹)" +msgstr[0] "轻型步枪弹(燃烧型)" #. ~ Description for light rifle ammo, incendiary #: lang/json/AMMO_from_json.py @@ -3971,7 +4056,7 @@ msgstr "强力、精准的步枪弹药,意味着它能轻易解决大型猎物 #: lang/json/AMMO_from_json.py msgid "rifle ammo, incendiary" msgid_plural "rifle ammo, incendiary" -msgstr[0] "步枪弹(燃烧弹)" +msgstr[0] "步枪弹(燃烧型)" #. ~ Description for rifle ammo, incendiary #: lang/json/AMMO_from_json.py @@ -4007,7 +4092,7 @@ msgstr "穿甲增强型重型通用弹药,重机枪和军用设施专用,用 #: lang/json/AMMO_from_json.py msgid "heavy rifle ammo, incendiary" msgid_plural "heavy rifle ammo, incendiary" -msgstr[0] "重型步枪弹(燃烧弹)" +msgstr[0] "重型步枪弹(燃烧型)" #. ~ Description for heavy rifle ammo, incendiary #: lang/json/AMMO_from_json.py @@ -4078,21 +4163,7 @@ msgid "" "A sharpened bolt carved from bone, with fletching attached. It's light, " "providing decent damage and accuracy. Stands a good chance of remaining " "intact once fired." -msgstr "一支由骨头削尖制得的弩矢。重量较轻,精准性和破坏力也不差。射击后有较大概率可以保持完好。" - -#: lang/json/AMMO_from_json.py -msgid "throwing stick" -msgid_plural "throwing sticks" -msgstr[0] "掷棍" - -#. ~ Description for throwing stick -#: lang/json/AMMO_from_json.py -msgid "" -"A stick carved into a shape suitable for throwing at a target. Not a " -"boomerang, so don't expect it to return to your hand." -msgstr "" -"一根削尖的木棍,适合投掷,投掷后可拾取反复使用。\n" -"\"如果掌握原力就可以自动回到手中。\"" +msgstr "一支由骨头削尖制得的弩矢。重量较轻,精准性和破坏力也不差。射击后有很高概率可以保持完好。" #: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py msgid "wooden javelin" @@ -4161,7 +4232,7 @@ msgstr[0] "30x113mm 高爆两用弹" msgid "" "A 30x113mm autocannon round using a high-explosive, dual-purpose shell. " "Used primarily against light armored vehicles." -msgstr "一颗 30x113mm 高爆两用反器材弹。主要用于打击轻装甲载具。" +msgstr "一颗30x113mm 高爆两用反器材弹。主要用于打击轻装甲载具。" #: lang/json/AMMO_from_json.py msgid "30x113mm HEI" @@ -4173,26 +4244,26 @@ msgstr[0] "30x113mm HEI" msgid "" "A 30x113mm autocannon round, high explosive incendiary. Designed for use " "against unarmored vehicles and to suppress infantry." -msgstr "一颗 30x113mm 高爆机炮燃烧弹。主要用于打击无装甲车辆以及压制步兵。" +msgstr "一颗30x113mm 高爆机炮燃烧弹。主要用于打击无装甲车辆以及压制步兵。" #: lang/json/AMMO_from_json.py msgid "reloaded 30x113mm" msgid_plural "reloaded 30x113mm" -msgstr[0] "复装30x113mm 机炮炮弹" +msgstr[0] "复装 30x113mm 机炮炮弹" #. ~ Description for reloaded 30x113mm #: lang/json/AMMO_from_json.py msgid "" "A 30x113mm autocannon round with its primer replaced, and loaded with a " "basic lead projectile. Not as effective as the real thing." -msgstr "一颗 30x113mm 机炮炮弹,复装了底火及简易的铅弹。效果比不上原装的炮弹。" +msgstr "一颗30x113mm 机炮炮弹,复装了底火及简易的铅弹。效果比不上原装的炮弹。" #. ~ Description for 120mm HEAT #: lang/json/AMMO_from_json.py msgid "" "A 120mm High Explosive Anti Tank round. It could ruin anyone's whole day." msgstr "" -"一颗120mm高爆反坦克炮弹。在一定距离上能有效击穿带反应装甲的坦克及装甲目标。\n" +"一颗120mm 高爆反坦克炮弹。在一定距离上能有效击穿带反应装甲的坦克及装甲目标。\n" "\"摊上任何人都会造就'最长的一天'。\"" #: lang/json/AMMO_from_json.py @@ -4204,11 +4275,11 @@ msgstr "120mm 尾翼稳定脱壳穿甲弹" msgid "" "A 120mm Armor-Piercing Fin-Stabilized Discarding Sabot round. Uses a " "depleted uranium projectile to give whatever it hits a really bad day." -msgstr "一颗 120mm 尾翼脱穿弹。使用贫铀弹芯,能给目标狠狠一击。" +msgstr "一颗120mm 尾翼脱穿弹。使用贫铀弹芯,能给目标狠狠一击。" #: lang/json/AMMO_from_json.py msgid "reloaded 120mm shot" -msgstr "复装120mm炮弹" +msgstr "复装 120mm炮弹" #. ~ Description for reloaded 120mm shot #: lang/json/AMMO_from_json.py @@ -4216,18 +4287,18 @@ msgid "" "A 120mm shell with a new electric primer installed, filled with a large " "amount of buckshot. Effectively similar to no-longer-produced canister " "shot, but of lower quality." -msgstr "一颗 120mm 炮弹,使用新的底火并装上大量铅球。效果犹如早已不再使用的霰弹,但质量更次。" +msgstr "一颗120mm 炮弹,使用新的底火并装上大量铅球。效果犹如早已不再使用的霰弹,但质量更次。" #: lang/json/AMMO_from_json.py msgid "makeshift 120mm slug" -msgstr "自制120mm 独头炮弹" +msgstr "自制 120mm 独头炮弹" #. ~ Description for makeshift 120mm slug #: lang/json/AMMO_from_json.py msgid "" "A 120mm shell with a new electric primer installed, loaded with a large " "handmade slug. While hardly ideal, it packs quite a punch." -msgstr "一颗 30x113mm 机炮炮弹,使用新的底火并装上纯铅弹蕊。效果比不上原装的炮弹。" +msgstr "一颗120mm 机炮炮弹,使用新的底火并装上纯铅弹芯。效果比不上原装的炮弹。" #: lang/json/AMMO_from_json.py msgid "155mm HEAT" @@ -4238,7 +4309,7 @@ msgstr "155mm 高爆反坦克弹" msgid "" "A 155mm High Explosive Anti Tank round. More than enough firepower for " "whatever you could think to point it at." -msgstr "155mm反坦克高爆加榴弹,超强的火力能够夷平任何你所想摧毁的目标。" +msgstr "155mm 反坦克高爆加榴弹,超强的火力能够夷平任何你所想摧毁的目标。" #: lang/json/AMMO_from_json.py msgid "155mm frag" @@ -4249,11 +4320,11 @@ msgstr "155mm 榴弹" msgid "" "A 155mm High Explosive Fragmentation round. Designed to give anything near " "what you hit a really bad day." -msgstr "155mm口径的高爆榴弹。能给目标及其周围任何东西狠狠一击。" +msgstr "155mm 口径的高爆榴弹。能给目标及其周围任何东西狠狠一击。" #: lang/json/AMMO_from_json.py msgid "reloaded 155mm shot" -msgstr "复装155mm 炮弹" +msgstr "复装 155mm 炮弹" #. ~ Description for reloaded 155mm shot #: lang/json/AMMO_from_json.py @@ -4262,12 +4333,12 @@ msgid "" "amount of buckshot. Effectively turns a howitzer into a punt gun on " "steroids." msgstr "" -"一发安装了新式电子底火的 155mm " +"一发安装了新式电子底火的155mm " "炮弹,内部填充了大量铅弹。实际上将榴弹炮变成打了激素的大号平底船枪。(注:平底船枪是美国一种于1820年代初期用于狩猎大批水鸟的大型霰弹枪,整枪固定于船身)" #: lang/json/AMMO_from_json.py msgid "reloaded 155mm slug" -msgstr "复装155mm 独头炮弹" +msgstr "复装 155mm 独头炮弹" #. ~ Description for reloaded 155mm slug #: lang/json/AMMO_from_json.py @@ -4275,7 +4346,7 @@ msgid "" "A 155mm shell with a new electric primer installed, filled with a massive " "handmade slug. Despite the lower effectiveness, whatever it hits is sure to" " feel it." -msgstr "一发安装了新式电子底火的 155mm 炮弹,弹头为手工加工的独头弹。虽然火力效果下降,但被正面击中的怪物肯定不会有这种想法。" +msgstr "一发安装了新式电子底火的155mm 炮弹,弹头为手工加工的独头弹。虽然火力效果下降,但被正面击中的怪物肯定不会有这种想法。" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "152mm anti-tank guided missile" @@ -4605,7 +4676,7 @@ msgid "" "A .357 Magnum cartridge loaded with 125gr JHP bullets. It is a common, " "versatile and inexpensive rimmed magnum cartridge, most often used in " "revolvers." -msgstr "125格令的.357马格南被甲空尖弹。它是一种常见的、通用的、廉价的凸缘马格南弹,最常用于左轮手枪中。" +msgstr "125格令的.357 马格南被甲空尖弹。它是一种常见的、通用的、廉价的凸缘马格南弹,最常用于左轮手枪中。" #: lang/json/AMMO_from_json.py msgid ".357 Magnum +P" @@ -4617,17 +4688,17 @@ msgstr[0] ".357 +P 马格南弹" msgid "" "A .357 Magnum +P cartridge loaded with 125gr JHP bullets. A high-power " "version of the already-powerful .357 Magnum." -msgstr "125格令的.357马格南增压被甲空尖弹。已经威力强大的.357马格南弹的增加药量的更强威力版本。" +msgstr "125格令的.357 马格南增压被甲空尖弹。已经威力强大的.357 马格南弹的增加药量的更强威力版本。" #: lang/json/AMMO_from_json.py msgid "reloaded .357 Magnum" msgid_plural "reloaded .357 Magnum" -msgstr[0] "复装.357 马格南弹" +msgstr[0] "复装 .357 马格南弹" #: lang/json/AMMO_from_json.py msgid "reloaded .357 Magnum P" msgid_plural "reloaded .357 Magnum P" -msgstr[0] "复装.357 +P 马格南弹" +msgstr[0] "复装 .357 +P 马格南弹" #: lang/json/AMMO_from_json.py msgid ".38 Special FMJ" @@ -4637,12 +4708,12 @@ msgstr[0] ".38 全金属被甲特制弹" #: lang/json/AMMO_from_json.py msgid "reloaded .38 Special FMJ" msgid_plural "reloaded .38 Special FMJ" -msgstr[0] "复装.38 全金属被甲特制弹" +msgstr[0] "复装 .38 全金属被甲特制弹" #: lang/json/AMMO_from_json.py msgid ".40 S&W" msgid_plural ".40 S&W JHP" -msgstr[0] ".40 S&W空尖弹" +msgstr[0] ".40 S&W 空尖弹" #. ~ Description for .40 S&W #. ~ Description for reloaded .40 S&W @@ -4656,7 +4727,7 @@ msgstr "135格令的.40 S&W 被甲空尖弹。.40 S&W 继承了10mm Auto弹的 #: lang/json/AMMO_from_json.py msgid "reloaded .40 S&W" msgid_plural "reloaded .40 S&W JHP" -msgstr[0] "复装.40 S&W空尖弹" +msgstr[0] "复装 .40 S&W 空尖弹" #. ~ Description for 10mm Auto #. ~ Description for reloaded 10mm Auto @@ -4680,28 +4751,29 @@ msgid "" "reproduction revolvers. Originally a black powder cartridge, modern loads " "can hit nearly as hard as its eventual successor, the .45 ACP." msgstr "" -"255格令的.45长柯尔特弹药,采用铅制圆形弹头。原本为柯尔特单发陆军型左轮手枪设计,但仍然被用于现代复制的左轮手枪中。原本是一种黑火药弹,现代装药使其威力可以接近其最终的继任者,.45" +"255格令的.45 " +"长柯尔特弹药,采用铅制圆形弹头。原本为柯尔特单发陆军型左轮手枪设计,但仍然被用于现代复制的左轮手枪中。原本是一种黑火药弹,现代装药使其威力可以接近其最终的继任者,.45" " ACP弹。" #: lang/json/AMMO_from_json.py msgid "reloaded .45 Long Colt" msgid_plural "reloaded .45 Long Colt" -msgstr[0] "复装.45 长柯尔特弹" +msgstr[0] "复装 .45 长柯尔特弹" #: lang/json/AMMO_from_json.py msgid "reloaded .410 birdshot" msgid_plural "reloaded .410 birdshot" -msgstr[0] "复装.410 猎鸟弹" +msgstr[0] "复装 .410 猎鸟弹" #: lang/json/AMMO_from_json.py msgid "reloaded .410 shot" msgid_plural "reloaded .410 shot" -msgstr[0] "复装.410 霰弹" +msgstr[0] "复装 .410 霰弹" #: lang/json/AMMO_from_json.py msgid "reloaded .410 slug" msgid_plural "reloaded .410 slug" -msgstr[0] "复装.410 独头弹" +msgstr[0] "复装 .410 独头弹" #: lang/json/AMMO_from_json.py msgid ".410 shot" @@ -4716,8 +4788,7 @@ msgid "" "be made to chamber both .410 and .45 cartridges, this load sees some use as " "a personal defense cartridge." msgstr "" -".410 " -"口径霰弹,装满了00型霰弹弹丸,使其拥有能够易于击中目标的合适散布。由于左轮手枪和德林加手枪可以同时使用.410口径霰弹或者.45口径子弹,这种弹药可见用作自卫弹药使用。" +".410口径霰弹,装满了00型霰弹弹丸,使其拥有能够易于击中目标的合适散布。由于左轮手枪和德林加手枪可以同时使用.410口径霰弹或者.45口径子弹,这种弹药可见用作自卫弹药使用。" #: lang/json/AMMO_from_json.py msgid ".410 birdshot" @@ -4730,7 +4801,7 @@ msgid "" ".410 bore shotshells, filled with a light load of birdshot. The smallest of" " traditional shotgun sizes, frequently used for youth shotguns due to its " "lower recoil." -msgstr ".410 口径霰弹,装满了装药较少的猎鸟霰弹弹丸。传统霰弹枪中口径最小的型号,因其较低的后坐力而被经常用于青少年用霰弹枪。" +msgstr ".410口径霰弹,装满了装药较少的猎鸟霰弹弹丸。传统霰弹枪中口径最小的型号,因其较低的后坐力而被经常用于青少年用霰弹枪。" #: lang/json/AMMO_from_json.py msgid ".410 slug" @@ -4741,7 +4812,7 @@ msgstr ".410 独头弹" msgid "" "A .410 bore shotshell loaded with a metal slug. Quite damaging but rather " "inaccurate." -msgstr ".410 口径霰弹,装有金属独头弹头。伤害很高但命中率比较低。" +msgstr ".410口径霰弹,装有金属独头弹头。伤害很高但命中率比较低。" #: lang/json/AMMO_from_json.py msgid "makeshift .410 shot" @@ -4753,7 +4824,7 @@ msgstr[0] "自制 .410 霰弹" msgid "" "A .410 shotgun shell filled with whatever was lying around. They are more " "damaging than birdshot, but fairly inaccurate." -msgstr ".410 口径霰弹,塞进了各种乱七八糟的东西,弹丸材料完全因地制宜。威力比鸟弹强一些,但准头差点。" +msgstr ".410口径霰弹,塞进了各种乱七八糟的东西,弹丸材料完全因地制宜。威力比鸟弹强一些,但准头差点。" #: lang/json/ARMOR_from_json.py msgid "ten-gallon hat" @@ -4843,9 +4914,7 @@ msgstr[0] "手臂夹板" #. ~ Description for leg splint #: lang/json/ARMOR_from_json.py msgid "A tool to help set bones and hold them in place." -msgstr "" -"一个用于固定和矫正骨骼以帮助骨折恢复的工具。\n" -"\"过分作死的必然产物。\"" +msgstr "一个用于固定和矫正骨骼以帮助骨折恢复的工具。" #: lang/json/ARMOR_from_json.py msgid "arm splint XL" @@ -4962,7 +5031,7 @@ msgstr[0] "纸护臂" msgid "Arm guards made of stacked paper sheets held together with duct tape." msgstr "" "一对将许多纸张叠在一起,然后用胶带粘牢的纸护臂。\n" -"\"书籍是人类防御的装备 ——高尔基。\"" +"\"书籍是人类防御的装备 —— 高尔基\"" #: lang/json/ARMOR_from_json.py msgid "pair of neoprene arm sleeves" @@ -5134,7 +5203,7 @@ msgid "" "Black armor used by riot police officers. The padded layers and hard " "plastic shoulder guards offer good protection without much encumbrance. The" " word POLICE is emblazoned across the front." -msgstr "防暴警察使用的黑色盔甲。软垫层和硬塑料护肩能提供良好的保护,并不是很累赘。它前面印着“警察”两个大字。" +msgstr "防暴警察使用的黑色盔甲。软垫层和硬塑料护肩能提供良好的保护,并不是很累赘。它前面印着\"警察\"两个大字。" #: lang/json/ARMOR_from_json.py msgid "O-yoroi" @@ -5159,7 +5228,7 @@ msgid "" "A sturdy scavenger's outfit made from refitted pre-cataclysm protective " "gear. It has a lot of storage space." msgstr "" -"一套由大灾变前的衣物制成、拥有大量储存空间的耐用自制服装。\n" +"一套由大灾变前的衣物制成、拥有大量储存空间的耐用临时服装。\n" "\"穿上它开开心心的捡破烂。\"" #: lang/json/ARMOR_from_json.py @@ -5291,7 +5360,7 @@ msgstr[0] "SWAT徽章" msgid "" "A matte-finish silver shield identifies the wearer as an authority who goes " "in when the bots just aren't enough." -msgstr "一个亚光处理的银制盾牌状徽记,标志着佩戴者是名在情况恶化到机器人警察都无法应对时出现的SWAT单位成员。" +msgstr "一个亚光处理的银制盾牌状徽记,标志着佩戴者是名在情况恶化到机器人警察都无法应对时出现的S.W.A.T单位成员。" #: lang/json/ARMOR_from_json.py msgid "balaclava" @@ -5343,7 +5412,7 @@ msgstr[0] "大刀鞘(肩)" #: lang/json/ARMOR_from_json.py #, no-python-format msgid "You sheath your %s" -msgstr "你将 %s 收鞘。" +msgstr "你将%s收鞘" #. ~ Use action holster_prompt for baldric. #. ~ Use action holster_prompt for back scabbard. @@ -5659,7 +5728,7 @@ msgstr[0] "长矛背带" #: lang/json/ARMOR_from_json.py #, no-python-format msgid "You holster your %s." -msgstr "你套好 %s。" +msgstr "你套好%s。" #. ~ Use action holster_prompt for spear strap. #: lang/json/ARMOR_from_json.py @@ -5685,8 +5754,7 @@ msgid "" "The only hat for a made man. Look like a real good fella while laughing in " "the face of your foes!" msgstr "" -"一件绅士帽,早在17世纪时在西方资本主义国家就流行开来,随着男士时装潮流的不断革新,旧时用来显示社会阶级的帽子逐渐发展成现代男装中必不可少的配饰之一。\n" -"\"戴着它并笑着同敌人面对面战斗才是真正的好汉!\"" +"一件绅士帽,早在17世纪时在西方资本主义国家就流行开来,随着男士时装潮流的不断革新,旧时用来显示社会阶级的帽子逐渐发展成现代男装中必不可少的配饰之一。" #: lang/json/ARMOR_from_json.py msgid "boxer briefs" @@ -5856,9 +5924,9 @@ msgstr[0] "锁环护臂" #. ~ Description for pair of chainmail sleeves #: lang/json/ARMOR_from_json.py msgid "" -"Customized chainmail arms. Each sleeve has leather straps to connect them " -"with each other. The lack of fingers makes them less cumbersome and allows " -"them to be used with gloves." +"Customized chainmail arms. Each sleeve has straps to connect them with each" +" other. The lack of fingers makes them less cumbersome and allows them to " +"be used with gloves." msgstr "一对自制的链甲护臂,套筒间有皮革带连接,无指的设计使它们不那么笨重,并留下了戴手套的空间。" #: lang/json/ARMOR_from_json.py @@ -5869,7 +5937,7 @@ msgstr[0] "锁环罩盔" #. ~ Description for chainmail coif #: lang/json/ARMOR_from_json.py msgid "A customized chainmail hood. Can be worn comfortably under helmets." -msgstr "一条能舒适地戴在头盔之下定制链甲头巾。" +msgstr "一条能舒适地戴在头盔之下的定制链甲头巾。" #: lang/json/ARMOR_from_json.py msgid "chainmail leggings" @@ -5879,10 +5947,9 @@ msgstr[0] "锁环护胫" #. ~ Description for chainmail leggings #: lang/json/ARMOR_from_json.py msgid "" -"Customized chainmail legs. Their leather straps keep everything in place, " -"and the lack of toes and heels allows them to work perfectly well with " -"footwear." -msgstr "一套自制的锁链腿甲,各个部件之间采用皮带连接固定在一起,脚趾和脚跟处的空缺使它们能够与鞋类很好的兼容。" +"Customized chainmail legs. Their straps keep everything in place, and the " +"lack of toes and heels allows them to work perfectly well with footwear." +msgstr "一套自制的锁链腿甲,各个部件之间采用皮带连接固定在一起,脚趾和脚跟处的空缺使它们能够与鞋类很好地兼容。" #: lang/json/ARMOR_from_json.py msgid "chainmail hauberk" @@ -5893,9 +5960,10 @@ msgstr[0] "锁甲连衣裤" #: lang/json/ARMOR_from_json.py msgid "" "A fully customized chainmail outfit, leaving the head uncovered. The shirt," -" arms, and leggings have been modified with leather straps to deal with " -"uneven weight distribution and to allow them to be used separately." -msgstr "一套自制的完整链甲套装,没有头盔。胸甲、护臂、护胫都用皮革带子连接来平衡重量的分布,并使得它们能够分开使用。" +" arms, and leggings have been modified with straps and combined with a " +"gambeson to deal with uneven weight distribution, cold environments and to " +"allow them to be used separately." +msgstr "一套自制的完整链甲套装,没有头盔。胸甲、护臂、护胫都用皮革带子连接来平衡重量的分布,与软铠甲结合使它能很好抵御寒冷。它们能够分开使用。" #: lang/json/ARMOR_from_json.py msgid "chainmail armor" @@ -5906,9 +5974,10 @@ msgstr[0] "锁环甲" #: lang/json/ARMOR_from_json.py msgid "" "A fully customized chainmail suit. The coif, shirt, arms, and leggings have" -" been modified with leather straps to deal with uneven weight distribution " -"and to allow them to be used separately." -msgstr "一套自制的完整链甲套装,头盔、胸甲、护臂、护胫都用皮革带连接来平衡重量的分布,并使得它们能够分开使用。" +" been modified with straps and combined with a gambeson to deal with uneven " +"weight distribution, cold environments and to allow them to be used " +"separately." +msgstr "一套自制的完整链甲套装,包含头巾。胸甲、护臂、护胫都用皮革带子连接来平衡重量的分布,与软铠甲结合使它能很好抵御寒冷。它们能够分开使用。" #: lang/json/ARMOR_from_json.py msgid "chainmail vest" @@ -5919,8 +5988,8 @@ msgstr[0] "锁环胸甲" #: lang/json/ARMOR_from_json.py msgid "" "A customized chainmail vest. It's a sleeveless piece of chainmail with " -"small leather straps designed to better distribute the weight." -msgstr "一件自制的锁链胸甲,这件无袖胸甲由多条皮带连结,均匀分散地分配装甲的重量。" +"small straps designed to better distribute the weight." +msgstr "一件自制的锁链胸甲,这件无袖胸甲由多条皮带连结,均匀地分散装甲的重量。" #: lang/json/ARMOR_from_json.py msgid "leather chaps" @@ -6220,7 +6289,7 @@ msgid "" "sunset, this is the hat for the job." msgstr "" "一个精心的由皮革缝制、外型帅气野性的牛仔帽,美国西部牛仔的经典装扮之一。\n" -"\"午时已到。\"" +"\"午时已到!\"" #: lang/json/ARMOR_from_json.py msgid "knit cowl" @@ -6402,7 +6471,7 @@ msgstr[0] "礼服衬衫" msgid "A white button-down shirt with long sleeves. Looks professional!" msgstr "" "一件白色纽扣领的长袖衬衫。\n" -"\"穿着像个专业人!\"" +"\"穿着像个专业人士!\"" #: lang/json/ARMOR_from_json.py msgid "wedding dress" @@ -8214,7 +8283,7 @@ msgstr "一件用厚棉制成的长袖球衣,上面印着一个运动队名和 msgid "" "A pro thunderball jersey made of thick material imprinted with the logo of " "the Decatur Fist." -msgstr "一件雷霆队球衣,由厚实的材料织成,上面印有\"Decatur Fist\"的标志。(译注:\"Decatur Fist\"为美国乐队名)" +msgstr "一件雷霆队球衣,由厚实的材料织成,上面印有\"Decatur Fist\"的标志。(注:\"Decatur Fist\"为美国乐队名)" #: lang/json/ARMOR_from_json.py msgid "" @@ -8232,7 +8301,7 @@ msgstr "一件由厚实布料作成的zero-G美式橄榄球球衣,上头印有 msgid "" "A football jersey made of thick material imprinted with the logo of the " "Endsville Fluffycats." -msgstr "一件由厚实布料作成的美式橄榄球球衣,上头印有末日小镇蓬蓬猫队的标志。(原出处动画\"爱酷一族\")" +msgstr "一件由厚实布料作成的美式橄榄球球衣,上头印有末日小镇蓬蓬猫队的标志。(注:原出处动画《爱酷一族》)" #: lang/json/ARMOR_from_json.py msgid "" @@ -8283,7 +8352,7 @@ msgstr[0] "黑带" #: lang/json/ARMOR_from_json.py msgid "A belt worn by martial arts practitioners, advertising a master." msgstr "" -"一条武者的腰带,大师级别。\n" +"一条跆拳道武者的腰带,大师级别。\n" "\"配合调试模式你可以成为查克·诺里斯。\"" #: lang/json/ARMOR_from_json.py @@ -8296,7 +8365,7 @@ msgstr[0] "蓝带" msgid "" "A belt worn by martial arts practitioners, advertising a strong " "intermediate." -msgstr "一条武者的腰带,新晋高级选手的级别。" +msgstr "一条跆拳道武者的腰带,新晋高级选手的级别。" #: lang/json/ARMOR_from_json.py msgid "brown belt" @@ -8306,7 +8375,7 @@ msgstr[0] "棕带" #. ~ Description for brown belt #: lang/json/ARMOR_from_json.py msgid "A belt worn by martial arts practitioners, advertising a near-master." -msgstr "一条武者的腰带,次级大师的级别。" +msgstr "一条跆拳道武者的腰带,次级大师的级别。" #: lang/json/ARMOR_from_json.py msgid "green belt" @@ -8317,7 +8386,7 @@ msgstr[0] "绿带" #: lang/json/ARMOR_from_json.py msgid "" "A belt worn by martial arts practitioners, advertising an intermediate." -msgstr "一条武者的腰带,中级选手级别。" +msgstr "一条跆拳道武者的腰带,中级选手级别。" #: lang/json/ARMOR_from_json.py msgid "orange belt" @@ -8328,7 +8397,7 @@ msgstr[0] "橙带" #: lang/json/ARMOR_from_json.py msgid "" "A belt worn by martial arts practitioners, advertising a fresh intermediate." -msgstr "一条武者的腰带,新晋中级选手的级别。" +msgstr "一条跆拳道武者的腰带,新晋中级选手的级别。" #: lang/json/ARMOR_from_json.py msgid "white belt" @@ -8338,7 +8407,7 @@ msgstr[0] "白带" #. ~ Description for white belt #: lang/json/ARMOR_from_json.py msgid "A belt worn by martial arts practitioners, advertising a novice." -msgstr "一条武者的腰带,新手级别。" +msgstr "一条跆拳道武者的腰带,新手级别。" #: lang/json/ARMOR_from_json.py msgid "yellow belt" @@ -8349,7 +8418,7 @@ msgstr[0] "黄带" #: lang/json/ARMOR_from_json.py msgid "" "A belt worn by martial arts practitioners, advertising a moderate novice." -msgstr "一条武者的腰带,次新手级别。" +msgstr "一条跆拳道武者的腰带,次新手级别。" #: lang/json/ARMOR_from_json.py msgid "judo gi" @@ -8552,7 +8621,7 @@ msgstr[0] "皮猫耳" msgid "" "A shiny pair of black cat ears on a headband. It does nothing, but there's " "no reason not to look good even if no one's looking." -msgstr "一对闪亮的黑色猫耳头带,非常可爱,引人注目。" +msgstr "一对闪亮的黑色猫耳头带,非常可爱,引\"人\"注目。" #: lang/json/ARMOR_from_json.py msgid "leather cat tail" @@ -8564,7 +8633,7 @@ msgstr[0] "皮猫尾" msgid "" "A glossy black leather tail weighted down with tiny beads of plastic. Sways" " behind you when you walk." -msgstr "一个小珠子吊着一条漆黑光滑的皮制尾巴,当你走路时会随之摆动,非常可爱,引人注目。" +msgstr "一个小珠子吊着一条漆黑光滑的皮制尾巴,当你走路时会随之摆动,非常可爱,引\"人\"注目。" #: lang/json/ARMOR_from_json.py msgid "leather collar" @@ -8576,7 +8645,7 @@ msgstr[0] "皮项圈" msgid "" "A black leather 'collar' with a bell dangling from the front. Don't worry, " "the bell is silent." -msgstr "黑色皮革的项圈,前面挂了一个不会发出声音的装饰铃铛,非常可爱,引人注目。" +msgstr "黑色皮革的项圈,前面挂了一个不会发出声音的装饰铃铛,非常可爱,引\"人\"注目。" #: lang/json/ARMOR_from_json.py msgid "leather pouch" @@ -8635,7 +8704,7 @@ msgstr[0] "护蹄毛套" #. ~ Description for pair of fetlock furs #: lang/json/ARMOR_from_json.py msgid "Snug fur sleeves to keep your fetlocks warm." -msgstr "一对可以为你的蹄子保暖的舒适毛皮套筒," +msgstr "一对可以为你的蹄子保暖的舒适毛皮套筒。" #: lang/json/ARMOR_from_json.py msgid "leggings" @@ -8761,7 +8830,7 @@ msgstr "一件印有Red Hat标志的T恤,上面写着:世界开源领袖!" msgid "" "A t-shirt with the Debian logo on it, underneath it says \"The Universal " "Operating System\"" -msgstr "一件印有Debian标志的印字T恤,上面写着\"宇宙通用操作系统\"" +msgstr "一件印有Debian标志的印字T恤,上面写着\"宇宙通用操作系统\"。" #: lang/json/ARMOR_from_json.py msgid "locket" @@ -9019,9 +9088,7 @@ msgstr[0] "信使包" #. ~ Description for messenger bag #: lang/json/ARMOR_from_json.py msgid "Light and easy to wear, but doesn't offer much storage." -msgstr "" -"一个常见的呈长方形、比较大的挎包,常见于邮递员投送报纸、信件时候所配备,提供比较可观的储存空间。\n" -"\"大灾变之夺命邮差。\"" +msgstr "一个常见的呈长方形、比较大的挎包,常见于邮递员投送报纸、信件时候所配备,提供比较可观的储存空间。" #: lang/json/ARMOR_from_json.py msgid "pair of mittens" @@ -9404,7 +9471,7 @@ msgstr[0] "邮差帽" msgid "" "A traditional mail carrier's cap, with the US postal service logo " "embroidered on the front above the plastic cap. A symbol of a bygone world." -msgstr "一顶塑料帽檐上方印着美国邮政服务标志、传统样式的邮差帽," +msgstr "一顶塑料帽檐上方印着美国邮政服务标志、传统样式的邮差帽。" #: lang/json/ARMOR_from_json.py msgid "mail carrier shirt" @@ -10184,7 +10251,7 @@ msgid "" "the micro-motions of the body, especially breathing and walking motions. " "Because of this your walking speed is impaired while wearing it." msgstr "" -"WebbStar 保湿衣采用高端科技,能减少30%因流汗引起的水分流失。这件衣服由身体的微运动充能,特别是呼吸和行走动作。因此穿着时你的步行速度减弱。\n" +"\"湿星球\"保湿衣采用高端科技,能减少30%因流汗引起的水分流失。这件衣服由身体的微运动充能,特别是呼吸和行走动作。因此穿着时你的步行速度减弱。\n" "\"这款曾经被一些顾客戏称为逃出克隆岛的家伙们的专用服装。\"" #: lang/json/ARMOR_from_json.py @@ -10594,7 +10661,7 @@ msgid "" "them from the cold." msgstr "" "一件紧紧包裹着腿部和脚部的舒适的布料服装,起到保暖的功效。\n" -"\"完美的勾勒出生殖器官的轮廓或沟壑,在灾变前穿这个上街会被当作变态。\"" +"\"完美的勾勒出生殖器官的轮廓或沟壑,在大灾变前穿这个上街会被当作变态。\"" #: lang/json/ARMOR_from_json.py msgid "tinfoil hat" @@ -10716,7 +10783,7 @@ msgid "" "is the hat for you." msgstr "" "一顶经典设计的三角帽。帽檐做了防水设计,是以前加勒比一带海盗船长的标准装备。\n" -"\"喔————是谁住在深海的菠萝屋里?!\"" +"\"喔~~~~是谁住在深海的大菠萝里?!\"" #: lang/json/ARMOR_from_json.py msgid "pair of swimming trunks" @@ -11038,7 +11105,7 @@ msgid "" "clock feature." msgstr "" "一个款式简约的腕表,表带是塑料材质。可以计时,还有闹钟功能。\n" -"\"即便灾变后的世界只有无尽的黑夜(Dark days Ahead),但有一个手表还能提醒你天亮还有多远。\"" +"\"即便灾变后的世界只有无尽的黑夜(Dark days Ahead),但有一个手表还能提醒你黎明还有多远。\"" #: lang/json/ARMOR_from_json.py msgid "winter survivor suit" @@ -11415,7 +11482,7 @@ msgid "" "hand. If this doesn't make you feel like a cowboy nothing will." msgstr "" "一条刺绣的皮革子弹带,保证手枪子弹随手可得。西部牛仔的标配之一。\n" -"\"午时已到。\"" +"\"午时已到!\"" #: lang/json/ARMOR_from_json.py msgid "rifle bandolier" @@ -12121,6 +12188,19 @@ msgid "" " gun." msgstr "一个设计舒适的快拔枪套,用于小型枪械。激活它来收拔武器。" +#: lang/json/ARMOR_from_json.py +msgid "deep concealment holster" +msgid_plural "deep concealment holsters" +msgstr[0] "隐藏式枪套" + +#. ~ Description for deep concealment holster +#: lang/json/ARMOR_from_json.py +msgid "" +"An elastic band with numerous provisions for concealing a very small pistol " +"close to the body. It is awkward to use without practice. Activate to " +"holster/draw a gun." +msgstr "一条弹性皮带,可以在紧贴身体的地方隐藏一把非常小的手枪,只有专业人士才能使用自如。激活它来收拔枪。" + #: lang/json/ARMOR_from_json.py msgid "survivor harness" msgid_plural "survivor harnesses" @@ -12247,7 +12327,7 @@ msgid "" "cozy!" msgstr "" "一张又大又舒适的被子,用厚羊毛制成,上面有三角形的图案。\n" -"“太舒服了!”" +"\"太舒服了!\"" #: lang/json/ARMOR_from_json.py msgid "patchwork quilt" @@ -12259,7 +12339,7 @@ msgstr[0] "布块被子" msgid "A huge, patchwork wool quilt. Very, very warm." msgstr "" "一张巨大的,拼凑而成的羊毛被。\n" -"“非常,非常温暖。”" +"\"非常,非常温暖。\"" #: lang/json/ARMOR_from_json.py msgid "ski jacket" @@ -12315,7 +12395,7 @@ msgid "" "A crude welding mask made from shaped metal, with dark cloth and tinted " "glass to protect the eyes. It's extremely hard to see with, but with " "nothing else available, it can protect your sight while welding." -msgstr "一种粗糙的焊接面罩,由成形的金属制成,用深色布和有色玻璃保护眼睛。戴上后会严重影响视力,但在没有更好的选择时,你能用它在焊接时保护视力。" +msgstr "一种粗糙的焊接面罩,由成形的金属制成,用深色布和有色玻璃保护眼睛。戴上后会严重影响视力,但在没有更好的选择时,你能用它在焊接时保护眼睛。" #: lang/json/ARMOR_from_json.py msgid "brigandine" @@ -12328,7 +12408,7 @@ msgid "" "A piece of body armor from the Middle Ages consisting of boiled leather with" " riveted metal plates lying underneath. Typically used to protect from " "arrows, it has very good protection against cuts." -msgstr "一件中世纪时期的“防弹衣”,由煮沸处理后的皮革和内层的铆接金属板组成。在阻挡弓箭的同时,它还能很好地防御斩击伤害。" +msgstr "一件中世纪时期的\"防弹衣\",由煮沸处理后的皮革和内层的铆接金属板组成。在阻挡弓箭的同时,它还能很好地防御斩击伤害。" #: lang/json/ARMOR_from_json.py msgid "crafted brigandine" @@ -12342,7 +12422,7 @@ msgid "" " of body armor consists of layered cloth with small pieces of sheet metal " "affixed to the underside. While not as protective as a proper piece of " "armor, it'll still keep you relatively safe." -msgstr "这件自制的“防弹衣”是仿照中世纪的镶片皮甲制作的,它由多层布和内层的许多金属片组成。虽然不如一件真正的盔甲保护性强,但它仍能让你相对安全。" +msgstr "这件自制的\"防弹衣\"是仿照中世纪的镶片皮甲制作的,它由多层布和内层的许多金属片组成。虽然不如一件真正的盔甲保护性强,但它仍能让你相对安全。" #: lang/json/ARMOR_from_json.py msgid "titanium vest" @@ -12586,8 +12666,8 @@ msgid "Active Defense System CBM" msgid_plural "Active Defense System CBMs" msgstr[0] "主动防御系统CBM" -#. ~ Description for Active Defense System #. ~ Description for Active Defense System CBM +#. ~ Description for Active Defense System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A thin forcefield surrounds your body, continually draining power. Anything" @@ -12602,8 +12682,8 @@ msgid "Advanced Microreactor CBM" msgid_plural "Advanced Microreactor CBMs" msgstr[0] "高级微型体内核反应堆CBM" -#. ~ Description for Advanced Microreactor System #. ~ Description for Advanced Microreactor CBM +#. ~ Description for Advanced Microreactor System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This stripped down mini-reactor is safer than it appears due to integrated " @@ -12616,8 +12696,8 @@ msgid "Alarm System CBM" msgid_plural "Alarm System CBMs" msgstr[0] "警报系统CBM" -#. ~ Description for Alarm System #. ~ Description for Alarm System CBM +#. ~ Description for Alarm System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A motion-detecting alarm system will notice almost all movement within a " @@ -12691,22 +12771,22 @@ msgid "Battery System CBM" msgid_plural "Battery System CBMs" msgstr[0] "电池供能CBM" -#. ~ Description for Battery System #. ~ Description for Battery System CBM +#. ~ Description for Battery System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have a battery draining attachment, and thus can make use of the energy " "contained in normal, everyday batteries. Use 'E' to consume batteries. Can" " be toggled on and off at will." -msgstr "你拥有一个电池系统,可以使用其将体内的能量维持在正常水平。按\"E\"键来使用电池。可以自由开关。" +msgstr "你拥有一个电池系统,可以使用其将体内的能量维持在正常水平。按'E'键来使用电池。可以自由开关。" #: lang/json/BIONIC_ITEM_from_json.py msgid "Monomolecular Blade CBM" msgid_plural "Monomolecular Blade CBMs" msgstr[0] "单分子刀刃CBM" -#. ~ Description for Monomolecular Blade #. ~ Description for Monomolecular Blade CBM +#. ~ Description for Monomolecular Blade #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A deadly foot-long blade made of advanced material now resides inside your " @@ -12759,8 +12839,8 @@ msgid "Blood Filter CBM" msgid_plural "Blood Filter CBMs" msgstr[0] "血液过滤CBM" -#. ~ Description for Blood Filter #. ~ Description for Blood Filter CBM +#. ~ Description for Blood Filter #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A filtration system in your heart allows you to actively filter out chemical" @@ -12787,8 +12867,8 @@ msgid "Subdermal Carbon Filament CBM" msgid_plural "Subdermal Carbon Filament CBMs" msgstr[0] "皮下碳纤维层CBM" -#. ~ Description for Subdermal Carbon Filament #. ~ Description for Subdermal Carbon Filament CBM +#. ~ Description for Subdermal Carbon Filament #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Lying just beneath your skin is a thin armor made of carbon nanotubes. This" @@ -12800,8 +12880,8 @@ msgid "Chain Lightning CBM" msgid_plural "Chain Lightning CBMs" msgstr[0] "连锁闪电CBM" -#. ~ Description for Chain Lightning #. ~ Description for Chain Lightning CBM +#. ~ Description for Chain Lightning #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your body is equipped with a chain lightning generator, allowing you to emit" @@ -12828,8 +12908,8 @@ msgid "Internal Climate Control CBM" msgid_plural "Internal Climate Control CBMs" msgstr[0] "恒温机构CBM" -#. ~ Description for Internal Climate Control #. ~ Description for Internal Climate Control CBM +#. ~ Description for Internal Climate Control #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Throughout your body lies a network of thermal piping which eases the " @@ -12841,8 +12921,8 @@ msgid "Cloaking System CBM" msgid_plural "Cloaking System CBMs" msgstr[0] "隐身系统CBM" -#. ~ Description for Cloaking System #. ~ Description for Cloaking System CBM +#. ~ Description for Cloaking System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This high-power system uses a set of cameras and LEDs to make you blend into" @@ -12869,8 +12949,8 @@ msgid "Wired Reflexes CBM" msgid_plural "Wired Reflexes CBMs" msgstr[0] "线性反射弧CBM" -#. ~ Description for Wired Reflexes #. ~ Description for Wired Reflexes CBM +#. ~ Description for Wired Reflexes #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your reaction time has been greatly enhanced with bionic nerve stimulators, " @@ -12882,8 +12962,8 @@ msgid "Expanded Digestive System CBM" msgid_plural "Expanded Digestive System CBMs" msgstr[0] "多重消化系统CBM" -#. ~ Description for Expanded Digestive System #. ~ Description for Expanded Digestive System CBM +#. ~ Description for Expanded Digestive System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have been outfitted with three synthetic stomachs and industrial-grade " @@ -12898,8 +12978,8 @@ msgid "Enhanced Hearing CBM" msgid_plural "Enhanced Hearing CBMs" msgstr[0] "听力增强CBM" -#. ~ Description for Enhanced Hearing #. ~ Description for Enhanced Hearing CBM +#. ~ Description for Enhanced Hearing #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "When this bionic is active, your hearing will be drastically improved, " @@ -12926,8 +13006,8 @@ msgid "EMP Projector CBM" msgid_plural "EMP Projector CBMs" msgstr[0] "EMP发射器CBM" -#. ~ Description for EMP Projector #. ~ Description for EMP Projector CBM +#. ~ Description for EMP Projector #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A ranged EMP generator system is implanted on the palm of your right hand " @@ -12940,8 +13020,8 @@ msgid "Ethanol Burner CBM" msgid_plural "Ethanol Burner CBMs" msgstr[0] "酒精锅炉CBM" -#. ~ Description for Ethanol Burner #. ~ Description for Ethanol Burner CBM +#. ~ Description for Ethanol Burner #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You burn alcohol as fuel in an extremely efficient reaction. However, you " @@ -12953,8 +13033,8 @@ msgid "Aero-Evaporator CBM" msgid_plural "Aero-Evaporator CBMs" msgstr[0] "湿气凝水器CBM" -#. ~ Description for Aero-Evaporator #. ~ Description for Aero-Evaporator CBM +#. ~ Description for Aero-Evaporator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This unit draws moisture from the surrounding air, which then is poured from" @@ -12966,8 +13046,8 @@ msgid "Diamond Cornea CBM" msgid_plural "Diamond Cornea CBMs" msgstr[0] "钻石角膜CBM" -#. ~ Description for Diamond Cornea #. ~ Description for Diamond Cornea CBM +#. ~ Description for Diamond Cornea #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Your vision is greatly enhanced, giving you a +2 bonus to perception." msgstr "你的视觉被生化插件大幅强化了,感知+2。" @@ -12992,8 +13072,8 @@ msgid "Facial Distortion CBM" msgid_plural "Facial Distortion CBMs" msgstr[0] "变脸系统CBM" -#. ~ Description for Facial Distortion #. ~ Description for Facial Distortion CBM +#. ~ Description for Facial Distortion #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Through controlled application of electrochemical impulses, you are capable " @@ -13006,8 +13086,8 @@ msgid "Dielectric Capacitance System CBM" msgid_plural "Dielectric Capacitance System CBMs" msgstr[0] "绝缘电容系统CBM" -#. ~ Description for Dielectric Capacitance System #. ~ Description for Dielectric Capacitance System CBM +#. ~ Description for Dielectric Capacitance System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Throughout your body lies a network of miniature piezoelectric capacitors " @@ -13052,7 +13132,7 @@ msgstr[0] "脑壳手电CBM" #. ~ Description for Cranial Flashlight CBM #: lang/json/BIONIC_ITEM_from_json.py msgid "Mounted between your eyes is a small but powerful LED flashlight." -msgstr "在你的两眼之间安装了一个小巧强劲的LED闪光灯" +msgstr "在你的两眼之间安装了一个小巧强劲的LED闪光灯。" #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "LED Tattoo" @@ -13072,14 +13152,14 @@ msgid "Internal Furnace CBM" msgid_plural "Internal Furnace CBMs" msgstr[0] "内燃锅炉CBM" -#. ~ Description for Internal Furnace #. ~ Description for Internal Furnace CBM +#. ~ Description for Internal Furnace #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "When this bionic is active, you can burn nearly any organic material as fuel" " (use 'E'), recharging your power level. Some materials will burn better " "than others." -msgstr "当这个生化插件启用时,你可以用周围的有机物作为燃烧的燃料(使用键)恢复你的能量值。某些材料有额外加成。" +msgstr "当这个生化插件启用时,你可以用周围的有机物作为燃烧的燃料(使用'E'键)恢复你的能量值。某些材料有额外加成。" #: lang/json/BIONIC_ITEM_from_json.py msgid "Integrated Dosimeter CBM" @@ -13112,8 +13192,8 @@ msgid "Terranian Sonar CBM" msgid_plural "Terranian Sonar CBMs" msgstr[0] "声纳之足CBM" -#. ~ Description for Terranian Sonar #. ~ Description for Terranian Sonar CBM +#. ~ Description for Terranian Sonar #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your feet are equipped with precision sonar equipment, allowing you to " @@ -13126,8 +13206,8 @@ msgid "Heat Drain CBM" msgid_plural "Heat Drain CBMs" msgstr[0] "热能吸取CBM" -#. ~ Description for Heat Drain #. ~ Description for Heat Drain CBM +#. ~ Description for Heat Drain #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While fighting unarmed against a warm-blooded opponent, there is a chance " @@ -13153,8 +13233,8 @@ msgid "Hydraulic Muscles CBM" msgid_plural "Hydraulic Muscles CBMs" msgstr[0] "液压肌肉CBM" -#. ~ Description for Hydraulic Muscles #. ~ Description for Hydraulic Muscles CBM +#. ~ Description for Hydraulic Muscles #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While activated, your muscles will be greatly enhanced, increasing your " @@ -13168,8 +13248,8 @@ msgid "Infrared Vision CBM" msgid_plural "Infrared Vision CBMs" msgstr[0] "红外视觉CBM" -#. ~ Description for Infrared Vision #. ~ Description for Infrared Vision CBM +#. ~ Description for Infrared Vision #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your range of vision extends into the infrared, allowing you to see warm-" @@ -13181,8 +13261,8 @@ msgid "Cerebral Booster CBM" msgid_plural "Cerebral Booster CBMs" msgstr[0] "生物处理芯片CBM" -#. ~ Description for Cerebral Booster #. ~ Description for Cerebral Booster CBM +#. ~ Description for Cerebral Booster #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your brain has been enhanced with bionic coprocessors, giving you a +2 bonus" @@ -13207,8 +13287,8 @@ msgid "Leukocyte Breeder System CBM" msgid_plural "Leukocyte Breeder System CBMs" msgstr[0] "白细胞培育系统CBM" -#. ~ Description for Leukocyte Breeder System #. ~ Description for Leukocyte Breeder System CBM +#. ~ Description for Leukocyte Breeder System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You are equipped with bionic stimulators which augment your haematopoiesis " @@ -13222,8 +13302,8 @@ msgid "Mini-Flamethrower CBM" msgid_plural "Mini-Flamethrower CBMs" msgstr[0] "迷你火焰发射器CBM" -#. ~ Description for Mini-Flamethrower #. ~ Description for Mini-Flamethrower CBM +#. ~ Description for Mini-Flamethrower #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "The index fingers of both hands have powerful fire starters which extend " @@ -13260,8 +13340,8 @@ msgid "Nictating Membrane CBM" msgid_plural "Nictating Membrane CBMs" msgstr[0] "人工瞬膜CBM" -#. ~ Description for Nictating Membrane #. ~ Description for Nictating Membrane CBM +#. ~ Description for Nictating Membrane #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your eyes have a thin membrane that closes over your eyes while underwater, " @@ -13286,8 +13366,8 @@ msgid "Metabolic Interchange CBM" msgid_plural "Metabolic Interchange CBMs" msgstr[0] "代谢供能CBM" -#. ~ Description for Metabolic Interchange #. ~ Description for Metabolic Interchange CBM +#. ~ Description for Metabolic Interchange #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your digestive system and power supply are interconnected. Bionic energy is" @@ -13300,8 +13380,8 @@ msgid "Weather Reader CBM" msgid_plural "Weather Reader CBMs" msgstr[0] "气象识别CBM" -#. ~ Description for Weather Reader #. ~ Description for Weather Reader CBM +#. ~ Description for Weather Reader #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A multitude of scientific instruments and sensors collect environmental " @@ -13315,8 +13395,8 @@ msgid "Repair Nanobots CBM" msgid_plural "Repair Nanobots CBMs" msgstr[0] "医疗纳米机器人CBM" -#. ~ Description for Repair Nanobots #. ~ Description for Repair Nanobots CBM +#. ~ Description for Repair Nanobots #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Inside your body is a fleet of tiny dormant robots. While activated they " @@ -13329,8 +13409,8 @@ msgid "Artificial Night Generator CBM" msgid_plural "Artificial Night Generator CBMs" msgstr[0] "人工黑夜制造机CBM" -#. ~ Description for Artificial Night Generator #. ~ Description for Artificial Night Generator CBM +#. ~ Description for Artificial Night Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Destructive interference eliminates all light within a 15 tile radius." msgstr "通过干扰光线的传播来消除附近15格内所有的光源,制造出一个人工黑夜。" @@ -13352,8 +13432,8 @@ msgid "Offensive Defense System CBM" msgid_plural "Offensive Defense System CBMs" msgstr[0] "反击防御系统CBM" -#. ~ Description for Offensive Defense System #. ~ Description for Offensive Defense System CBM +#. ~ Description for Offensive Defense System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A thin forcefield surrounds your body, continually draining power. This " @@ -13366,8 +13446,8 @@ msgid "Sensory Dulling CBM" msgid_plural "Sensory Dulling CBMs" msgstr[0] "痛感抑制CBM" -#. ~ Description for Sensory Dulling #. ~ Description for Sensory Dulling CBM +#. ~ Description for Sensory Dulling #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your nervous system is wired to allow you to inhibit the signals of pain, " @@ -13392,8 +13472,8 @@ msgid "Power Armor Interface CBM" msgid_plural "Power Armor Interface CBMs" msgstr[0] "动力装甲接口CBM" -#. ~ Description for Power Armor Interface #. ~ Description for Power Armor Interface CBM +#. ~ Description for Power Armor Interface #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Interfaces your power system with the internal charging port on suits of " @@ -13403,24 +13483,24 @@ msgstr "你可以使用自身的生化能量供给动力装甲使用,而不再 #: lang/json/BIONIC_ITEM_from_json.py msgid "Power Armor Mk. II Interface CBM" msgid_plural "Power Armor Mk. II Interface CBMs" -msgstr[0] "动力装甲接口Mk.II型CBM" +msgstr[0] "Mk.II 型动力装甲接口CBM" -#. ~ Description for Power Armor Interface Mk. II #. ~ Description for Power Armor Mk. II Interface CBM +#. ~ Description for Power Armor Interface Mk. II #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Interfaces your power system with the internal charging port on suits of " "power armor. The Mk. II was designed by DoubleTech Inc., to meet the " "popularity of the Mk. II power armor series." -msgstr "你可以使用自身的生化能量供给动力装甲使用,而不再需要外接电源。这是杜布勒科技公司针对MK.II型动力装甲研制的新型号。" +msgstr "你可以使用自身的生化能量供给动力装甲使用,而不再需要外接电源。这是杜布勒科技公司针对MK.II 型动力装甲研制的新型号。" #: lang/json/BIONIC_ITEM_from_json.py msgid "Power Storage CBM" msgid_plural "Power Storage CBMs" msgstr[0] "储能模块CBM" -#. ~ Description for Power Storage #. ~ Description for Power Storage CBM +#. ~ Description for Power Storage #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Compact Bionics Module that upgrades your power capacity by 100 units. " @@ -13432,10 +13512,10 @@ msgstr "" #: lang/json/BIONIC_ITEM_from_json.py msgid "Power Storage CBM Mk. II" msgid_plural "Power Storage CBMs Mk. II" -msgstr[0] "储能模块Mk.II型CBM" +msgstr[0] "Mk.II 型储能模块CBM" -#. ~ Description for Power Storage Mk. II #. ~ Description for Power Storage CBM Mk. II +#. ~ Description for Power Storage Mk. II #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Compact Bionics Module developed at DoubleTech Industries as a replacement " @@ -13448,8 +13528,8 @@ msgid "Probability Travel CBM" msgid_plural "Probability Travel CBMs" msgstr[0] "量子移动CBM" -#. ~ Description for Probability Travel #. ~ Description for Probability Travel CBM +#. ~ Description for Probability Travel #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Increases your body's wavelength, allowing you to quantum tunnel through " @@ -13488,22 +13568,21 @@ msgid "Railgun CBM" msgid_plural "Railgun CBMs" msgstr[0] "电磁炮CBM" -#. ~ Description for Railgun #. ~ Description for Railgun CBM -#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +#: lang/json/BIONIC_ITEM_from_json.py msgid "" -"EM field generators in your arms double the range and damage of thrown iron " -"and steel objects at a cost of 1 power per throw, causing them to leave a " -"trail of electricity that can cause additional damage." -msgstr "你手臂上的电磁发生器,可以在你投掷钢铁物品时,消耗1能量来产生双倍的射程和威力,并且产生额外的伤害。" +"EM field generators in your arms increase the range and damage of thrown " +"iron and steel objects at a cost of 1 power per throw, causing them to leave" +" a trail of electricity that can cause additional damage." +msgstr "安装在你手臂上的电磁发生器,可以在你投掷钢铁物品时,消耗 1 能量来提高射程和威力,并且产生额外的伤害。" #: lang/json/BIONIC_ITEM_from_json.py msgid "Fingertip Razors CBM" msgid_plural "Fingertip Razors CBMs" msgstr[0] "指尖剃刀CBM" -#. ~ Description for Fingertip Razors #. ~ Description for Fingertip Razors CBM +#. ~ Description for Fingertip Razors #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You possess razor-sharp retractable claws underneath your fingernails, ten " @@ -13516,8 +13595,8 @@ msgid "Internal Microreactor CBM" msgid_plural "Internal Microreactor CBMs" msgstr[0] "微型体内核反应堆CBM" -#. ~ Description for Microreactor System #. ~ Description for Internal Microreactor CBM +#. ~ Description for Microreactor System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This stripped down mini-reactor may not be the best thing to have in your " @@ -13542,8 +13621,8 @@ msgid "Recycler Unit CBM" msgid_plural "Recycler Unit CBMs" msgstr[0] "回收单元CBM" -#. ~ Description for Recycler Unit #. ~ Description for Recycler Unit CBM +#. ~ Description for Recycler Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your digestive system has been outfitted with a series of filters and " @@ -13556,8 +13635,8 @@ msgid "Remote Controller CBM" msgid_plural "Remote Controller CBMs" msgstr[0] "远程控制CBM" -#. ~ Description for Remote Controller #. ~ Description for Remote Controller CBM +#. ~ Description for Remote Controller #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A small module connected to your brain allows you to interface with nearby " @@ -13569,8 +13648,8 @@ msgid "Sonic Resonator CBM" msgid_plural "Sonic Resonator CBMs" msgstr[0] "音爆冲击CBM" -#. ~ Description for Sonic Resonator #. ~ Description for Sonic Resonator CBM +#. ~ Description for Sonic Resonator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your entire body may resonate at very high power, creating a short-range " @@ -13583,8 +13662,8 @@ msgid "Olfactory Mask CBM" msgid_plural "Olfactory Mask CBMs" msgstr[0] "体味屏蔽CBM" -#. ~ Description for Olfactory Mask #. ~ Description for Olfactory Mask CBM +#. ~ Description for Olfactory Mask #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While this system is powered, your body will produce very little odor, " @@ -13596,8 +13675,8 @@ msgid "Scent Vision CBM" msgid_plural "Scent Vision CBMs" msgstr[0] "形象化嗅觉系统CBM" -#. ~ Description for Scent Vision #. ~ Description for Scent Vision CBM +#. ~ Description for Scent Vision #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While this system is powered, you're able to visually sense your own scent, " @@ -13610,8 +13689,8 @@ msgid "Electroshock Unit CBM" msgid_plural "Electroshock Unit CBMs" msgstr[0] "电击装置CBM" -#. ~ Description for Electroshock Unit #. ~ Description for Electroshock Unit CBM +#. ~ Description for Electroshock Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While fighting unarmed, or with a weapon that conducts electricity, there is" @@ -13624,8 +13703,8 @@ msgid "Shockwave Generator CBM" msgid_plural "Shockwave Generator CBMs" msgstr[0] "冲击波发生器CBM" -#. ~ Description for Shockwave Generator #. ~ Description for Shockwave Generator CBM +#. ~ Description for Shockwave Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You generate a powerful shockwave, knocking back all nearby creatures. " @@ -13639,8 +13718,8 @@ msgid "Synaptic Accelerator CBM" msgid_plural "Synaptic Accelerator CBMs" msgstr[0] "神经突触加速器CBM" -#. ~ Description for Synaptic Accelerator #. ~ Description for Synaptic Accelerator CBM +#. ~ Description for Synaptic Accelerator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py #, no-python-format msgid "" @@ -13716,8 +13795,8 @@ msgid "Teleportation Unit CBM" msgid_plural "Teleportation Unit CBMs" msgstr[0] "短距离传送器CBM" -#. ~ Description for Teleportation Unit #. ~ Description for Teleportation Unit CBM +#. ~ Description for Teleportation Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This highly experimental unit folds space over short distances, instantly " @@ -13731,8 +13810,8 @@ msgid "Time Dilation CBM" msgid_plural "Time Dilation CBMs" msgstr[0] "时间膨胀CBM" -#. ~ Description for Time Dilation #. ~ Description for Time Dilation CBM +#. ~ Description for Time Dilation #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "At the cost of all stored bionic power, you may increase your body speed and" @@ -13746,8 +13825,8 @@ msgid "Integrated Toolset CBM" msgid_plural "Integrated Toolset CBMs" msgstr[0] "瑞士军手CBM" -#. ~ Description for Integrated Toolset #. ~ Description for Integrated Toolset CBM +#. ~ Description for Integrated Toolset #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Surgically implanted in your hands and fingers is a complete tool set - " @@ -13774,8 +13853,8 @@ msgid "Joint Servo CBM" msgid_plural "Joint Servo CBMs" msgstr[0] "动力驱动CBM" -#. ~ Description for Joint Servo #. ~ Description for Joint Servo CBM +#. ~ Description for Joint Servo #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your leg joints have been equipped with servomotors that provide power-" @@ -13790,8 +13869,8 @@ msgid "Uncanny Dodge CBM" msgid_plural "Uncanny Dodge CBMs" msgstr[0] "神奇闪避CBM" -#. ~ Description for Uncanny Dodge #. ~ Description for Uncanny Dodge CBM +#. ~ Description for Uncanny Dodge #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your nervous system has been augmented with bionic processors, allowing you " @@ -13803,8 +13882,8 @@ msgid "Unified Power System CBM" msgid_plural "Unified Power System CBMs" msgstr[0] "整合供能系统CBM" -#. ~ Description for Internal Unified Power System #. ~ Description for Unified Power System CBM +#. ~ Description for Internal Unified Power System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have a unified power system wired into your power banks. Objects that " @@ -13816,8 +13895,8 @@ msgid "Internal Chronometer CBM" msgid_plural "Internal Chronometer CBMs" msgstr[0] "体内计时器CBM" -#. ~ Description for Internal Chronometer #. ~ Description for Internal Chronometer CBM +#. ~ Description for Internal Chronometer #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have been equipped with an internal atomic clock, ensuring that you will" @@ -13885,8 +13964,8 @@ msgid "Taste Modifier CBM" msgid_plural "Taste Modifier CBMs" msgstr[0] "味觉调节CBM" -#. ~ Description for Taste Modifier #. ~ Description for Taste Modifier CBM +#. ~ Description for Taste Modifier #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A set of highly sensitive sensors is installed in your mouth, and a small " @@ -13937,7 +14016,7 @@ msgstr "手术中取出的一堆金属碎片。" #: lang/json/BIONIC_ITEM_from_json.py msgid "Acidic Leaking CBM" msgid_plural "Acidic Leaking CBMs" -msgstr[0] "酸性泄漏CBM" +msgstr[0] "酸性泄漏" #. ~ Description for Acidic Leaking CBM #: lang/json/BIONIC_ITEM_from_json.py @@ -14081,10 +14160,10 @@ msgstr[0] "太阳能CBM" msgid "" "You have a few solar panels installed. While in direct sunlight, your power" " level will slowly recharge." -msgstr "你的身体被安装了几个小型的太阳能板。当你被阳光直射时,会缓慢充能。" +msgstr "你的身体被安装了几个小型的太阳能板。当你被阳光直射时,会缓慢为你充能生化能量。" -#. ~ Description for Solar Panels #. ~ Description for Solar Panels CBM +#. ~ Description for Solar Panels #: lang/json/BIONIC_ITEM_from_json.py lang/json/BIONIC_ITEM_from_json.py #: lang/json/bionic_from_json.py msgid "" @@ -14151,8 +14230,8 @@ msgid "Ionic Overload Generator CBM" msgid_plural "Ionic Overload Generator CBMs" msgstr[0] "离子过载发生器CBM" -#. ~ Description for Ionic Overload Generator #. ~ Description for Ionic Overload Generator CBM +#. ~ Description for Ionic Overload Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A powerful ion energy generator is implanted on your chest. Fires a " @@ -14160,7 +14239,7 @@ msgid "" "creating fires as it moves and an explosion on impact. Close range use is " "highly discouraged." msgstr "" -"一套强大的离子能量发生器被植入你的胸腔之中。能够发射出一个道威力巨大的,不断扩散并能穿透多个目标的高能冲击波。所产生的冲击波会点燃氧气,使的其经过的地方产生火焰,并在最终撞击目标时爆炸。近距离使用它是非常不明智的选择。" +"一套强大的离子能量发生器被植入你的胸腔之中。能够发射出一道威力巨大的,不断扩散并能穿透多个目标的高能冲击波。所产生的冲击波会点燃氧气,使其经过的地方产生火焰,并在最终撞击目标时爆炸。近距离使用它是非常不明智的选择。" #: lang/json/BIONIC_ITEM_from_json.py msgid "Synaptic Regeneration System CBM" @@ -14578,7 +14657,8 @@ msgid "" "speculative proposal for focusing \"PE065\". Scribbled notes throughout " "seem to think that it might work, but that there's no time." msgstr "" -"这捆文件的签署日期正是你离开避难所的那天! 文件是关于一个代号为PE065的高风险方案。各处的潦草笔记暗示着方案可能会如预期般有效,但是却没时间实施了。" +"这捆文件的签署日期正是你离开避难所的那天! " +"文件是关于一个代号为\"PE065\"的高风险方案。各处的潦草笔记暗示着方案可能会如预期般有效,但是却没时间实施了。" #: lang/json/BOOK_from_json.py msgid "Best Practices for Compound Delivery" @@ -15498,7 +15578,9 @@ msgstr[0] "大灾变漫游指南" msgid "" "Inscribed on the cover in large, friendly letters, is the message \"Don't " "Panic\"." -msgstr "一本奇怪的书,封面上镌刻了巨大、友好的文字,\"不要恐慌\"。(引自《银河系漫游指南 》)" +msgstr "" +"一本奇怪的书,封面上镌刻了巨大、友好的文字,\"不要恐慌\"。\n" +"(注:引自《银河系漫游指南 》)" #: lang/json/BOOK_from_json.py msgid "King James Bible" @@ -16296,7 +16378,7 @@ msgid "" "Bradbury." msgstr "" "几部经典科幻小说集,雷·道格拉斯·布莱伯利著。\n" -"“《火星纪事》、《华氏451度》。”" +"\"《火星纪事》、《华氏451度》。\"" #: lang/json/BOOK_from_json.py msgid "This is a copy of \"The Adventures of Tom Sawyer\" by Mark Twain." @@ -16350,7 +16432,7 @@ msgstr "平装复印本《呼啸山庄》,艾米莉·勃朗特著。第一页 msgid "" "This is a hardbound copy of \"Lady Chatterly's Lover\", by D. H. Lawrence. " "It has some very explicit illustrations." -msgstr "精装本《查泰莱夫人的情人》,D·H·劳伦斯著。它里面的一些插图相当“刺激”。" +msgstr "精装本《查泰莱夫人的情人》,D·H·劳伦斯著。它里面的一些插图相当\"刺激\"。" #: lang/json/BOOK_from_json.py msgid "" @@ -16525,7 +16607,7 @@ msgid "" "This is a well-kept leather bound copy of \"Oryx and Crake\" by Margaret " "Atwood. Inscribed in the inner cover is a faded note wishing the owner a " "happy birthday." -msgstr "这是玛格丽特·阿特伍德的一本保存完好的皮革装订本《羚羊与秧鸡》。封皮内刻着一条模糊的信息:“祝这本书的主人生日快乐。”" +msgstr "这是玛格丽特·阿特伍德的一本保存完好的皮革装订本《羚羊与秧鸡》。封皮内刻着一条模糊的信息:\"祝这本书的主人生日快乐。\"" #: lang/json/BOOK_from_json.py msgid "" @@ -16560,7 +16642,7 @@ msgid "" "This is a first edition copy of Terry Pratchett's \"The Colour of Magic\". " "In the inner cover is a handwritten note that reads \"To Chris, thanks for " "believing I could do it. Best regards, Terry.\"" -msgstr "这是特里·普拉切特的《魔法的颜色》的第一版。内封面有一张手写的便条,上面写着:“感谢克里斯相信我能做到。谨致问候,特里。”" +msgstr "这是特里·普拉切特的《魔法的颜色》的第一版。内封面有一张手写的便条,上面写着:\"感谢克里斯相信我能做到。谨致问候,特里。\"" #: lang/json/BOOK_from_json.py msgid "Tactical Handgun Digest" @@ -17113,7 +17195,7 @@ msgid "" "much from it." msgstr "" "这本精装书面向枪械发烧友,里面描述了手枪的发展历史,还有许多技术规格和使用技术。没有手枪方面的相关知识很难读懂,但一个有经验的手枪使用者可以从中学到很多东西。\n" -"(注:Fabrica d'Armi Pietro Beretta,伯莱塔军火制造厂商,一家在多个国家运营的私营意大利枪支制造公司。)" +"(注:Fabrica d'Armi Pietro Beretta,伯莱塔军火制造厂商,一家在多个国家运营的私营意大利枪支制造公司)" #: lang/json/BOOK_from_json.py msgid "America's Rifle" @@ -17223,7 +17305,7 @@ msgstr[0] "我画你猜" #: lang/json/BOOK_from_json.py msgid "" "A game where one draws an image, and the others attempt to guess what it is." -msgstr "一种游戏,一个人画图,另一个试着猜所画的什么。" +msgstr "一种游戏,一个人画图,另一个试着猜所画的是什么。" #: lang/json/BOOK_from_json.py msgid "Capitalism" @@ -17621,7 +17703,7 @@ msgid "" "that it absorbs very quickly through the skin, causing a garlic flavor in " "the mouth even if it touched your arm." msgstr "" -"二甲基亚砜(DMSO)是一种常见而重要的非质子溶剂,能溶解大量物质。它有一种奇怪的特性,它能很快被皮肤吸收,即使只是手臂碰到,嘴里也会有大蒜味。" +"二甲基亚砜(DMSO)是一种常见而重要的非质子溶剂,能溶解大量物质。它有一种奇怪的特性,它能很快被皮肤吸收,即使只是手臂碰到,嘴里也会有大蒜味。" #: lang/json/COMESTIBLE_from_json.py msgid "chloroform" @@ -17636,7 +17718,7 @@ msgid "" "resonance spectroscopy." msgstr "" "这种物质因为常用于非法麻醉他人而闻名,是一种很好的化学溶剂。尤其是,它在核磁共振波谱学中被大量使用。\n" -"“和乙醚一样强劲。”" +"\"和乙醚一样强劲。\"" #: lang/json/COMESTIBLE_from_json.py msgid "phenol" @@ -17653,7 +17735,7 @@ msgid "" "gloves." msgstr "" "这种有用的物质是一种有效的溶剂,具有广泛的应用。它可以用来制造大量的塑料聚合物,可以是一种消毒剂,可以去除油漆、分解环氧树脂,还可以像烧纸一样烧掉你的皮肤。\n" -"“碰触前请戴手套。”" +"\"碰触前请戴手套。\"" #: lang/json/COMESTIBLE_from_json.py msgid "glycerol" @@ -17680,7 +17762,7 @@ msgid "" "much different from cup noodle stock." msgstr "" "这是一种蛋白质和糖的预混合盐溶液。是用来让细菌吃的,但如果你饿到绝望的话,你也可以吃。\n" -"“这和杯面没什么不同。”" +"\"这和杯面没什么不同。\"" #: lang/json/COMESTIBLE_from_json.py msgid "agar" @@ -17747,7 +17829,7 @@ msgstr "一种口感柔顺细致,风情万种,有\"法国葡萄酒皇后\" #: lang/json/COMESTIBLE_from_json.py msgid "pinot noir" msgid_plural "pinot noir" -msgstr[0] "黑皮諾葡萄酒" +msgstr[0] "黑皮诺葡萄酒" #. ~ Description for pinot noir #: lang/json/COMESTIBLE_from_json.py @@ -18731,7 +18813,7 @@ msgid "" "all cooked out." msgstr "" "一块来自某种动物的肺脏。由于采用这种方式料理,它就是一大块不易嚼烂且枯燥乏味的灰褐色结缔组织。看上去并不比生的更好吃,但是起码寄生虫都被煮熟了。\n" -"“听我说,正宗的夫妻肺片里没有夫妻,也没有肺片”" +"\"听我说,正宗的夫妻肺片里没有夫妻,也没有肺片。\"" #: lang/json/COMESTIBLE_from_json.py msgid "raw liver" @@ -19422,6 +19504,18 @@ msgstr[0] "牛奶" msgid "Baby cow food, appropriated for adult humans. Spoils rapidly." msgstr "一份最古老的天然饮料之一,被誉为\"白色血液\"的牛奶,含有丰富的矿物质如钙、磷、铁、锌、铜、锰、钼,香浓纯正,但容易腐坏。" +#: lang/json/COMESTIBLE_from_json.py +msgid "reconstituted milk" +msgid_plural "reconstituted milk" +msgstr[0] "复原乳" + +#. ~ Description for reconstituted milk +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Baby cow food, appropriated for adult humans. This milk has been " +"reconstituted from a processed milk. Spoils rapidly." +msgstr "乳牛口粮,成人也可以食用。这种牛奶是从加工过的牛奶中重新调制而成的,腐坏得很迅速。" + #: lang/json/COMESTIBLE_from_json.py msgid "coffee milk" msgstr "牛奶咖啡" @@ -21375,7 +21469,7 @@ msgid "" "skin that have been fried until they are crispy and delicious." msgstr "" "一份在油中炸到酥脆可口的可食用的脂肪和皮。\n" -"\"酥脆的流油,俗称‘油吱了’。\"" +"\"酥脆得流油!\"" #: lang/json/COMESTIBLE_from_json.py msgid "glazed tenderloins" @@ -22161,7 +22255,7 @@ msgid "" "This hamburger contains more than the FDA allowable 4% human flesh content." msgstr "" "一个填充人肉并洒满调料的美味汉堡,食用方便、风味可口、营养全面,含有过量人肉成分,超过了美国食品和药物管理局规定的4%限量。\n" -"\"一位德国汉堡市(Hamburg)的良好市民。\"" +"\"一位德国汉堡市的良好市民。\"" #: lang/json/COMESTIBLE_from_json.py msgid "manwich" @@ -22208,7 +22302,7 @@ msgstr "熟人肉香肠" msgid "" "A hefty raw 'long-pork' sausage that has been cooked. It smells as " "delicious as humanly possible." -msgstr "一条很大的生香肠,可以食用了。真是一道“人气美食”啊。" +msgstr "一条很大的生香肠,可以食用了。真是一道\"人气美食\"啊。" #: lang/json/COMESTIBLE_from_json.py msgid "Mannbrat" @@ -22682,20 +22776,20 @@ msgstr "" "\"$m0k3 W33d 3v3ryd@y(每迗磕大痲)——!\"" #: lang/json/COMESTIBLE_from_json.py -msgid "pink tablet" -msgstr "摇头丸" +msgid "pink tab" +msgstr "邮票毒品" -#. ~ Use action activation_message for pink tablet. +#. ~ Use action activation_message for pink tab. #: lang/json/COMESTIBLE_from_json.py msgid "You eat the pink tablet." msgstr "你服用了摇头丸。" -#. ~ Description for pink tablet +#. ~ Description for pink tab #: lang/json/COMESTIBLE_from_json.py msgid "" -"Tiny pink candies shaped like hearts, already dosed with some sort of drug." -" Really only useful for entertainment. Will cause hallucinations." -msgstr "一些呈心形的粉红色糖果,一种消遣用毒品,会引起幻觉。" +"Tiny pink tabs resembling postage stamps, already dosed with some sort of " +"drug. Really only useful for entertainment. Will cause hallucinations." +msgstr "类似邮票的粉红色小标签,已经加入某种药物。只是用来娱乐,会引起幻觉。" #: lang/json/COMESTIBLE_from_json.py msgid "medical gauze" @@ -23934,8 +24028,8 @@ msgid "" "A malformed human leg. This would be gross to eat, and probably cause " "mutations." msgstr "" -"一条有着病态颜色的“人类生物”的畸形大腿,食用后会导致DNA变异。\n" -"“散发着令人作呕的味道。”" +"一条有着病态颜色的人类生物的畸形大腿,食用后会导致DNA变异。\n" +"\"散发着令人作呕的味道。\"" #: lang/json/COMESTIBLE_from_json.py msgid "tainted tornado" @@ -25042,6 +25136,15 @@ msgstr[0] "杏子" msgid "A smooth-skinned fruit, related to the peach." msgstr "一把杏子,表皮很光滑,有着味甜多汁的暗黄色果肉,是桃子的近亲。" +#: lang/json/COMESTIBLE_from_json.py +msgid "cactus pad" +msgstr "食用仙人掌" + +#. ~ Description for cactus pad +#: lang/json/COMESTIBLE_from_json.py +msgid "An edible pad of a cactus." +msgstr "一种可以吃的仙人掌,其肉质茎可以作为蔬菜食用。" + #: lang/json/COMESTIBLE_from_json.py msgid "barley" msgstr "大麦" @@ -26952,6 +27055,15 @@ msgid "" "hot dogs and hamburgers, or, if you're desperate, straight to your stomach." msgstr "这种脆脆、酸酸的泡菜由莴苣或是卷心菜制成,配上热狗和汉堡包就最完美了。不过紧要关头也可以直接吃下肚。" +#: lang/json/COMESTIBLE_from_json.py +msgid "nopalito" +msgstr "仙人掌嫩茎" + +#. ~ Description for nopalito +#: lang/json/COMESTIBLE_from_json.py +msgid "A less prickly version of cactus pads." +msgstr "少刺的食用仙人掌,吃起来更\"顺滑\"。" + #: lang/json/COMESTIBLE_from_json.py msgid "wheat cereal" msgstr "早餐燕麦" @@ -27285,7 +27397,7 @@ msgid "" "the best you can get nowadays. Besides, cake is cake!" msgstr "" "不加糖霜的普通巧克力蛋糕。没有什么特别之处,却是你现在能得到的最好的。\n" -"“蛋糕,就是蛋糕!”" +"\"蛋糕,就是蛋糕!\"" #: lang/json/COMESTIBLE_from_json.py msgid "nutriment" @@ -27334,7 +27446,7 @@ msgid "" "cooked to a crisp. A staple of fairgrounds everywhere." msgstr "" "这些面团已被切成形,撒上糖霜,然后炸得松脆。\n" -"“在游乐场里,到处都是它!”" +"\"在游乐场里,到处都有它!\"" #: lang/json/COMESTIBLE_from_json.py msgid "sundew" @@ -28439,8 +28551,8 @@ msgid "" "store a tiny amount of liquid. Great for jello shooters if 1mL is enough for" " a shot for you. Cool people call these \"eppies\"." msgstr "" -"这些塑料管有一个内置的密封盖,适合用来存放少量液体。一些很酷的人把它们叫做“eppies”。\n" -"“如果你能用果冻机每次只挤出1ml果冻的话,用它来装也可以。”" +"这些塑料管有一个内置的密封盖,适合用来存放少量液体。一些很酷的人把它们叫做\"eppies\"。\n" +"\"如果你能用果冻机每次只挤出1ml果冻的话,用它来装也可以。\"" #: lang/json/CONTAINER_from_json.py msgid "hip flask" @@ -29226,6 +29338,16 @@ msgstr[0] "虚假物品" msgid "Dummy item. If you see this, then something went wrong." msgstr "占位物品。" +#: lang/json/GENERIC_from_json.py +msgid "semi ground grains" +msgid_plural "semi ground grains" +msgstr[0] "谷物糊" + +#. ~ Description for semi ground grains +#: lang/json/GENERIC_from_json.py +msgid "A paste of half-finished milled grains, not yet flour." +msgstr "一种由碾碎的谷物制成的糊状物,还不是面粉。" + #: lang/json/GENERIC_from_json.py msgid "smoldering embers" msgid_plural "smoldering embers" @@ -29293,8 +29415,8 @@ msgstr "靠近火源" #. ~ Description for wind #. ~ Description for a smoking device and a source of flame #. ~ Description for abstract map -#. ~ Description for weapon #. ~ Description for seeing this is a bug +#. ~ Description for weapon #: lang/json/GENERIC_from_json.py lang/json/GENERIC_from_json.py #: lang/json/TOOL_from_json.py lang/json/TOOL_from_json.py #: lang/json/skill_from_json.py @@ -31450,6 +31572,18 @@ msgid "" " vehicle. Combine it with a wheel to get a mountable piece." msgstr "可以存放备胎的托架,用于将备胎固定在车辆后面。 将它与车轮组合可得到待安装的载具部件。" +#: lang/json/GENERIC_from_json.py +msgid "welding component kit" +msgid_plural "welding component kits" +msgstr[0] "焊接组件套" + +#. ~ Description for welding component kit +#: lang/json/GENERIC_from_json.py +msgid "" +"A set of components useful for constructing a full-featured welding station," +" complete with soldering capability." +msgstr "一套用于建造全功能焊接站的组件,具有焊接功能。" + #: lang/json/GENERIC_from_json.py msgid "canister grenade" msgid_plural "canister grenades" @@ -34259,6 +34393,18 @@ msgid "" "cargo." msgstr "一个有着运载货物用的绳索和附着点的重型框架。" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "floor trunk" +msgid_plural "floor trunks" +msgstr[0] "地板行李箱" + +#. ~ Description for floor trunk +#: lang/json/GENERIC_from_json.py +msgid "" +"A section of flooring with a cargo-space beneath, and a hinged door for " +"access." +msgstr "地板的一部分,下面的空间可以存放货物,通过一扇铰链门存取物品。" + #: lang/json/GENERIC_from_json.py msgid "livestock carrier" msgid_plural "livestock carriers" @@ -34334,11 +34480,11 @@ msgstr[0] "车载UPS充电器" msgid "" "A Unified Power System recharging station designed to operate on vehicle " "power. Once installed in a vehicle storage space and turned on from a " -"dashboard or electronics control unit, it will slowly charge all tools with " -"rechargeable batteries in that space. The system can only be installed in " -"existing storage compartments." +"dashboard or electronics control unit, it will slowly charge all UPS " +"compatible tools and battery cells in that space. The system can only be " +"installed in existing storage compartments." msgstr "" -"一个使用车载能源的UPS感应充电系统。将其安装在车辆储物箱并开启后,它将缓慢的对箱子中所有可充电的工具进行充电。该系统仅能安装在已有的储物箱里。" +"一个使用车载能源的UPS感应充电系统。将其安装在车辆储物箱并通过仪表板或电子控制单元开启后,它将缓慢的对箱子中所有UPS兼容工具和电池单元进行充电。该系统仅能安装在已存在的储物箱里。" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py #: lang/json/vehicle_part_from_json.py @@ -35747,6 +35893,16 @@ msgstr[0] "9x18mm 弹壳" msgid "An empty casing from a 9x18mm round." msgstr "9x18mm 子弹的空弹壳。" +#: lang/json/GENERIC_from_json.py +msgid ".380 ACP casing" +msgid_plural ".380 ACP casings" +msgstr[0] ".380 ACP弹弹壳" + +#. ~ Description for .380 ACP casing +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a .380 ACP round." +msgstr ".380 ACP子弹的空弹壳。" + #: lang/json/GENERIC_from_json.py msgid "shotgun hull" msgid_plural "shotgun hulls" @@ -36071,7 +36227,7 @@ msgid "" "gutter." msgstr "" "这是一个很小的塑料阀门,能排空你脑子里的水。\n" -"“别傻笑了。”" +"\"别傻笑了。\"" #: lang/json/GENERIC_from_json.py msgid "test tube rack" @@ -36595,7 +36751,7 @@ msgid "" "needs! It's just as clunky and awkward as the thing it's spinning off, and " "still requires a vehicle battery to function." msgstr "" -"由最畅销的“厨房加工伴侣”的制造商出品的“金属锻造伴侣”,能满足您所有金属加工、点火和焊接的需求!它和它的加工物一样沉重笨拙,需要连接到车载电源后才能工作。" +"由最畅销的\"厨房加工伴侣\"的制造商出品的\"金属锻造伴侣\",能满足您所有金属加工、点火和焊接的需求!它和它的加工物一样沉重笨拙,需要连接到车载电源后才能工作。" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "KitchenMaster cooking buddy" @@ -36611,7 +36767,7 @@ msgid "" "guess, but you can mount it on a vehicle to make use of it." msgstr "" "这个大型的一体式工作站拥有厨房加工伴侣的功能,还额外配备了通风橱和化学材料。你可以把它安装在车辆上使用。\n" -"“不想当化学家的厨师不是好厨师!”" +"\"不想当化学家的厨师不是好厨师!\"" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "cooking rig" @@ -36653,7 +36809,7 @@ msgid "" "It has some real heft to it; perfect for the bakers of the apocalypse." msgstr "" "擀面杖通常用来压平面团,但它被重新改造成了武器,带刺的铁丝增强了它的重量和挥动时的威力。\n" -"“大灾变后的面包师傅的完美武器。”" +"\"大灾变后的面包师傅的完美武器。\"" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "hauling space" @@ -39021,6 +39177,86 @@ msgstr "神器" msgid "ARMOR" msgstr "装备" +#: lang/json/MAGAZINE_from_json.py +msgid "ultra-light battery cell" +msgstr "蓄电池(微型)" + +#. ~ Description for ultra-light battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a light battery cell designed for small size over everything else. " +"It retains its universal compatibility, though." +msgstr "这是一款轻巧的蓄电池,专为小尺寸设备而设计。但它依然保留了通用兼容性。" + +#: lang/json/MAGAZINE_from_json.py +msgid "light battery cell" +msgstr "蓄电池(轻型)" + +#. ~ Description for light battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a light battery cell, universally compatible with all kinds of small" +" devices." +msgstr "这是一种轻型蓄电池,兼容于各种小型设备。" + +#: lang/json/MAGAZINE_from_json.py +msgid "light battery cell (high-capacity)" +msgid_plural "light battery cells (high-capacity)" +msgstr[0] "蓄电池(轻型+)" + +#. ~ Description for light battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity light battery cell, universally compatible with all " +"kinds of personal electronic devices." +msgstr "这是一种高容量的轻型蓄电池,兼容于各种小型设备。" + +#: lang/json/MAGAZINE_from_json.py +msgid "medium battery cell" +msgstr "蓄电池(中型)" + +#. ~ Description for medium battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a medium battery cell, universally compatible with all kinds of " +"appliances and power tools." +msgstr "这是一种中型蓄电池,兼容于各种电器和电动工具。" + +#: lang/json/MAGAZINE_from_json.py +msgid "medium battery cell (high-capacity)" +msgid_plural "medium battery cells (high-capacity)" +msgstr[0] "蓄电池(中型+)" + +#. ~ Description for medium battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity medium battery cell, universally compatible with all" +" kinds of appliances and power tools." +msgstr "这是一种高容量的中型蓄电池,兼容于各种电器和电动工具。" + +#: lang/json/MAGAZINE_from_json.py +msgid "heavy battery cell" +msgstr "蓄电池(重型)" + +#. ~ Description for heavy battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a heavy battery cell, universally compatible with all kinds of " +"industrial-grade equipment and large tools." +msgstr "这是一种重型蓄电池,兼容于各种工业级设备和大型电动工具。" + +#: lang/json/MAGAZINE_from_json.py +msgid "heavy battery cell (high-capacity)" +msgid_plural "heavy battery cells (high-capacity)" +msgstr[0] "蓄电池(重型+)" + +#. ~ Description for heavy battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity heavy battery cell, universally compatible with all " +"kinds of industrial-grade equipment and large tools." +msgstr "这是一种高容量的重型蓄电池,兼容于各种工业级设备和大型电动工具。" + #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "fuel bunker" msgstr "燃料舱" @@ -39167,6 +39403,15 @@ msgstr "S&W 22A 弹匣" msgid "A standard capacity magazine for the popular S&W 22A pistol." msgstr "一个标准容量的弹匣,可用于流行的 S&W 22A 手枪。" +#: lang/json/MAGAZINE_from_json.py +msgid "Jennings J-22 magazine" +msgstr "詹宁斯J-22手枪弹匣" + +#. ~ Description for Jennings J-22 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A cheap 6-round steel box magazine for the Jennings J-22." +msgstr "一个廉价的6发钢制盒式弹匣,可用于詹宁斯J-22手枪。" + #: lang/json/MAGAZINE_from_json.py msgid "LW-5 speedloader" msgstr "快速装弹器(LW-5)" @@ -39437,6 +39682,15 @@ msgstr "Skorpion Vz. 61 \"蝎\"式微冲弹匣" msgid "A standard 20-round magazine for the Skorpion Vz. 61, in .32 ACP." msgstr "一个标准的20发弹匣,可用于Skorpion Vz. 61 \"蝎\"式微冲,使用 .32 ACP 弹。" +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec P32 magazine" +msgstr "Kel-Tec P32手枪弹匣" + +#. ~ Description for Kel-Tec P32 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 7-round steel box magazine for the Kel-Tec P32." +msgstr "一个标准的7发钢制盒式弹匣,可用于Kel-Tec P32袖珍手枪。" + #: lang/json/MAGAZINE_from_json.py msgid "P226 magazine .357 SIG" msgstr ".357 西格 P226 弹匣" @@ -39479,6 +39733,43 @@ msgid "" "revolver." msgstr "这种快速装弹器能装载5发.38口径子弹,为兼容的左轮手枪快速装弹。" +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec P3AT magazine" +msgstr "Kel-Tec P3AT手枪弹匣" + +#. ~ Description for Kel-Tec P3AT magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 6-round steel box magazine for the Kel-Tec P3AT." +msgstr "一个标准的6发钢制盒式弹匣,可用于Kel-Tec P3AT袖珍手枪。" + +#: lang/json/MAGAZINE_from_json.py +msgid "FN 1910 magazine" +msgstr "FN 1910手枪弹匣" + +#. ~ Description for FN 1910 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "" +"A standard 6-round steel box magazine for the FN 1910. It looks a bit old." +msgstr "一个标准的6发钢制盒式弹匣,可用于勃朗宁FN 1910手枪。这个弹匣看起来有点旧。" + +#: lang/json/MAGAZINE_from_json.py +msgid "Ruger LCP magazine" +msgstr "鲁格 LCP 弹匣" + +#. ~ Description for Ruger LCP magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 6-round capacity magazine for the Ruger LCP pistol." +msgstr "一个标准的6发容量弹匣,可用于鲁格 LCP 手枪。" + +#: lang/json/MAGAZINE_from_json.py +msgid "MAC-11 magazine" +msgstr "MAC-11 冲锋枪弹匣" + +#. ~ Description for MAC-11 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A cheap 32-round steel box magazine for use with the MAC-11 SMG." +msgstr "一个标准的32发钢制盒式弹匣,可用于MAC-11冲锋枪。" + #: lang/json/MAGAZINE_from_json.py msgid ".40 6-round speedloader" msgstr "6发快速装弹器(.40口径)" @@ -40089,6 +40380,15 @@ msgstr "UZI冲锋枪弹匣" msgid "A standard 32-round steel box magazine for use with the UZI SMG." msgstr "一个标准的32发钢制盒式弹匣,可用于Uzi 9mm冲锋枪。" +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec PF-9 magazine" +msgstr "Kel Tec PF-9手枪弹匣" + +#. ~ Description for Kel-Tec PF-9 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 7-round steel box magazine for the Kel-Tec PF-9." +msgstr "一个标准的7发钢制盒式弹匣,可用于Kel-Tec PF-9手枪。" + #: lang/json/MAGAZINE_from_json.py msgid "Makarov PM magazine" msgstr "马卡洛夫PM手枪弹匣" @@ -40786,6 +41086,15 @@ msgid "" "inside." msgstr "加入一个可能刷新出电动模型怪物的破产披萨店建筑。" +#: lang/json/MOD_INFO_from_json.py +msgid "Battery Migration for Existing Games" +msgstr "游戏现有的电池迁移" + +#. ~ Description for Battery Migration for Existing Games +#: lang/json/MOD_INFO_from_json.py +msgid "Allows you to reload and unload battery cells with legacy batteries." +msgstr "允许你使用旧电池重新加载和清空蓄电池。" + #: lang/json/MOD_INFO_from_json.py msgid "Boats" msgstr "船只" @@ -41699,7 +42008,7 @@ msgid "" "trapped in this grotesque body. With enough surgical skills one might be " "able to give them back some humanity. If only they cared..." msgstr "" -"与零件、电缆融在一起的“人”,虽然眼睛空洞,但转瞬即逝的痛苦表情能让人想起被困在这具怪诞身体里的曾经是人类。掌握足够的外科手术技巧,就可以为他们找回一些人性,但愿他们在乎……" +"与零件、电缆融在一起的\"人\",虽然眼睛空洞,但转瞬即逝的痛苦表情能让人想起被困在这具怪诞身体里的曾经是人类。掌握足够的外科手术技巧,就可以为他们找回一些人性,但愿他们在乎……" #: lang/json/MONSTER_from_json.py msgid "charred nightmare" @@ -43327,7 +43636,7 @@ msgid "" "paint marks a low-force variant - *comparatively* low-force, anyways - " "typically deployed as guards after an area has been cleared." msgstr "" -"诺斯罗普公司出品,该型号的派遣者是为控制大规模暴乱而设计的,它携带并部署各种类型的自爆无人机,在其遭到破坏时,体内一个小型的机载电磁脉冲发射器将会自毁。明亮的绿色和黄色标记意味着这是一种弱化型号(相对而言“弱化”),通常在区域被清理后作为警卫部署。" +"诺斯罗普公司出品,该型号的派遣者是为控制大规模暴乱而设计的,它携带并部署各种类型的自爆无人机,在其遭到破坏时,体内一个小型的机载电磁脉冲发射器将会自毁。明亮的绿色和黄色标记意味着这是一种弱化型号(相对而言\"弱化\"),通常在区域被清理后作为警卫部署。" #: lang/json/MONSTER_from_json.py msgid "NR-V05-M Dispatch" @@ -44493,7 +44802,7 @@ msgstr "土拨鼠" msgid "" "Also known as the woodchuck, this ground squirrel has no actual talent for " "chucking wood." -msgstr "被称为土拨鼠,这只生活在地面上的松鼠科动物喜欢掘土,神出鬼没,会“啊啊啊”的叫。" +msgstr "被称为土拨鼠,这只生活在地面上的松鼠科动物喜欢掘土,神出鬼没,会\"啊啊啊\"的叫。" #: lang/json/MONSTER_from_json.py msgid "jackrabbit" @@ -45258,7 +45567,7 @@ msgid "" "\"SECURITY\" emblazoned across the front. It looks like the guard was quite" " physically fit before its death; it moves quickly and powerfully, albeit " "clumsily." -msgstr "一只摇摇欲坠的丧尸,穿着灰色制服和防弹背心,前面印有“保全”字样。看起来这位警卫死前身体健康,移动步伐迅速有力,尽管动作笨拙。" +msgstr "一只摇摇欲坠的丧尸,穿着灰色制服和防弹背心,前面印有\"保全\"字样。看起来这位警卫死前身体健康,移动步伐迅速有力,尽管动作笨拙。" #: lang/json/MONSTER_from_json.py msgid "zombie soldier" @@ -46210,8 +46519,8 @@ msgstr "" msgid "guardin gnome" msgstr "园艺机器人" -#. ~ Description for garden gnome #. ~ Description for guardin gnome +#. ~ Description for garden gnome #: lang/json/MONSTER_from_json.py lang/json/furniture_from_json.py msgid "A normal and completely harmless garden gnome." msgstr "一个园艺机器人,安静而且毫无威胁。" @@ -47150,19 +47459,6 @@ msgid "" "converting it to use power off the plutonium cell instead." msgstr "一块经过改装能够与普通电池插头连接的钚电池。你可以将它连接到任何使用普通电池供电的设备,将其改装成为使用钚电池供电。" -#: lang/json/TOOLMOD_from_json.py -msgid "extra battery mod" -msgid_plural "extra battery mods" -msgstr[0] "外接电池组" - -#. ~ Description for extra battery mod -#: lang/json/TOOLMOD_from_json.py -msgid "" -"This is a homemade battery compartment made with spare electronics. With " -"enough electronics skill, you could attach this to any electronic tool to " -"double the amount of batteries it can hold." -msgstr "这是一个用多余的电子零件自制的电池仓。如果你有足够的电子技能,你可以把它附加在任何使用电池的工具上,使它们的电池容量翻倍。" - #: lang/json/TOOLMOD_from_json.py msgid "UPS conversion mod" msgid_plural "UPS conversion mods" @@ -47203,6 +47499,42 @@ msgid "" "storage batteries in regular tools." msgstr "一个电池仓改装模组,允许将普通工具改装成使用汽车电池及小型蓄电池供电。" +#: lang/json/TOOLMOD_from_json.py +msgid "light battery mod" +msgid_plural "light battery mods" +msgstr[0] "轻型电池模组" + +#. ~ Description for light battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of light batteries in tools " +"that otherwise could not." +msgstr "一种电池仓改装模组,允许将普通工具改装成使用轻型蓄电池供电。" + +#: lang/json/TOOLMOD_from_json.py +msgid "medium battery mod" +msgid_plural "medium battery mods" +msgstr[0] "中型电池模组" + +#. ~ Description for medium battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of medium batteries in tools " +"that otherwise could not." +msgstr "一种电池仓改装模组,允许将普通工具改装成使用中型蓄电池供电。" + +#: lang/json/TOOLMOD_from_json.py +msgid "heavy battery mod" +msgid_plural "heavy battery mods" +msgstr[0] "重型电池模组" + +#. ~ Description for heavy battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of heavy batteries in tools " +"that otherwise could not." +msgstr "一种电池仓改装模组,允许将普通工具改装成使用重型蓄电池供电。" + #: lang/json/TOOLMOD_from_json.py msgid "cybernetic power port mod" msgid_plural "cybernetic power port mods" @@ -49295,6 +49627,30 @@ msgstr "" "一块非常沉重形状奇特带有锥形突出体的定型钢锭。在大多数金属加工制造流程中都有用到。\n" "\"在卡通片中通常作为陷阱砸坏人的头。\"" +#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +msgid "water mill" +msgid_plural "water mills" +msgstr[0] "水力碾磨机" + +#. ~ Description for water mill +#: lang/json/TOOL_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour. Can" +" be placed via the construction menu." +msgstr "小型水动力磨,可将含淀粉的物品加工成面粉。通过建造菜单放置。" + +#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +msgid "wind mill" +msgid_plural "wind mills" +msgstr[0] "风力碾磨机" + +#. ~ Description for wind mill +#: lang/json/TOOL_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour. Can " +"be placed via the construction menu." +msgstr "小型风动力磨,可将含淀粉的物品加工成面粉。通过建造菜单放置。" + #: lang/json/TOOL_from_json.py msgid "wood axe" msgid_plural "wood axes" @@ -49886,7 +50242,7 @@ msgid "" "cheese!" msgstr "" "眼球机器人不以为然地发出哔哔声,并将相机聚焦在你的脸上。\n" -"“茄子!”" +"\"茄子!\"" #. ~ Description for inactive eyebot #: lang/json/TOOL_from_json.py @@ -52331,22 +52687,10 @@ msgstr[0] "小彩灯(开)" #. ~ Description for lightstrip #: lang/json/TOOL_from_json.py msgid "" -"This is a light-emitting circuit wired directly to some batteries. It " -"provides some weak light and can't be turned off. When the batteries die, " -"you'll need to scrap it to recover the components that are reusable." -msgstr "一个能发光的简单电路,连接着电池。它正散发微弱的光芒,而且无法关闭。当电量耗尽后,可以被拆解来回收部分部件。" - -#: lang/json/TOOL_from_json.py -msgid "lightstrip (unpowered)" -msgid_plural "lightstrips (unpowered)" -msgstr[0] "小彩灯(未供电)" - -#. ~ Description for lightstrip (unpowered) -#: lang/json/TOOL_from_json.py -msgid "" -"This is a unpowered lightstrip. You could connect it to batteries to get a " -"light-emitting circuit." -msgstr "一条未供电的小彩灯,将它连接到电池可获得一个会发光的电路。" +"This is a light-emitting circuit that has been wired directly to a battery." +" It provides some weak light and can't be turned off until the battery " +"dies." +msgstr "这是一个直接连接着电池的简单发光电路。它散发着微弱的光芒,直到电池耗尽后才会熄灭。" #: lang/json/TOOL_from_json.py msgid "lightstrip (inactive)" @@ -52361,11 +52705,9 @@ msgstr "你使用了一次性小彩灯。" #. ~ Description for lightstrip (inactive) #: lang/json/TOOL_from_json.py msgid "" -"This is a light-emitting circuit wired directly to some batteries. It will " -"provide some weak light once activated and can't be turned off. When the " -"batteries die, you'll need to scrap it to recover the components that are " -"reusable." -msgstr "一个能发光的简单电路,连接着电池。点亮后会散发出微弱的光芒,但无法关闭。当电量耗尽后,可以被拆解来回收部分部件。" +"This is a light-emitting circuit that can be wired directly to a battery. " +"It provides some weak light and can't be turned off until the battery dies." +msgstr "这是一个可以直接连接电池的简单发光电路。它散发着微弱的光芒,直到电池耗尽后才会熄灭。" #: lang/json/TOOL_from_json.py msgid "lobotomizer" @@ -52883,9 +53225,14 @@ msgid "" "of reactivity. Don't try to breathe it." msgstr "" "这是一个压缩氮气罐。氮气化学性质稳定,非常有用。\n" -"“警告:禁止口鼻接触。”" +"\"警告:禁止口鼻接触。\"" -#. ~ Description for nitrogen tank +#: lang/json/TOOL_from_json.py +msgid "hydrogen tank" +msgid_plural "hydrogen tanks" +msgstr[0] "氢气罐" + +#. ~ Description for hydrogen tank #: lang/json/TOOL_from_json.py msgid "" "This is a tank of compressed hydrogen gas. If you need to make water from " @@ -53507,6 +53854,11 @@ msgid "" "uses your tailoring skill." msgstr "一个装有各种针线和纹理工具的小缝纫盒。使用缝纫工具可以修复或者加固各类服饰,这需要用到你的缝纫技能。" +#: lang/json/TOOL_from_json.py +msgid "anesthesia kit" +msgid_plural "anesthesia kits" +msgstr[0] "麻醉工具箱" + #: lang/json/TOOL_from_json.py msgid "shaving kit" msgid_plural "shaving kits" @@ -55544,7 +55896,7 @@ msgid "" "but salvage." msgstr "" "这是一组塑料托盘、电极和电源,用于通过含有固体凝胶的液体溶液产生电压梯度。然后,像蛋白质和DNA之类的物质会根据电荷和大小在凝胶上分离。\n" -"“现在这只是可回收垃圾。”" +"\"现在这只是可回收垃圾。\"" #: lang/json/TOOL_from_json.py msgid "microcentrifuge" @@ -58182,6 +58534,10 @@ msgstr ".357 西格弹" msgid "9x18mm" msgstr "9x18mm 弹" +#: lang/json/ammunition_type_from_json.py +msgid ".380 ACP" +msgstr ".380 ACP弹" + #: lang/json/ammunition_type_from_json.py msgid ".38" msgstr ".38 弹" @@ -59067,6 +59423,14 @@ msgstr "你的身体经过手术被植入了一套先进的压电式血液透析 msgid "Railgun" msgstr "电磁炮" +#. ~ Description for Railgun +#: lang/json/bionic_from_json.py +msgid "" +"EM field generators in your arms double the range and damage of thrown iron " +"and steel objects at a cost of 1 power per throw, causing them to leave a " +"trail of electricity that can cause additional damage." +msgstr "你手臂上的电磁发生器,可以在你投掷钢铁物品时,消耗1能量来产生双倍的射程和威力,并且产生额外的伤害。" + #: lang/json/bionic_from_json.py msgid "Fingertip Razors" msgstr "指尖剃刀" @@ -60136,6 +60500,14 @@ msgstr "建造河桥" msgid "Build River Dock/Shallow Bridge" msgstr "建造码头/浅桥" +#: lang/json/construction_from_json.py +msgid "Place Water Mill" +msgstr "放置水力碾磨机" + +#: lang/json/construction_from_json.py +msgid "Place Wind Mill" +msgstr "放置风力碾磨机" + #: lang/json/construction_from_json.py msgid "Build Shallow Temporary Bridge" msgstr "建造浅的临时桥梁" @@ -60247,7 +60619,7 @@ msgstr "转换冰箱电源" msgid "" "Converts a fridge to run off of vehicle power. You can 'e'xamine it " "afterwards to take it down for mounting." -msgstr "将冰箱改造为车载电源供能。你能按‘E’把它取下来安装。" +msgstr "将冰箱改造为车载电源供能。你能按'E'把它取下来安装。" #: lang/json/construction_from_json.py msgid "Convert Vehicle Fridge to Freezer" @@ -60257,7 +60629,7 @@ msgstr "将车载冰箱转换为冰柜" msgid "" "Further modifies a converted fridge to function as a freezer. You can " "'e'xamine it afterwards to take it down for mounting." -msgstr "进一步改装后的冰箱,使其起到冷藏的作用。你可以按‘E’把它取下来安装。" +msgstr "进一步改装后的冰箱,使其起到冷藏的作用。你可以按'E'把它取下来安装。" #: lang/json/construction_from_json.py msgid "Build Hydroponics, Beans" @@ -65184,6 +65556,40 @@ msgid "" "deconstructed and folded for easy transportation." msgstr "一个金属屠宰架子,可以将清理内脏后的胴体悬挂在半空中。它能够被拆除并折叠起来便于携带。" +#. ~ Description for wind mill +#: lang/json/furniture_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour." +msgstr "小型风动力磨,可以把含淀粉的物品加工成面粉。" + +#: lang/json/furniture_from_json.py +msgid "active wind mill" +msgstr "激活风力碾磨机" + +#. ~ Description for active wind mill +#: lang/json/furniture_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour. Its" +" brake has been removed and it is turning." +msgstr "小型风动力磨,可将含淀粉的物品加工成面粉。它的制动装置已经移除,正在转动。" + +#. ~ Description for water mill +#: lang/json/furniture_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour." +msgstr "小型水动力磨,可以把含淀粉的物品加工成面粉。" + +#: lang/json/furniture_from_json.py +msgid "active water mill" +msgstr "激活水力碾磨机" + +#. ~ Description for active water mill +#: lang/json/furniture_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour. " +"Its brake has been removed and it is turning." +msgstr "小型水动力磨,可将含淀粉的物品加工成面粉。它的制动装置已经移除,正在转动。" + #. ~ Description for tourist table #: lang/json/furniture_from_json.py msgid "Small metal folding table, ideal for off-road trips into the wild." @@ -65531,8 +65937,8 @@ msgid "" "will store stuff at -80 degrees celsius. Don't lick the metal on the " "inside." msgstr "" -"当“寒冷”还不能满足你时,看看什么叫“深寒”吧。它能以零下80摄氏度的低温储存物品。\n" -"“警告:请勿用舌头舔舐。”" +"当\"寒冷\"还不能满足你时,看看什么叫\"深寒\"吧。它能以零下80摄氏度的低温储存物品。\n" +"\"警告:请勿用舌头舔舐。\"" #: lang/json/furniture_from_json.py msgid "emergency wash station" @@ -65621,7 +66027,7 @@ msgid "" "very tiny things look like. Amazing for taking gross pictures of bugs." msgstr "" "一套巨大的设备,利用表面的电子反射原理来观察微小物体。\n" -"“为虫子的电镜照片而惊叹吧!”" +"\"为虫子的电镜照片而惊叹吧!\"" #: lang/json/furniture_from_json.py msgid "CT scanner" @@ -65680,8 +66086,7 @@ msgid "" "If your kidneys don't work, this is a large and inconvenient machine that " "can do the job instead! It's super useful in the apocalypse, especially " "with how it requires power, tons of supplies, and a trained operator." -msgstr "" -"如果你的肾不好使,这是一个大而笨拙的机器,可以代替肾的功能!它在大灾变中非常“有用”,因为它需要电力、大量的物资和训练有素的操作员才能工作。" +msgstr "如果你的肾不好使,这是一个大而笨拙的机器,可以代替肾的功能!它在大灾变中非常\"有用\",因为它需要电力、大量的物资和训练有素的操作员才能工作。" #: lang/json/furniture_from_json.py msgid "medical ventilator" @@ -65695,7 +66100,7 @@ msgid "" "trolley." msgstr "" "医生救人时常常用到,看起来就像手推车上的几个盒子。\n" -"“人只要保持呼吸就不会死!”" +"\"人只要保持呼吸就不会死!\"" #: lang/json/furniture_from_json.py msgid "privacy curtain" @@ -66231,7 +66636,8 @@ msgid "" msgstr "一个小巧的单手弩。由于其体型小,故威力及拉力均不高,不过相当适用于猎杀小动物。手弩射出的弩矢不易损坏,有很高的几率回收。" #: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py src/item.cpp +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "pistol" msgstr "手枪" @@ -66627,6 +67033,11 @@ msgid "base pistol" msgid_plural "base pistols" msgstr[0] "基础手枪" +#: lang/json/gun_from_json.py +msgid "backup pistol" +msgid_plural "backup pistols" +msgstr[0] "支援型袖珍手枪" + #: lang/json/gun_from_json.py src/item_factory.cpp msgid "revolver" msgid_plural "revolvers" @@ -66825,6 +67236,22 @@ msgstr[0] "S&W 22A 手枪" msgid "A popular .22 pistol." msgstr "一支流行的.22口径手枪,通常用于自我防卫。" +#: lang/json/gun_from_json.py +msgid "Jennings J-22" +msgid_plural "Jennings J-22s" +msgstr[0] "詹宁斯J-22手枪" + +#: lang/json/gun_from_json.py +msgid "" +"One of the quintessential 'saturday night specials', the Jennings J-22 was " +"very affordably priced with its injection molded zinc slide and frame. " +"Intended to fill the void left after small pocket pistols were banned from " +"import, these were more commonly used by criminals unfazed by their glaring " +"safety issues." +msgstr "" +"詹宁斯J-" +"22手枪作为一种典型的\"小型廉价手枪\",其价格十分经济实惠。为了填补小型袖珍手枪被禁止进口后的空白市场,这些手枪常被不在意其安全性的罪犯使用。" + #: lang/json/gun_from_json.py msgid "Remington ACR" msgid_plural "Remington ACRs" @@ -67368,7 +67795,7 @@ msgstr "" #: lang/json/gun_from_json.py msgid "SIG Sauer P230" msgid_plural "SIG Sauer P230" -msgstr[0] "西格&绍尔 P230 手枪" +msgstr[0] "西格&绍尔P230手枪" #: lang/json/gun_from_json.py msgid "" @@ -67398,6 +67825,19 @@ msgid "" " but you might find this little gun still useful." msgstr "20世纪最著名的手枪之一。虽然你不是詹姆斯邦德,但你仍会发现这把枪还是有用的。" +#: lang/json/gun_from_json.py +msgid "Kel-Tec P32" +msgid_plural "Kel-Tec P32s" +msgstr[0] "Kel-Tec P32s冲锋枪" + +#: lang/json/gun_from_json.py +msgid "" +"One of Kel-tec's oldest designs, the P32 is a popular option for deep " +"concealment and backup usage. Despite its extreme light weight and small " +"size, its .32 ACP chambering makes for good handling and recoil control." +msgstr "" +"作为凯尔科技数控工业公司最古老的设计之一,P32常常在秘密渗透和火力支援时使用。尽管它的重量非常轻,体积也很小,但它的.32ACP口径使它的后坐力很小,易于控制。" + #: lang/json/gun_from_json.py msgid "SIG P226" msgid_plural "SIG P226s" @@ -67407,7 +67847,7 @@ msgstr[0] "西格&绍尔P226手枪" msgid "" "A SIG Sauer P226 chambered for .357 SIG. The P226 is a DA/SA, short-recoil " "operated semi-automatic pistol." -msgstr "使用.357 西格弹的西格&绍尔 P226 手枪。P226手枪是一把采用单/双动操作扳机的短后座式半自动手枪。" +msgstr "使用.357 西格弹的西格&绍尔P226手枪。P226手枪是一把采用单/双动操作扳机的短后座式半自动手枪。" #: lang/json/gun_from_json.py msgid "Colt M1861 Navy" @@ -67482,6 +67922,65 @@ msgid "" " high-quality, durable materials." msgstr "这款.38口径的手枪在设计时极力强调各个部件的安全和耐用性,在制造时更是选用了高质量、有保障的新型材料。" +#: lang/json/gun_from_json.py +msgid "MAC-11" +msgid_plural "MAC-11s" +msgstr[0] "MAC-11冲锋枪" + +#: lang/json/gun_from_json.py +msgid "" +"A lesser known variant of the MAC-10, this machine pistol is chambered in " +".380 ACP for a smaller overall size while remaining inherently subsonic. " +"Smaller in almost every dimension, this inexpensive automatic weapon was " +"declared 'fit only for combat in a phone booth' due to its low weight and " +"absurd fire rate ranging from 1200 to 1400 rounds per minute." +msgstr "" +"这款冲锋枪是Mac-10的一个鲜为人知的变种,发射0.380 " +"ACP弹药,整体尺寸较小,子弹初速可达到亚音速。这种廉价的自动武器几乎所有尺寸都较小,由于其重量轻,射速高达每分钟1200到1400发,因此被称为\"仅适用于电话亭中的战斗\"。" + +#: lang/json/gun_from_json.py +msgid "Kel-Tec P3AT" +msgid_plural "Kel-Tec P3ATs" +msgstr[0] "Kel-Tec P3AT手枪" + +#: lang/json/gun_from_json.py +msgid "" +"Essentially a slightly scaled up Kel-tec P32 in .380 ACP, the ever popular " +"P3AT offers better ballistics in a small, concealable lightweight package. " +"Handling leaves something to be desired due to snappier recoil and " +"diminuitive controls." +msgstr "" +"基本上是一个稍微放大的Kel-tec P32手枪,装配.380 acp弹药。P3AT手枪体积极小,可轻易隐藏在口袋中,曾经非常流行,弹道更稳定。" + +#: lang/json/gun_from_json.py +msgid "FN 1910 .380" +msgid_plural "FN 1910 .380s" +msgstr[0] "FN勃朗宁M1910手枪" + +#: lang/json/gun_from_json.py +msgid "" +"Made infamous in Sarajevo in 1914, the FN1910 was a popular pocket pistol, " +"albeit in .32 ACP. Collectors value the .380 model for its notoriety and " +"more modern terminal performance. If such a humble firearm could start a " +"world war, could it perhaps protect you from the undead?" +msgstr "" +"FN勃朗宁M1910手枪,因为1914年萨拉热窝事件而声名狼藉,是一种流行的袖珍手枪,虽然这支是使用0.32ACP弹药的。收藏家们更看重.380口径的型号,因为它的恶名和更现代的性能。如果这样一支简陋的火器能发动一场世界大战,它能保护你免受不死族的伤害吗?" + +#: lang/json/gun_from_json.py +msgid "Ruger LCP" +msgid_plural "Ruger LCPs" +msgstr[0] "鲁格 LCP 手枪" + +#: lang/json/gun_from_json.py +msgid "" +"One of the best selling modern day 'pocket pistol's, the LCP is an " +"affordable, polymer framed pistol chambered in .380 ACP. Despite the " +"round's relatively low power, the pistol's low weight and short sight radius" +" make for a moderately poor handling pistol." +msgstr "" +"作为当今最畅销的袖珍手枪之一,鲁格 LCP " +"手枪是一款价格合理的手枪,聚合物枪身,装配0.380口径弹药。子弹的威力相对较低,手枪的重量轻,瞄准基线短,使得手枪的操控性较差。" + #: lang/json/gun_from_json.py msgid "Glock 22" msgid_plural "Glock 22" @@ -68525,6 +69024,21 @@ msgid "" "and military." msgstr "虽然最初设计时是面向所有等级的射手,格洛克17型手枪主要客户是各类执法部门及军方。" +#: lang/json/gun_from_json.py +msgid "Kel-Tec PF-9" +msgid_plural "Kel-Tec PF-9s" +msgstr[0] "Kel-Tec PF-9手枪" + +#: lang/json/gun_from_json.py +msgid "" +"The Kel-Tec PF-9 remains one of the most popular backup pistols due to its " +"history of reliability, affordability, and concealability. Chambered in " +"9x19mm, recoil is best described as unpleasant, and follow up shots are " +"difficult to place quickly." +msgstr "" +"由于其可靠性、经济性和隐蔽性的优良传统,凯尔科技数控工业公司的PF-" +"9仍然是最受欢迎的支援袖珍手枪之一。它使用9x19mm弹药,强大的后坐力令人不快,连续射击时很难快速复位。" + #: lang/json/gun_from_json.py msgid "Makarov PM" msgid_plural "Makarov PMs" @@ -70924,6 +71438,51 @@ msgctxt "gun_type_type" msgid "crossbow" msgstr "弩" +#: lang/json/gunmod_from_json.py +msgid "belt clip" +msgid_plural "belt clips" +msgstr[0] "皮带夹" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a belt clip that attaches to the grip or slide of a pistol so as to " +"facilitate 'Mexican carry', the practice of carrying without a holster. It " +"does not offer any protection for the trigger, so users are strongly advised" +" to carry with the chamber empty or select a firearm with a very heavy " +"trigger pull." +msgstr "" +"这是一个安全带夹,附在手枪的握把或滑套上,以方便\"墨西哥式携带\"——即不带皮套地携带。它不为扳机提供任何保险,因此强烈建议用户在枪膛空着的情况下携带,或选择扳机拉力很大的火器。" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "rugerlcp" +msgstr "鲁格 LCP 手枪" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kp32" +msgstr "kp32冲锋枪" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kp3at" +msgstr "kp3at手枪" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kpf9" +msgstr "kpf9手枪" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "cop_38" +msgstr "cop_38" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "moss_brownie" +msgstr "moss_brownie" + #: lang/json/gunmod_from_json.py msgid "shortened barrel" msgid_plural "shortened barrels" @@ -71179,7 +71738,7 @@ msgstr "" #: lang/json/gunmod_from_json.py msgid "'solvent trap' suppressor" msgid_plural "'solvent trap' suppressors" -msgstr[0] "“溶剂陷阱”消音器" +msgstr[0] "\"溶剂陷阱\"消音器" #: lang/json/gunmod_from_json.py msgid "" @@ -71208,7 +71767,7 @@ msgid "" "suppressor is large and, when attached, will interfere with your ability to " "aim down the base sights of the gun." msgstr "" -"这是一个“消音器”,由一个2升的苏打瓶、一些小瓶和一段很长的管道胶带制成。子弹发射时如果没有防护的状态下,发出的噪音甚至可以伤害听力;你可以肯定它不能保护你的听力。它能做的就是让你开一两枪时,稍微减弱噪音。这个简单的消音器很大,当安装时,将干扰你通过枪的基础瞄准器瞄准的能力。" +"这是一个\"消音器\",由一个2升的苏打瓶、一些小瓶和一段很长的管道胶带制成。子弹发射时如果没有防护的状态下,发出的噪音甚至可以伤害听力;你可以肯定它不能保护你的听力。它能做的就是让你开一两枪时,稍微减弱噪音。这个简单的消音器很大,当安装时,将干扰你通过枪的基础瞄准器瞄准的能力。" #: lang/json/gunmod_from_json.py msgid "RK6S34 suppressor" @@ -71546,6 +72105,18 @@ msgid "" "Increases the time needed to wield the weapon." msgstr "折叠式枪托可以减少枪械的体积,但使用前需要展开。还会增加挥动武器所需要的时间。" +#: lang/json/gunmod_from_json.py +msgid "folding wire stock" +msgid_plural "folding wire stocks" +msgstr[0] "折叠式铁丝枪托" + +#: lang/json/gunmod_from_json.py +msgid "" +"A folding wire stock which folds up very compactly but needs unfolding " +"before use. It's somewhat wobbly but is better than nothing at all. " +"Increases the time needed to wield the weapon." +msgstr "折叠式铁丝枪托可以减少枪械的体积,但使用前需要展开,还会增加挥动武器所需要的时间。它有点松,但总比什么都没有好。" + #: lang/json/gunmod_from_json.py msgid "pistol stock" msgid_plural "pistol stocks" @@ -72959,7 +73530,7 @@ msgid "" "consumption, off-road capacity, protection against threats, and cargo " "capacity is a complicated process." msgstr "" -"熟练的幸存者可以使用扳手、钢锯和焊接工具来添加或移除车辆部件。你甚至可以从头开始创建车辆,方法是使用构造()菜单在有框架可用时“制造新车辆”。调整车辆的速度、耗油量、越野能力、防威胁保护和载货能力是一个复杂的过程。" +"熟练的幸存者可以使用扳手、钢锯和焊接工具来添加或移除车辆部件。你甚至可以从头开始创建车辆,方法是使用构造()菜单在有框架可用时\"制造新车辆\"。调整车辆的速度、耗油量、越野能力、防威胁保护和载货能力是一个复杂的过程。" #: lang/json/help_from_json.py msgid "BOATS AND AMPHIBIOUS VEHICLES" @@ -73062,7 +73633,7 @@ msgid "" "( Firearm\n" "This weapon may be loaded with ammunition with , unloaded with , and fired with . Some have automatic fire, which may be used with at a penalty to accuracy. The color refers to the type; handguns are gray, shotguns are red, submachine guns are cyan, rifles are brown, assault rifles are blue, and heavy machine guns are light red. Each has a dispersion rating, a bonus to damage, a rate of fire, and a maximum load. Note that most firearms load fully in one action, while shotguns must be loaded one shell at a time." msgstr "" -"( 枪械\n" +"( 枪械\n" "所有的枪械都可以按\"\"键装填,按\"\"键清空,按\"\"键开火,可以连发的按\"\"键连发。不同枪械的颜色也不同,灰色为手枪,红色为霰弹枪,蓝绿色为冲锋枪,棕色为步枪,蓝色为突击步枪,浅红色为重机枪。每种枪械都有不同的命中率、伤害值、射速和最大装弹量。需要注意的是虽然大多数的枪械一次装填完成,但是霰弹枪一次只能装填一发子弹。" #: lang/json/help_from_json.py @@ -73219,7 +73790,7 @@ msgid "" "( Handguns\n" "Handguns are small weapons held in one or both hands. They are much more difficult to aim and control than larger firearms, and this is reflected in their poor accuracy. However, their small size makes them appropriate for short-range combat. They are also relatively quick to reload and use a very wide selection of ammunition. Their small size and low weight make it possible to carry several loaded handguns, switching from one to the next once their ammo is spent." msgstr "" -"( 手枪\n" +"( 手枪\n" "手枪可以单手持用也可以双手持用,但和大型枪械相比更难瞄准及控制,因此其命中率相比较低。不过,由于体积小,使它更适合在近距离交火时使用。手枪可以选择的弹药很广泛,并且装填速度也很快,加上它们小巧的体积和重量让你可以备上几把装填完毕的手枪,在需要的时候连着使用。" #: lang/json/help_from_json.py @@ -73228,7 +73799,7 @@ msgid "" "The best feature of crossbows is their silence. The bolts they fire are only rarely destroyed; if you pick up the bolts after firing them, your ammunition supply will last much longer. Crossbows suffer from a short range and a very long reload time (modified by your strength); plus, most only hold a single round. \n" "For this reason, it is advisable to carry a few loaded crossbows. Crossbows can be very difficult to find; however, it is possible to craft one given enough Mechanics skill. Likewise, it is possible to make wooden bolts from any number of wooden objects, though these are much less effective than steel bolts. Crossbows use the handgun skill." msgstr "" -"( 弩\n" +"( 弩\n" "弩的最大优点就是发射时噪声很低。并且弩矢在射出之后通常不会被损坏,如果你能养成回收弩矢的好习惯,那弹药并不会很缺。由于使用机械动力,所以十字弓的射程很近,装填时间也很长(受力量影响),并且通常一次只能装填一发弩矢,所以尽可能提前准备多把上好弦的弩备用。\n" "游戏中,弩也是较难获得的武器之一,所以大多数情况下玩家必须自己制作一把。同样的,你可以使用木材制作木制弩矢,不过它们要比金属弩矢效果更差。此外,弩使用手枪技能。" @@ -73238,7 +73809,7 @@ msgid "" "Silent, deadly, easy to make, and the arrows are reusable. Bows have been used forever. Bows are two handed and require the user to have a certain strength level. If you do not have enough strength to draw the string back, you will fire at a reduced effectiveness. This reduces the reload and fire speeds and decreases the range of the arrows fired. \n" "Most normal bows require strength of at least 8, others require an above average strength of 10, or a significant strength of 12. Bows use the archery skill." msgstr "" -"( 弓\n" +"( 弓\n" "无声,致命,易于制造,箭可以重复利用。弓已经被人类使用了不知道多久了。使用弓需要两只手,并且对于使用者的力量有一定要求。如果你没有足够的力量开弓,那么你的射击效率就会下降。上箭速度,射击速度还有射程都会因此降低。\n" "大部分普通的弓都需要至少8的力量,其他的一些则需要更强的10点力量,或者更加强大的12的力量。弓使用弓术技能。" @@ -73248,7 +73819,7 @@ msgid "" "Shotguns are some of the most powerful weapons in the game, capable of taking out almost any enemy with a single hit. Birdshot and 00 shot spread, making it very easy to hit nearby monsters. However, they are very ineffective against armor, and some armored monsters might shrug off 00 shot completely. Shotgun slugs are the answer to this problem; they also offer much better range than shot.\n" "The biggest drawback to shotguns is their noisiness. They are very loud, and impossible to silence. A shot that kills one zombie might attract three more! Beware of that." msgstr "" -"( 霰弹枪\n" +"( 霰弹枪\n" "霰弹枪系列是游戏中威力最大的武器之一,使用得当的话,几乎没有敌人可以扛过一枪。猎鸟弹和00弹是散射型的,在近距离很容易击中目标。然而它们的穿甲能力很弱,面对一些重甲的敌人甚至无法造成任何伤害。而使用独头弹则可以解决重甲敌人,而且射程也较远。\n" "霰弹枪最大的不足之处就是它们的噪音。十分吵,而且没法安装消音器。杀死一只丧尸的一枪可能会引来多只新丧尸!因此使用时要当心。" @@ -73257,7 +73828,7 @@ msgid "" "( Submachine Guns\n" "Submachine guns are small weapons (some are barely larger than a handgun), designed for relatively close combat and the ability to spray large amounts of bullets. However, they are more effective when firing single shots, so use discretion. They mainly use the 9mm and .45 ammunition; however, other SMGs exist. They reload moderately quickly, and are suitable for close or medium-long range combat." msgstr "" -"( 冲锋枪\n" +"( 冲锋枪\n" "微型冲锋枪属于小型枪械(有些甚至比手枪大不了多少),通常靠倾泻大量子弹来近距离作战,然而,单发射击时命中率更高,所以需要仔细斟酌。微型冲锋枪通常使用的是9mm及.45口径的子弹,当然也有例外。微冲的一大特性就是装填相对很快,所以在近距离及中距离的战斗中都会很有用。" #: lang/json/help_from_json.py @@ -73265,7 +73836,7 @@ msgid "" "( Sniper and Marksman Rifles\n" "Sniper and marksman rifles are popular for their superior range and accuracy. What's more, their scopes or sights make shots fired at targets at very long range as accurate as those with a shorter range. Unlike assault rifles, sniper and marksman rifles usually have no automatic fire. They are also may be slow to reload and fire, so when facing a large group of nearby enemies, they are not the best pick." msgstr "" -"( 狙击枪和精确步枪\n" +"( 狙击枪和精确步枪\n" "狙击枪和精确步枪因其优越的射程和精准度而闻名,此外,配合其瞄准镜具,可以让你如同命中近处敌人一样,轻松命中距离遥远的敌人。与突击步枪不同的是,狙击枪和精确步枪大多不能连发,并且装填速度也较慢,所以当你面对大群敌人的时候,它们并不是你的最好选择。" #: lang/json/help_from_json.py @@ -73274,7 +73845,7 @@ msgid "" "Assault rifles are similar to hunting rifles in many ways; they are also suited for long range combat, with similar bonuses and penalties. Unlike hunting rifles, assault rifles are capable of automatic fire. Assault rifles are less accurate than hunting rifles, and this is worsened under automatic fire, so save it for when you're highly skilled. \n" "Assault rifles are an excellent choice for medium or long range combat, or even close-range bursts again a large number of enemies. They are difficult to use, and are best saved for skilled riflemen." msgstr "" -"( 突击步枪\n" +"( 突击步枪\n" "突击步枪跟猎枪在很多方面有相似之处:都很适合长程的战斗、都受到同样属性的奖惩,而与猎枪不同的是突击步枪可以连发。比起猎枪,突击步枪的命中率会低一些,而且在连发时更明显,所以最好当你的枪械技能足够高了以后再选择使用突击步枪。\n" "突击步枪最适合应对中远程的战斗,甚至在近战中也能摞倒一片敌人,但使用它们很讲究技巧,所以嘛,先练好打手枪再回来。" @@ -73283,8 +73854,7 @@ msgid "" "( Machine Guns\n" "Machine guns are one of the most powerful firearms available. They are even larger than assault rifles; however, they are capable of holding 100 or more rounds of highly-damaging ammunition. They are not built for accuracy, and firing single rounds is not very effective. However, they also possess a very high rate of fire and somewhat low recoil, making them very good at clearing out large numbers of enemies." msgstr "" -"( 机枪\n" -"\n" +"( 机枪\n" "各种机枪是游戏中威力最大的一类武器,相比突击步枪体积更大;但是,它们可以一次性装填100发以上的高能弹药,对于机枪来说,命中率不是它们的追求,单发射击也不是理想的选择。但是,它们所拥有的超高射速和相比而言较小的后坐力,使其非常适合用来清扫大批敌人。" #: lang/json/help_from_json.py @@ -73293,7 +73863,7 @@ msgid "" "Energy weapons is an umbrella term used to describe a variety of rifles and handguns which fire lasers, plasma, or energy attacks. They started to appear in military use just prior to the start of the apocalypse, and as such are very difficult to find.\n" "Energy weapons have no recoil at all; they are nearly silent, have a long range, and are fairly damaging. The biggest drawback to energy weapons is scarcity of ammunition; it is wise to reserve the precious ammo for when you really need it." msgstr "" -"( 能量武器\n" +"( 能量武器\n" "能量武器是枪械中的一朵奇葩,从步枪到手枪都有,发射激光、等离子等各种能量,在大灾变之前曾被应用在军事领域,如今已经很难再找到了。\n" "能量武器的优点很多:完全没有后坐力、几乎是无声的、射程极长并且伤害非常可观,而使用能量武器最大的限制就是弹药非常之稀少,所以能量武器的正确使用方法就是留到最关键的时候。" @@ -73792,7 +74362,7 @@ msgstr "扑灭火焰" #: lang/json/item_action_from_json.py msgid "Dry/clean yourself" -msgstr "烘干/清理自己" +msgstr "擦干/清理自己" #: lang/json/item_action_from_json.py msgid "Unpack" @@ -74476,16 +75046,15 @@ msgstr "你可以在这里存放物品。" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"You can 'e'xamine the tile or attempt to pick-up items (default ',') to " -"access the controls, or use the vehicle control key (default '^')." -msgstr "你可以按\"e\"或\".\"查看此处或在此按载具控制键\"^\"以控制载具。" +"You can 'e'xamine the tile to access the controls, or use the vehicle " +"control key (default '^')." +msgstr "你能按'E'来访问方向盘,或者按下载具控制键(默认为 '^')。" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"With a seat or saddle, you drive from here. You can 'e'xamine the tile or " -"attempt to pick-up items (default ',') to access the controls, or use the " -"vehicle control key (default '^')." +"With a seat or saddle, you drive from here. You can 'e'xamine the tile to " +"access the controls, or use the vehicle control key (default '^')." msgstr "你可以在安装座椅或鞍座后在此移动载具,按\"e\"或\".\"查看此处或在此按载具控制键\"^\"以控制载具。" #. ~ Please leave anything in unchanged. @@ -75439,6 +76008,10 @@ msgstr "睡觉" msgid "Control Vehicle" msgstr "控制载具" +#: lang/json/keybinding_from_json.py +msgid "Toggle Auto Travel Mode" +msgstr "切换自动移动模式" + #: lang/json/keybinding_from_json.py msgid "Toggle Safe Mode" msgstr "切换安全模式" @@ -75632,8 +76205,24 @@ msgid "Active World Mods" msgstr "当前世界已启用模组" #: lang/json/keybinding_from_json.py -msgid "Toggle move mode (run/walk/crouch)" -msgstr "切换移动模式(跑/走/蹲伏)" +msgid "Cycle move mode (run/walk/crouch)" +msgstr "切换移动模式(跑/走/蹲)" + +#: lang/json/keybinding_from_json.py +msgid "Reset Movement to Walk" +msgstr "重设移动模式为走" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Run" +msgstr "切换奔跑" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Crouch" +msgstr "切换蹲伏" + +#: lang/json/keybinding_from_json.py +msgid "Movement Mode Menu" +msgstr "移动模式菜单" #: lang/json/keybinding_from_json.py src/game_inventory.cpp msgid "Compare" @@ -79801,7 +80390,7 @@ msgid "" "Marshals Service and by agreeing to the mission you will become a marshal, " "swearing to assist the federal government in regaining order." msgstr "" -"我在该地区找到了一个地狱袭击者营地,似乎正在酝酿对抗自由商会的行动。 我们对“帮派”中的命令架构几乎一无所知,所以我需要派人去做掉他们的领导人。 " +"我在该地区找到了一个地狱袭击者营地,似乎正在酝酿对抗自由商会的行动。 我们对\"帮派\"中的命令架构几乎一无所知,所以我需要派人去做掉他们的领导人。 " "这次突袭将根据美国法警局的命令进行,如果你同意这项任务,你将被命为一名元帅,并宣誓协助联邦政府重新取得秩序。" #: lang/json/mission_def_from_json.py @@ -82692,7 +83281,7 @@ msgstr "面部毛发:短箱式胡" msgid "" "You have a moustache and a short beard with trimmed sides. Thin patches " "connect them both, forming a 'box' around the lips, thus the name." -msgstr "你留着小胡子和短胡须,旁边修剪过。薄胡茬将两者连接起来,在嘴唇周围形成一个“盒子”,因此得名。" +msgstr "你留着小胡子和短胡须,旁边修剪过。薄胡茬将两者连接起来,在嘴唇周围形成一个\"盒子\",因此得名。" #: lang/json/mutation_from_json.py msgid "Facial hair: chevron moustache" @@ -82757,7 +83346,7 @@ msgstr "你有马蹄形的小胡子,和鬓角不相连。" #: lang/json/mutation_from_json.py msgid "Facial hair: chin strip" -msgstr "面部毛发:下颏刮净" +msgstr "面部毛发:下颏束胡" #. ~ Description for Facial hair: chin strip #: lang/json/mutation_from_json.py @@ -82774,11 +83363,11 @@ msgstr "面部毛发:下颏幕型胡" msgid "" "You have a full beard without a moustache, restricted to the chin, sometimes" " called a 'lion's mane'. Much like Abraham Lincoln's beard." -msgstr "你的胡须浓密,没有胡须,只长在下巴上,有时被称为“狮子鬃毛”。就像亚伯拉罕·林肯的胡子。" +msgstr "你的胡须浓密,没有胡须,只长在下巴上,有时被称为\"狮子鬃毛\"。就像亚伯拉罕·林肯的胡子。" #: lang/json/mutation_from_json.py msgid "Facial hair: chin strap" -msgstr "面部毛发:下颏束胡" +msgstr "面部毛发:下颏沿胡" #. ~ Description for Facial hair: chin strap #: lang/json/mutation_from_json.py @@ -82927,6 +83516,17 @@ msgid "" "easily." msgstr "你的听觉神经更为发达,对于微小的、更远处的声音你可以更容易的听清楚。" +#: lang/json/mutation_from_json.py +msgid "Fey Hearing" +msgstr "精灵听觉" + +#. ~ Description for Fey Hearing +#: lang/json/mutation_from_json.py +msgid "" +"Your not sure the shape of your ears are helping, but regardless you have " +"become very sensitive to sounds." +msgstr "你不确定是不是耳朵形状的原因,你对声音变得非常敏感。" + #: lang/json/mutation_from_json.py msgid "Outdoorsman" msgstr "户外客" @@ -84802,6 +85402,17 @@ msgid "" "pleasant aroma, are visually striking, and are quite sensitive." msgstr "你的头皮上开出了花朵,香气怡人,看上去也很令人瞩目,而且还特别敏感。" +#: lang/json/mutation_from_json.py +msgid "Rosebuds" +msgstr "玫瑰头发" + +#. ~ Description for Rosebuds +#: lang/json/mutation_from_json.py +msgid "" +"The top of your head is blooming with rosebuds. They're eye catching, and " +"have a strong fragrance that makes you pleasant to be around." +msgstr "你头顶上开满了花蕾。它们很吸引人,有一种强烈的香味,让你感到身心愉悦。" + #: lang/json/mutation_from_json.py msgid "Mycus Spores" msgstr "马卡斯孢子" @@ -86403,7 +87014,7 @@ msgid "" "Just thinking of mutagen (such a lovely word! 'Mutagen'. Perfect!) makes " "you thirsty. And you so love your new parts. You simply must have more " "mutagen!" -msgstr "只要一想到'诱变剂'你就会饥渴难耐,你是如此的迷恋你的变异……再来点诱变剂就好了……" +msgstr "只要一想到\"诱变剂\"你就会饥渴难耐,你是如此的迷恋你的变异……再来点诱变剂就好了……" #: lang/json/mutation_from_json.py msgid "Head Bumps" @@ -87218,6 +87829,17 @@ msgstr "你已经完全掌握了你的藤蔓。并且可以随时生长出新的 msgid "You detach a vine from your body." msgstr "你从身上扯下一条藤蔓。" +#: lang/json/mutation_from_json.py +msgid "Hair Roots" +msgstr "根系头发" + +#. ~ Description for Hair Roots +#: lang/json/mutation_from_json.py +msgid "" +"Roots have started growing from your leaf like hair, they don't seem to do " +"much." +msgstr "根已经开始从你的头发上生长出来,它们似乎没有什么作用。" + #: lang/json/mutation_from_json.py msgid "Toe Roots" msgstr "根状脚趾" @@ -87675,7 +88297,7 @@ msgstr "幸存者" #: lang/json/mutation_from_json.py msgid "" "Hey. Civilization fell. You're still around. 'Rat' just isn't respectful." -msgstr "嘿,文明毁灭,但你毫发无伤。 '老鼠'这个称呼太不尊重,但你拥有着不亚于老鼠的顽强生命力。" +msgstr "嘿,文明毁灭,但你毫发无伤。 \"老鼠\"这个称呼太不尊重,但你拥有着不亚于老鼠的顽强生命力。" #: lang/json/mutation_from_json.py msgid "Prototype" @@ -89341,7 +89963,7 @@ msgid "" "Generally tilled land used to grow row crops. Boundaries follow the shape " "of the fields and include associated buildings (e.g., barns). This category" " also includes turf farms that grow sod." -msgstr "通常用来种庄稼的耕地。边界遵循田野的形状,包括相关建筑物(如谷仓)。这一类别还包括种植草皮的草场。" +msgstr "通常用来种庄稼的耕地。边界遵循田野的形状,包括相关建筑物(如谷仓)。这一类别还包括种植草皮的草场。" #: lang/json/overmap_land_use_code_from_json.py msgid "Pasture" @@ -89409,7 +90031,7 @@ msgid "" "labeled with the associated residential land use class not participation " "recreation. However, some private facilities may also be mapped." msgstr "" -"供公众活动娱乐的设施。包括球场、网球场、篮球场、田径场、滑雪场、运动场和自行车道以及相关停车场。中小学娱乐设施属于这一类,但大学体育场和竞技场被视为观众娱乐。不向公众开放的娱乐设施,如属于私人住宅的娱乐设施,大多标有相关的住宅用地类别“非公共娱乐”。然而,一些私人设施也可能被标注出来。" +"供公众活动娱乐的设施。包括球场、网球场、篮球场、田径场、滑雪场、运动场和自行车道以及相关停车场。中小学娱乐设施属于这一类,但大学体育场和竞技场被视为观众娱乐。不向公众开放的娱乐设施,如属于私人住宅的娱乐设施,大多标有相关的住宅用地类别\"非公共娱乐\"。然而,一些私人设施也可能被标注出来。" #: lang/json/overmap_land_use_code_from_json.py msgid "Spectator Recreation" @@ -90009,10 +90631,18 @@ msgstr "加油站" msgid "pharmacy" msgstr "药店" +#: lang/json/overmap_terrain_from_json.py +msgid "pharmacy roof" +msgstr "药店(屋顶)" + #: lang/json/overmap_terrain_from_json.py msgid "doctor's office" msgstr "诊所" +#: lang/json/overmap_terrain_from_json.py +msgid "doctor's office roof" +msgstr "诊所(屋顶)" + #: lang/json/overmap_terrain_from_json.py msgid "office" msgstr "办公室" @@ -90119,6 +90749,10 @@ msgstr "酒吧(屋顶)" msgid "butcher shop" msgstr "肉铺" +#: lang/json/overmap_terrain_from_json.py +msgid "butcher shop roof" +msgstr "肉铺(屋顶)" + #: lang/json/overmap_terrain_from_json.py msgid "bike shop" msgstr "摩托车店" @@ -90323,10 +90957,22 @@ msgstr "成人用品店" msgid "internet cafe" msgstr "网吧" +#: lang/json/overmap_terrain_from_json.py +msgid "internet cafe roof" +msgstr "网咖(屋顶)" + #: lang/json/overmap_terrain_from_json.py msgid "car showroom" msgstr "汽车展厅" +#: lang/json/overmap_terrain_from_json.py +msgid "car showroom 2nd floor" +msgstr "汽车展厅 - 二层" + +#: lang/json/overmap_terrain_from_json.py +msgid "car showroom roof" +msgstr "汽车展厅(屋顶)" + #: lang/json/overmap_terrain_from_json.py msgid "car dealership" msgstr "车行" @@ -90355,6 +91001,10 @@ msgstr "无线电站" msgid "gardening allotment" msgstr "私家花园" +#: lang/json/overmap_terrain_from_json.py +msgid "gardening allotment roof" +msgstr "私家花园(屋顶)" + #: lang/json/overmap_terrain_from_json.py msgid "animal pound" msgstr "动物羁留所" @@ -93264,7 +93914,7 @@ msgid "" "You were that kind of sportsman who couldn't get off the track. You love " "running, and you enhanced your body to do it even better. Now there is " "plenty to run from, but this is your kind of game." -msgstr "你就是那种无法离开跑道的运动员。你喜欢跑步,你改造了你的身体使它能跑得更出色。现在有很多事情值得你为之“奔跑”,这是你的游戏。" +msgstr "你就是那种无法离开跑道的运动员。你喜欢跑步,你改造了你的身体使它能跑得更出色。现在有很多事情值得你为之\"奔跑\",这是你的游戏。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -93278,7 +93928,7 @@ msgid "" "You were that kind of sportsman who couldn't get off the track. You love " "running, and you enhanced your body to do it even better. Now there is " "plenty to run from, but this is your kind of game." -msgstr "你就是那种无法离开跑道的运动员。你喜欢跑步,你改造了你的身体使它能跑得更出色。现在有很多事情值得你为之“奔跑”,这是你的游戏。" +msgstr "你就是那种无法离开跑道的运动员。你喜欢跑步,你改造了你的身体使它能跑得更出色。现在有很多事情值得你为之\"奔跑\",这是你的游戏。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -94291,7 +94941,7 @@ msgctxt "prof_desc_male" msgid "" "'Drop the martial arts!', they said. 'Learn a skill for the REAL world!', " "they said. Well, you're about to show them! SHOW THEM ALL!" -msgstr "\"放弃武术吧!\"他们曾这么说:\"学些'现实'的玩意儿!\"好吧,你就让他们瞧瞧!让他们全部瞧瞧!" +msgstr "\"放弃武术吧!\"有人曾这么说:\"学些'现实'的玩意儿!\"好吧,现在你让他们瞧瞧!狠狠打他们的脸!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -94304,7 +94954,7 @@ msgctxt "prof_desc_female" msgid "" "'Drop the martial arts!', they said. 'Learn a skill for the REAL world!', " "they said. Well, you're about to show them! SHOW THEM ALL!" -msgstr "\"放弃武术吧!\"他们曾这么说:\"学些'现实'的玩意儿!\"好吧,你就让他们瞧瞧!让他们全部瞧瞧!" +msgstr "\"放弃武术吧!\"有人曾这么说:\"学些'现实'的玩意儿!\"好吧,现在你让他们瞧瞧!狠狠打他们的脸!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -95814,7 +96464,7 @@ msgid "" "strength (NOTE: To preserve balance, choose this profession *before* " "adjusting your stats. Or don't. I'm a description, not a cop.)" msgstr "" -"你天生就有一种基因缺陷,使你的身体变得异常强壮。你的生活是奇怪的、多变的,最终,你和一个剧团在海岸线上来回走动,展示力量。(注意:为了保持平衡,请在选择这个职业再调整属性。或者不要。这是一条描述,而不是警告。)" +"你天生就有一种基因缺陷,使你的身体变得异常强壮。你的生活是奇怪的、多变的,最终,你和一个剧团在海岸线上来回走动,展示力量。(注意:为了游戏平衡,请【先】选择这个职业,再进行调整属性。不这样也行,这仅仅是一条描述,而不是警告。)" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -97377,8 +98027,8 @@ msgid "" msgstr "我们可以建造一个无线电发射塔来提高通信距离,第一步就是搭建发射塔的骨架。" #: lang/json/recipe_from_json.py -msgid "We need to add a console to control the radio tower." -msgstr "我们需要添加一个控制台来控制无线电发射塔。" +msgid "We need to build a console to control the radio tower." +msgstr "我们需要建造一个控制台来控制无线电发射塔。" #: lang/json/recipe_from_json.py msgid "Survey land for a farm shop." @@ -99723,7 +100373,7 @@ msgstr "冬天出远门怕渴?带上保温杯。" #: lang/json/snippet_from_json.py msgid "" "'Tis but a scratch?' Bandage and disinfect it anyway to speed up healing." -msgstr "“不过是点擦伤”?还是包扎消毒一下,这样可以加速伤口的恢复。" +msgstr "\"不过是点擦伤\"?还是包扎消毒一下,这样可以加速伤口的恢复。" #: lang/json/snippet_from_json.py msgid "" @@ -100081,7 +100731,7 @@ msgid "" "and in some cases is reportedly more efficient, than the oral techniques we " "have been using." msgstr "" -"迈雅博士发明的通过静脉内给药来催化基因变异的方法已经成功的通过官方审核并在整个设施内采用了;相对于我们团队所不能'公开'的所有工作,他和他的团队真是太幸运了。静脉内给药比起我们现在所使用的口服方式药效更快,操作更简单,而且在某些情况下效率更高。" +"迈雅博士发明的通过静脉内给药来催化基因变异的方法已经成功的通过官方审核并在整个设施内采用了;相对于我们团队所不能\"公开\"的所有工作,他和他的团队真是太幸运了。静脉内给药比起我们现在所使用的口服方式药效更快,操作更简单,而且在某些情况下效率更高。" #: lang/json/snippet_from_json.py msgid "" @@ -101418,7 +102068,7 @@ msgid "" "forward from its back towards black silhouettes menacing on the horizon. It" " reads: \"WE ARE HERE TO PROTECT YOU.\"" msgstr "" -"这是一张宣传海报,展示了诺斯罗普公司的军事机器人。它描绘了经典的深绿色蛛网状派遣者,它站在栅栏前,面对摄像机,模糊的战机影子从它背后冲向地平线上一个威胁性的黑色轮廓。海报上面写着:“我们是来保护你的。”" +"这是一张宣传海报,展示了诺斯罗普公司的军事机器人。它描绘了经典的深绿色蛛网状派遣者,它站在栅栏前,面对摄像机,模糊的战机影子从它背后冲向地平线上一个威胁性的黑色轮廓。海报上面写着:\"我们是来保护你的。\"" #: lang/json/snippet_from_json.py msgid "" @@ -101685,7 +102335,7 @@ msgid "" "It shows a picture of a woman sleeping on a bed of nails with a satisfied " "smile on her face. The caption reads: \"Catch Zs with ease, wherever you " "please!\"" -msgstr "这是Wink&Nod公司催眠诱导CBM的广告。它显示了一个女人睡在一张钉床上,脸上露出满意的微笑。标题上写着:“随时随地轻松抓住睡意!”" +msgstr "这是Wink&Nod公司催眠诱导CBM的广告。它上面画着一个女人睡在一张钉床上,脸上露出满意的微笑。标题上写着:\"随时随地轻松抓住睡意!\"" #: lang/json/snippet_from_json.py msgid "\"WE WERE RIGHT THE GOVERNMENT DID IT\"" @@ -101774,14 +102424,14 @@ msgid "" "\"If only I had had more time with that Autodoc I could have saved them! " "But with that damn chip in their brain those poor cyborg wil never be human " "again...\"" -msgstr "“只要给我更多的时间去控制那个全自动医疗仪,我就能拯救他们!但脑子里那个该死的芯片,让可怜的改造人们再也不能成为真正的人类了……”" +msgstr "\"只要给我更多的时间去控制那个全自动医疗仪,我就能拯救他们!但脑子里那个该死的芯片,让可怜的改造人们再也不能成为真正的人类了……\"" #: lang/json/snippet_from_json.py msgid "" "\"Save the cyborg! Please whoever read this you must help them! Knock them" " out or inactivate them I don't care! But bring them on that Autodoc and " "remove the chip messing up their brain.\"" -msgstr "“拯救改造人!请阅读这篇文章的人,务必拯救他们!我不在乎是敲晕还是弄宕机,只要把他们放在那个全自动医疗仪上,取出弄坏他们大脑的芯片。”" +msgstr "\"拯救改造人!请阅读这篇文章的人,务必拯救他们!我不在乎是敲晕还是弄宕机,只要把他们放在那个全自动医疗仪上,取出弄坏他们大脑的芯片。\"" #: lang/json/snippet_from_json.py #, no-python-format @@ -102763,7 +103413,7 @@ msgstr "\"刚开始的时候,我们还指望那个人来救我们……\"" msgid "" "\"Hey, Ted. Alexander and Cass and I are heading to Z-Mobile for the last " "of the meth. Keep the lizard fetus fed for us, OK?\"" -msgstr "\"嗨,Ted。 Alexander,Cass和我要去Z-Mobile把最后那点'冰'搞回来。帮忙把蜥蜴幼崽喂了,成不?\"" +msgstr "\"嗨,泰德。亚历山大、卡斯和我要去Z-Mobile把最后那点'冰'搞回来。帮忙把蜥蜴幼崽喂了,成不?\"" #: lang/json/snippet_from_json.py msgid "" @@ -103208,7 +103858,7 @@ msgid "" "\"Brett said that he was gonna get some firewood but he never came back,\" " "said his classmate, Jianxiang Wang. The search is underway." msgstr "" -"《学生失踪!》一名高中生昨天晚上在韦兰附近的森林里失踪。这位17岁的中国留学生取了一个英文名字\"Brett\",因为他的同学们和老师们尝试发音他的汉语名字时总是很尴尬。昨天晚上,他和同学们在森林中野营。他的同班同学王健翔伤心地对本报记者说:\"他走之前说'我要去东边采点柴火',但是再也没有回来。\"目前搜索仍在进行中,本报将持续关注并跟踪报道。——路边社记者山猫君报道" +"《学生失踪!》一名高中生昨天晚上在韦兰附近的森林里失踪。这位17岁的中国留学生取了一个英文名字\"Brett\",因为他的同学们和老师们尝试发音他的汉语名字时总是很尴尬。昨天晚上,他和同学们在森林中野营。他的同班同学王健翔伤心地对本报记者说:\"他走之前说'我要去东边采点柴火',但是再也没有回来。\"目前搜索仍在进行中,本报将持续关注并跟踪报道。——路边社记者山猫君为您报道。" #: lang/json/snippet_from_json.py msgid "" @@ -103696,30 +104346,30 @@ msgstr "你即死神,为他们而来,马上就到。" msgid "" "You whisper a song to yourself. \"Stab stab stab stab stab, and then you " "die! Yeah!\"" -msgstr "你小声哼唱,“我捅我捅我捅捅捅,你死你死你死死死,哈!”" +msgstr "你小声哼唱,\"我捅我捅我捅捅捅,你死你死你死死死,哈!\"" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"Come, oh sweet death of yours.\"" -msgstr "你自言自语,“来,送你甜蜜的死亡。”" +msgstr "你自言自语,\"来,送你甜蜜的死亡。\"" #: lang/json/snippet_from_json.py msgid "" "You whisper a song to yourself. \"I've seen the future, baby! It is " "murder!\"" -msgstr "你小声哼唱,“我看见了未来,宝贝儿!这是谋杀!”(注:LEONARD COHEN《The Future》)" +msgstr "你小声哼唱,\"我看见了未来,宝贝儿!这是谋杀!\"(注:LEONARD COHEN《The Future》)" #: lang/json/snippet_from_json.py msgid "" "You whisper to yourself. \"Now I am become death, the destroyer of worlds!\"" -msgstr "你自言自语,“现在,我已成为死神,世界的毁灭者!”" +msgstr "你自言自语,\"现在,我已成为死神,世界的毁灭者!\"" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"Another one bites the dust!\"" -msgstr "你自言自语,“又干掉一个!”" +msgstr "你自言自语,\"又干掉一个!\"" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"Death takes you away.\"" -msgstr "你自言自语,“死神带你走。”" +msgstr "你自言自语,\"死神带你走。\"" #: lang/json/snippet_from_json.py msgid "You exhale in bliss." @@ -103727,39 +104377,39 @@ msgstr "你呼吸着幸福。" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"Your death is my life.\"" -msgstr "你自言自语,“你的死亡,我的生命。”" +msgstr "你自言自语,\"你的命,就是我的命。\"" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"No light for you anymore.\"" -msgstr "你自言自语,“再也不会有光给你了。”" +msgstr "你自言自语,\"再也不会有光给你了。\"" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"Yet another one.\"" -msgstr "你自言自语,“还有下一个。”" +msgstr "你自言自语,\"还有下一个。\"" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"Keep'em coming.\"" -msgstr "你自言自语,“来吧。”" +msgstr "你自言自语,\"来吧。\"" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"Next!\"" -msgstr "你自言自语,“下一个!”" +msgstr "你自言自语,\"下一个!\"" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"The goal of all life is death!\"" -msgstr "你自言自语,“生命的目标都是死亡!”" +msgstr "你自言自语,\"生命的目标都是死亡!\"" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"By my hand!\"" -msgstr "你自言自语,“用我的手!”" +msgstr "你自言自语,\"用我的手!\"" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"Die!\"" -msgstr "你自言自语,“死!”" +msgstr "你自言自语,\"死!\"" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"Your time is up!\"" -msgstr " 你自言自语,“你时辰到了!” " +msgstr " 你自言自语,\"时辰已到!\"" #: lang/json/snippet_from_json.py msgid "You catch a glimpse of distant green." @@ -104019,7 +104669,7 @@ msgid "" "Skeletons are a tough target for a gun. They're so skinny and full of holes" " that it's hard to make a good hit. And those big ones are hard as nails " "too." -msgstr "骷髅是一个棘手的目标。他们非常的瘦并且浑身都是孔,朝它们开枪只会让你的子弹从它们的孔中穿过。那些大“骷髅”也硬得像钉子一样。" +msgstr "骷髅是一个棘手的目标。他们非常的瘦并且浑身都是孔,朝它们开枪只会让你的子弹从它们的孔中穿过。那些大\"骷髅\"也硬得像钉子一样。" #: lang/json/snippet_from_json.py msgid "" @@ -104758,7 +105408,7 @@ msgid "" "I've heard of a gang called The Doctors. You know, bank robbers wearing " "stethoscopes. What are they trying to achieve? I use paper money to start " "fires now." -msgstr "我听说有个叫“医生”的帮派。你知道,银行劫匪戴着听诊器。他们想要什么?我现在都用纸币点火了。" +msgstr "我听说有个叫\"医生\"的帮派。你知道,银行劫匪戴着听诊器。他们想要什么?我现在都用纸币点火了。" #: lang/json/snippet_from_json.py msgid "" @@ -106925,6 +107575,78 @@ msgstr "没问题。" msgid "Can do." msgstr "能做到。" +#: lang/json/snippet_from_json.py +msgid "Whew... smells like skunk!" +msgstr "哇哦……闻起来像臭鼬!" + +#: lang/json/snippet_from_json.py +msgid "Man, that smells like some good shit!" +msgstr "伙计,那玩意闻起来真棒!" + +#: lang/json/snippet_from_json.py +msgid "Hey, don't bogart the joint!" +msgstr "嘿,大麻!(注:Meir Ariel所作的一首单曲的名字)" + +#: lang/json/snippet_from_json.py +msgid "C'mon, , I can smell it, pass it over." +msgstr "快点,,我能闻到,递点过来。" + +#: lang/json/snippet_from_json.py +msgid "Wow, that smell takes me back." +msgstr "哇,这味道让我回忆起过去。" + +#: lang/json/snippet_from_json.py +msgid "Ah, man. Good times, good times. Love that scent." +msgstr "啊,伙计。这让我想起了往日的好时光,我喜欢那香味。" + +#: lang/json/snippet_from_json.py +msgid "What do I smell? Well, I guess it's legal now." +msgstr "我闻到什么味道?嗯,我想现在这是合法的。" + +#: lang/json/snippet_from_json.py +msgid "Mmm, that weed smells good." +msgstr "嗯,那烟草闻起来很香。" + +#: lang/json/snippet_from_json.py +msgid "Man, I can smell the weed, can I have some?" +msgstr "老铁,我能闻到烟草的味道。能给我一些吗?" + +#: lang/json/snippet_from_json.py +msgid "Are you sure it's a good idea to smoke that now?" +msgstr "你确定现在是抽那玩意的时候吗?" + +#: lang/json/snippet_from_json.py +msgid "I don't know... should you really be smoking that stuff?" +msgstr "我不知道……你真的应该抽那玩意么?" + +#: lang/json/snippet_from_json.py +msgid ", that's going to ruin your nose." +msgstr ",那东西会毁了你的鼻子。" + +#: lang/json/snippet_from_json.py +msgid "Man, that stinks. Put it out!" +msgstr "伙计,那可真臭。到外面去抽!" + +#: lang/json/snippet_from_json.py +msgid "You're going to kill yourself smoking that stuff, ." +msgstr "你吸那玩意就是自杀,。" + +#: lang/json/snippet_from_json.py +msgid "Oh, wow, that smell... Can I have some?" +msgstr "啊,天啊,这味道…能给我一些吗?" + +#: lang/json/snippet_from_json.py +msgid "Ew, smells like burning rubber!" +msgstr "呃,闻着就像是橡胶烧着了。" + +#: lang/json/snippet_from_json.py +msgid "Ugh, that smells rancid!" +msgstr "啊,闻着一股子霉味。" + +#: lang/json/snippet_from_json.py +msgid "" +msgstr "" + #: lang/json/snippet_from_json.py msgid "Tell me about how you survived the cataclysm." msgstr "和我说说你是怎么在大灾变中幸存下来的。" @@ -107828,6 +108550,10 @@ msgstr "在我取出上一个主人的内脏的时候,她像猪一样尖叫! msgid "\"Hello?\"" msgstr "\"你好?\"" +#: lang/json/speech_from_json.py +msgid "\"Papaya!\"" +msgstr "\"木瓜!\"" + #: lang/json/speech_from_json.py msgid "\"Who's there?\"" msgstr "\"谁在哪里?\"" @@ -108833,15 +109559,15 @@ msgstr "\"不是那条路!走左边!\"" msgid "" "\"Have you seen my friend? He went into surgery yesterday... or maybe the " "day before...\"" -msgstr "“你见过我的朋友吗?他昨天做了手术…或者是前天……”" +msgstr "\"你见过我的朋友吗?他昨天做了手术…或者是前天……\"" #: lang/json/speech_from_json.py msgid "\"Is it done? Am I perfect now?\"" -msgstr "“完成了吗?我现在完美了吗?”" +msgstr "\"完成了吗?我现在完美了吗?\"" #: lang/json/speech_from_json.py msgid "\"I have done what you asked. Please let me go!\"" -msgstr "“我做了你命令的一切。请让我走!”" +msgstr "\"我做了你命令的一切。请让我走!\"" #: lang/json/speech_from_json.py msgid "Screems of pain." @@ -108851,115 +109577,115 @@ msgstr "痛苦的尖叫声。" msgid "" "\"You lied to me! Look at what you've done!\", followed by an electronic " "voice saying \"YOU'LL PAY FOR THIS!\"" -msgstr "“你骗了我!瞧瞧你做了什么!”接着是一个电子语音,“你 会 为 此 付 出 代 价!”" +msgstr "\"你骗了我!瞧瞧你做了什么!\"接着是一个电子语音,\"你 会 为 此 付 出 代 价!\"" #: lang/json/speech_from_json.py msgid "\"Stop where you are!\"" -msgstr "“停在原地!”" +msgstr "\"停在原地!\"" #: lang/json/speech_from_json.py msgid "\"You are under arrest!\"" -msgstr "“你被捕了!”" +msgstr "\"你被捕了!\"" #: lang/json/speech_from_json.py msgid "\"Criminal activity detected!\"" -msgstr "“侦测到犯罪活动!”" +msgstr "\"侦测到犯罪活动!\"" #: lang/json/speech_from_json.py msgid "\"Criminal activity registered!\"" -msgstr "“犯罪活动已登记!”" +msgstr "\"犯罪活动已登记!\"" #: lang/json/speech_from_json.py msgid "\"Violation of law detected!\"" -msgstr "“发现违法行为!”" +msgstr "\"发现违法行为!\"" #: lang/json/speech_from_json.py msgid "\"Suspect on the move!\"" -msgstr "“嫌疑犯正在移动!”" +msgstr "\"嫌疑犯正在移动!\"" #: lang/json/speech_from_json.py msgid "\"Suspect in sight!\"" -msgstr "“发现嫌犯!”" +msgstr "\"发现嫌犯!\"" #: lang/json/speech_from_json.py msgid "\"You are being detained!\"" -msgstr "“你被拘留了!”" +msgstr "\"你被拘留了!\"" #: lang/json/speech_from_json.py msgid "\"You have right to remain silent!\"" -msgstr "“你有权保持沉默!”" +msgstr "\"你有权保持沉默!\"" #: lang/json/speech_from_json.py msgid "\"Requesting assistance!\"" -msgstr "“请求支援!”" +msgstr "\"请求支援!\"" #: lang/json/speech_from_json.py msgid "\"Requesting supervisor!\"" -msgstr "“请求主管指示!”" +msgstr "\"请求主管指示!\"" #: lang/json/speech_from_json.py msgid "\"Requesting human officer!\"" -msgstr "“请求人类警官指示!”" +msgstr "\"请求人类警官指示!\"" #: lang/json/speech_from_json.py msgid "\"No officer on scene. Requesting backup!\"" -msgstr "“现场没有警官。正在请求支援!”" +msgstr "\"现场没有警官。正在请求支援!\"" #: lang/json/speech_from_json.py msgid "\"Let me see your hands!\"" -msgstr "“举起双手!”" +msgstr "\"举起双手!\"" #: lang/json/speech_from_json.py msgid "\"Stop resisting!\"" -msgstr "“停止顽抗!”" +msgstr "\"停止顽抗!\"" #: lang/json/speech_from_json.py msgid "\"Code 10-66. Copy 10-4. Possible 10-55.\"" -msgstr "“代码10-66。拷贝10-4。可能10-55。”" +msgstr "\"代码10-66。拷贝10-4。可能10-55。\"" #: lang/json/speech_from_json.py msgid "\"Probable 10-70.\"" -msgstr "“推测10-70。”" +msgstr "\"推测10-70。\"" #: lang/json/speech_from_json.py msgid "\"Get on the ground! Now!\"" -msgstr "“趴下!现在!”" +msgstr "\"趴下!现在!\"" #: lang/json/speech_from_json.py msgid "\"Suspected felony!\"" -msgstr "“疑似严重违法!”" +msgstr "\"疑似严重违法!\"" #: lang/json/speech_from_json.py msgid "\"Suspected misdemeanor!\"" -msgstr "“疑似轻度违法!”" +msgstr "\"疑似轻度违法!\"" #: lang/json/speech_from_json.py msgid "\"Do not reach for your pockets!\"" -msgstr "“不要伸手进口袋!”" +msgstr "\"不要伸手进口袋!\"" #: lang/json/speech_from_json.py msgid "\"Keep your hands up!\"" -msgstr "“举起手来!”" +msgstr "\"举起手来!\"" #: lang/json/speech_from_json.py msgid "\"Get on your knees!\"" -msgstr "“跪下!”" +msgstr "\"跪下!\"" #: lang/json/speech_from_json.py msgid "\"Hands in the air!\"" -msgstr "“举高双手!”" +msgstr "\"举高双手!\"" #: lang/json/speech_from_json.py msgid "\"Wait for law enforcement officer!\"" -msgstr "“等待执法人员!”" +msgstr "\"等待执法人员!\"" #: lang/json/speech_from_json.py msgid "\"Remain where you are!\"" -msgstr "“待在原地!”" +msgstr "\"待在原地!\"" #: lang/json/speech_from_json.py msgid "\"Police inbound. Stay where you are!\"" -msgstr "“警察来了,待在原地!”" +msgstr "\"警察来了,待在原地!\"" #: lang/json/speech_from_json.py msgid "\"Don't make me have ye walk the plank.\"" @@ -109415,7 +110141,7 @@ msgstr "\"你盖好了,他就会来。\"(注:《梦幻之地(1989)》 #: lang/json/speech_from_json.py msgid "\"Hasta la vista, baby.\"" -msgstr "“再见,宝贝。”(注:《终结者2(1991)》)" +msgstr "\"再见,宝贝。\"(注:《终结者2(1991)》)" #: lang/json/speech_from_json.py msgid "\"They’re here!\"" @@ -109508,7 +110234,7 @@ msgstr "\"严重错误!\"" #: lang/json/speech_from_json.py msgid "\"Ow ow ow!\"" -msgstr "“嗷——嗷——嗷!”" +msgstr "\"嗷——嗷——嗷!\"" #: lang/json/speech_from_json.py msgid "\"Put me down!\"" @@ -109516,7 +110242,7 @@ msgstr "\"放我下来!\"" #: lang/json/speech_from_json.py msgid "\"Target lost!\"" -msgstr "“目标丢失!”" +msgstr "\"目标丢失!\"" #: lang/json/speech_from_json.py msgid "\"Searching!\"" @@ -109844,7 +110570,7 @@ msgstr "\"第二回该走运了点了吧……\"" #: lang/json/speech_from_json.py msgid "\"Howdy, stranger!\"" -msgstr "“陌生人,你好哇!”" +msgstr "\"陌生人,你好哇!\"" #: lang/json/speech_from_json.py msgid "\"Thought you'd seen the last of us, didn't ya?\"" @@ -110343,8 +111069,8 @@ msgstr "服装店" #: lang/json/talk_topic_from_json.py msgid "" -"I'm my own person, but I'm willing to follow your lead. I can do a lot of things for you: I can fight, I can train you or you can train me, I can carry stuff, I can bandage your wounds, I can build faction camps, I can go places, I can guard things, I can even chit-chat with you or talk about my background. You can give me instructions in conversation or by radio or shout commands at me. \n" -"What do you want to know more about?" +"I'm my own person, but I'm willing to follow your lead. I can do a lot of things for you: I can fight, I can train you or you can train me, I can carry stuff, I can bandage your wounds, I can build faction camps, I can go places, I can guard things, I can even chit-chat with you or talk about my background. You can give me instructions in conversation or by radio or shout commands at me.\n" +" What do you want to know more about?" msgstr "" "我是独立的人,但我愿意追随你的领导。我可以做很多事情:战斗、训练你、接受训练,携带物品、为你包扎,建立派系营地、前往指定地点、做守卫,也可以和你聊天,谈谈我的故事。你可以通过对话、呼喊和无线电的方式对我下达指令。\n" "你还想知道什么?" @@ -110407,11 +111133,11 @@ msgstr "我需要知道什么?" #: lang/json/talk_topic_from_json.py msgid "" -"If we're next to each other, you can just bump into me and we'll start talking, right? But if I'm farther away, you're going to have to shout a bit (use the 'C'hat command) for me to hear you. You'll need to see me for us to have a conversation. Or we can talk by radios if we both have them. \n" -"When we talk, you can give me instructions about how to fight or when to sleep or whatever. I'll mostly do them, and you can ask me what my current instructions are. Sometimes you'll give me two sets of instructions: a normal set, and an override for a specific situation. I'll tell you which instructions are overriden. You can set and clear overrides with shouted commands." +"If we're next to each other, you can just bump into me and we'll start talking, right? But if I'm farther away, you're going to have to shout a bit (use the 'C'hat command) for me to hear you. You'll need to see me for us to have a conversation. Or we can talk by radios if we both have them.\n" +" When we talk, you can give me instructions about how to fight or when to sleep or whatever. I'll mostly do them, and you can ask me what my current instructions are. Sometimes you'll give me two sets of instructions: a normal set, and an override for a specific situation. I'll tell you which instructions are overriden. You can set and clear overrides with shouted commands." msgstr "" "显然我们可以在彼此相邻时说话。而距离稍远时你就得(按C)呼喊才能让我听见,前提是你能看见我。如果用无线电沟通,我们必须都有双向无线电。\n" -"我们对话时,你可以指示我如何战斗何时睡觉等等。我会根据指示行动, 并在你需要时告诉你当前我所遵循的指示。特殊情况下,你可以下达“紧急避险”命令,这会批量覆盖部分日常指示,我会告诉你哪些指示被覆盖。通过呼喊的方式设置(预案-紧急避险)或清除(预案-避险结束)覆盖。" +"我们对话时,你可以指示我如何战斗何时睡觉等等。我会根据指示行动, 并在你需要时告诉你当前我所遵循的指示。特殊情况下,你可以下达\"紧急避险\"命令,这会批量覆盖部分日常指示,我会告诉你哪些指示被覆盖。通过呼喊的方式设置(预案-紧急避险)或清除(预案-避险结束)覆盖。" #: lang/json/talk_topic_from_json.py msgid "" @@ -110424,10 +111150,11 @@ msgstr "谢谢,我有一些事情要你做。" #: lang/json/talk_topic_from_json.py msgid "" -"Sometimes you need to give orders in a hurry. You can use the 'C'hat command to shout a single specific order. If I hear you, I'll do what you say, as will anyone else following you that hears it. \n" -"Some orders will override other instructions you've given me. If you change my instructions when I've got an override command, I'll tell you which ones are overridden. You can shout an order to clear any overrides." +"Sometimes you need to give orders in a hurry. You can use the 'C'hat command to shout a single specific order. If I hear you, I'll do what you say, as will anyone else following you that hears it.\n" +" Some orders will override other instructions you've given me. If you change my instructions when I've got an override command, I'll tell you which ones are overridden. You can shout an order to clear any overrides, or talk to me and tell me to clear them." msgstr "" -"有时候需要紧急指示,那么(按C)呼喊特定指示,如果我能听见,我会根据指示行动。有些指示会覆盖旧的,那时我会告诉你被覆盖的部分。当然,也可以呼叫清除覆盖。" +"有时候需要紧急指示,那么(按C)呼喊特定指示,如果我能听见,我会根据指示行动。其他跟随你的人也会照你说的去做。\n" +"有些指示会覆盖旧的,如果你在我有一个覆盖命令时更改了我的指令,我将告诉你哪些命令被覆盖。你可以通过大喊命令清除任何覆盖,或者让我清除它们。" #: lang/json/talk_topic_from_json.py msgid "Good to know. What orders can I give?" @@ -110435,77 +111162,83 @@ msgstr "很高兴知道这些。我可以下达什么指示?" #: lang/json/talk_topic_from_json.py msgid "" -"It's a dangerous world out there, right? So we fight to survive. I'm on your side, and I'll stick with you, but if I think the situation is too dangerous, I'll be honest, I'm going to run. If I see you running but I think it's safe, I'll stay and fight, but you can tell me run with you and I'll stick by you as best I can. \n" -"You can give me some instructions on when I should attack, but I'll make my own decisions about who - I'll try to defend myself and you, though, but if you tell me to stay in one place I'll stay there. \n" -"I'll use guns and grenades if I have them, but you can tell me to not use grenades or not use loud weapons or to not use ranged weapons at all. If I'm shooting, you can tell me how much to aim and whether to try to avoid shooting you or not. \n" -"I'll respect your rules for what types of weapons to use, but I'll choose what to use from my stuff. \n" -"You can also tell me to hold the line and fight at chokepoints, but I'm not great at recognizing them so I may go off to fight something elsewhere anyway." +"It's a dangerous world out there, right? So we fight to survive. I'm on your side, and I'll stick with you, but if I think the situation is too dangerous, I'll be honest, I'm going to run.\n" +" You can't tell me not to run, because I'm going to flee if things are bad, but you can tell me a safe place to retreat by using the zones manager (keybind 'Y'). I'll run toward the closest place you've designated - and you can set zones on vehicles, so if you've got a car, you could tell me to retreat there.\n" +" If I see you running but I think it's safe, I'll stay and fight, but you can tell me run with you and I'll stick by you as best I can.\n" +" You can give me some instructions on when I should attack, but I'll make my own decisions about who - I'll try to defend myself and you, but if you tell me to stay in one place I'll stay there.\n" +" I'll use guns and grenades if I have them, but you can tell me to not use grenades or not use loud weapons or to not use ranged weapons at all. If I'm shooting, you can tell me how much to aim and whether to try to avoid shooting you or not. I'm not so good at recognizing safe shots, so stay out of my line of fire no matter what.\n" +" I'll respect your rules for what types of weapons to use, but I'll choose what to use from my stuff.\n" +" You can also tell me to hold the line and fight at chokepoints, but I'm not great at recognizing them so I may go off to fight something elsewhere anyway." msgstr "" -"这是个危险的世界,是吧,我们一起为生存而奋斗。我站在你这边、支持你,但如果我觉得太危险了,实话说我会逃跑。如果看见你逃了,但我觉得很安全,我会留下战斗,除非你指示我和你一起跑,我会尽量忠于你的指示。\n" -"你可以指示我何时攻击,我自己决定攻击目标。我会尽可能保护你我,除非你指示我停留。\n" -"我能够用枪支和手雷——只要我有,除非你指示我不要使用手雷、不要使用造成巨大噪音的武器或不使用任何远程武器。如果我要射击,你可以指示我瞄准的目标,以及是否避免误伤你。\n" -"我会根据你指示的武器类型,从拥有的物品中选择使用哪个。\n" -"你也可以指示我保持战线,或者扼守战术要地,但我不太擅长理解那些,可能会去别的地方战斗。" +"这是个危险的世界,对吧?我们为生存而一起奋斗。我站在你这边、支持你,但如果我认为情况太危险,实话说我会逃跑。\n" +"你不能命令我不要逃跑,因为如果情况不好,我会逃跑,但你可以告诉我一个安全的地方,使用区域管理器(绑定'y'键)撤退。我会跑向你指定的最近的地方-你可以在车辆上设置区域,所以如果你有车,你可以告诉我退到那里。\n" +"如果我看到你逃了,但我认为很安全,我会留下来和你战斗,但你可以告诉我和你一起跑,我会尽我所能地支持你。\n" +"你可以告诉我什么时候进攻,我自己决定攻击目标。我会尽力保护自己和你,但如果你让我呆在一个地方,我会呆在那里。\n" +"我会用枪和手榴弹,如果我有的话。但你可以告诉我不要使用手榴弹,不要使用有声武器,或者根本不要使用远程武器。如果我在射击,你可以告诉我要瞄准多久,以及是否试图避免射击你。我不太擅长安全射击,所以不管怎样都要远离我的火线。\n" +"你能命令我使用什么类型的武器,但我会从我的东西中选择使用什么。\n" +"你也可以让我坚守阵地,或者扼守战术要地,但我不太擅长理解那些,可能会去别的地方战斗。" #: lang/json/talk_topic_from_json.py msgid "" -"If I'm better at a skill than you, I can help you improve. But it's boring to teach a lot, so I'm not going to do it very often. And I'm not going to do it when we're in danger or if I'm hungry or tired or if you're driving. \n" -"If we're someplace safe and you're reading a book that improves skills, I'll listen if I don't have that skill. You can even read me books for skills that you already have." +"If I'm better at a skill than you, I can help you improve. But it's boring to teach a lot, so I'm not going to do it very often. And I'm not going to do it when we're in danger or if I'm hungry or tired or if you're driving.\n" +" If we're someplace safe and you're reading a book that improves skills, I'll listen if I don't have that skill. You can even read me books for skills that you already have." msgstr "" -"如果我的技能比你熟练,我可以教你——但不会经常这样,因为太无聊了。当我们面临危险、我处于饥饿、疲劳或者你正在开车时,我不会教你。\n" +"如果我的技能比你熟练,我可以教你——但我不会经常这样,因为太无聊了。当我们面临危险、我处于饥饿、疲劳或者你正在开车时,我不会教你。\n" "当你在安全的场所,阅读可以提高我技能的书籍时,我会旁听,即使你已经完全掌握了。" #: lang/json/talk_topic_from_json.py msgid "" -"You give me something to carry, I'll carry it. But I only have so many pockets and I'm only so strong, so I'll drop stuff that's too big to carry. \n" -"I'll also wear stuff - I'll decide what I want to wear, but you can take stuff from me. If I'm wearing something I shouldn't, you can bump into me and sort my armor to get me to take if off. \n" -"I don't like wearing a lot of gear, so if you give me a lot of bulky stuff and things that don't fit, I'm going to take them off and probably drop them. \n" -"Also, since we're friends, I'll give you anything I'm carrying, no questions asked. \n" -"Oh, yeah, if I'm hungry or thirsty and I'm carrying food, I'll eat it. So you might want to watch what you give me, y'know?" +"You give me something to carry, I'll carry it. But I only have so many pockets and I'm only so strong, so I'll drop stuff that's too big to carry.\n" +" I'll also wear stuff - I'll decide what I want to wear, but you can take stuff from me. If I'm wearing something I shouldn't, you can bump into me and sort my armor to get me to take if off.\n" +" I don't like wearing a lot of gear, so if you give me a lot of bulky stuff and things that don't fit, I'm going to take them off and probably drop them.\n" +" Also, since we're friends, I'll give you anything I'm carrying, no questions asked.\n" +" Oh, yeah, if I'm hungry or thirsty and I'm carrying food, I'll eat it. So you might want to watch what you give me, y'know?" msgstr "" "我可以携带你给我的物品,但我的空间和负重能力有限,我会丢掉那些太大而无法携带的东西。\n" -"我会自行决定穿戴物品,如果我穿了不该穿的东西,你可以接触我、整理我的装束、拿走它们。\n" +"我会自行决定穿戴物品,如果我穿了不该穿的东西,你可以接触我、整理我的装束、让我脱掉它。\n" "我不喜欢穿戴太多,如果你给我的东西太笨重或者不合适,我会把它们扔下。\n" "当然,我愿意把携带的任何物品交给你,我们是朋友,没问题。\n" "哦对了,如果我饿了、渴了,我会吃掉我携带着的饮食。所以也许你应该检查一下你给我的物品,是吧?" #: lang/json/talk_topic_from_json.py msgid "" -"If you call me by radio, you can tell me to come to you. If you've got some basecamps set up, you can tell me to go to one of them. I'll start walking, and when I get to where I'm going, I'll guard it. \n" -"Now depending on where I am and where I'm going, it may take me a while to get there. I'll dodge any dangers on the way, don't worry about that, but if you're way the heck away from me and tell me to come, it may be a while until I get to you." +"If you call me by radio, you can tell me to come to you. If you've got some basecamps set up, you can tell me to go to one of them. I'll start walking, and when I get to where I'm going, I'll guard it.\n" +" Now depending on where I am and where I'm going, it may take me a while to get there. I'll dodge any dangers on the way, don't worry about that, but if you're way the heck away from me and tell me to come, it may be a while until I get to you." msgstr "" -"如果你用无线电联络我,你可以命令我来找你。如果你建立了营地,可以让我去其中一个,到达后会保护那里。\n" +"如果你用无线电联络我,你可以命令我来找你。如果你建立了营地,可以让我去其中一个,到达后我会保护那里。\n" "可能需要一段时间才能到达目的地,这取决于我所处的位置。我会躲避路上的危险,不必担心,但如果我们距离太远,找到你可能需要一段时间。" #: lang/json/talk_topic_from_json.py msgid "" -"You tell me to guard, I'll stay where I am and guard it - unless I'm in a vehicle, in which case I'll stick with the vehicle. \n" -"I'm not a potted plant, though, so if I hear something dangerous happening, I'm going to go see what it is instead of getting jumped in the dark. If you want me to stay put, tell me not to investigate noises - but if I get shot by some bandit because I can't see where he is and you don't want me to go looking, I won't be happy." +"You tell me to guard, I'll stay where I am and guard it - unless I'm in a vehicle, in which case I'll stick with the vehicle.\n" +" I'm not a potted plant, though, so if I hear something dangerous happening, I'm going to go see what it is instead of getting jumped in the dark. If you want me to stay put, tell me not to investigate noises - but if I get shot by some bandit because I can't see where he is and you don't want me to go looking, I won't be happy.\n" +" You can also use the zone manager (keybind 'Y') to set up no-investigate zone, so if there's some monsters behind a door that you know about, I can ignore them. You can also set on an investigate-only zone, and I won't investigate noises coming from outside the zone. The no-investigate zone takes precedence over the investigate-only, if there's a noise coming from some place in both zones. And if you've got an investigate-only zone set anywhere, even if it's far away, I won't investigate noises coming from outside of it, so be careful with those zones. Like I said, I don't want to get sniped by some bandit because you told me not to go looking for him - but I also don't want to go investigate something pounding at door only to find out it's some horrible monster you forgot to warn me about." msgstr "" -"如果你让我“守卫”,我就会在原地留守——除非我在车里,那时我会守在车里。\n" -"当然,我不是植物人,如果察觉到危险,我会去打探,而不是在黑暗中瞎折腾。如果你确定不让我去打探,就告诉我不要调查噪音——但那样我可能会被我观察不到的敌人攻击,我会很不开心。" +"你叫我站岗,我就呆在原地站岗——除非我在车里,否则我会一直跟着车走。\n" +"不过,我不是植物人,所以如果我听到危险的事情发生,我会去看看是什么,而不是在原地等死。如果你想让我呆在原地,告诉我不要调查噪音-但是如果我被某个强盗开枪攻击,因为我看不到他在哪里,而你不想让我去看,我就不会高兴了。\n" +"你也可以使用区域管理器(绑定'y'键)来设置不调查区域,所以如果你知道门后面有一些怪物,我可以忽略它们。你也可以设置一个只进行调查的区域,我不会调查区域外的噪音。只有当两个区域的某个地方发出噪音时,禁止调查区域才优先于调查区域。如果你在任何地方设置了一个只进行调查的区域,即使它离得很远,我也不会调查它外部发出的噪音,所以要小心那些区域。就像我说的,我不想因为你叫我不要去调查而被强盗狙击,但我也不想去调查是什么东西砸门,结果发现那是你忘了警告我的可怕怪物。" #: lang/json/talk_topic_from_json.py -msgid "Just in case - how do I tell you to stay put?" +msgid "Just in case - how else can I tell you to stay put?" msgstr "只是以防万一——我应该怎样通知你留在原地?" #: lang/json/talk_topic_from_json.py msgid "" -"We can chit-chat, if you want. People are social animals, right? A little light conversation can do wonders for your mood. But I don't want to be yapping all the time, so if we've chatted recently, I probably am not going to want to talk for a bit. \n" -"You can also ask me about my background. I may not want to talk about it, though." +"We can chit-chat, if you want. People are social animals, right? A little light conversation can do wonders for your mood. But I don't want to be yapping all the time, so if we've chatted recently, I probably am not going to want to talk for a bit.\n" +" You can also ask me about my background. I may not want to talk about it, though." msgstr "" "如果你愿意,我们可以聊聊,人是社交动物,是吧?谈论轻松的话题可以改善心情。但我不喜欢唠叨,如果我们最近聊过,我可能不想多说。\n" "你也可以问问我的过去,虽然也许我并不想说。" #: lang/json/talk_topic_from_json.py msgid "" -"You can give me a bunch of instructions. Talk to me about the miscellaneous rules, and I'll tell you what I'm doing and you can give a new instruction. Sometimes you'll have shouted a command that overrides your other instructions, and I'll tell you which instructions are overridden. \n" -"I'm not a chatterbox, but I'll tell you when I see or hear danger or if I'm hurt or hungry or something. You don't want me doing that, you just tell me. \n" -"Also, I'll pulp zombies if you'd like - I would prefer that. \n" -"If I hear something suspicious and can't see if, I'll go take a look, but you can tell me not to do that. \n" -" I'll open and close doors, or open them and leave them ajar, or not going through closed doors. You just tell me what you want. \n" -"I can pick stuff up if want me to, and you can tell me what to pick up. If I've got a bow or crossbow, please tell me to pick up the ammo - it's less fuss for both of us. \n" -"If you've got a vehicle, you can e'x'amine it and use the cre'w' command to assign me a seat. That saves arguments about who needs to sit where." +"You can give me a bunch of instructions. Talk to me about the miscellaneous rules, and I'll tell you what I'm doing and you can give a new instruction. Sometimes you'll have shouted a command that overrides your other instructions, and I'll tell you which instructions are overridden.\n" +" I'm not a chatterbox, but I'll tell you when I see or hear danger or if I'm hurt or hungry or something. You don't want me doing that, you just tell me.\n" +" Also, I'll pulp zombies if you'd like - I would prefer that.\n" +" If I hear something suspicious and can't see if, I'll go take a look, but you can tell me not to do that.\n" +" I'll open and close doors, or open them and leave them ajar, or not going through closed doors. You just tell me what you want.\n" +" I can pick stuff up if want me to, and you can tell me what to pick up. If I've got a bow or crossbow, please tell me to pick up the ammo - it's less fuss for both of us.\n" +" If you've got a vehicle, you can e'x'amine it and use the cre'w' command to assign me a seat. That saves arguments about who needs to sit where." msgstr "" "你可以给我许多种指示。讨论杂项规则时,我会告诉你我正在做什么,可以给我新的指示。\n" "我不会多嘴多舌,仅当我察觉危险、受伤或感到饥饿时才会告诉你。如果你不想听,提前指示我。\n" @@ -110517,22 +111250,22 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Here's the list of shouted commands I'll respond to: \n" -"Order me to guard, and I'll stay where I am and watch out for danger. I'll investigate suspicious noises unless you told me not to. \n" -"Order me to follow, and I'll stop guarding and go back to following you. \n" -"Order me to stay awake, and I'll stay awake until I'm too tired to keep my eyes open. \n" -"Order me to sleep when tired, and I'll nap when I get tired. I'll try to tell you when I'm off to bed unless you don't want to hear it. \n" -"Order me to flee, and I'll stick close to you when you run from danger. I won't go running off on my own - though if things really bad, I might be running away already! \n" -"Order me to stop running, and I'll evaluate the danger myself and might go off and fight something while you're doing other things. \n" -"Ordering me to prepare for danger is special: it's an override command. That means I'm going to follow certain instructions, even if you've given me other instructions earlier. Specifically, I'm going to flee with you, I'm not going to open or close doors, I'm not going to sleep until I'm exhausted, and I'm going to try to hold any chokepoints that you're fighting at. \n" -"Ordering me to relax from danger is another special command, and it will clear any overrides I currently have and I'll go back to whatever instructions I had before you told me to prepare for danger." +"Here's the list of shouted commands I'll respond to:\n" +" - Order me to guard, and I'll stay where I am and watch out for danger. I'll investigate suspicious noises unless you told me not to.\n" +" - Order me to follow, and I'll stop guarding and go back to following you.\n" +" - Order me to stay awake, and I'll stay awake until I'm too tired to keep my eyes open.\n" +" - Order me to sleep when tired, and I'll nap when I get tired. I'll try to tell you when I'm off to bed unless you don't want to hear it.\n" +" - Order me to flee, and I'll stick close to you when you run from danger. I won't go running off on my own - though if things really bad, I might be running away already!\n" +" - Order me to stop running, and I'll evaluate the danger myself and might go off and fight something while you're doing other things.\n" +" - Ordering me to prepare for danger is special: it's an override command. That means I'm going to follow certain instructions, even if you've given me other instructions earlier. Specifically, I'm going to flee with you, I'm not going to open or close doors, I'm not going to sleep until I'm exhausted, and I'm going to try to hold any chokepoints that you're fighting at.\n" +" - Ordering me to relax from danger is another special command, and it will clear any overrides I currently have and I'll go back to whatever instructions I had before you told me to prepare for danger." msgstr "" "这是我可以响应的呼喊命令列表:\n" "守卫:原地警戒。调查可疑噪音,除非你说不要。\n" "跟随:停止守卫,跟随你。\n" "保持清醒:避免入睡,除非困到睁不开眼睛。\n" "允许睡眠:疲倦时睡觉。睡觉前通知你,除非你不想听。\n" -"共同逃跑:紧随你逃离危险。我不会独自逃走,除非情况真的太糟。\n" +"共同逃跑:紧随你逃离危险。我不会独自逃走,除非情况真的太糟,我可能已经跑掉了!\n" "停止逃跑:评估风险,自行其是。\n" "预案-紧急避险:覆盖日常命令,与你共同逃离、停止开门关门、避免入睡。在你战斗时,控制战术要地。\n" "预案-避险结束:结束覆盖命令,回归日常。" @@ -110796,6 +111529,10 @@ msgstr "醒醒!" msgid "Go back to sleep." msgstr "继续睡觉。" +#: lang/json/talk_topic_from_json.py +msgid "What is it, friend?" +msgstr "干什么,老铁?" + #: lang/json/talk_topic_from_json.py msgid "Combat commands..." msgstr "[战术]按我说的方式战斗……" @@ -110805,11 +111542,7 @@ msgid "Can you teach me anything?" msgstr "[求教]现在你能教我点东西吗?" #: lang/json/talk_topic_from_json.py -msgid "Let's trade items" -msgstr "[交易]做些交易吧,怎样?" - -#: lang/json/talk_topic_from_json.py -msgid "Guard this position" +msgid "Guard this position." msgstr "[站岗]守在这里。" #: lang/json/talk_topic_from_json.py @@ -110817,11 +111550,11 @@ msgid "I'd like to know a bit more about you..." msgstr "[查看]我想多了解你的情况……" #: lang/json/talk_topic_from_json.py -msgid "I want you to use this item" +msgid "I want you to use this item." msgstr "[使用]我想让你用这个物品。" #: lang/json/talk_topic_from_json.py -msgid "Hold on to this item" +msgid "Hold on to this item." msgstr "[给予]你拿着这个物品吧。" #: lang/json/talk_topic_from_json.py @@ -110939,7 +111672,7 @@ msgstr "设置捡起物品的规则。" #: lang/json/talk_topic_from_json.py msgid "Clear all overrides." -msgstr "清除所有覆盖" +msgstr "清除所有覆盖。" #: lang/json/talk_topic_from_json.py msgid "You're really leaving?" @@ -110953,10 +111686,6 @@ msgstr "[确认]是的,再见吧。" msgid "Nah, I'm just kidding." msgstr "[取消]我只是在开个玩笑。" -#: lang/json/talk_topic_from_json.py -msgid "*pshhhttt* I'm reading you boss, over." -msgstr "*电流声* 老大,我收到了。完毕。" - #: lang/json/talk_topic_from_json.py msgid "Stay at your current position." msgstr "保持目前的位置。" @@ -111413,7 +112142,7 @@ msgstr "好的,我们出发吧!" msgid "Yeah... I don't think so." msgstr "噢……我并不这么认为。" -#: lang/json/talk_topic_from_json.py src/npctalk.cpp +#: lang/json/talk_topic_from_json.py msgid "What is it?" msgstr "干什么?" @@ -111593,6 +112322,28 @@ msgstr "嗯嗯,那就这样,再会。" msgid "Okay" msgstr "好的。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm willing to pay per batch for a total of " +"." +msgstr "每份我给你算 ,一共 。" + +#: lang/json/talk_topic_from_json.py +msgid "Works for me." +msgstr "挺好,我没意见。" + +#: lang/json/talk_topic_from_json.py +msgid "Maybe later." +msgstr "下次再说吧。" + +#: lang/json/talk_topic_from_json.py +msgid "Pleasure doing business!" +msgstr "交易愉快!" + +#: lang/json/talk_topic_from_json.py +msgid "You might be seeing more of me..." +msgstr "我们还会再见的……" + #: lang/json/talk_topic_from_json.py msgid "Hey again. *kzzz*" msgstr "再次问好。 *滋滋滋*" @@ -112455,10 +113206,6 @@ msgstr "[营地]营地还需要些什么吗?" msgid "Yes, set up the bulletin board and then go back to normal duties." msgstr "是的,设立布告栏,然后恢复正常的工作。" -#: lang/json/talk_topic_from_json.py -msgid "Hope you're here to trade." -msgstr "希望你来这里是来交易的。" - #: lang/json/talk_topic_from_json.py msgid "" "I oversee the food stocks for the center. There was significant looting " @@ -112503,6 +113250,14 @@ msgstr "我的确接受许多不同的食物:啤酒,糖,面粉,熏肉, msgid "Interesting..." msgstr "有意思……" +#: lang/json/talk_topic_from_json.py +msgid "Hope you're here to trade." +msgstr "希望你来这里是来交易的。" + +#: lang/json/talk_topic_from_json.py +msgid "Who are you?" +msgstr "你是谁?" + #: lang/json/talk_topic_from_json.py msgid "Mind if we just chat for a bit?" msgstr "我们可以聊一会儿天吗?" @@ -112733,10 +113488,6 @@ msgstr "你好,执法官……" msgid "Citizen..." msgstr "你好,公民……" -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Who are you?" -msgstr "你是谁?" - #: lang/json/talk_topic_from_json.py msgid "Is there any way I can join the 'Old Guard'?" msgstr "我可以加入\"旧世守护者\"吗?" @@ -113249,10 +114000,6 @@ msgstr "[$2000,1天] 10 原木" msgid "[$12000, 7d] 100 logs" msgstr "[$12000,7天] 100 原木" -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Maybe later." -msgstr "下次再说吧。" - #: lang/json/talk_topic_from_json.py msgid "I'll be back later." msgstr "我稍后再来。" @@ -113993,11 +114740,11 @@ msgstr "另一个基本测试回应。" #: lang/json/talk_topic_from_json.py msgid "This is an or trait test response." -msgstr "现金、空闲及特性“或”测试回应。" +msgstr "现金、空闲及特性\"或\"测试回应。" #: lang/json/talk_topic_from_json.py msgid "This is an and cash, available, trait test response." -msgstr "现金、空闲及特性“与”测试回应。" +msgstr "现金、空闲及特性\"与\"测试回应。" #: lang/json/talk_topic_from_json.py msgid "This is a complex nested test response." @@ -118049,12 +118796,12 @@ msgstr "毒蛇吐信" #: lang/json/technique_from_json.py #, python-format msgid "You hiss threateningly at %s" -msgstr "你向着 %s 发出嘶嘶的威胁声" +msgstr "你向着%s发出嘶嘶的威胁声。" #: lang/json/technique_from_json.py #, python-format msgid " hisses threateningly at %s" -msgstr " 对着 %s 发出嘶嘶的威胁声" +msgstr "对着%s发出嘶嘶的威胁声。" #: lang/json/technique_from_json.py msgid "Viper Fist" @@ -118908,12 +119655,12 @@ msgstr "弧面攻击" #: lang/json/technique_from_json.py #, python-format msgid "You round strike %s" -msgstr "你弧面攻击了 %s" +msgstr "你弧面攻击了%s" #: lang/json/technique_from_json.py #, python-format msgid " round strikes %s" -msgstr " 弧面攻击了 %s" +msgstr "弧面攻击了%s" #: lang/json/technique_from_json.py msgid "Fan strike" @@ -118922,12 +119669,12 @@ msgstr "扇面攻击" #: lang/json/technique_from_json.py #, python-format msgid "You fan strike %s" -msgstr "你扇面攻击了 %s" +msgstr "你扇面攻击了%s" #: lang/json/technique_from_json.py #, python-format msgid " fan strikes %s" -msgstr " 扇面攻击了 %s" +msgstr "扇面攻击了%s" #: lang/json/technique_from_json.py msgid "Snap strike" @@ -118936,12 +119683,12 @@ msgstr "快闪攻击" #: lang/json/technique_from_json.py #, python-format msgid "You snap out at %s" -msgstr "你快闪攻击了 %s" +msgstr "你快闪攻击了%s" #: lang/json/technique_from_json.py #, python-format msgid " snaps quickly at %s" -msgstr " 快闪攻击了 %s" +msgstr "快闪攻击了%s" #: lang/json/technique_from_json.py msgid "Combination strike" @@ -118950,12 +119697,12 @@ msgstr "组合连击" #: lang/json/technique_from_json.py #, python-format msgid "You combination strike %s" -msgstr "你的连招如疾风骤雨般延绵不断的攻向 %s" +msgstr "你的连招如疾风骤雨般延绵不断的攻向%s" #: lang/json/technique_from_json.py #, python-format msgid " combination strikes %s" -msgstr " 的连招延绵不断的攻向 %s" +msgstr "的连招延绵不断的攻向%s" #: lang/json/technique_from_json.py msgid "free strike" @@ -118964,12 +119711,12 @@ msgstr "额外攻击" #: lang/json/technique_from_json.py #, python-format msgid "You whip a free strike onto %s" -msgstr "你再次连击了 %s" +msgstr "你再次连击了%s" #: lang/json/technique_from_json.py #, python-format msgid " free strikes %s" -msgstr " 再次连击 %s" +msgstr "再次连击%s" #: lang/json/technique_from_json.py msgid "puño strike" @@ -118978,12 +119725,12 @@ msgstr "泰拳" #: lang/json/technique_from_json.py #, python-format msgid "You deliver a puño to %s" -msgstr "你拳势如疾风一般给了 %s 一记泰拳" +msgstr "你拳势如疾风一般给了%s一记泰拳" #: lang/json/technique_from_json.py #, python-format msgid " haftstrikes %s" -msgstr " 柄击 %s" +msgstr "柄击%s" #: lang/json/technique_from_json.py msgid "knee strike" @@ -118992,12 +119739,12 @@ msgstr "膝击" #: lang/json/technique_from_json.py #, python-format msgid "You deliver a knee strike to %s" -msgstr "你瞄准时机,膝盖瞬间高抬带动力量,对 %s 使出一记膝击" +msgstr "你瞄准时机,膝盖瞬间高抬带动力量,对%s使出一记膝击" #: lang/json/technique_from_json.py #, python-format msgid " knees %s" -msgstr " 膝击 %s" +msgstr "膝击%s" #: lang/json/technique_from_json.py msgid "hamstring" @@ -119006,12 +119753,12 @@ msgstr "断筋" #: lang/json/technique_from_json.py #, python-format msgid "You ground %s with a low blow" -msgstr "你腿部肌肉瞬间爆发,带动小腿力量用脚背至胫骨弧线横向击打下段击倒了 %s" +msgstr "你腿部肌肉瞬间爆发,用下段攻击击倒了%s" #: lang/json/technique_from_json.py #, python-format msgid " grounds %s with a low blow" -msgstr " 攻击下段把 %s 击倒了" +msgstr "攻击下段把%s击倒了" #: lang/json/technique_from_json.py msgid "Vicious Precision" @@ -119020,12 +119767,12 @@ msgstr "毒牙突刺" #: lang/json/technique_from_json.py #, python-format msgid "You viciously wound %s" -msgstr "你残暴的打击了 %s" +msgstr "你残暴的打击了%s" #: lang/json/technique_from_json.py #, python-format msgid " viciously wounds %s" -msgstr " 残暴的打击了 %s!" +msgstr "残暴的打击了%s!" #: lang/json/technique_from_json.py msgid "Silat Brutality" @@ -119034,7 +119781,7 @@ msgstr "苏拉暴击" #: lang/json/technique_from_json.py #, python-format msgid "You send %s reeling backwards" -msgstr "你一记重击让 %s 踉跄后退" +msgstr "你一记重击让%s踉跄后退" #: lang/json/technique_from_json.py msgid "Dirty Hit" @@ -119043,12 +119790,12 @@ msgstr "偷袭" #: lang/json/technique_from_json.py #, python-format msgid "You hit %s with a dirty blow" -msgstr "你给了 %s 一记损招" +msgstr "你给了%s一记损招" #: lang/json/technique_from_json.py #, python-format msgid " delivers a dirty blow to %s" -msgstr " 给了 %s 一记损招" +msgstr "给了%s一记损招" #: lang/json/technique_from_json.py msgid "Tiger Takedown" @@ -119057,12 +119804,12 @@ msgstr "猛虎扑击" #: lang/json/technique_from_json.py #, python-format msgid "You grab and ground %s" -msgstr "你一把抓住并按倒 %s" +msgstr "你一把抓住并按倒%s" #: lang/json/technique_from_json.py #, python-format msgid " grabs and grounds %s" -msgstr " 一把抓住并按倒 %s" +msgstr "一把抓住并按倒%s" #: lang/json/technique_from_json.py msgid "Leopard Fist" @@ -119071,12 +119818,12 @@ msgstr "豹拳" #: lang/json/technique_from_json.py #, python-format msgid "You strike out at %s with your Leopard Fist" -msgstr "你用豹拳猛击了 %s" +msgstr "你用豹拳猛击了%s" #: lang/json/technique_from_json.py #, python-format msgid " strikes out at %s with a Leopard Fist" -msgstr " 用豹拳猛击了 %s" +msgstr "用豹拳猛击了%s" #: lang/json/technique_from_json.py msgid "Leopard Swipe" @@ -119085,12 +119832,12 @@ msgstr "豹之重击" #: lang/json/technique_from_json.py #, python-format msgid "You quickly swipe at %s" -msgstr "你快速挥动拳头重击 %s" +msgstr "你快速挥动拳头重击%s" #: lang/json/technique_from_json.py #, python-format msgid " quickly swipes at %s" -msgstr " 快速挥动拳头重击 %s" +msgstr "快速挥动拳头重击%s" #: lang/json/technique_from_json.py msgid "Leopard Foresight" @@ -119099,12 +119846,12 @@ msgstr "豹之预见" #: lang/json/technique_from_json.py #, python-format msgid "You dodge the attack and swipe at %s's exposed flank" -msgstr "你躲过攻击并且闪到 %s 暴露的侧面" +msgstr "你躲过攻击并且闪到%s暴露的侧面" #: lang/json/technique_from_json.py #, python-format msgid " dodges and catches %s exposed" -msgstr " 躲过攻击并且抓住了 %s 的破绽" +msgstr "躲过攻击并且抓住了%s的破绽" #: lang/json/technique_from_json.py msgid "Dragon Snatch" @@ -119113,12 +119860,12 @@ msgstr "龙爪手" #: lang/json/technique_from_json.py #, python-format msgid "You grab and knee %s" -msgstr "你抓住 %s 用膝盖狠狠一撞" +msgstr "你抓住%s用膝盖狠狠一撞" #: lang/json/technique_from_json.py #, python-format msgid " grabs and knees %s" -msgstr " 抓住 %s 用膝盖狠狠一撞" +msgstr "抓住%s用膝盖狠狠一撞" #: lang/json/technique_from_json.py msgid "Dragon's Vortex Block" @@ -119127,12 +119874,12 @@ msgstr "龙旋风格挡" #: lang/json/technique_from_json.py #, python-format msgid "You block the attack and send %s spinning" -msgstr "你格挡攻击并让 %s 转起圈来" +msgstr "你格挡攻击并让%s转起圈来" #: lang/json/technique_from_json.py #, python-format msgid " blocks and spins %s" -msgstr " 格挡攻击并让 %s 转起圈来" +msgstr "格挡攻击并让%s转起圈来" #: lang/json/technique_from_json.py msgid "Dragon's Vortex Dodge" @@ -119141,12 +119888,12 @@ msgstr "龙旋风闪避" #: lang/json/technique_from_json.py #, python-format msgid "You dodge the attack and send %s spinning" -msgstr "你闪开攻击并让 %s 转起圈来" +msgstr "你闪开攻击并让%s转起圈来" #: lang/json/technique_from_json.py #, python-format msgid " dodges and spins %s" -msgstr " 闪开攻击并让 %s 转起圈来" +msgstr "闪开攻击并让%s转起圈来" #: lang/json/technique_from_json.py msgid "Dragon Sweeper" @@ -119155,12 +119902,12 @@ msgstr "神龙摆尾" #: lang/json/technique_from_json.py #, python-format msgid "You low-roundhouse %s 's legs" -msgstr "你侧身向下,一个扫堂腿踢倒了 %s" +msgstr "你侧身向下,一个扫堂腿踢倒了%s" #: lang/json/technique_from_json.py #, python-format msgid " low-roundhouses %s 's legs" -msgstr " 侧身向下,一个扫堂腿踢倒了 %s" +msgstr "侧身向下,一个扫堂腿踢倒了%s" #: lang/json/technique_from_json.py msgid "Dragon Strike" @@ -119169,12 +119916,12 @@ msgstr "龙爪" #: lang/json/technique_from_json.py #, python-format msgid "You send %s reeling with a Dragon Strike" -msgstr "你全力一拳,似有一声龙啸爆发而出,击晕了 %s" +msgstr "你全力一拳,似有一声龙啸爆发而出,击晕了%s" #: lang/json/technique_from_json.py #, python-format msgid " sends %s reeling with a Dragon Strike" -msgstr " 全力一拳,似有一声龙啸爆发而出,击晕了 %s" +msgstr "全力一拳,似有一声龙啸爆发而出,击晕了%s" #: lang/json/technique_from_json.py msgid "Crane Wing" @@ -119207,17 +119954,17 @@ msgstr "鹤击" #: lang/json/technique_from_json.py #, python-format msgid "You hand-peck %s" -msgstr "你手腕弯曲,指尖并拢,如同鹤嘴一般,啄击 %s" +msgstr "你手腕弯曲,指尖并拢,如同鹤嘴一般,啄击%s" #: lang/json/technique_from_json.py #, python-format msgid " hand-pecks %s" -msgstr " 用手啄 %s" +msgstr "用手啄%s" #: lang/json/technique_from_json.py #, python-format msgid "You fake a strike at %s" -msgstr "你佯攻 %s" +msgstr "你佯攻%s" #: lang/json/technique_from_json.py msgid "Power Hit" @@ -119230,12 +119977,12 @@ msgstr "回击" #: lang/json/technique_from_json.py #, python-format msgid "You catch %s's attack, and hit back" -msgstr "你拨开攻击并回击了 %s" +msgstr "你拨开攻击并回击了%s" #: lang/json/technique_from_json.py #, python-format msgid " catches %s, and counters" -msgstr " 拨开攻击并回击了 %s" +msgstr "拨开攻击并回击了%s" #: lang/json/technique_from_json.py msgid "Trip" @@ -119244,12 +119991,12 @@ msgstr "使绊子" #: lang/json/technique_from_json.py #, python-format msgid "You trip %s" -msgstr "你绊倒 %s" +msgstr "你绊倒%s" #: lang/json/technique_from_json.py #, python-format msgid " trips %s" -msgstr " 绊倒了 %s" +msgstr "绊倒了%s" #: lang/json/technique_from_json.py msgid "Flowing Water Cut" @@ -119258,12 +120005,12 @@ msgstr "流水斩" #: lang/json/technique_from_json.py #, python-format msgid "You strike %s with the slow power of flowing water" -msgstr "你缓慢蓄力,然后对 %s 劈出了一套流水般的斩击舞。" +msgstr "你缓慢蓄力,然后对%s劈出了一套流水般的斩击舞。" #: lang/json/technique_from_json.py #, python-format msgid " strikes %s with the slow power of flowing water" -msgstr " 缓慢蓄力,然后对 %s 劈出了一套流水般的斩击舞。" +msgstr "缓慢蓄力,然后对%s劈出了一套流水般的斩击舞。" #: lang/json/technique_from_json.py msgid "Red Leaf's Cut" @@ -119272,12 +120019,12 @@ msgstr "红叶斩" #: lang/json/technique_from_json.py #, python-format msgid "Your strike knocks %s off balance" -msgstr "劲秋之风扫红叶,你的旋风扫击到了 %s 下肢,让其失衡倒地。" +msgstr "劲秋之风扫红叶,你的旋风扫击到了%s下肢,让其失衡倒地。" #: lang/json/technique_from_json.py #, python-format msgid "'s strike knocks %s off balance" -msgstr "劲秋之风扫红叶, 的旋风扫击到了 %s 下肢,让其失衡倒地。" +msgstr "劲秋之风扫红叶,的旋风扫击到了%s下肢,让其失衡倒地。" #: lang/json/technique_from_json.py msgid "Fire and Stone's Cut" @@ -119286,12 +120033,12 @@ msgstr "火石斩" #: lang/json/technique_from_json.py #, python-format msgid "You stun %s with the force of the blow" -msgstr "你的强力一击击晕了 %s" +msgstr "你的强力一击击晕了%s" #: lang/json/technique_from_json.py #, python-format msgid " stuns %s with the force of the blow" -msgstr " 的强力一击击晕了 %s" +msgstr "的强力一击击晕了%s" #: lang/json/technique_from_json.py msgid "In-One Timing" @@ -119300,12 +120047,12 @@ msgstr "闪现突攻" #: lang/json/technique_from_json.py #, python-format msgid "You strike at %s's weaknesses" -msgstr "你重击了 %s 的弱点" +msgstr "你重击了%s的弱点" #: lang/json/technique_from_json.py #, python-format msgid " strikes %s's weaknesses" -msgstr " 重击了 %s 的弱点" +msgstr "重击了%s的弱点" #: lang/json/technique_from_json.py msgid "slow strike" @@ -119314,12 +120061,12 @@ msgstr "慢击" #: lang/json/technique_from_json.py #, python-format msgid "You slowly strike %s" -msgstr "你缓慢的打击了 %s" +msgstr "你缓慢的打击了%s" #: lang/json/technique_from_json.py #, python-format msgid " slowly strikes %s" -msgstr " 缓慢的打击了 %s" +msgstr "缓慢的打击了%s" #: lang/json/technique_from_json.py msgid "phasing strike" @@ -119328,12 +120075,12 @@ msgstr "相位攻击" #: lang/json/technique_from_json.py #, python-format msgid "You phase-strike %s" -msgstr "你相位攻击了 %s" +msgstr "你相位攻击了%s" #: lang/json/technique_from_json.py #, python-format msgid " phase-strikes %s" -msgstr " 相位攻击了 %s" +msgstr "相位攻击了%s" #: lang/json/technique_from_json.py msgid "Push" @@ -119342,22 +120089,22 @@ msgstr "推开" #: lang/json/technique_from_json.py #, python-format msgid "You push %s away" -msgstr "你推开了 %s" +msgstr "你推开了%s" #: lang/json/technique_from_json.py #, python-format msgid " pushes %s away" -msgstr " 推开了 %s" +msgstr "推开了%s" #: lang/json/technique_from_json.py #, python-format msgid "You deftly trip %s" -msgstr "你熟练地绊倒了 %s" +msgstr "你熟练地绊倒了%s" #: lang/json/technique_from_json.py #, python-format msgid " deftly trips %s" -msgstr " 熟练地绊倒了 %s " +msgstr "熟练地绊倒了%s " #: lang/json/technique_from_json.py msgid "Skewer" @@ -119366,12 +120113,12 @@ msgstr "穿刺" #: lang/json/technique_from_json.py #, python-format msgid "You brutally skewer %s" -msgstr "你无情地穿刺了 %s" +msgstr "你无情地穿刺了%s" #: lang/json/technique_from_json.py #, python-format msgid " brutally skewers %s" -msgstr " 无情地穿刺了 %s" +msgstr "无情地穿刺了%s" #: lang/json/technique_from_json.py msgid "Pressure Crunch" @@ -119385,12 +120132,12 @@ msgstr "击晕并击退,1.5倍钝击伤害,仅暴击" #: lang/json/technique_from_json.py #, python-format msgid "You smash %s with a pressurized slam" -msgstr "你猛击击碎了 %s" +msgstr "你猛击击碎了%s" #: lang/json/technique_from_json.py #, python-format msgid " smashes %s with a pressurized slam" -msgstr " 用力击碎了 %s" +msgstr "用力击碎了%s" #: lang/json/technique_from_json.py msgid "displace and counter" @@ -119399,12 +120146,12 @@ msgstr "换位迎击" #: lang/json/technique_from_json.py #, python-format msgid "You displace and counter %s" -msgstr "你换位迎击 %s" +msgstr "你换位迎击%s" #: lang/json/technique_from_json.py #, python-format msgid " displaces and counters %s" -msgstr " 换位迎击 %s" +msgstr "换位迎击%s" #: lang/json/technique_from_json.py msgid "sweeping strike" @@ -119413,12 +120160,12 @@ msgstr "横扫攻击" #: lang/json/technique_from_json.py #, python-format msgid "You trip %s with a sweeping strike" -msgstr "你使用横扫攻击绊倒 %s" +msgstr "你使用横扫攻击绊倒%s" #: lang/json/technique_from_json.py #, python-format msgid " trips %s with a sweeping strike" -msgstr " 使用横扫攻击绊倒 %s" +msgstr "使用横扫攻击绊倒%s" #: lang/json/technique_from_json.py msgid "vicious strike" @@ -119427,22 +120174,22 @@ msgstr "要害攻击" #: lang/json/technique_from_json.py #, python-format msgid "You hack at %s with a vicious strike" -msgstr "你斩击 %s 的要害" +msgstr "你斩击%s的要害" #: lang/json/technique_from_json.py #, python-format msgid " hack at %s with a vicious strike" -msgstr " 斩击 %s 的要害" +msgstr "斩击%s的要害" #: lang/json/technique_from_json.py #, python-format msgid "You kick %s" -msgstr "你踢击 %s" +msgstr "你踢击%s" #: lang/json/technique_from_json.py #, python-format msgid " kicks %s" -msgstr " 踢击 %s" +msgstr "踢击%s" #: lang/json/technique_from_json.py msgid "counter-grab" @@ -119451,12 +120198,12 @@ msgstr "反擒拿" #: lang/json/technique_from_json.py #, python-format msgid "You counter and grab %s" -msgstr "你反击并擒住了 %s" +msgstr "你反击并擒住了%s" #: lang/json/technique_from_json.py #, python-format msgid " counters and grabs %s" -msgstr " 反击并擒住了 %s" +msgstr "反击并擒住了%s" #: lang/json/technique_from_json.py msgid "arm lock" @@ -119465,12 +120212,12 @@ msgstr "锁臂" #: lang/json/technique_from_json.py #, python-format msgid "You put %s in an arm lock" -msgstr "你对 %s 使出锁臂攻击" +msgstr "你对%s使出锁臂攻击" #: lang/json/technique_from_json.py #, python-format msgid " puts %s in an arm lock" -msgstr " 对 %s 使出锁臂攻击" +msgstr "对%s使出锁臂攻击" #: lang/json/technique_from_json.py msgid "chokehold" @@ -119479,12 +120226,12 @@ msgstr "锁喉" #: lang/json/technique_from_json.py #, python-format msgid "You put %s in an chokehold" -msgstr "你对 %s 使出锁喉攻击" +msgstr "你对%s使出锁喉攻击" #: lang/json/technique_from_json.py #, python-format msgid " puts %s in an chokehold" -msgstr " 对 %s 使出锁喉攻击" +msgstr "对%s使出锁喉攻击" #: lang/json/terrain_from_json.py msgid "empty space" @@ -122895,6 +123642,10 @@ msgstr "精工切割" msgid "glare protection" msgstr "强光防护" +#: lang/json/tool_quality_from_json.py +msgid "anesthesia" +msgstr "麻醉" + #: lang/json/tool_quality_from_json.py msgid "smoothing" msgstr "平整" @@ -123122,7 +123873,8 @@ msgid "" "character wait in place, press '.'" msgstr "" "这个屏幕中间的 '@' " -"字符就是你啦!长得不够帅?没关系,活下去就行。你可以使用数字小键盘、vi键(hjklyubn)、或者方向键来进行移动。你也可以按下<.>键让你的小@呆在那里任凭时间流逝。" +"字符就是你啦!长得不够帅?没关系,活下去就行。你可以使用数字小键盘、vi键(hjklyubn)、或者方向键来进行移动。你也可以按下 '.' " +"键让你的小@呆在那里任凭时间流逝。" #: lang/json/tutorial_messages_from_json.py msgid "" @@ -123135,7 +123887,7 @@ msgstr "观察周围的环境,你可以按下<;>键。这时候你可以四处 msgid "" "That brown '+' next to you is a closed door. To open it, either simply walk" " into it, or press 'o' and then a movement key." -msgstr "你身旁的棕色 '+'是一扇关闭的房门。要打开它,简单点你可以直接移动过去,或者按下键再配合方向键。" +msgstr "你身旁的棕色 '+' 是一扇关闭的房门。要打开它,简单点你可以直接移动过去,或者按下键再配合方向键。" #: lang/json/tutorial_messages_from_json.py msgid "" @@ -124014,10 +124766,6 @@ msgstr "一条过道。" msgid "wooden aisle" msgstr "木制过道" -#: lang/json/vehicle_part_from_json.py -msgid "floor trunk" -msgstr "地板行李箱" - #. ~ Description for floor trunk #: lang/json/vehicle_part_from_json.py msgid "An aisle. A hatch lets you access a cargo space beneath it." @@ -124694,9 +125442,9 @@ msgstr "一个小型电动马达。安装在车门或者车窗帘上时,可以 msgid "" "A sophisticated set of electronic controls that allow you to control the " "vehicle from a vehicle remote while you are not in it. You can 'e'xamine " -"the tile or attempt to pick-up items (default ',') to access the controls, " -"or use the vehicle control key (default '^')." -msgstr "一套十分复杂的电子控制系统,能够让你不乘坐时也能使用载具远程遥控器遥控载具。你可以按\"e\"查看或\",\"拾取此处或在此按载具控制键\"^\"以控制载具。" +"the tile to access the controls, or use the vehicle control key (default " +"'^')." +msgstr "一套十分复杂的电子控制系统,能够让你不乘坐时也能使用载具远程遥控器遥控载具。你可以按\"e\"查看或在此按载具控制键\"^\"以控制载具。" #: lang/json/vehicle_part_from_json.py msgid "camera control system" @@ -124707,9 +125455,9 @@ msgstr "监控控制系统" msgid "" "An LCD display attached to one or more cameras. When turned on, it lets you" " see from the cameras, but drains power from the vehicle's batteries. You " -"can 'e'xamine the tile or attempt to pick-up items (default ',') to access " -"the controls, or use the vehicle control key (default '^')." -msgstr "一套连接到车载摄像头的液晶显示屏。开启时,使用车载电源并让你通过摄像头观察四周。你可以按\"e\"查看或\",\"拾取此处或在此按载具控制键\"^\"以控制载具。" +"can 'e'xamine the tile to access the controls, or use the vehicle control " +"key (default '^')." +msgstr "一套连接到车载摄像头的液晶显示屏。开启时,使用车载电源并让你通过摄像头观察四周。你可以按\"e\"查看或在此按载具控制键\"^\"以控制载具。" #. ~ Description for security camera #: lang/json/vehicle_part_from_json.py @@ -125021,8 +125769,8 @@ msgstr "一个内燃引擎。燃烧消耗载具水箱内的燃料。" #: lang/json/vehicle_part_from_json.py msgid "" "A combustion engine. Burns diesel fuel from a tank in the vehicle. Can " -"also burn methanol, ethanol, or lamp oil, though somewhat less efficiently." -msgstr "一个内燃引擎。燃烧消耗载具水箱内的柴油。同时还能够消耗甲醇,乙醇和灯油,但效率会较低。" +"also burn biodiesel or lamp oil, though somewhat less efficiently." +msgstr "一个内燃引擎。燃烧消耗载具水箱内的柴油。同时也能够消耗乙醇或灯油,但效率会较低。" #: lang/json/vehicle_part_from_json.py msgid "A combustion engine. Burns gasoline fuel from a tank in the vehicle." @@ -125644,21 +126392,21 @@ msgid "" "A welding and metalworking station, powered by the vehicle's battery. " "'e'xamine the forge rig to utilize its welder or soldering iron; you'll " "still need glare protection." -msgstr "一套车载设备,同时具有焊接和锻造的功能,由车载能源供电。按“E”可焊接或使用电烙铁,但你仍然需要防眩光保护。" +msgstr "一套车载设备,同时具有焊接和锻造的功能,由车载能源供电。按\"E\"可焊接或使用电烙铁,但你仍然需要防眩光保护。" #. ~ Description for cooking rig #: lang/json/vehicle_part_from_json.py msgid "" "An all-in-one kitchen unit and chemistry lab. 'e'xamine it to use its " "hotplate to heat up food or drinks." -msgstr "一个一体化厨房和化学实验室,按“E”可使用电炉加热食物或饮料。" +msgstr "一个一体化厨房和化学实验室,按\"E\"可使用电炉加热食物或饮料。" #. ~ Description for KitchenMaster cooking buddy #: lang/json/vehicle_part_from_json.py msgid "" "An all-in-one kitchen unit, chemistry lab, and food preparation area. " "'e'xamine it to use its hotplate to heat up food or drinks." -msgstr "一个一体化厨房和化学实验室以及食物准备区,按“E”可使用电炉加热食物或饮料。" +msgstr "一个一体化厨房和化学实验室以及食物准备区,按\"E\"可使用电炉加热食物或饮料。" #. ~ Description for control station #: lang/json/vehicle_part_from_json.py @@ -127375,7 +128123,7 @@ msgstr "失败机会=%f%%" #: src/activity_handlers.cpp #, c-format msgid "You discover a %s!" -msgstr "你发现了一个 %s!" +msgstr "你发现了一个%s!" #: src/activity_handlers.cpp msgid "You discover only damaged organs." @@ -127529,7 +128277,7 @@ msgstr "你收获了:%s" #: src/activity_handlers.cpp #, c-format msgid "You roughly slice the corpse of %s into four parts and set them aside." -msgstr "你将 %s 的尸体粗略的改成四份近似大小的部分,并将其放在一边。" +msgstr "你将%s的尸体粗略的改成四份近似大小的部分,并将其放在一边。" #: src/activity_handlers.cpp msgid "There's no corpse to butcher!" @@ -127569,12 +128317,12 @@ msgstr "你在 %2$s 里发现了一些 %1$s!" msgid "" "You apply few quick cuts to the %s and leave what's left of it for " "scavengers." -msgstr "你匆匆忙忙地切下了 %s 上的几块部位,残存的大部分只能留给食腐动物享用了。" +msgstr "你匆匆忙忙地切下了%s上的几块部位,残存的大部分只能留给食腐动物享用了。" #: src/activity_handlers.cpp #, c-format msgid "You finish butchering the %s." -msgstr "你屠宰了 %s。" +msgstr "你屠宰了%s。" #: src/activity_handlers.cpp msgid "" @@ -127597,7 +128345,7 @@ msgstr "你犯了个错,严重破坏了尸体。也许还有些能用的部分 #: src/activity_handlers.cpp #, c-format msgid "You field dress the %s." -msgstr "你清理了 %s 的内脏。" +msgstr "你清理了%s的内脏。" #: src/activity_handlers.cpp msgid "" @@ -127612,22 +128360,22 @@ msgstr "你移除了尸体的内脏和多余的部分,准备好供以后使用 #: src/activity_handlers.cpp #, c-format msgid "You skin the %s." -msgstr "你把 %s 剥皮了。" +msgstr "你把%s剥皮了。" #: src/activity_handlers.cpp #, c-format msgid "You carefully remove the hide from the %s" -msgstr "你细心地将 %s 剥皮" +msgstr "你细心地将%s剥皮" #: src/activity_handlers.cpp #, c-format msgid "The %s is challenging to skin, but you get a good hide from it." -msgstr "%s 很难被剥皮,但你成功收获了一张毛皮。" +msgstr "%s的皮很难剥,但你成功收获了一张毛皮。" #: src/activity_handlers.cpp #, c-format msgid "With a few deft slices you take the skin from the %s" -msgstr "你轻巧地划了几刀,把 %s 剥皮了" +msgstr "你轻巧地划了几刀,把%s剥皮了" #: src/activity_handlers.cpp #, c-format @@ -127647,7 +128395,7 @@ msgstr "你把%s切成碎片。" #: src/activity_handlers.cpp #, c-format msgid "You finish dissecting the %s." -msgstr "你解剖了 %s。" +msgstr "你解剖了%s。" #: src/activity_handlers.cpp #, c-format @@ -127657,17 +128405,17 @@ msgstr "你把 %1$s 倒在地上。" #: src/activity_handlers.cpp #, c-format msgid "With a clang and a shudder, the %s pump goes silent." -msgstr "随着咣当一声并伴随着一阵振动,%s 泵停止了工作。" +msgstr "随着咣当一声并伴随着一阵振动,%s泵停止了工作。" #: src/activity_handlers.cpp src/iexamine.cpp #, c-format msgid "You squeeze the last drops of %s from the vat." -msgstr "你从瓮里挤出最后一滴 %s。" +msgstr "你从瓮里挤出最后一滴%s。" #: src/activity_handlers.cpp src/game.cpp #, c-format msgid "You caught a %s." -msgstr "你抓住了一个 %s 。" +msgstr "你抓住了一个%s 。" #: src/activity_handlers.cpp msgid "You didn't catch anything." @@ -127685,7 +128433,7 @@ msgstr "你没有发现任何东西。" #: src/activity_handlers.cpp #, c-format msgid "The %s runs out of batteries." -msgstr "%s 的电池电量耗尽。" +msgstr "%s的电池电量耗尽。" #: src/activity_handlers.cpp msgid "This wire will start the engine." @@ -127759,27 +128507,27 @@ msgstr[0] " 把尸体弄成了一滩烂泥。" #: src/activity_handlers.cpp #, c-format msgid "Can't reload the %s." -msgstr "无法重新装填 %s。" +msgstr "无法重新装填%s。" #: src/activity_handlers.cpp src/iexamine.cpp #, c-format msgid "You reload the %s." -msgstr "你重新装填了 %s。" +msgstr "你重新装填了%s。" #: src/activity_handlers.cpp #, c-format msgid "You insert a bolt into the %s." -msgstr "你为 %s 重新上箭。" +msgstr "你为%s重新上箭。" #: src/activity_handlers.cpp #, c-format msgid "You insert a cartridge into the %s." -msgstr "你为 %s 重新上弹。" +msgstr "你为%s重新上弹。" #: src/activity_handlers.cpp #, c-format msgid "You refill the %s." -msgstr "你重新装填了 %s。" +msgstr "你重新装填了%s。" #: src/activity_handlers.cpp msgid "There's nothing to light there." @@ -127796,7 +128544,7 @@ msgstr "现在的阳光不足以点火,你停止了尝试。" #: src/activity_handlers.cpp #, c-format msgid "You finish training %s to level %d." -msgstr "你结束了练习 %s ,它提升到了等级 %d。" +msgstr "你结束了练习%s ,它提升到了等级%d。" #. ~ %d is skill level %s is skill name #. ~ %s is skill name. %d is skill level @@ -127815,7 +128563,7 @@ msgstr "%2$s 技能达到等级 %1$d。" #: src/activity_handlers.cpp #, c-format msgid "You learn %s." -msgstr "你学会了 %s。" +msgstr "你学会了%s。" #. ~ %s is martial art #: src/activity_handlers.cpp @@ -127841,25 +128589,25 @@ msgstr "你太疲劳了以至于无法继续。" #: src/activity_handlers.cpp src/vehicle_move.cpp src/vehicle_use.cpp #, c-format msgid "The %s doesn't have an engine!" -msgstr "%s 没有引擎!" +msgstr "%s没有引擎!" #: src/activity_handlers.cpp #, c-format msgid "The %s's engine starts up." msgid_plural "The %s's engines start up." -msgstr[0] "%s 的引擎启动了。" +msgstr[0] "%s的引擎启动了。" #: src/activity_handlers.cpp #, c-format msgid "One of the %s's engines start up." msgid_plural "Some of the %s's engines start up." -msgstr[0] "%s 的部分引擎启动了。" +msgstr[0] "%s的部分引擎启动了。" #: src/activity_handlers.cpp #, c-format msgid "The %s's engine fails to start." msgid_plural "The %s's engines fail to start." -msgstr[0] "%s 的引擎无法启动。" +msgstr[0] "%s的引擎无法启动。" #: src/activity_handlers.cpp src/vehicle_use.cpp src/vehicle_use.cpp msgid "You let go of the controls." @@ -127896,7 +128644,7 @@ msgstr "返回物品选择" #: src/activity_handlers.cpp #, c-format msgid "Your %s ran out of charges" -msgstr "你的 %s 用光了能量" +msgstr "你的%s用光了能量" #: src/activity_handlers.cpp src/iuse_actor.cpp msgid "You won't learn anything more by doing that." @@ -127930,17 +128678,17 @@ msgstr "伤害几率:%.1f%%" #: src/activity_handlers.cpp #, c-format msgid "Your %s is already fully repaired." -msgstr "你的 %s 已经是完好的了。" +msgstr "你的%s已经是完好的了。" #: src/activity_handlers.cpp src/player.cpp #, c-format msgid "You are currently unable to mend the %s." -msgstr "你目前无法修复 %s。" +msgstr "你目前无法修复%s。" #: src/activity_handlers.cpp #, c-format msgid "You successfully mended the %s." -msgstr "你成功修复了 %s!" +msgstr "你成功修复了%s!" #: src/activity_handlers.cpp #, c-format @@ -127950,22 +128698,22 @@ msgstr "你把 %1$s 成功的装到你的 %2$s 上。" #: src/activity_handlers.cpp #, c-format msgid "You failed at installing the %s and destroyed your %s!" -msgstr "你未能将 %s 装上,摧毁了你的 %s!" +msgstr "你未能将%s装上,摧毁了你的%s!" #: src/activity_handlers.cpp #, c-format msgid "You failed at installing the %s and damaged your %s!" -msgstr "你未能将 %s 装上,损坏了你的 %s!" +msgstr "你未能将%s装上,损坏了你的%s!" #: src/activity_handlers.cpp #, c-format msgid "You failed at installing the %s." -msgstr "你未能将 %s 装上。" +msgstr "你未能将%s装上。" #: src/activity_handlers.cpp #, c-format msgid "You clear up the %s." -msgstr "你清理了 %s。" +msgstr "你清理了%s。" #: src/activity_handlers.cpp msgid "You pause to engage in spiritual contemplation." @@ -127982,12 +128730,12 @@ msgstr "你结束了等待。" #: src/activity_handlers.cpp #, c-format msgid "%s finishes with you..." -msgstr "你结束了 %s……" +msgstr "你结束了%s……" #: src/activity_handlers.cpp #, c-format msgid "%s finishes chatting with you." -msgstr "%s 结束了和你的闲聊。" +msgstr "%s结束了和你的闲聊。" #: src/activity_handlers.cpp msgid "You toss and turn..." @@ -128090,7 +128838,7 @@ msgstr "你完成了%s的夯填。" #: src/activity_handlers.cpp #, c-format msgid "Playing with your %s has lifted your spirits a bit." -msgstr "和你的 %s 一起玩耍让你觉得好过了些。" +msgstr "和你的%s一起玩耍让你觉得好过了些。" #: src/activity_handlers.cpp msgid "You open up your kit and shave." @@ -128103,12 +128851,12 @@ msgstr "你修了修你的毛发。" #: src/activity_handlers.cpp #, c-format msgid "You disassemble your %s." -msgstr "你拆解了 %s。" +msgstr "你拆解了%s。" #: src/activity_handlers.cpp src/player.cpp #, c-format msgid "You unload your %s." -msgstr "你清空了 %s。" +msgstr "你清空了%s。" #: src/activity_handlers.cpp msgid "You harvested all the plots you could." @@ -128125,7 +128873,7 @@ msgstr "你耕种了所有的能够耕种的地。" #: src/activity_handlers.cpp #, c-format msgid "You have run out of %s" -msgstr "你用光了 %s" +msgstr "你用光了%s" #: src/activity_handlers.cpp msgid "You fertilized every plot you could." @@ -128142,17 +128890,17 @@ msgstr "目标消失了。IFF覆盖失败。" #: src/activity_handlers.cpp #, c-format msgid "You unleash your override attack on the %s." -msgstr "你尝试着重置 %s 的协议。" +msgstr "你尝试着重编程%s的协议。" #: src/activity_handlers.cpp #, c-format msgid "You successfully override the %s's IFF protocols!" -msgstr "你成功的重写了 %s 的IFF(敌我识别)协议!" +msgstr "你成功的覆盖了%s的IFF(敌我识别)协议!" #: src/activity_handlers.cpp #, c-format msgid "The %s short circuits as you attempt to reprogram it!" -msgstr "%s 在你重新编程时短路了!" +msgstr "%s在你重新编程时短路了!" #: src/activity_handlers.cpp msgid "...and turns friendly!" @@ -128194,7 +128942,7 @@ msgid "" msgid_plural "" "There's no room in your inventory for the %s, so you drop them into the %s's" " %s." -msgstr[0] "你装不下 %s,只能把它丢进 %s 的 %s 里。" +msgstr[0] "你装不下%s,只能把它丢进 %s 的 %s 里。" #: src/activity_item_handling.cpp #, c-format @@ -128274,13 +129022,13 @@ msgstr[0] " 将 %1$s 放进 %2$s。" #, c-format msgid "There's no room in your inventory for the %s, so you drop it." msgid_plural "There's no room in your inventory for the %s, so you drop them." -msgstr[0] "你装不下 %s,只能把它丢下。" +msgstr[0] "你装不下%s,只能把它丢下。" #: src/activity_item_handling.cpp #, c-format msgid "The %s is too heavy to carry, so you drop it." msgid_plural "The %s is too heavy to carry, so you drop them." -msgstr[0] "%s 太重了,只能把它丢下。" +msgstr[0] "%s太重了,只能把它丢下。" #: src/activity_item_handling.cpp #, c-format @@ -128291,27 +129039,27 @@ msgstr[0] "%1$s 滚落在 %2$s 上。" #: src/activity_item_handling.cpp #, c-format msgid "You drop several items on the %s." -msgstr "你把一些物品丢在 %s 上。" +msgstr "你把一些物品丢在%s上。" #: src/activity_item_handling.cpp #, c-format msgid " drops several items on the %s." -msgstr " 在 %s 上丢下一些物品。" +msgstr "在%s上丢下一些物品。" #: src/activity_item_handling.cpp #, c-format msgid "You put several items in the %s." -msgstr "你将一些物品放进 %s。" +msgstr "你将一些物品放进%s。" #: src/activity_item_handling.cpp #, c-format msgid " puts several items in the %s." -msgstr " 将一些物品放进 %s。" +msgstr "将一些物品放进%s。" #: src/activity_item_handling.cpp #, c-format msgid "Some items tumble to the %s." -msgstr "一些物品滚落在 %s 上。" +msgstr "一些物品滚落在%s上。" #: src/activity_item_handling.cpp src/iuse.cpp #, c-format @@ -128957,7 +129705,7 @@ msgid "" msgid_plural "" "Wearing multiple items %s on your %s is adding " "encumbrance there." -msgstr[0] "将多件 %s 装备穿戴于 %s上有累赘度惩罚。" +msgstr[0] "将多件%s装备穿戴于%s上有累赘度惩罚。" #: src/armor_layers.cpp #, c-format @@ -128967,7 +129715,7 @@ msgid "" msgid_plural "" "Wearing this outside items it would normally be beneath is adding " "encumbrance to your %s." -msgstr[0] "将外层物品穿戴于 %s 的内层衣物之下有累赘度惩罚。" +msgstr[0] "将外层物品穿戴于%s的内层衣物之下有累赘度惩罚。" #: src/armor_layers.cpp #, c-format @@ -128978,8 +129726,7 @@ msgid_plural "" "Wearing this outside your %s is adding encumbrance" " to your %s." msgstr[0] "" -"将该物品穿戴于 %s 上对你的 %s " -"有累赘度惩罚。" +"将该物品穿戴于%s上对你的%s有累赘度惩罚。" #: src/armor_layers.cpp msgid "This is worn next to the skin." @@ -129081,12 +129828,12 @@ msgstr "这件装备让你可以在水下看清东西。" #: src/armor_layers.cpp #, c-format msgid "%s is too far to sort armor." -msgstr "%s 离得太远了,没法整理装束。" +msgstr "%s离得太远了,没法整理装束。" #: src/armor_layers.cpp #, c-format msgid "%s is not friendly!" -msgstr "%s 可不是你的友军!" +msgstr "%s可不是你的友军!" #: src/armor_layers.cpp msgid "Sort Armor" @@ -129133,7 +129880,7 @@ msgstr "累赘度" #: src/armor_layers.cpp #, c-format msgid "Swap side for %s?" -msgstr "把 %s 穿在另一边?" +msgstr "把%s穿在另一边?" #: src/armor_layers.cpp msgid "Can't put this on!" @@ -129723,75 +130470,75 @@ msgstr "%s苦难" msgid "" "The %s is somehow vaguely dissatisfied even though it doesn't want anything." " Seeing this is a bug!" -msgstr "%s 充能条件未被满足,虽然它并没有充能条件。你能看见它说明出BUG了!" +msgstr "%s充能条件未被满足,虽然它并没有充能条件。你能看见它说明出BUG了!" #: src/artifact.cpp #, c-format msgid "" "The %s is satisfied, as it should be because it has no standards. Seeing " "this is a bug!" -msgstr "%s 充能条件已被满足,虽然它并没有充能条件。你能看见它说明出BUG了!" +msgstr "%s充能条件已被满足,虽然它并没有充能条件。你能看见它说明出BUG了!" #: src/artifact.cpp #, c-format msgid "Your %s feels needy, like it wants to be held." -msgstr "%s 看上去很无助,好想被你紧紧握住。" +msgstr "%s看上去很无助,好想被你紧紧握住。" #: src/artifact.cpp #, c-format msgid "You snuggle your %s closer." -msgstr "你把 %s 紧紧握在手中。" +msgstr "你把%s紧紧握在手中。" #: src/artifact.cpp #, c-format msgid "Your %s feels needy, like it wants to be touched." -msgstr "%s 看上去很无助,好想被你紧紧抚摸。" +msgstr "%s看上去很无助,好想被你热情抚摸。" #: src/artifact.cpp #, c-format msgid "You press your %s against your skin." -msgstr "你把 %s 紧紧贴在身上。" +msgstr "你把%s紧紧贴在身上。" #: src/artifact.cpp #, c-format msgid "" "The %s is confused to find you dreaming while awake. Seeing this is a bug!" -msgstr "%s 在对你白日发梦感到困惑。你能看见它说明出BUG了!" +msgstr "%s在对你白日发梦感到困惑。你能看见它说明出BUG了!" #: src/artifact.cpp #, c-format msgid "Your %s sleeps soundly." -msgstr "%s 睡着了,睡得很香。" +msgstr "%s睡着了,睡得很香。" #: src/artifact.cpp #, c-format msgid "Your %s longs for the glow." -msgstr "%s 看上去在渴求着光芒。" +msgstr "%s看上去在渴求着光芒。" #: src/artifact.cpp #, c-format msgid "Your %s basks in the glow." -msgstr "%s 沐浴在光芒之中。" +msgstr "%s沐浴在光芒之中。" #: src/artifact.cpp #, c-format msgid "You dream of angels' tears falling on your %s." -msgstr "你梦见 %s 流下了天使的眼泪。" +msgstr "你梦见%s流下了天使的眼泪。" #: src/artifact.cpp #, c-format msgid "You dream of playing in the rain with your %s." -msgstr "你梦见自己和 %s 在雨中嬉戏。" +msgstr "你梦见自己和%s在雨中嬉戏。" #: src/artifact.cpp #, c-format msgid "You dream that your %s is being buried alive." -msgstr "你梦见 %s 被活活埋进土中。" +msgstr "你梦见%s被活活埋进土中。" #: src/artifact.cpp #, c-format msgid "You dream of your %s dancing in a blue void." -msgstr "你梦见 %s 在蓝色的虚空之中翩翩起舞。" +msgstr "你梦见%s在蓝色的虚空之中翩翩起舞。" #: src/artifact.cpp #, c-format @@ -129835,7 +130582,7 @@ msgid "" "They are %s" msgstr "" "\n" -"这东西 %s" +"这东西%s" #: src/artifact.cpp #, c-format @@ -129844,7 +130591,7 @@ msgid "" "It is %s" msgstr "" "\n" -"这东西 %s" +"这东西%s" #: src/artifact.cpp #, c-format @@ -129976,15 +130723,15 @@ msgstr "" "字符 * 是通配符。示例如下:\n" "\n" "木箭 精确匹配物品名称\n" -"木* 匹配以“木”开头的物品\n" -"*箭 匹配以“箭”结尾的物品\n" +"木* 匹配以\"木\"开头的物品\n" +"*箭 匹配以\"箭\"结尾的物品\n" "*翎羽*箭 允许多个通配符\n" "*uPs 大小写不敏感\n" " \n" "根据物品材料拾取:\n" "m:凯夫拉 匹配凯夫拉制成的物品\n" "M:铜 匹配完全由铜构成的物品\n" -"M:钢,铁 允许多种材料(“或”关系)" +"M:钢,铁 允许多种材料(\"或\"关系)" #: src/auto_pickup.cpp msgid "Pickup Rule:" @@ -130016,7 +130763,7 @@ msgstr "自动拾取设置" #: src/ballistics.cpp #, c-format msgid "The %s shatters!" -msgstr "%s 被击成碎片了!" +msgstr "%s被击成碎片了!" #: src/ballistics.cpp #, c-format @@ -130034,13 +130781,13 @@ msgstr "砰的一声。" #: src/ballistics.cpp #, c-format msgid "The attack bounced to %s!" -msgstr "攻击反弹到 %s 身上!" +msgstr "攻击反弹到%s身上!" #. ~ Name of a basecamp #: src/basecamp.cpp #, c-format msgid "%s Board" -msgstr "%s 公告栏" +msgstr "%s公告栏" #: src/basecamp.cpp #, c-format @@ -130109,27 +130856,27 @@ msgstr "空扩展区" #: src/bionics.cpp #, c-format msgid "You don't have the power to activate your %s." -msgstr "你没有足够能量激活 %s。" +msgstr "你没有足够能量激活%s。" #: src/bionics.cpp #, c-format msgid "Deactivate your %s first!" -msgstr "请先关闭你的 %s!" +msgstr "请先关闭你的%s!" #: src/bionics.cpp #, c-format msgid "You're forced to drop your %s." -msgstr "你被迫丢下你的 %s。" +msgstr "你被迫丢下你的%s。" #: src/bionics.cpp #, c-format msgid "Your %s automatically turn off." -msgstr "你的 %s 自动关闭了!" +msgstr "你的%s自动关闭了!" #: src/bionics.cpp #, c-format msgid "Your %s automatically turns off." -msgstr "你的 %s 自动关闭了!" +msgstr "你的%s自动关闭了!" #: src/bionics.cpp msgid "You change your mind and turn it off." @@ -130289,7 +131036,7 @@ msgstr "轰嘶嘶!" #: src/bionics.cpp #, c-format msgid "Extract water from the %s" -msgstr "从 %s 中抽水" +msgstr "从%s中抽水" #: src/bionics.cpp msgid "You unleash a powerful shockwave!" @@ -130318,7 +131065,7 @@ msgstr "风速:%.1f %s。" #: src/bionics.cpp src/iuse.cpp #, c-format msgid "Feels Like: %s." -msgstr "感觉: %s。" +msgstr "感觉:%s。" #: src/bionics.cpp src/iuse.cpp #, c-format @@ -130365,27 +131112,27 @@ msgstr "在摊开太阳能背包后,你可以将它连接到你的电缆充电 #: src/bionics.cpp #, c-format msgid "You can't deactivate your %s manually!" -msgstr "你无法手动关闭 %s。" +msgstr "你无法手动关闭%s。" #: src/bionics.cpp #, c-format msgid "You don't have the power to deactivate your %s." -msgstr "你没有足够能量关闭 %s。" +msgstr "你没有足够能量关闭%s。" #: src/bionics.cpp src/iuse_actor.cpp #, c-format msgid "You deactivate your %s." -msgstr "你关闭 %s。" +msgstr "你关闭%s。" #: src/bionics.cpp #, c-format msgid "You withdraw your %s." -msgstr "你缩回了 %s。" +msgstr "你缩回了%s。" #: src/bionics.cpp #, c-format msgid "Your %s powers down." -msgstr "%s 的能量耗尽了。" +msgstr "%s的能量耗尽了。" #: src/bionics.cpp msgid "Artificial night generator active!" @@ -130394,7 +131141,7 @@ msgstr "人工黑夜制造机已激活!" #: src/bionics.cpp #, c-format msgid "Your %s has lost connection and is turning off." -msgstr "%s 已经失去连接并关闭了。" +msgstr "%s已经失去连接并关闭了。" #: src/bionics.cpp msgid "You feel your throat open up and air filling your lungs!" @@ -130443,12 +131190,12 @@ msgstr "真的太痛了!" #: src/bionics.cpp #, c-format msgid "%s body is damaged!" -msgstr "%s 的身体被损伤了!" +msgstr "%s的身体被损伤了!" #: src/bionics.cpp #, c-format msgid "%s body is severely damaged!" -msgstr "%s 的身体被严重损伤!" +msgstr "%s的身体被严重损伤!" #: src/bionics.cpp msgid "You prep to begin surgery." @@ -130461,17 +131208,17 @@ msgstr " 准备好做手术。" #: src/bionics.cpp #, c-format msgid "A lifetime of augmentation has taught %s a thing or two..." -msgstr "长期进行生化插件安装让 %s 有些经验……" +msgstr "长期进行生化插件安装让%s有些经验……" #: src/bionics.cpp #, c-format msgid "%s don't have this bionic installed." -msgstr "%s 没有安装那个生化插件。" +msgstr "%s没有安装那个生化插件。" #: src/bionics.cpp #, c-format msgid "Removing %s Fusion Blaster Arm would leave %s with a useless stump." -msgstr "即使 %s 现在移除了核聚变臂炮,%s 的半截胳膊也还是长不出来。" +msgstr "即使%s现在移除了核聚变臂炮,%s的半截胳膊也还是长不出来。" #: src/bionics.cpp msgid "" @@ -130481,14 +131228,14 @@ msgstr "警告:移除核反应堆将可能导致辐射!仍要移除么?" #: src/bionics.cpp #, c-format msgid "%s must remove the %s bionic to remove the %s." -msgstr "%s 必须先移除 %s 才能移除 %s。" +msgstr "%s必须先移除%s才能移除%s。" #: src/bionics.cpp #, c-format msgid "" "The Telescopic Lenses are part of %s eyes now. Removing them would leave %s" " blind." -msgstr "自动对焦透镜已经成了 %s 眼睛的一部分。移除它们会令 %s 失明。" +msgstr "自动对焦透镜已经成了%s眼睛的一部分。移除它们会令%s失明。" #: src/bionics.cpp msgid "Are you sure you wish to uninstall the selected bionic?" @@ -130524,7 +131271,7 @@ msgstr " 把四肢内脏轻轻摇晃地缓缓放回原本的位置。" #: src/bionics.cpp #, c-format msgid "Successfully removed %s." -msgstr "成功移除了 %s。" +msgstr "成功移除了%s。" #: src/bionics.cpp #, c-format @@ -130587,7 +131334,7 @@ msgstr "成功地将 %1$s 升级到 %2$s。" #: src/bionics.cpp #, c-format msgid "Successfully installed %s." -msgstr "成功安装了 %s。" +msgstr "成功安装了%s。" #: src/bionics.cpp #, c-format @@ -130642,7 +131389,7 @@ msgstr " 搞砸了这次安装。" #: src/bionics.cpp #, c-format msgid "%s training helps %s minimize the complications." -msgstr "作为一名专业医生,%s 的训练帮助 %s 将安装插件失败的后果最小化。" +msgstr "作为一名专业医生,%s的训练帮助%s将安装插件失败的后果最小化。" #: src/bionics.cpp msgid "The installation is faulty!" @@ -130651,7 +131398,7 @@ msgstr "你安装的生化插件故障了!" #: src/bionics.cpp #, c-format msgid "%s lose power capacity!" -msgstr "%s 的生化能量上限减少了!" +msgstr "%s的生化能量上限减少了!" #: src/bionics.cpp #, c-format @@ -130691,7 +131438,7 @@ msgstr "能量储备上限增加 %i。" #: src/bionics.cpp #, c-format msgid "Your %s fails, and is destroyed!" -msgstr "你的 %s 失效了,并且被摧毁了!" +msgstr "你的%s失效了,并且被摧毁了!" #: src/bionics.cpp msgid "" @@ -130818,7 +131565,7 @@ msgstr "被动(%i)" #: src/bionics_ui.cpp #, c-format msgid "Power usage: %s" -msgstr "能量消耗: %s" +msgstr "能量消耗:%s" #: src/bionics_ui.cpp msgid "This bionic occupies the following body parts:" @@ -130858,8 +131605,8 @@ msgid "" "You can not activate %s!\n" "To read a description of %s, press '!', then '%c'." msgstr "" -"你无法激活 %s!\n" -"如果要阅读 %s 的说明,按\"!\"键,然后按\"%c\"键。" +"你无法激活%s!\n" +"如果要阅读%s的说明,按\"!\"键,然后按\"%c\"键。" #: src/bonuses.cpp msgid "Accuracy" @@ -131302,7 +132049,7 @@ msgstr " 挣脱了!" #: src/character.cpp #, c-format msgid "You put the %s in your %s." -msgstr "你将 %s 放进 %s。" +msgstr "你将%s放进%s。" #. ~ %1$s - list of unmet requirements, %2$s - item name. #: src/character.cpp @@ -131532,7 +132279,7 @@ msgstr "这是你 - %s。" #: src/character.cpp #, c-format msgid "This is %s." -msgstr "这是 %s。" +msgstr "这是%s。" #: src/character.cpp msgid "Wielding:" @@ -131562,6 +132309,34 @@ msgstr "禁止 NPC 拾取" msgid "Friendly NPCs don't pickup items inside the zone." msgstr "友好的NPC不会拾取该区域内的物品。" +#: src/clzones.cpp +msgid "NPC Retreat" +msgstr "NPC撤离" + +#: src/clzones.cpp +msgid "" +"When fleeing, friendly NPCs will attempt to retreat toward this zone if it " +"is within 60 tiles." +msgstr "当撤离时,如果友好的NPC离该区域60格范围之内,他们将会试图撤退到这儿。" + +#: src/clzones.cpp +msgid "NPC Ignore Sounds" +msgstr "NPC无视声音" + +#: src/clzones.cpp +msgid "Friendly NPCs won't investigate unseen sounds coming from this zone." +msgstr "友好的NPC不会调查从这个区域传来,且在视野外的声音。" + +#: src/clzones.cpp +msgid "NPC Investigation Area" +msgstr "NPC调查区域" + +#: src/clzones.cpp +msgid "" +"Friendly NPCs will investigate unseen sounds only if they come from inside " +"this area." +msgstr "友好的NPC只会调查从这个区域传来,且在视野外的声音。" + #: src/clzones.cpp msgid "Loot: Unsorted" msgstr "战利品:待整理" @@ -133207,12 +133982,12 @@ msgstr "在哪建设?" #: src/construction.cpp #, c-format msgid "%s assists you with the work..." -msgstr "%s 协助了你……" +msgstr "%s协助了你……" #: src/construction.cpp #, c-format msgid "%s watches you work..." -msgstr "%s 看着你干活……" +msgstr "%s看着你干活……" #: src/construction.cpp #, c-format @@ -133226,12 +134001,12 @@ msgstr "输入新的车辆名字:" #: src/construction.cpp #, c-format msgid "That %s can not be disassembled!" -msgstr "这件 %s 无法拆解!" +msgstr "这件%s无法拆解!" #: src/construction.cpp #, c-format msgid "You disassemble the %s." -msgstr "你拆解了 %s。" +msgstr "你拆解了%s。" #: src/construction.cpp msgid "The rock feels much warmer than normal. Proceed?" @@ -133332,7 +134107,7 @@ msgstr "你没法喝下已经被冻成冰块的饮料。" #: src/consumption.cpp src/player.cpp #, c-format msgid "You need a %s to consume that!" -msgstr "你需要一个 %s 来服用它!" +msgstr "你需要一个%s来服用它!" #: src/consumption.cpp msgid "We can't eat that. It's not right for us." @@ -133385,17 +134160,17 @@ msgstr "你已经很饱了,再喝就是强迫自己喝下去。" #: src/consumption.cpp #, c-format msgid "Eat your %s anyway?" -msgstr "真的要吃下 %s 吗?" +msgstr "真的要吃下%s吗?" #: src/consumption.cpp #, c-format msgid "Drink your %s anyway?" -msgstr "真的要喝下 %s 吗?" +msgstr "真的要喝下%s吗?" #: src/consumption.cpp #, c-format msgid "Consume your %s anyway?" -msgstr "真的要消耗 %s 吗?" +msgstr "真的要消耗%s吗?" #: src/consumption.cpp msgctxt "memorial_male" @@ -133417,57 +134192,57 @@ msgstr "你开始为冬眠而囤积卡路里和水分。你有一种你准备好 #: src/consumption.cpp #, c-format msgid "Ick, this %s doesn't taste so good..." -msgstr "呃——这 %s 尝起来不太好……" +msgstr "呃——这%s尝起来不太好……" #: src/consumption.cpp #, c-format msgid "Mmm, this %s tastes delicious..." -msgstr "嗯,%s 真好吃啊……" +msgstr "嗯,%s真好吃啊……" #: src/consumption.cpp #, c-format msgid " assimilates a %s." -msgstr " 吸了一口 %s。" +msgstr "吸了一口%s。" #: src/consumption.cpp #, c-format msgid "You assimilate your %s." -msgstr "你吸了一口 %s 。" +msgstr "你吸了一口%s。" #: src/consumption.cpp #, c-format msgid "Ick, this %s (rotten) doesn't taste so good..." -msgstr "呃,这个 %s(腐坏)尝起来不太好……" +msgstr "呃,这个%s(腐坏)尝起来不太好……" #: src/consumption.cpp #, c-format msgid "You drink your %s (rotten)." -msgstr "你喝下了 %s(腐坏)。" +msgstr "你喝下了%s(腐坏)。" #: src/consumption.cpp #, c-format msgid " drinks a %s." -msgstr " 喝了一口 %s。" +msgstr "喝了一口%s。" #: src/consumption.cpp #, c-format msgid "You drink your %s." -msgstr "你喝下了 %s。" +msgstr "你喝下了%s。" #: src/consumption.cpp #, c-format msgid "You eat your %s (rotten)." -msgstr "你吃下了 %s(腐坏)。" +msgstr "你吃下了%s(腐坏)。" #: src/consumption.cpp #, c-format msgid " eats a %s." -msgstr " 吃下 %s。" +msgstr "吃下%s。" #: src/consumption.cpp #, c-format msgid "You eat your %s." -msgstr "你吃下了 %s。" +msgstr "你吃下了%s。" #: src/consumption.cpp msgid "You feast upon the human flesh, and in doing so, devour their spirit." @@ -133631,12 +134406,12 @@ msgstr "嗨!你看起来和我一样!让我们一起合作吧!" #: src/consumption.cpp #, c-format msgid "You feel the %s filling you out." -msgstr "你所食用的 %s 中摄取的能量正在以肉眼可见的速度修复你受损的组织。" +msgstr "你所食用的%s中摄取的能量正在以肉眼可见的速度修复你受损的组织。" #: src/consumption.cpp #, c-format msgid " looks better after eating the %s." -msgstr " 吃了 %s 以后,看起来好多了。" +msgstr "吃了%s以后,看起来好多了。" #: src/consumption.cpp msgid "Your internal power storage is fully powered." @@ -133649,12 +134424,12 @@ msgstr " 的生化能量已经充满。" #: src/consumption.cpp #, c-format msgid "You recharge your battery system with the %s." -msgstr "你用 %s 给自己充能。" +msgstr "你用%s给自己充能。" #: src/consumption.cpp #, c-format msgid " recharges their battery system with the %s." -msgstr " 用 %s 给自己充能。" +msgstr "用%s给自己充能。" #: src/consumption.cpp msgid "That is a LOT of plutonium. Are you sure you want that much?" @@ -133663,42 +134438,42 @@ msgstr "钚剂量过大,你真的确定要这么多么?" #: src/consumption.cpp #, c-format msgid "You add your %s to your reactor's tank." -msgstr "你把 %s 装入自己的微型核反应堆。" +msgstr "你把%s装入自己的微型核反应堆。" #: src/consumption.cpp #, c-format msgid " pours %s into their reactor's tank." -msgstr " 把 %s 倒入了自己的小型核反应堆。" +msgstr "把%s倒入了自己的小型核反应堆。" #: src/consumption.cpp #, c-format msgid "Are you sure you want to eat your favorited %s?" -msgstr "你确定要吃你喜欢的%s吗?" +msgstr "你确定要吃你喜欢的%s吗?" #: src/consumption.cpp #, c-format msgid "You digest your %s, but fail to acquire energy from it." -msgstr "你消化了 %s,但无法将其转化成为能量。" +msgstr "你消化了%s,但无法将其转化成为能量。" #: src/consumption.cpp #, c-format msgid "" " digests their %s for energy, but fails to acquire energy from it." -msgstr " 消化了 %s,但无法将其转化为能量。" +msgstr "消化了%s,但无法将其转化为能量。" #: src/consumption.cpp #, c-format msgid "" "You digest your %s, but you're fully powered already, so the energy is " "wasted." -msgstr "你消化了 %s,但是你的生化能量已达上限,多余的能量被浪费了。" +msgstr "你消化了%s,但是你的生化能量已达上限,多余的能量被浪费了。" #: src/consumption.cpp #, c-format msgid "" " digests a %s for energy, they're fully powered already, so the " "energy is wasted." -msgstr " 消化了 %s,但是其生化能量已达上限,多余的能量被浪费了。" +msgstr "消化了%s,但是其生化能量已达上限,多余的能量被浪费了。" #: src/consumption.cpp #, c-format @@ -133710,19 +134485,19 @@ msgstr[0] "你消化了%d个%s,并将其转化成了 %d 点能量。" #, c-format msgid " digests %d %s and recharges %d point of energy." msgid_plural " digests %d %s and recharges %d points of energy." -msgstr[0] " 消化了%d个%s,并将其转化成了%d 点能量。" +msgstr[0] "消化了%d个%s,并将其转化成了 %d 点能量。" #: src/consumption.cpp #, c-format msgid "You digest your %s and recharge %d point of energy." msgid_plural "You digest your %s and recharge %d points of energy." -msgstr[0] "你消化了 %s,并将其转化成了 %d 点能量。" +msgstr[0] "你消化了%s,并将其转化成了 %d 点能量。" #: src/consumption.cpp #, c-format msgid " digests a %s and recharges %d point of energy." msgid_plural " digests a %s and recharges %d points of energy." -msgstr[0] " 消化了 %s,并将其转化成了%d 点能量。" +msgstr[0] "消化了%s,并将其转化成了 %d 点能量。" #: src/craft_command.cpp src/crafting.cpp src/veh_interact.cpp msgid " (nearby)" @@ -133765,7 +134540,7 @@ msgstr "光线太暗,你无法继续制造那件物品!" msgid "" "The %s is too large and/or heavy to work on. You may want to use a " "workbench or a smaller batch size" -msgstr "%s 太大/重了,无法制造,你应该使用一个工作台,或者减少制造的数量。" +msgstr "%s太大/重了,无法制造,你应该使用一个工作台,或者减少制造的数量。" #: src/crafting.cpp msgid "Your morale is too low to continue crafting." @@ -133801,7 +134576,7 @@ msgstr "你无法继续制造那件物品!" #: src/crafting.cpp #, c-format msgid "You don't have anything to store %s in!" -msgstr "你没有任何容器来存放 %s!" +msgstr "你没有任何容器来存放%s!" #: src/crafting.cpp src/pickup.cpp #, c-format @@ -133853,7 +134628,7 @@ msgstr "把%s放在地上。" #, c-format msgctxt "in progress craft" msgid "What to do with the %s?" -msgstr "对 %s 做什么?" +msgstr "对%s做什么?" #: src/crafting.cpp #, c-format @@ -133889,50 +134664,61 @@ msgctxt "in progress craft" msgid " starts working on the %s." msgstr "开始处理%s。" -#: src/crafting.cpp -#, c-format -msgid "%s helps with crafting..." -msgstr "%s 协助了你制作……" - #: src/crafting.cpp #, c-format msgid "%s assists with crafting..." -msgstr "%s 协助了你……" +msgstr "%s协助了你……" #: src/crafting.cpp #, c-format msgid "%s could assist you with a batch..." -msgstr "%s 协助了你……" +msgstr "%s协助了你……" #: src/crafting.cpp #, c-format msgid "%s watches you craft..." -msgstr "%s 看着你制作……" +msgstr "%s看着你制作……" + +#: src/crafting.cpp +#, c-format +msgid "%s helps with crafting..." +msgstr "%s协助了你制作……" #: src/crafting.cpp #, c-format msgid "You fail to make the %s, and waste some materials." -msgstr "你制作 %s 失败,还浪费了些材料。" +msgstr "你制作%s失败,还浪费了些材料。" #: src/crafting.cpp #, c-format msgid "You fail to make the %s, but don't waste any materials." -msgstr "你制作 %s 失败,还好没有浪费材料。" +msgstr "你制作%s失败,还好没有浪费材料。" #: src/crafting.cpp #, c-format msgid "You craft %s from memory." -msgstr "你根据记忆制作了 %s。" +msgstr "你根据记忆制作了%s。" #: src/crafting.cpp #, c-format msgid "You craft %s using a book as a reference." -msgstr "你根据书本参考制作了 %s。" +msgstr "你根据书本参考制作了%s。" #: src/crafting.cpp #, c-format msgid "You memorized the recipe for %s!" -msgstr "你记住了 %s 的制作方法!" +msgstr "你记住了%s的制作方法!" + +#: src/crafting.cpp +#, c-format +msgid "You don't know the recipe for the %s and can't continue crafting." +msgstr "你不知道%s的配方,无法继续制作。" + +#: src/crafting.cpp +#, c-format +msgid "" +" doesn't know the recipe for the %s and can't continue crafting." +msgstr "不知道%s的配方,无法继续制作。" #: src/crafting.cpp #, c-format @@ -133979,23 +134765,23 @@ msgstr "这个物品已经腐坏了,我无法拆开。" #, c-format msgid "You need at least %d charge of %s." msgid_plural "You need at least %d charges of %s." -msgstr[0] "你至少需要 %d 单位的 %s 。" +msgstr[0] "你至少需要 %d 单位的%s 。" #: src/crafting.cpp #, c-format msgid "You need %s" -msgstr "你需要 %s" +msgstr "你需要%s" #: src/crafting.cpp #, c-format msgid "You need %s." -msgstr "你需要 %s 。" +msgstr "你需要%s 。" #: src/crafting.cpp #, c-format msgid "You need a %s with %d charge." msgid_plural "You need a %s with %d charges." -msgstr[0] "你需要 %s 并且至少有 %d 单位电量。" +msgstr[0] "你需要%s并且至少有 %d 单位电量。" #: src/crafting.cpp #, c-format @@ -134005,7 +134791,7 @@ msgid "" "Really disassemble?\n" "You feel you may be able to understand this object's construction.\n" msgstr "" -"拆解 %s 有可能获得:\n" +"拆解%s有可能获得:\n" "%s\n" "确认拆解?\n" "你觉得自己可以通过拆解学会它的制造配方。\n" @@ -134017,7 +134803,7 @@ msgid "" "%s\n" "Really disassemble?" msgstr "" -"拆解 %s 有可能获得:\n" +"拆解%s有可能获得:\n" "%s\n" "确认拆解?" @@ -134033,12 +134819,12 @@ msgstr "这件物品可能消失了,至少它不在预期的位置。" #: src/crafting.cpp #, c-format msgid "You disassemble the %s into its components." -msgstr "你把 %s 拆解成了零件。" +msgstr "你把%s拆解成了零件。" #: src/crafting.cpp #, c-format msgid "You fail to recover %s." -msgstr "你未能将 %s 回收。" +msgstr "你未能将%s回收。" #. ~ %1s - material, %2$s - disassembled item #: src/crafting.cpp @@ -134049,12 +134835,12 @@ msgstr "你未能将 %1$s 从 %2$s 回收。" #: src/crafting.cpp #, c-format msgid "You learned a recipe for %s from disassembling it!" -msgstr "你通过拆解学会了 %s 的制造方法!" +msgstr "你通过拆解学会了%s的制造方法!" #: src/crafting.cpp #, c-format msgid "You might be able to learn a recipe for %s if you disassemble another." -msgstr "再拆一个,你也许就能学会 %s 的制造方法了。" +msgstr "再拆一个,你也许就能学会%s的制造方法了。" #: src/crafting.cpp msgid "If you had better skills, you might learn a recipe next time." @@ -134308,22 +135094,22 @@ msgstr " 把你扎倒在地!" #: src/creature.cpp #, c-format msgid "You force %s to the ground!" -msgstr "你把 %s 扎倒在地!" +msgstr "你把%s扎倒在地!" #: src/creature.cpp #, c-format msgid " forces %s to the ground!" -msgstr " 把 %s 扎倒在地!" +msgstr "把%s扎倒在地!" #: src/creature.cpp #, c-format msgid "You avoid %s projectile!" -msgstr "你躲开了 %s 发射的弹药!" +msgstr "你躲开了%s发射的弹药!" #: src/creature.cpp #, c-format msgid " avoids %s projectile." -msgstr " 躲开了 %s 发射的弹药!" +msgstr "躲开了%s发射的弹药!" #: src/creature.cpp msgid "You avoid an incoming projectile!" @@ -134377,7 +135163,7 @@ msgstr "HP" #: src/creature.cpp #, c-format msgid "You hit %s for %d damage." -msgstr "你击中 %s,造成 %d 点伤害。" +msgstr "你击中%s,造成 %d 点伤害。" #. ~ 1$ - shooter, 2$ - target #: src/creature.cpp @@ -134485,7 +135271,7 @@ msgstr "电击" #: src/debug.cpp #, c-format msgid "See %s for a full stack backtrace" -msgstr "完整堆栈回溯已保存至 %s" +msgstr "完整堆栈回溯已保存至%s" #: src/debug.cpp msgid "An error has occurred! Written below is the error report:" @@ -134507,6 +135293,194 @@ msgid "" "message to the clipboard." msgstr "按 C (或者 c)键复制错误信息至剪贴板。" +#: src/debug_menu.cpp +msgid "Mutate" +msgstr "产生变异" + +#: src/debug_menu.cpp +msgid "Change all skills" +msgstr "更改所有技能" + +#: src/debug_menu.cpp +msgid "Learn all melee styles" +msgstr "掌握所有武术流派" + +#: src/debug_menu.cpp +msgid "Unlock all recipes" +msgstr "解锁全部配方" + +#: src/debug_menu.cpp +msgid "Edit player/NPC" +msgstr "编辑玩家/NPC" + +#: src/debug_menu.cpp +msgid "Damage self" +msgstr "自残" + +#: src/debug_menu.cpp +msgid "Set automove route" +msgstr "自动寻路至某点" + +#: src/debug_menu.cpp +msgid "Player..." +msgstr "玩家…" + +#: src/debug_menu.cpp +msgid "Check game state" +msgstr "检查游戏状态" + +#: src/debug_menu.cpp +msgid "Display hordes" +msgstr "显示尸潮" + +#: src/debug_menu.cpp +msgid "Test item group" +msgstr "测试物品组" + +#: src/debug_menu.cpp +msgid "Show sound clustering" +msgstr "显示声音分布" + +#: src/debug_menu.cpp +msgid "Display weather" +msgstr "显示天气" + +#: src/debug_menu.cpp +msgid "Display overmap scents" +msgstr "显示气味地图" + +#: src/debug_menu.cpp +msgid "Show mutation category levels" +msgstr "显示变异等级" + +#: src/debug_menu.cpp +msgid "Draw benchmark (X seconds)" +msgstr "渲染测试(秒)" + +#: src/debug_menu.cpp +msgid "Test trait group" +msgstr "测试特性组" + +#: src/debug_menu.cpp +msgid "Show debug message" +msgstr "显示调试信息" + +#: src/debug_menu.cpp +msgid "Crash game (test crash handling)" +msgstr "强制游戏崩溃(测试崩溃处理)" + +#: src/debug_menu.cpp +msgid "Toggle NPC pathfinding on map" +msgstr "在地图上切换NPC寻路" + +#: src/debug_menu.cpp +msgid "Info..." +msgstr "信息…" + +#: src/debug_menu.cpp +msgid "Teleport - short range" +msgstr "短距传送" + +#: src/debug_menu.cpp +msgid "Teleport - long range" +msgstr "长距传送" + +#: src/debug_menu.cpp +msgid "Teleport - adjacent overmap" +msgstr "传送至附近大地图" + +#: src/debug_menu.cpp +msgid "Teleport..." +msgstr "传送…" + +#: src/debug_menu.cpp +msgid "Spawn an item" +msgstr "生成物品" + +#: src/debug_menu.cpp +msgid "Spawn NPC" +msgstr "生成NPC" + +#: src/debug_menu.cpp +msgid "Spawn monster" +msgstr "生成怪物" + +#: src/debug_menu.cpp +msgid "Spawn a vehicle" +msgstr "生成一辆载具" + +#: src/debug_menu.cpp +msgid "Spawn artifact" +msgstr "生成神器" + +#: src/debug_menu.cpp +msgid "Spawn clairvoyance artifact" +msgstr "生成透视石" + +#: src/debug_menu.cpp +msgid "Spawning..." +msgstr "生成…" + +#: src/debug_menu.cpp +msgid "Reveal map" +msgstr "显示地图" + +#: src/debug_menu.cpp +msgid "Kill NPCs" +msgstr "杀死NPC" + +#: src/debug_menu.cpp +msgid "Map editor" +msgstr "地图编辑器" + +#: src/debug_menu.cpp +msgid "Change weather" +msgstr "改变天气" + +#: src/debug_menu.cpp +msgid "Change wind direction" +msgstr "改变风向" + +#: src/debug_menu.cpp +msgid "Change wind speed" +msgstr "改变风速" + +#: src/debug_menu.cpp +msgid "Kill all monsters" +msgstr "杀死全部怪物" + +#: src/debug_menu.cpp +msgid "Change time" +msgstr "改变时间" + +#: src/debug_menu.cpp +msgid "Overmap editor" +msgstr "大地图编辑器" + +#: src/debug_menu.cpp +msgid "Spawn map extra" +msgstr "生成地图事件" + +#: src/debug_menu.cpp +msgid "Map..." +msgstr "地图…" + +#: src/debug_menu.cpp +msgid "Quit to main menu" +msgstr "返回主菜单" + +#: src/debug_menu.cpp +msgid "" +"Debug Functions - Using these will cheat not only the game, but yourself.\n" +"You won't grow. You won't improve.\n" +"Taking this shortcut will gain you nothing. Your victory will be hollow.\n" +"Nothing will be risked and nothing will be gained." +msgstr "" +"调试功能 - 长夜已至,若你从此开始作弊,至爽方休,你将欺骗游戏,欺骗自己;\n" +"你不思成长,不会进步;\n" +"你依赖捷径,终无所得。\"你能刷利剑,刷伙伴,寒冷时刷烈焰,破晓时刷光线,能刷号角还能刷王冠\";\n" +"但只能将空虚的\"胜利\"留给自己。不得风险,收获亦然。" + #: src/debug_menu.cpp #, c-format msgid "You teleport to point (%d,%d,%d)." @@ -134949,6 +135923,203 @@ msgstr "强制移除任务" msgid "Drew %d times in %.3f seconds. (%.3f fps average)" msgstr "渲染 %d 次,花费 %.3f 秒。(平均 %.3f fps)" +#: src/debug_menu.cpp +msgid "Current overmap revealed." +msgstr "当前世界地图已显示。" + +#: src/debug_menu.cpp +#, c-format +msgid "Location %d:%d in %d:%d, %s\n" +msgstr "地点 %d:%d 在 %d:%d,%s\n" + +#: src/debug_menu.cpp +#, c-format +msgid "" +"Current turn: %d.\n" +"%s\n" +msgstr "" +"当前回合:%d。\n" +"%s\n" + +#: src/debug_menu.cpp +#, c-format +msgid "%d creature exists.\n" +msgid_plural "%d creatures exist.\n" +msgstr[0] "%d 只生物存在。\n" + +#: src/debug_menu.cpp +msgid "NPCs are going to spawn." +msgstr "NPC将会生成。" + +#: src/debug_menu.cpp +msgid "NPCs are NOT going to spawn." +msgstr "NPC将不会生成。" + +#: src/debug_menu.cpp +#, c-format +msgid "%s: map ( %d:%d ) pos ( %d:%d )" +msgstr "%s:地图(%d:%d)坐标(%d:%d)" + +#: src/debug_menu.cpp +#, c-format +msgid "(you: %d:%d)" +msgstr "(你:%d:%d)" + +#: src/debug_menu.cpp +#, c-format +msgid "Stomach Contents: %d ml / %d ml kCal: %d, Water: %d ml" +msgstr "胃容量:%d ml / %d ml 千卡:%d,水: %d ml" + +#: src/debug_menu.cpp +#, c-format +msgid "" +"Guts Contents: %d ml / %d ml kCal: %d, Water: %d ml\n" +"Hunger: %d, Thirst: %d, kCal: %d / %d" +msgstr "" +"消化容量: %d ml / %d ml 千卡: %d,水: %d ml\n" +"饥饿度: %d,干渴度: %d,千卡: %d / %d" + +#: src/debug_menu.cpp +#, c-format +msgid "%s's head implodes!" +msgstr "%s脑浆炸裂!" + +#: src/debug_menu.cpp +msgid "Choose vehicle to spawn" +msgstr "选择需要刷新的交通工具" + +#. ~ Menu entry in vehicle wish menu: 1st string: displayed name, 2nd string: +#. internal name of vehicle +#: src/debug_menu.cpp +#, c-format +msgid "%1$s (%2$s)" +msgstr "%1$s(%2$s)" + +#: src/debug_menu.cpp +msgid "Martial arts debug." +msgstr "调试武术。" + +#: src/debug_menu.cpp +msgid "Your eyes blink rapidly as knowledge floods your brain." +msgstr "你的双眼快速闪动扫描着脑内涌现的无数知识。" + +#: src/debug_menu.cpp +msgid "You now know a lot more than just 10 styles of kung fu." +msgstr "你现在通晓N种武术!" + +#: src/debug_menu.cpp +msgid "Recipe debug." +msgstr "调试配方。" + +#: src/debug_menu.cpp +msgid "You know how to craft that now." +msgstr "你掌握了制造的方法。" + +#: src/debug_menu.cpp +msgid "Select new weather pattern:" +msgstr "选择新的天气模版:" + +#: src/debug_menu.cpp +msgid "Disable weather forcing" +msgstr "禁止天气改变" + +#: src/debug_menu.cpp +msgid "Keep normal weather patterns" +msgstr "保持普通天气模版" + +#: src/debug_menu.cpp +msgid "Select new wind direction:" +msgstr "选择新的风向:" + +#: src/debug_menu.cpp +msgid "Disable direction forcing" +msgstr "禁用强制风向" + +#: src/debug_menu.cpp +msgid "Keep normal wind direction" +msgstr "保持正常风向" + +#: src/debug_menu.cpp +msgid "Select new wind speed:" +msgstr "选择新的风速:" + +#: src/debug_menu.cpp +msgid "Disable speed forcing" +msgstr "禁用强制风速" + +#: src/debug_menu.cpp +msgid "Keep normal wind speed" +msgstr "保持正常风速" + +#: src/debug_menu.cpp +#, c-format +msgid "Damage self for how much? hp: %d" +msgstr "对自己造成多少点伤害? hp:%d" + +#: src/debug_menu.cpp +msgid "This binary was not compiled with tiles support." +msgstr "当前游戏程序编译时未选择兼容图像版。" + +#: src/debug_menu.cpp +msgid "year" +msgstr "年" + +#: src/debug_menu.cpp +msgid "season" +msgstr "季" + +#: src/debug_menu.cpp +msgid "day" +msgstr "天" + +#: src/debug_menu.cpp +msgid "hour" +msgstr "小时" + +#: src/debug_menu.cpp +msgid "minute" +msgstr "分钟" + +#: src/debug_menu.cpp src/martialarts.cpp src/martialarts.cpp +msgid "turn" +msgid_plural "turns" +msgstr[0] "回合" + +#: src/debug_menu.cpp +msgid "Set year to?" +msgstr "设置年份为?" + +#: src/debug_menu.cpp +msgid "Set season to? (0 = spring)" +msgstr "设置季节为?(0 = 春天)" + +#: src/debug_menu.cpp +msgid "Set days to?" +msgstr "设置日期为?" + +#: src/debug_menu.cpp +msgid "Set hour to?" +msgstr "设置小时为?" + +#: src/debug_menu.cpp +msgid "Set minute to?" +msgstr "设置分钟为?" + +#: src/debug_menu.cpp +#, c-format +msgid "Set turn to? (One day is %i turns)" +msgstr "设置回合为?(一日为 %i 回合)" + +#: src/debug_menu.cpp +msgid "Enter benchmark length (in milliseconds):" +msgstr "输入渲染测试时长(毫秒):" + +#: src/debug_menu.cpp +msgid "" +"Quit without saving? This may cause issues such as duplicated or missing " +"items and vehicles!" +msgstr "不保存就退出吗?这有可能会引发各种存档问题,诸如物品及车辆被复制或丢失。" + #: src/defense.cpp #, c-format msgid "Please wait as the map generates [ 0%% ]" @@ -134969,7 +136140,7 @@ msgstr "防御模式下无法保存游戏!" #: src/defense.cpp #, c-format msgid "You cannot leave the %s behind!" -msgstr "你不能丢下 %s!" +msgstr "你不能丢下%s!" #: src/defense.cpp #, c-format @@ -135304,42 +136475,42 @@ msgstr "第 %d 波:" #: src/defense.cpp #, c-format msgid "Invasion of the %s!" -msgstr "%s 入侵!" +msgstr "%s入侵!" #: src/defense.cpp #, c-format msgid "Attack of the %s!" -msgstr "%s 来袭!" +msgstr "%s来袭!" #: src/defense.cpp #, c-format msgid "%s Attack!" -msgstr "%s 攻击!" +msgstr "%s攻击!" #: src/defense.cpp #, c-format msgid "%s from Hell!" -msgstr "来自地狱的 %s!" +msgstr "来自地狱的%s!" #: src/defense.cpp #, c-format msgid "Beware! %s!" -msgstr "小心!%s !" +msgstr "小心!%s!" #: src/defense.cpp #, c-format msgid "The Day of the %s!" -msgstr "%s 之日!" +msgstr "%s之日!" #: src/defense.cpp #, c-format msgid "Revenge of the %s!" -msgstr "%s 的复仇!" +msgstr "%s的复仇!" #: src/defense.cpp #, c-format msgid "Rise of the %s!" -msgstr "%s 崛起!" +msgstr "%s崛起!" #: src/descriptions.cpp msgid "" @@ -135379,7 +136550,7 @@ msgstr "" #: src/descriptions.cpp src/iexamine.cpp #, c-format msgid "That is a %s." -msgstr "这里有个 %s。" +msgstr "这里有个%s。" #: src/descriptions.cpp msgid "You could harvest the following things from it:" @@ -135509,12 +136680,12 @@ msgstr "陷阱:%s(%d)" #: src/editmap.cpp src/game.cpp #, c-format msgid "There is a %s there. Parts:" -msgstr "那里有一辆 %s。部件:" +msgstr "那里有一辆%s。部件:" #: src/editmap.cpp #, c-format msgid "There is a %s there." -msgstr "那里有一个 %s。" +msgstr "那里有一个%s。" #: src/editmap.cpp #, c-format @@ -136169,7 +137340,7 @@ msgstr " 被爆炸波及!" #: src/explosion.cpp #, c-format msgid "Your %s is hit for %d damage!" -msgstr "你的 %s 被击中,受到 %d 点伤害!" +msgstr "你的%s被击中,受到 %d 点伤害!" #: src/explosion.cpp msgid "a huge explosion!" @@ -136220,19 +137391,19 @@ msgstr "但没有造成伤害" #, c-format msgid "You are hit by %s bomb fragment, %s." msgid_plural "You are hit by %s bomb fragments, %s." -msgstr[0] "你被 %s 弹片击中,%s。" +msgstr[0] "你被%s弹片击中,%s。" #: src/explosion.cpp #, c-format msgid " is hit by %s bomb fragment, %s." msgid_plural " is hit by %s bomb fragments, %s." -msgstr[0] " 被 %s 弹片击中,%s。" +msgstr[0] "被%s弹片击中,%s。" #: src/explosion.cpp #, c-format msgid "The %s is hit by %s bomb fragment, %s." msgid_plural "The %s is hit by %s bomb fragments, %s." -msgstr[0] "%s 被 %s 弹片击中,%s。" +msgstr[0] "%s被%s弹片击中,%s。" #: src/faction.cpp msgid "Archenemy" @@ -136490,6 +137661,10 @@ msgstr "追随" msgid "Leading" msgstr "领导" +#: src/faction.cpp +msgid "Patrolling" +msgstr "巡逻" + #: src/faction.cpp msgid "Guarding" msgstr "警戒" @@ -136926,7 +138101,7 @@ msgstr ",营地主管" #: src/faction_camp.cpp #, c-format msgid "%s has abandoned the camp." -msgstr "%s 废弃了其所管理的营地。" +msgstr "%s废弃了其所管理的营地。" #: src/faction_camp.cpp #, c-format @@ -137661,6 +138836,10 @@ msgstr "选择一个起点与一个终点,两点间必须为直线,只有森 msgid "Select an end point." msgstr "选择终点。" +#: src/faction_camp.cpp +msgid "Spiked pits must be built over existing trenches!" +msgstr "必须在已存在的沟渠上修建钉刺陷坑!" + #: src/faction_camp.cpp msgid "Invalid terrain in construction path." msgstr "建设路线内有无效地形。" @@ -137768,7 +138947,7 @@ msgstr "狩猎动物" #: src/faction_camp.cpp #, c-format msgid "returns from %s carrying supplies and has a bit more experience..." -msgstr "从 %s 携带补给归来,并获得了一些经验……" +msgstr "从%s携带补给归来,并获得了一些经验……" #: src/faction_camp.cpp msgid "returns from constructing fortifications..." @@ -137781,22 +138960,22 @@ msgstr "从招募人手归来,并获得了一些经验……" #: src/faction_camp.cpp #, c-format msgid "%s encountered %s..." -msgstr "%s 遇到了 %s……" +msgstr "%s遇到了%s……" #: src/faction_camp.cpp #, c-format msgid "%s didn't find anyone to recruit..." -msgstr "%s 没遇到一个人……" +msgstr "%s没遇到一个人……" #: src/faction_camp.cpp #, c-format msgid "%s convinced %s to hear a recruitment offer from you..." -msgstr "%s 让 %s 勉强听了你的招募条件……" +msgstr "%s让%s勉强听了你的招募条件……" #: src/faction_camp.cpp #, c-format msgid "%s wasn't interested in anything %s had to offer..." -msgstr "%s 对 %s 所提出的招募条件没有任何兴趣……" +msgstr "%s对%s所提出的招募条件没有任何兴趣……" #: src/faction_camp.cpp msgid "" @@ -137899,12 +139078,12 @@ msgstr "你对这个NPC不感兴趣,决定放弃……" #: src/faction_camp.cpp #, c-format msgid "%s has been convinced to join!" -msgstr "%s 被说服加入我们了!" +msgstr "%s被说服加入我们了!" #: src/faction_camp.cpp #, c-format msgid "%s wasn't interested..." -msgstr "%s 并不感兴趣……" +msgstr "%s并不感兴趣……" #: src/faction_camp.cpp msgid "Your companion hit a river and didn't know how to swim..." @@ -137919,7 +139098,7 @@ msgstr "你的同伴到了河边,但其游泳等级不足以支撑到河对岸 #: src/faction_camp.cpp #, c-format msgid "%s didn't return from patrol..." -msgstr "%s 没能从巡逻中归来……" +msgstr "%s没能从巡逻中归来……" #: src/faction_camp.cpp msgid "returns from patrol..." @@ -138201,36 +139380,28 @@ msgstr "食物储藏点没有任何物品……" msgid "You distribute %d kcal worth of food to your companions." msgstr "你将 %d 千卡热量的食物分发给了你的同伴们。" -#: src/faction_camp.cpp -msgid "Accessed camp inventory whilst position does not refer to a camp" -msgstr "查阅营地清单,而位置不是指营地" - -#: src/faction_camp.cpp -msgid "consume components for camp mission, but no camp found" -msgstr "为营地任务消耗部件,但未能找到营地" - #: src/faction_camp.cpp #, c-format msgid "While %s, a silent specter approaches %s..." -msgstr "在 %s 时,一个幽灵般的身影悄无声息地接近了 %s……" +msgstr "在%s时,一个幽灵般的身影悄无声息地接近了%s……" #: src/faction_camp.cpp #, c-format msgid "" "%s notices the antlered horror and slips away before it gets too close." -msgstr "%s 察觉到了这只可怕的鹿角怪物,并在它靠近前悄悄地溜走了。" +msgstr "%s察觉到了这只可怕的鹿角怪物,并在它靠近前悄悄地溜走了。" #: src/faction_camp.cpp #, c-format msgid "Another survivor approaches %s asking for directions." -msgstr "一位幸存者现身并向 %s 问路。" +msgstr "一位幸存者现身并向%s问路。" #: src/faction_camp.cpp #, c-format msgid "" "Fearful that he may be an agent of some hostile faction, %s doesn't mention " "the camp." -msgstr "由于担心他可能是某个敌对派系的斥候, %s 并未透露任何关于幸存者营地的消息。" +msgstr "由于担心他可能是某个敌对派系的斥候,%s并未透露任何关于幸存者营地的消息。" #: src/faction_camp.cpp msgid "The two part on friendly terms and the survivor isn't seen again." @@ -138239,36 +139410,36 @@ msgstr "两人友好地交流完之后各自离开,从此再也没人遇见过 #: src/faction_camp.cpp #, c-format msgid "%s didn't detect the ambush until it was too late!" -msgstr "%s 察觉到自己被伏击时已经太迟了!" +msgstr "%s察觉到自己被伏击时已经太迟了!" #: src/faction_camp.cpp #, c-format msgid "The bull moose charged %s from the tree line..." -msgstr "一只公驼鹿从树林边缘径直朝 %s 冲了过来……" +msgstr "一只公驼鹿从树林边缘径直朝%s冲了过来……" #: src/faction_camp.cpp #, c-format msgid "" "Despite being caught off guard %s was able to run away until the moose gave " "up pursuit." -msgstr "尽管被打了个措手不及,但是 %s 仍然成功摆脱了驼鹿的追赶。" +msgstr "尽管被打了个措手不及,但是%s仍然成功摆脱了驼鹿的追赶。" #: src/faction_camp.cpp #, c-format msgid "The jabberwock grabbed %s by the arm from behind and began to scream." -msgstr "伽卜沃奇从后面一把抓住了%s 的手臂,并突然开始尖叫。" +msgstr "伽卜沃奇从后面一把抓住了%s的手臂,并突然开始尖叫。" #: src/faction_camp.cpp #, c-format msgid "" "Terrified, %s spun around and delivered a massive kick to the creature's " "torso..." -msgstr "%s 惊恐之中转过身来朝那个怪物的肚子狠狠踢了一脚……" +msgstr "%s惊恐之中转过身来朝那个怪物的肚子狠狠踢了一脚……" #: src/faction_camp.cpp #, c-format msgid "Collapsing into a pile of gore, %s walked away unscathed..." -msgstr "怪物缓缓变成了一滩肉泥,而 %s 毫发无伤地离开了……" +msgstr "怪物缓缓变成了一滩肉泥,而%s毫发无伤地离开了……" #: src/faction_camp.cpp msgid "(Sounds like bullshit, you wonder what really happened.)" @@ -138279,7 +139450,7 @@ msgstr "(牛皮都要吹上天了,你反复琢磨实际上发生了什么。 msgid "" "%s turned to find the hideous black eyes of a giant wasp staring back from " "only a few feet away..." -msgstr "%s 转过身来,正好和几步之外一只巨型黄蜂那恐怖的黑色眼睛正面相对……" +msgstr "%s转过身来,正好和几步之外一只巨型黄蜂那恐怖的黑色眼睛正面相对……" #: src/faction_camp.cpp msgid "The screams were terrifying, there was nothing anyone could do." @@ -138288,7 +139459,7 @@ msgstr "一声可怕的尖叫传了出来,但是附近并没有任何人能帮 #: src/faction_camp.cpp #, c-format msgid "Pieces of %s were found strewn across a few bushes." -msgstr "%s 的残肢被发现散落在周围的灌木丛上。" +msgstr "%s的残肢被发现散落在周围的灌木丛上。" #: src/faction_camp.cpp msgid "(You wonder if your companions are fit to work on their own...)" @@ -138666,30 +139837,10 @@ msgstr "浓厚杀真菌毒气" msgid "smoke vent" msgstr "排烟口" -#: src/field.cpp -msgid "Whew... smells like skunk!" -msgstr "哇哦……闻起来像臭鼬!" - -#: src/field.cpp -msgid "Man, that smells like some good shit!" -msgstr "伙计,那玩意闻起来真棒!" - -#: src/field.cpp -msgid "I don't know... should you really be smoking that stuff?" -msgstr "我不知道……你真的应该抽那玩意么?" - -#: src/field.cpp -msgid "Ew, smells like burning rubber!" -msgstr "呃,闻着就像是橡胶烧着了。" - -#: src/field.cpp -msgid "Ugh, that smells rancid!" -msgstr "啊,闻着一股子霉味。" - #: src/field.cpp #, c-format msgid "A %s hits you!" -msgstr "%s 击中了你!" +msgstr "%s击中了你!" #: src/field.cpp #, c-format @@ -138924,13 +140075,13 @@ msgstr "请等待。世界正在创建中……" #, c-format msgctxt "memorial_male" msgid "%s began their journey into the Cataclysm." -msgstr "%s 一行开始了他们在大灾变中的冒险。" +msgstr "%s一行开始了他们在大灾变中的冒险。" #: src/game.cpp #, c-format msgctxt "memorial_female" msgid "%s began their journey into the Cataclysm." -msgstr "%s 一行开始了他们在大灾变中的冒险。" +msgstr "%s一行开始了他们在大灾变中的冒险。" #: src/game.cpp msgid "Survived:" @@ -138952,25 +140103,25 @@ msgstr "遗言:" #, c-format msgctxt "memorial_male" msgid "%s committed suicide." -msgstr "%s 自杀了。" +msgstr "%s自杀了。" #: src/game.cpp #, c-format msgctxt "memorial_female" msgid "%s committed suicide." -msgstr "%s 自杀了。" +msgstr "%s自杀了。" #: src/game.cpp #, c-format msgctxt "memorial_male" msgid "%s was killed." -msgstr "%s 被杀了。" +msgstr "%s被杀了。" #: src/game.cpp #, c-format msgctxt "memorial_female" msgid "%s was killed." -msgstr "%s 被杀了。" +msgstr "%s被杀了。" #: src/game.cpp #, c-format @@ -139034,7 +140185,7 @@ msgstr "派系营地" #: src/game.cpp src/player_hardcoded_effects.cpp #, c-format msgid "You see %s approaching!" -msgstr "你看到 %s 正在逼近!" +msgstr "你看到%s正在逼近!" #: src/game.cpp msgid "Confirm:" @@ -139137,7 +140288,7 @@ msgstr "已将 '%s' 添加进角色的自动拾取规则里。" #: src/game.cpp #, c-format msgid "'%s' removed from character pickup rules." -msgstr "'%s' 已被从角色的自动拾取规则中移除。" +msgstr "‘%s’ 已被从角色的自动拾取规则中移除。" #: src/game.cpp msgid "Move North" @@ -139237,369 +140388,6 @@ msgstr "界面状态数据" msgid "Failed to save game data" msgstr "存储游戏数据失败" -#: src/game.cpp -msgid "" -"Debug Functions - Using these will cheat not only the game, but yourself. You won't grow. You won't improve.\n" -"Taking this shortcut will gain you nothing. Your victory will be hollow.\n" -"Nothing will be risked and nothing will be gained." -msgstr "" -"调试功能——长夜已至,若你从此开始作弊,至爽方休,你将欺骗游戏,欺骗自己。你不思成长,不会进步。\n" -"你依赖捷径,终无所得。\"你能刷利剑,刷伙伴,寒冷时刷烈焰,破晓时刷光线,能刷号角还能刷王冠\",\n" -"但只能将空虚的“胜利”留给自己。不得风险,收获亦然。" - -#: src/game.cpp -msgid "Wish for an item" -msgstr "生成一件物品" - -#: src/game.cpp -msgid "Teleport - Short Range" -msgstr "短距传送" - -#: src/game.cpp -msgid "Teleport - Long Range" -msgstr "长距传送" - -#: src/game.cpp -msgid "Reveal map" -msgstr "显示地图" - -#: src/game.cpp -msgid "Spawn NPC" -msgstr "生成NPC" - -#: src/game.cpp -msgid "Spawn Monster" -msgstr "生成怪物" - -#: src/game.cpp -msgid "Check game state..." -msgstr "检查游戏状态……" - -#: src/game.cpp -msgid "Kill NPCs" -msgstr "杀死NPC" - -#: src/game.cpp -msgid "Mutate" -msgstr "产生变异" - -#: src/game.cpp -msgid "Spawn a vehicle" -msgstr "生成一辆载具" - -#: src/game.cpp -msgid "Change all skills" -msgstr "更改所有技能" - -#: src/game.cpp -msgid "Learn all melee styles" -msgstr "掌握所有武术流派" - -#: src/game.cpp -msgid "Unlock all recipes" -msgstr "解锁全部配方" - -#: src/game.cpp -msgid "Edit player/NPC" -msgstr "编辑玩家/NPC" - -#: src/game.cpp -msgid "Spawn Artifact" -msgstr "生成神器" - -#: src/game.cpp -msgid "Spawn Clairvoyance Artifact" -msgstr "生成透视石" - -#: src/game.cpp -msgid "Map editor" -msgstr "地图编辑器" - -#: src/game.cpp -msgid "Change weather" -msgstr "改变天气" - -#: src/game.cpp -msgid "Change wind direction" -msgstr "改变风向" - -#: src/game.cpp -msgid "Change wind speed" -msgstr "改变风速" - -#: src/game.cpp -msgid "Kill all monsters" -msgstr "杀死全部怪物" - -#: src/game.cpp -msgid "Display hordes" -msgstr "显示尸潮" - -#: src/game.cpp -msgid "Test Item Group" -msgstr "测试物品组" - -#: src/game.cpp -msgid "Damage Self" -msgstr "自残" - -#: src/game.cpp -msgid "Show Sound Clustering" -msgstr "显示声音分布" - -#: src/game.cpp -msgid "Display weather" -msgstr "显示天气" - -#: src/game.cpp -msgid "Display overmap scents" -msgstr "显示气味地图" - -#: src/game.cpp -msgid "Change time" -msgstr "改变时间" - -#: src/game.cpp -msgid "Set automove route" -msgstr "自动寻路至某点" - -#: src/game.cpp -msgid "Show mutation category levels" -msgstr "显示变异等级" - -#: src/game.cpp -msgid "Overmap editor" -msgstr "大地图编辑器" - -#: src/game.cpp -msgid "Draw benchmark (X seconds)" -msgstr "渲染测试(秒)" - -#: src/game.cpp -msgid "Teleport - Adjacent overmap" -msgstr "传送至附近大地图" - -#: src/game.cpp -msgid "Test trait group" -msgstr "测试特性组" - -#: src/game.cpp -msgid "Show debug message" -msgstr "显示调试信息" - -#: src/game.cpp -msgid "Crash game (test crash handling)" -msgstr "强制游戏崩溃(测试崩溃处理)" - -#: src/game.cpp -msgid "Spawn Map Extra" -msgstr "生成地图事件" - -#: src/game.cpp -msgid "Toggle NPC pathfinding on map" -msgstr "在地图上切换NPC寻路" - -#: src/game.cpp -msgid "Quit to Main Menu" -msgstr "返回主菜单" - -#: src/game.cpp -msgid "Current overmap revealed." -msgstr "当前世界地图已显示。" - -#: src/game.cpp -#, c-format -msgid "Location %d:%d in %d:%d, %s\n" -msgstr "地点 %d:%d 在 %d:%d,%s\n" - -#: src/game.cpp -#, c-format -msgid "" -"Current turn: %d.\n" -"%s\n" -msgstr "" -"当前回合:%d。\n" -"%s\n" - -#: src/game.cpp -#, c-format -msgid "%d creature exists.\n" -msgid_plural "%d creatures exist.\n" -msgstr[0] "%d 只生物存在。\n" - -#: src/game.cpp -msgid "NPCs are going to spawn." -msgstr "NPC将会生成。" - -#: src/game.cpp -msgid "NPCs are NOT going to spawn." -msgstr "NPC将不会生成。" - -#: src/game.cpp -#, c-format -msgid "%s: map ( %d:%d ) pos ( %d:%d )" -msgstr "%s:地图(%d:%d)坐标(%d:%d)" - -#: src/game.cpp -#, c-format -msgid "(you: %d:%d)" -msgstr "(你:%d:%d)" - -#: src/game.cpp -#, c-format -msgid "Stomach Contents: %d ml / %d ml kCal: %d, Water: %d ml" -msgstr "胃容量:%d ml / %d ml 千卡:%d,水: %d ml" - -#: src/game.cpp -#, c-format -msgid "" -"Guts Contents: %d ml / %d ml kCal: %d, Water: %d ml\n" -"Hunger: %d, Thirst: %d, kCal: %d / %d" -msgstr "" -"消化容量: %d ml / %d ml 千卡: %d,水: %d ml\n" -"饥饿度: %d,干渴度: %d,千卡: %d / %d" - -#: src/game.cpp -#, c-format -msgid "%s's head implodes!" -msgstr "%s 脑浆炸裂!" - -#: src/game.cpp -msgid "Choose vehicle to spawn" -msgstr "选择需要刷新的交通工具" - -#. ~ Menu entry in vehicle wish menu: 1st string: displayed name, 2nd string: -#. internal name of vehicle -#: src/game.cpp -#, c-format -msgid "%1$s (%2$s)" -msgstr "%1$s(%2$s)" - -#: src/game.cpp -msgid "Martial arts debug." -msgstr "调试武术。" - -#: src/game.cpp -msgid "Your eyes blink rapidly as knowledge floods your brain." -msgstr "你的双眼快速闪动扫描着脑内涌现的无数知识。" - -#: src/game.cpp -msgid "You now know a lot more than just 10 styles of kung fu." -msgstr "你现在通晓N种武术!" - -#: src/game.cpp -msgid "Recipe debug." -msgstr "调试配方。" - -#: src/game.cpp -msgid "You know how to craft that now." -msgstr "你掌握了制造的方法。" - -#: src/game.cpp -msgid "Select new weather pattern:" -msgstr "选择新的天气模版:" - -#: src/game.cpp -msgid "Disable weather forcing" -msgstr "禁止天气改变" - -#: src/game.cpp -msgid "Keep normal weather patterns" -msgstr "保持普通天气模版" - -#: src/game.cpp -msgid "Select new wind direction:" -msgstr "选择新的风向:" - -#: src/game.cpp -msgid "Disable direction forcing" -msgstr "禁用强制风向" - -#: src/game.cpp -msgid "Keep normal wind direction" -msgstr "保持正常风向" - -#: src/game.cpp -msgid "Select new wind speed:" -msgstr "选择新的风速:" - -#: src/game.cpp -msgid "Disable speed forcing" -msgstr "禁用强制风速" - -#: src/game.cpp -msgid "Keep normal wind speed" -msgstr "保持正常风速" - -#: src/game.cpp -#, c-format -msgid "Damage self for how much? hp: %d" -msgstr "对自己造成多少点伤害? hp:%d" - -#: src/game.cpp -msgid "This binary was not compiled with tiles support." -msgstr "当前游戏程序编译时未选择兼容图像版。" - -#: src/game.cpp -msgid "year" -msgstr "年" - -#: src/game.cpp -msgid "season" -msgstr "季" - -#: src/game.cpp -msgid "day" -msgstr "天" - -#: src/game.cpp -msgid "hour" -msgstr "小时" - -#: src/game.cpp -msgid "minute" -msgstr "分钟" - -#: src/game.cpp src/martialarts.cpp src/martialarts.cpp -msgid "turn" -msgid_plural "turns" -msgstr[0] "回合" - -#: src/game.cpp -msgid "Set year to?" -msgstr "设置年份为?" - -#: src/game.cpp -msgid "Set season to? (0 = spring)" -msgstr "设置季节为?(0 = 春天)" - -#: src/game.cpp -msgid "Set days to?" -msgstr "设置日期为?" - -#: src/game.cpp -msgid "Set hour to?" -msgstr "设置小时为?" - -#: src/game.cpp -msgid "Set minute to?" -msgstr "设置分钟为?" - -#: src/game.cpp -#, c-format -msgid "Set turn to? (One day is %i turns)" -msgstr "设置回合为?(一日为 %i 回合)" - -#: src/game.cpp -msgid "Enter benchmark length (in milliseconds):" -msgstr "输入渲染测试时长(毫秒):" - -#: src/game.cpp -msgid "" -"Quit without saving? This may cause issues such as duplicated or missing " -"items and vehicles!" -msgstr "不保存就退出吗?这有可能会引发各种存档问题,诸如物品及车辆被复制或丢失。" - #: src/game.cpp msgid "You haven't killed any monsters yet!" msgstr "你还没有杀死任何怪物。" @@ -139727,12 +140515,12 @@ msgstr "当前小地图坐标: %d,%d,%d" #: src/game.cpp #, c-format msgid "%s spotted!" -msgstr "发现了 %s!" +msgstr "发现了%s!" #: src/game.cpp #, c-format msgid "We have detected a %s - an enemy of the Mycus!" -msgstr "吾等已侦测到一只 %s,马卡斯之敌!" +msgstr "吾等已侦测到一只%s,马卡斯之敌!" #: src/game.cpp msgid "Our fibers strain with renewed wrath!" @@ -139785,7 +140573,7 @@ msgstr "你的动态警报响了!" #: src/game.cpp #, c-format msgid "%s's brain explodes!" -msgstr "%s 的头颅爆炸了!" +msgstr "%s的头颅爆炸了!" #: src/game.cpp #, c-format @@ -139803,7 +140591,7 @@ msgstr "破裂声!" #: src/game.cpp #, c-format msgid "%s is caught in the shockwave!" -msgstr "%s 被冲击波击中了!" +msgstr "%s被冲击波击中了!" #: src/game.cpp msgid "You're caught in the shockwave!" @@ -139817,47 +140605,47 @@ msgstr "在(%d,%d,%d)没有什么可以击退!" #: src/game.cpp #, c-format msgid "%s was stunned!" -msgstr "%s 被击晕了!" +msgstr "%s被击晕了!" #: src/game.cpp #, c-format msgid "%s slammed into an obstacle!" -msgstr "%s 撞上障碍物!" +msgstr "%s撞上障碍物!" #: src/game.cpp #, c-format msgid "%s collided with something else and sent it flying!" -msgstr "%s 将不知道什么东西给撞飞了!" +msgstr "%s将不知道什么东西给撞飞了!" #: src/game.cpp #, c-format msgid "%s collided with someone else and sent him flying!" -msgstr "%s 将某个他给撞飞了!" +msgstr "%s将某个他给撞飞了!" #: src/game.cpp #, c-format msgid "%s collided with someone else and sent her flying!" -msgstr "%s 将某个她给撞飞了!" +msgstr "%s将某个她给撞飞了!" #: src/game.cpp #, c-format msgid "%s collided with you and sent you flying!" -msgstr "%s 将你撞飞出去了!" +msgstr "%s将你撞飞出去了!" #: src/game.cpp src/monmove.cpp #, c-format msgid "The %s drowns!" -msgstr "%s 淹死了!" +msgstr "%s淹死了!" #: src/game.cpp src/monmove.cpp #, c-format msgid "The %s flops around and dies!" -msgstr "%s 扑腾着死掉了!" +msgstr "%s扑腾着死掉了!" #: src/game.cpp #, c-format msgid "%s collided with you, and barely dislodges your tentacles!" -msgstr "%s 撞上了你,它几乎撞开了你的触手。" +msgstr "%s撞上了你,它几乎撞开了你的触手。" #: src/game.cpp #, c-format @@ -139902,12 +140690,12 @@ msgstr "控制台上显示了一堆你无法理解的东西。" #: src/game.cpp #, c-format msgid "The %s sparks and begins searching for a target!" -msgstr "%s 开始寻找目标!" +msgstr "%s开始寻找目标!" #: src/game.cpp #, c-format msgid "The %s is rendered non-functional!" -msgstr "%s 失效了!" +msgstr "%s失效了!" #: src/game.cpp msgid "The card reader is rendered non-functional." @@ -139920,22 +140708,22 @@ msgstr "附近的门滑开了!" #: src/game.cpp #, c-format msgid "The %s beeps erratically and deactivates!" -msgstr "%s 无规律地蜂鸣了几声,然后没声儿了!" +msgstr "%s无规律地蜂鸣了几声,然后没声儿了!" #: src/game.cpp #, c-format msgid "The EMP blast fries the %s!" -msgstr "EMP冲击波把 %s 炸焦了!" +msgstr "EMP冲击波把%s炸焦了!" #: src/game.cpp #, c-format msgid "The %s's electrical field momentarily goes out!" -msgstr "%s 四周的电场暂时消失了。" +msgstr "%s四周的电场暂时消失了。" #: src/game.cpp #, c-format msgid "The %s's disabled electrical field reverses polarity!" -msgstr "%s 已被瘫痪的电场被重新充电了!" +msgstr "%s已被瘫痪的电场被重新充电了!" #: src/game.cpp #, c-format @@ -139945,7 +140733,7 @@ msgstr "它受到了 %d 点伤害。" #: src/game.cpp #, c-format msgid "The %s is unaffected by the EMP blast." -msgstr "EMP冲击波对 %s 无效。" +msgstr "EMP冲击波对%s无效。" #: src/game.cpp msgid "The EMP blast drains your power." @@ -139954,7 +140742,7 @@ msgstr "EMP脉冲损耗了你体内的生化能量。" #: src/game.cpp #, c-format msgid "The %s on your wrists spark briefly, then release your hands!" -msgstr "你手腕上的 %s 冒出轻微的火花,随后松开了你的双手!" +msgstr "你手腕上的%s冒出轻微的火花,随后松开了你的双手!" #: src/game.cpp #, c-format @@ -140006,12 +140794,12 @@ msgstr "%1$s 击中了 %2$s。" #: src/game.cpp #, c-format msgid "The %s hits you." -msgstr "%s 击中了你。" +msgstr "%s击中了你。" #: src/game.cpp #, c-format msgid "A %s shatters!" -msgstr "%s 碎裂了!" +msgstr "%s碎裂了!" #: src/game.cpp msgid "Something shatters!" @@ -140020,12 +140808,12 @@ msgstr "某个东西碎裂了!" #: src/game.cpp #, c-format msgid "You dive from the %s." -msgstr "你从 %s 上纵身跳下。" +msgstr "你从%s上纵身跳下。" #: src/game.cpp src/vehicle_use.cpp #, c-format msgid "You take control of the %s." -msgstr "你控制了 %s。" +msgstr "你控制了%s。" #: src/game.cpp msgid "Control vehicle where?" @@ -140038,7 +140826,7 @@ msgstr "那里没有交通工具。" #: src/game.cpp #, c-format msgid "What to do with %s?" -msgstr "对 %s 做什么?" +msgstr "对%s做什么?" #: src/game.cpp msgid "Talk" @@ -140075,17 +140863,17 @@ msgstr "偷窃" #: src/game.cpp #, c-format msgid "You swap places with %s." -msgstr "你和 %s 互换位置。" +msgstr "你和%s互换位置。" #: src/game.cpp #, c-format msgid "%s moves out of the way." -msgstr "%s 让开了路。" +msgstr "%s让开了路。" #: src/game.cpp #, c-format msgid "%s has nowhere to go!" -msgstr "%s 没地方可以去!" +msgstr "%s没地方可以去!" #: src/game.cpp msgid "Limbs of: " @@ -140123,7 +140911,7 @@ msgstr "火马上就要灭了,你该添点燃料了。" #, c-format msgid "" "Without extra fuel it might burn yet for %s, but might also go out sooner." -msgstr "如果不添燃料的话,火大概还能持续燃烧约 %s,但也可能提早熄灭。" +msgstr "如果不添燃料的话,火大概还能持续燃烧约%s,但也可能提早熄灭。" #: src/game.cpp msgid "" @@ -140143,25 +140931,17 @@ msgstr "火势看上去很旺,看上去还能继续烧半天。" #: src/game.cpp #, c-format msgid "Without extra fuel it will burn for %s." -msgstr "如果不添燃料的话,火大概还能持续燃烧约 %s。" - -#: src/game.cpp -msgid "You can't do that while driving." -msgstr "你在驾驶载具时不能那样做。" - -#: src/game.cpp -msgid "You can't do that on a moving vehicle." -msgstr "在移动的车辆中你不能这么做。" +msgstr "如果不添燃料的话,火大概还能持续燃烧约%s。" #: src/game.cpp #, c-format msgid "The %s is too unstable to remove anything." -msgstr "%s 太不稳定了,无法卸除任何东西。" +msgstr "%s太不稳定了,无法卸除任何东西。" #: src/game.cpp #, c-format msgid "The %s is firmly sealed." -msgstr "%s 被完全密封起来了。" +msgstr "%s被完全密封起来了。" #: src/game.cpp src/iexamine.cpp msgid "It is empty." @@ -140474,7 +141254,7 @@ msgstr "清理 %s 将费时直到永远。" #: src/game.cpp #, c-format msgid "Pour %s where?" -msgstr "把 %s 倒在哪里?" +msgstr "把%s倒在哪里?" #: src/game.cpp msgid "That's where you took it from!" @@ -140487,7 +141267,7 @@ msgstr "你无法倾倒在那里!" #: src/game.cpp src/item.cpp #, c-format msgid "The %s froze solid before you could finish." -msgstr "%s 在你能喝完前就被冻住了。" +msgstr "%s在你能喝完前就被冻住了。" #: src/game.cpp msgid "Drop where?" @@ -140536,7 +141316,7 @@ msgstr "你无法开火,武器太重了……" #: src/game.cpp #, c-format msgid "The %s must be attached to a gun, it can not be fired separately." -msgstr "这个 %s 必须加装在枪械上,它无法单独开火。" +msgstr "这个%s必须加装在枪械上,它无法单独开火。" #: src/game.cpp msgid "You can no longer fire." @@ -140549,7 +141329,7 @@ msgstr "你需要空出手来操作。" #: src/game.cpp #, c-format msgid "You need two free hands to fire your %s." -msgstr "你需要空着双手来射击你的 %s。" +msgstr "你需要空着双手来射击你的%s。" #: src/game.cpp msgid "You need to reload!" @@ -140558,7 +141338,7 @@ msgstr "你需要重新装填!" #: src/game.cpp #, c-format msgid "Your %s needs %i charges to fire!" -msgstr "你的 %s 至少需要 %i 点能量才能射击。" +msgstr "你的%s至少需要 %i 点能量才能射击。" #: src/game.cpp #, c-format @@ -140576,7 +141356,7 @@ msgstr "你需要站在有效地形/家具附近才能使用这把武器。诸 #: src/game.cpp #, c-format msgid "The %s can't be fired in its current state." -msgstr "%s 无法在当前状态下开火。" +msgstr "%s无法在当前状态下开火。" #. ~ Name and number of items listed for cutting up #: src/game.cpp @@ -140703,7 +141483,7 @@ msgstr "你没有所需的工具,无法拆解任何物品。" #: src/game.cpp #, c-format msgid "You see %s nearby! Start butchering anyway?" -msgstr "你看见附近有 %s !真的继续屠宰吗?" +msgstr "你看见附近有%s!真的继续屠宰吗?" #: src/game.cpp msgid "Choose corpse to butcher / item to disassemble" @@ -140740,12 +141520,12 @@ msgstr "你的心情不好,而且一想到手要沾上内脏和鲜血,你决 #: src/veh_interact.cpp #, c-format msgid "%s helps with this task..." -msgstr "%s 协助你完成这项任务。" +msgstr "%s协助你完成这项任务。" #: src/game.cpp #, c-format msgid "You're too full to eat the leaves from the %s." -msgstr "你已经吃得很饱了,没法吃光 %s 的叶子。" +msgstr "你已经吃得很饱了,没法吃光%s的叶子。" #: src/game.cpp msgid "You eat the underbrush." @@ -140774,7 +141554,7 @@ msgstr "这草被油漆污染,你吃不了。" #: src/game.cpp #, c-format msgid "You leave the empty %s." -msgstr "你丢下空 %s。" +msgstr "你丢下空%s。" #: src/game.cpp msgid "Change side for item" @@ -140787,12 +141567,12 @@ msgstr "你没有穿着可以穿在一侧的物品。" #: src/game.cpp #, c-format msgid "The %s is already fully loaded!" -msgstr "%s 已经装满了。" +msgstr "%s已经装满了。" #: src/game.cpp #, c-format msgid "You need at least one %s to reload the %s!" -msgstr "你至少需要一个 %s 才能重新装填 %s!" +msgstr "你至少需要一个%s才能重新装填%s!" #: src/game.cpp #, c-format @@ -140802,7 +141582,7 @@ msgstr "%s已经满了!" #: src/game.cpp #, c-format msgid "You can't reload a %s!" -msgstr "你不能重新装填 %s!" +msgstr "你不能重新装填%s!" #: src/game.cpp msgid "Reload item" @@ -140827,7 +141607,7 @@ msgstr "你没有手持任何东西。" #: src/game.cpp src/player.cpp #, c-format msgid "Draw %s from %s?" -msgstr "将 %s 从 %s 取出?" +msgstr "将%s从%s取出?" #: src/game.cpp #, c-format @@ -140841,7 +141621,7 @@ msgstr "幸存者" #: src/game.cpp #, c-format msgid " or %s to whitelist the monster" -msgstr "或%s 将怪物添加至白名单" +msgstr "或 %s 将怪物添加至白名单" #: src/game.cpp #, c-format @@ -140853,7 +141633,7 @@ msgstr "发现了%1$s:安全模式已触发,暂停游戏!(%2$s 关闭模 #: src/game.cpp #, c-format msgid "Deactivate the %s?" -msgstr "关闭 %s?" +msgstr "关闭%s?" #: src/game.cpp msgid "Engage targets." @@ -140870,17 +141650,17 @@ msgstr "跟随我。" #: src/game.cpp #, c-format msgid "The %s hovers momentarily as it surveys the area." -msgstr "%s 短暂徘徊,调查了该区域。" +msgstr "%s短暂徘徊,调查了该区域。" #: src/game.cpp #, c-format msgid "The %s lets out a whirring noise and starts to follow you." -msgstr "%s \"呼呼\"地响了一阵,开始跟随你。" +msgstr "%s\"呼呼\"地响了一阵,开始跟随你。" #: src/game.cpp #, c-format msgid "Really step into %s?" -msgstr "真的要走进 %s?" +msgstr "真的要走进%s?" #: src/game.cpp msgid "You can't move while in your shell. Deactivate it to go mobile." @@ -140894,12 +141674,12 @@ msgstr "你开始用你的 %2$s 挖掘 %1$s。" #: src/game.cpp #, c-format msgid "Your %s doesn't turn on." -msgstr "你的 %s 并未被启动。" +msgstr "你的%s并未被启动。" #: src/game.cpp #, c-format msgid "You start tearing into the %s with your teeth and claws." -msgstr "你开始用你的尖牙和利爪挖掘 %s。" +msgstr "你开始用你的尖牙和利爪挖掘%s。" #: src/game.cpp msgid "You cannot pull yourself away from the faultline..." @@ -140924,7 +141704,7 @@ msgstr "你太木愣了,无法打击任何物体……" #: src/game.cpp #, c-format msgid "You can't displace your %s." -msgstr "你不能移动你的 %s。" +msgstr "你不能移动你的%s。" #: src/game.cpp msgid "NPC in the way, Auto-move canceled." @@ -140967,7 +141747,7 @@ msgstr "你打开了 %1$s 的 %2$s。" #: src/game.cpp #, c-format msgid "You bump into the %s!" -msgstr "你撞到了 %s!" +msgstr "你撞到了%s!" #: src/game.cpp msgid "That door is locked!" @@ -141014,7 +141794,7 @@ msgstr "咔嗒咔嗒响。" #: src/game.cpp #, c-format msgid "You are hiding in the %s." -msgstr "你躲进了 %s。" +msgstr "你躲进了%s。" #: src/game.cpp #, c-format @@ -141033,7 +141813,7 @@ msgstr "这里有个告示牌,但是你没法阅读。" #: src/game.cpp #, c-format msgid "Written here: %s" -msgstr "这里写着: %s" +msgstr "这里写着:%s" #: src/game.cpp msgid "Something is written here, but you are unable to read it." @@ -141042,12 +141822,12 @@ msgstr "这里有些文字,但是你没法阅读。" #: src/game.cpp #, c-format msgid "You hurt your left foot on the %s!" -msgstr "你在 %s 上弄伤了你的左脚!" +msgstr "你在%s上弄伤了你的左脚!" #: src/game.cpp #, c-format msgid "You hurt your right foot on the %s!" -msgstr "你在 %s 上弄伤了你的右脚!" +msgstr "你在%s上弄伤了你的右脚!" #. ~ 1$s - bodypart name in accusative, 2$s is terrain name. #: src/game.cpp @@ -141062,7 +141842,7 @@ msgstr "水熄灭了火焰!" #: src/game.cpp #, c-format msgid "You displace the %s." -msgstr "你推开了 %s。" +msgstr "你推开了%s。" #: src/game.cpp msgid "There's something here, but you can't see what it is." @@ -141108,7 +141888,7 @@ msgstr "那里有一个载具控制器。" #: src/game.cpp #, c-format msgid "%s to drive." -msgstr "%s 开始驾驶。" +msgstr "%s开始驾驶。" #: src/game.cpp msgid "" @@ -141132,12 +141912,12 @@ msgstr "指定方向没有家具。" #: src/game.cpp #, c-format msgid "The %s collides with something." -msgstr "%s 和什么东西撞上了。" +msgstr "%s和什么东西撞上了。" #: src/game.cpp #, c-format msgid "You strain yourself trying to move the heavy %s!" -msgstr "%s 太重了,你在试图移动它时扭伤了自己!" +msgstr "%s太重了,你在试图移动它时扭伤了自己!" #: src/game.cpp msgid "There's stuff in the way." @@ -141146,17 +141926,17 @@ msgstr "有些东西挡住了你。" #: src/game.cpp #, c-format msgid "The %s is too heavy for you to budge." -msgstr "%s 太重你推不开。" +msgstr "%s太重你推不开。" #: src/game.cpp #, c-format msgid "Moving the heavy %s is taking a lot of time!" -msgstr "%s 很重,移动它花了很久!" +msgstr "%s很重,移动它花了很久!" #: src/game.cpp #, c-format msgid "It takes some time to move the heavy %s." -msgstr "%s 有点沉,移动它需要花些时间。" +msgstr "%s有点沉,移动它需要花些时间。" #: src/game.cpp src/grab.cpp msgid "a scraping noise." @@ -141165,12 +141945,12 @@ msgstr "一阵刮擦声。" #: src/game.cpp #, c-format msgid "Stuff spills from the %s!" -msgstr "东西从 %s 中泼出来!" +msgstr "东西从%s中泼出来!" #: src/game.cpp #, c-format msgid "You let go of the %s" -msgstr "你松开了 %s" +msgstr "你松开了%s" #: src/game.cpp #, c-format @@ -141218,17 +141998,17 @@ msgstr "爬上哪里?" #: src/game.cpp #, c-format msgid "Climb %s" -msgstr "爬上 %s" +msgstr "爬上%s" #: src/game.cpp #, c-format msgid "You try to use the stairs. Suddenly you are blocked by a %s!" -msgstr "你试着下楼梯。突然,%s 挡住了你!" +msgstr "你试着下楼梯。突然,%s挡住了你!" #: src/game.cpp #, c-format msgid "The are a lot of them on the %s!" -msgstr "它们有很多在 %s 上 !" +msgstr "它们有很多在%s上!" #: src/game.cpp msgid "There's something else behind it!" @@ -141296,7 +142076,7 @@ msgstr "你不能在这里搬运物品。" #: src/game.cpp #, c-format msgid "There's a %s in the way!" -msgstr "%s 挡住了你!" +msgstr "%s挡住了你!" #: src/game.cpp msgid "" @@ -141376,7 +142156,7 @@ msgstr "自动标记:上行阶梯" #: src/game.cpp #, c-format msgid "You see a %s on the stairs" -msgstr "你看到楼梯上有个 %s" +msgstr "你看到楼梯上有个%s" #. ~ The is almost at the of the ! #: src/game.cpp @@ -141406,22 +142186,22 @@ msgstr "%1$s 从 %2$s 上来了!" #: src/game.cpp #, c-format msgid "The %s fails to push you back!" -msgstr "%s 在试图推开你,失败了!" +msgstr "%s在试图推开你,失败了!" #: src/game.cpp #, c-format msgid "The %s pushed you back hard!" -msgstr "%s 用力推开了你!" +msgstr "%s用力推开了你!" #: src/game.cpp #, c-format msgid "The %s pushed you back!" -msgstr "%s 推开了你!" +msgstr "%s推开了你!" #: src/game.cpp #, c-format msgid "The %s tried to push you back but failed! It attacks you!" -msgstr "%s 想推开你但失败了!你被攻击了!" +msgstr "%s想推开你但失败了!你被攻击了!" #: src/game.cpp #, c-format @@ -141530,12 +142310,12 @@ msgstr "传送门坍塌了!" #: src/game.cpp #, c-format msgid "You have an urge to wear the %s." -msgstr "你迫切地想穿戴上 %s。" +msgstr "你迫切地想穿戴上%s。" #: src/game.cpp #, c-format msgid "You have an urge to wield the %s." -msgstr "你现在就想拿起 %s。" +msgstr "你现在就想拿起%s。" #: src/game.cpp msgid "Your skin feels slithery." @@ -141668,7 +142448,7 @@ msgstr "你的物品栏是空的。" #: src/game_inventory.cpp #, c-format msgid "You don't have a %s." -msgstr "你没有 %s。" +msgstr "你没有%s。" #: src/game_inventory.cpp msgid "ENCUMBRANCE" @@ -141721,12 +142501,12 @@ msgstr "你没有穿任何衣服。" #: src/game_inventory.cpp #, c-format msgid "Container for %s" -msgstr "(选择)容器来装 %s" +msgstr "(选择)容器来装%s" #: src/game_inventory.cpp #, c-format msgid "You don't have a suitable container for carrying %s." -msgstr "你没有合适的容器来承载 %s。" +msgstr "你没有合适的容器来承载%s。" #: src/game_inventory.cpp msgid "Can't pick up spilt liquids" @@ -141941,7 +142721,7 @@ msgstr "偷窃 %s 的物品" #: src/game_inventory.cpp #, c-format msgid "%s's inventory is empty." -msgstr "%s 的物品栏是空的。" +msgstr "%s的物品栏是空的。" #: src/game_inventory.cpp msgctxt "Shot as damage" @@ -141971,7 +142751,7 @@ msgstr "你没有可以手持的物品。" #: src/game_inventory.cpp #, c-format msgid "You can't put anything into your %s." -msgstr "你不能把任何东西放进 %s。" +msgstr "你不能把任何东西放进%s。" #: src/game_inventory.cpp src/iuse_actor.cpp msgid "Holster item" @@ -141980,12 +142760,12 @@ msgstr "收起物品" #: src/game_inventory.cpp #, c-format msgid "Choose a weapon to put into your %s" -msgstr "选择一把武器放进 %s" +msgstr "选择一把武器放进%s" #: src/game_inventory.cpp #, c-format msgid "You have no weapons you could put into your %s." -msgstr "你的所有武器都不能放进 %s。" +msgstr "你的所有武器都不能放进%s。" #: src/game_inventory.cpp src/iuse.cpp msgid "Cut up what?" @@ -142002,7 +142782,7 @@ msgstr "修补什么?" #: src/game_inventory.cpp #, c-format msgid "You have no items that could be repaired with a %s." -msgstr "你没有可以用 %s 来修理的物品。" +msgstr "你没有可以用%s来修理的物品。" #: src/game_inventory.cpp msgid "Saw barrel" @@ -142015,7 +142795,7 @@ msgstr "你没有任何枪械。" #: src/game_inventory.cpp #, c-format msgid "Choose a weapon to use your %s on" -msgstr "选择一把武器使用 %s" +msgstr "选择一把武器使用%s" #: src/game_inventory.cpp msgid "Multidrop" @@ -142039,7 +142819,7 @@ msgstr "没有可比较的项目。" #: src/game_inventory.cpp msgid "Enter new letter (press SPACE for none, ESCAPE to cancel)." -msgstr "输入新字母 (按\"空格\"键输入空,按\"ESC\"键取消)。" +msgstr "输入新字母(按\"空格\"键输入空,按\"ESC\"键取消)。" #: src/gamemode.cpp msgid "Tutorial" @@ -142056,12 +142836,12 @@ msgstr "一些傻逼挡住路了!" #: src/gates.cpp #, c-format msgid "The %s is in the way!" -msgstr "%s 挡在路上!" +msgstr "%s挡在路上!" #: src/gates.cpp #, c-format msgid "%s is in the way!" -msgstr "%s 挡在路上!" +msgstr "%s挡在路上!" #: src/gates.cpp #, c-format @@ -142100,7 +142880,7 @@ msgstr "这里被太多东西堵住了。" #: src/gates.cpp #, c-format msgid "You push the %s out of the way." -msgstr "你把 %s 推开了。" +msgstr "你把%s推开了。" #: src/gates.cpp msgid "stuff" @@ -142113,22 +142893,22 @@ msgstr "无车辆连在挂钩上。" #: src/grab.cpp #, c-format msgid "The %s is too bulky for you to move by hand." -msgstr "%s 太重了,无法用手移动。" +msgstr "%s太重了,无法用手移动。" #: src/grab.cpp #, c-format msgid "You strain yourself to move the %s!" -msgstr "你用尽全力移开 %s!" +msgstr "你用尽全力移开%s!" #: src/grab.cpp #, c-format msgid "It takes some time to move the %s." -msgstr "移开 %s 需要花点时间。" +msgstr "移开%s需要花点时间。" #: src/grab.cpp #, c-format msgid "You lack the strength to move the %s" -msgstr "你没有足够的力量移开 %s" +msgstr "你没有足够的力量移开%s" #: src/grab.cpp msgid "errors in movement code" @@ -142137,7 +142917,7 @@ msgstr "移动部分代码出错" #: src/grab.cpp #, c-format msgid "The %s collides with %s." -msgstr "%s 撞上了 %s。" +msgstr "%s撞上了%s。" #: src/handle_action.cpp #, c-format @@ -142207,7 +142987,7 @@ msgstr "你失去了对 %s 的控制" #: src/handle_action.cpp #, c-format msgid "You release the %s." -msgstr "你放开 %s。" +msgstr "你放开%s。" #: src/handle_action.cpp msgid "Grab where?" @@ -142220,17 +143000,17 @@ msgstr "你控制住了自己。" #: src/handle_action.cpp #, c-format msgid "You grab the %s." -msgstr "你抓住 %s。" +msgstr "你抓住%s。" #: src/handle_action.cpp #, c-format msgid "You can not grab the %s" -msgstr "你无法抓住 %s" +msgstr "你无法抓住%s" #: src/handle_action.cpp #, c-format msgid "You grab the %s. It feels really heavy." -msgstr "你抓住 %s。它可真重。" +msgstr "你抓住%s。它可真重。" #: src/handle_action.cpp msgid "There's nothing to grab there!" @@ -142505,6 +143285,22 @@ msgstr "%s 自 %s(%d)" msgid "Draw what?" msgstr "拿出什么?" +#: src/handle_action.cpp +msgid "Change to which movement mode?" +msgstr "切换到哪种移动模式?" + +#: src/handle_action.cpp +msgid "Walk" +msgstr "行走" + +#: src/handle_action.cpp +msgid "Run" +msgstr "奔跑" + +#: src/handle_action.cpp +msgid "Crouch" +msgstr "蹲伏" + #: src/handle_action.cpp msgid "Auto-move canceled" msgstr "取消自动移动" @@ -142592,6 +143388,14 @@ msgstr "新的默认绑定键为\"^\"。" msgid "You can't operate a vehicle while you're in your shell." msgstr "你缩在龟壳里无法驾驶载具。" +#: src/handle_action.cpp +msgid "Auto travel mode OFF!" +msgstr "自动移动模式关!" + +#: src/handle_action.cpp +msgid "Auto travel mode ON!" +msgstr "自动移动模式开!" + #: src/handle_action.cpp msgid "Safe mode ON!" msgstr "安全模式打开!" @@ -143156,6 +143960,20 @@ msgstr "你收获了:罂粟花蕾" msgid "You harvest and drop: poppy bud" msgstr "你收获并丢下了:罂粟花蕾" +#: src/iexamine.cpp +msgid "The cactus' nettles sting you!" +msgstr "仙人掌的刺刺痛了你!" + +#: src/iexamine.cpp +#, c-format +msgid "You harvest: %s." +msgstr "你收获了:%s。" + +#: src/iexamine.cpp +#, c-format +msgid "You harvest and drop: %s." +msgstr "你收获并丢下了:%s。" + #: src/iexamine.cpp msgid "If only you had a shovel to dig up those roots..." msgstr "你要是有把铲子就能挖出它的根了……" @@ -143172,16 +143990,6 @@ msgstr "你收获并丢下了:大丽花根" msgid "Nothing can be harvested from this plant in current season." msgstr "在这个季节,此植物无法收获任何东西。" -#: src/iexamine.cpp -#, c-format -msgid "You harvest: %s." -msgstr "你收获了:%s。" - -#: src/iexamine.cpp -#, c-format -msgid "You harvest and drop: %s." -msgstr "你收获并丢下了:%s。" - #: src/iexamine.cpp msgid "You couldn't harvest anything." msgstr "你没能收获任何东西。" @@ -143397,7 +144205,7 @@ msgstr "取下%s" #: src/iexamine.cpp #, c-format msgid "You attempt to start a fire with your %s..." -msgstr "你试图用%s 生火..." +msgstr "你试图用%s生火..." #: src/iexamine.cpp msgid "You weren't able to start a fire." @@ -144050,8 +144858,10 @@ msgid "" msgstr "未能找到躺在已连接诊察台上的病人。无法进行手术。系统已退出。" #: src/iexamine.cpp -msgid "You need an anesthesia kit for autodoc to perform any operation." -msgstr "你需要一个麻醉工具箱才能使用全自动医疗仪进行手术。" +msgid "" +"You need an anesthesia kit with at least one charge for autodoc to perform " +"any operation." +msgstr "你至少需要一个麻醉工具箱才能使用全自动医疗仪进行手术。" #: src/iexamine.cpp msgid "Choose CBM to install" @@ -144107,6 +144917,46 @@ msgstr "你没有任何已安装的生化插件。" msgid "%1$s doesn't have any bionics installed." msgstr "%1$s 没有任何已安装的生化插件。" +#: src/iexamine.cpp +msgid "This mill already contains flour." +msgstr "这个碾磨机已经装满了面粉。" + +#: src/iexamine.cpp +msgid "Remove it before starting the mill again." +msgstr "再次碾磨前请把碾磨机清空。" + +#: src/iexamine.cpp +#, c-format +msgid "This rack contains %s, which can't be milled!" +msgstr "碾磨机里有%s,无法被碾磨!" + +#: src/iexamine.cpp +#, c-format +msgid "You remove the %s from the mill." +msgstr "你从碾磨机里取出了%s。" + +#: src/iexamine.cpp +msgid "" +"This mill is empty. Fill it with starchy products such as wheat, barley or " +"oats and try again." +msgstr "这个碾磨机是空的,用含淀粉的产品如小麦、大麦或燕麦填满它,然后再试一次。" + +#: src/iexamine.cpp +msgid "" +"This mill is overloaded with products, and the millstone can't turn. Remove" +" some and try again." +msgstr "这个碾磨机装得太满了,磨盘无法转动,移除一部分食物后再试。" + +#: src/iexamine.cpp +#, c-format +msgctxt "volume units" +msgid "You think that you can load about %s %s in it." +msgstr "你只能朝烟熏架里装 %s %s 的食物。" + +#: src/iexamine.cpp +msgid "You remove the brake on the millstone and it slowly starts to turn." +msgstr "你打开了磨盘上的制动器,它开始缓慢地转动起来。" + #: src/iexamine.cpp msgid "This rack already contains smoked food." msgstr "这个烟熏架已经装满了食物。" @@ -144203,6 +145053,131 @@ msgstr "你不能放那么多。" msgid "You carefully place %s %s in the rack." msgstr "你小心地将 %s %s 放进架子里。" +#: src/iexamine.cpp +msgid "You can't place more food while it's milling." +msgstr "你不能在碾磨的时候放更多的食物" + +#: src/iexamine.cpp +msgid "Load mill with what kind of product?" +msgstr "给碾磨机放入什么制品?" + +#: src/iexamine.cpp +msgid "You don't have any products that can be milled." +msgstr "你没有任何可以碾磨的制品。" + +#: src/iexamine.cpp +#, c-format +msgid "Insert how many %s into the mill?" +msgstr "放入多少%s到碾磨机里?" + +#: src/iexamine.cpp +#, c-format +msgctxt "item amount and name" +msgid "You carefully place %s %s in the mill." +msgstr "你小心地将 %s %s放进碾磨机里。" + +#: src/iexamine.cpp +msgid "The water mill needs to be over shallow flowing water to work." +msgstr "水磨需要在有流动浅水的地方运作。" + +#: src/iexamine.cpp +msgid "The wind mill needs to be outside in the wind to work." +msgstr "风磨需要在室外有风的地方运作。" + +#: src/iexamine.cpp +msgid "What to do with the mill?" +msgstr "对碾磨机做什么?" + +#: src/iexamine.cpp +msgid "Inspect mill" +msgstr "查看碾磨机" + +#: src/iexamine.cpp +msgid "" +"Remove brake and start milling... insert some products for milling first" +msgstr "放开制动器并开始碾磨…你需要先放些要碾磨的东西" + +#: src/iexamine.cpp +msgid "Remove brake and start milling" +msgstr "放开制动器并开始碾磨" + +#: src/iexamine.cpp +msgid "Remove brake and start milling, milling will take about 6 hours." +msgstr "放开制动器并开始碾磨,大约需要6个小时完成。" + +#: src/iexamine.cpp +msgid "Insert products for milling... mill is full" +msgstr "为碾磨机添加原料…碾磨机已满" + +#: src/iexamine.cpp +#, c-format +msgid "Insert products for milling... remaining capacity is %s %s" +msgstr "为碾磨机添加原料…剩余容量为%s%s" + +#: src/iexamine.cpp +msgid "Fill the mill with starchy products such as wheat, barley or oats." +msgstr "用淀粉制品如小麦、大麦或燕麦填充碾磨机。" + +#: src/iexamine.cpp +msgid "Remove products from mill" +msgstr "从碾磨机中移除制品" + +#: src/iexamine.cpp +msgid "Apply brake to mill" +msgstr "制动碾磨机" + +#: src/iexamine.cpp +msgid "Applying the brake will stop milling process." +msgstr "踩下刹车将停止碾磨过程。" + +#: src/iexamine.cpp +msgid "There's a mill here. It is turning and milling." +msgstr "这里有个碾磨机,它在转动和碾磨。" + +#: src/iexamine.cpp +#, c-format +msgid "It will finish milling in about %d hour." +msgid_plural "It will finish milling in about %d hours." +msgstr[0] "它将在大约%d小时内完成碾磨。" + +#: src/iexamine.cpp +msgid "It will finish milling in less than an hour." +msgstr "它将在不到一小时内完成碾磨。" + +#: src/iexamine.cpp +#, c-format +msgid "It should take about %d minutes to finish milling." +msgstr "大概需要%d分钟完成碾磨。" + +#: src/iexamine.cpp +msgid "There's a mill here." +msgstr "这里有个碾磨机。" + +#: src/iexamine.cpp +msgid "You inspect its contents and find: " +msgstr "你查看内部发现了:" + +#: src/iexamine.cpp +msgid "... that it is empty." +msgstr "……它是空的。" + +#: src/iexamine.cpp +msgid "You see some grains that are not yet milled to fine flour." +msgstr "你看到一些还没有磨成细面粉的谷物。" + +#: src/iexamine.cpp +msgid "It is already milling." +msgstr "这已经磨好了。" + +#: src/iexamine.cpp +#, c-format +msgid "You remove %s from the mill." +msgstr "你从碾磨机里取出了%s。" + +#: src/iexamine.cpp +msgid "You stop the milling process." +msgstr "你停下了碾磨的过程。" + #: src/iexamine.cpp msgid "What to do with the smoking rack:" msgstr "对烟熏架做什么:" @@ -144306,14 +145281,6 @@ msgstr "大概需要 %d 分钟才能完成熏制。" msgid "There's a smoking rack here." msgstr "这里有一个烟熏架。" -#: src/iexamine.cpp -msgid "You inspect its contents and find: " -msgstr "你查看内部发现了:" - -#: src/iexamine.cpp -msgid "... that it is empty." -msgstr "……它是空的。" - #: src/iexamine.cpp msgid "You see some smoldering embers there." msgstr "你看到了一些熏烤余烬。" @@ -144910,11 +145877,11 @@ msgstr "数量:" #: src/item.cpp msgid "age (hours): " -msgstr "时期 (小时): " +msgstr "时期(小时):" #: src/item.cpp msgid "age (turns): " -msgstr "时期 (回合): " +msgstr "时期(回合):" #: src/item.cpp msgid "rot (turns): " @@ -144930,7 +145897,7 @@ msgstr "最后测温回合:" #: src/item.cpp msgid "max rot (turns): " -msgstr "最大腐坏(回合): " +msgstr "腐坏回合数:" #: src/item.cpp msgid "Temp: " @@ -146111,6 +147078,10 @@ msgstr "|." msgid "\\." msgstr "\\." +#: src/item.cpp +msgid "XX" +msgstr "XX" + #: src/item.cpp msgid ".." msgstr ".." @@ -150227,7 +151198,7 @@ msgstr "你不能把 %1$s 放进 %2$s。" #: src/iuse_actor.cpp #, c-format msgid "You holster your %s" -msgstr "你套好 %s" +msgstr "你套好%s" #: src/iuse_actor.cpp #, c-format @@ -150696,7 +151667,9 @@ msgstr "一盒熏蒸丸。" #: src/iuse_software_kitten.cpp msgid "A digital clock. It's stuck at 2:17 PM." -msgstr "一个电子时钟。停止在 2:17 PM。" +msgstr "" +"\"2:17 PM\"\n" +"一个电子时钟,已经停止运行。" #: src/iuse_software_kitten.cpp msgid "That's just a charred human corpse." @@ -150934,7 +151907,7 @@ msgstr "看起来又是你给我们弄的一团糟,史丹利。" #: src/iuse_software_kitten.cpp msgid "It's scenery for \"Waiting for Godot\"." -msgstr "一张'等待戈多'的剧照。" +msgstr "一张《等待戈多》的剧照。" #: src/iuse_software_kitten.cpp msgid "This grain elevator towers high above you." @@ -151116,7 +152089,7 @@ msgstr "\"要是没了雨我还怎么能洗好我那该死的脖子?\"农夫AI #: src/iuse_software_kitten.cpp msgid "\"Topsoil's all gone, ma,\" weeps Lil' Greg." -msgstr "\"表土层都被冲走了啊,妈妈,\"哭泣的 Lil'Greg说到。" +msgstr "\"表土层都被冲走了啊,妈妈,\"哭泣的里尔·格雷格说道。" #: src/iuse_software_kitten.cpp msgid "" @@ -151331,7 +152304,7 @@ msgstr "这个锈蚀的机器人带着连指手套。" #: src/iuse_software_kitten.cpp msgid "\"Hi, I'm Anson Williams, TV's 'Potsy'.\"" -msgstr "\"嗨,我是Anson Williams,电视的'Potsy'。\"" +msgstr "\"嗨,我是安森·威廉姆斯,电视的'Potsy'。\"" #: src/iuse_software_kitten.cpp msgid "This subwoofer was blown out in 1974." @@ -151455,7 +152428,9 @@ msgstr "\"请借给我们5块钱,周四归还\",Andy Capp请求道。" #: src/iuse_software_kitten.cpp msgid "It's a tape of '70s rock. All original hits! All original artists!" -msgstr "这是一个70年代的摇滚乐磁带。'我一直问个不休,你何时跟我走!'" +msgstr "" +"这是一盘70年代的摇滚乐磁带。\n" +"\"我一直问个不休,你何时跟我走!\"" #: src/iuse_software_kitten.cpp msgid "You've found the fabled America Online disk graveyard!" @@ -151493,7 +152468,7 @@ msgstr "一个带有魔法的……魔法物品。" #: src/iuse_software_kitten.cpp msgid "That is a moose, a thing of pure evil. You should \"RUN!\"" -msgstr "那是一只驼鹿,一种极度邪恶的生物。你应该“跑!”" +msgstr "那是一只驼鹿,一种极度邪恶的生物。你应该\"跑!\"" #: src/iuse_software_kitten.cpp msgid "It is SOFTWARE BUG." @@ -152570,12 +153545,12 @@ msgstr "损害" #: src/mattack_actors.cpp #, c-format msgid "The %s leaps!" -msgstr "%s 跳了起来!" +msgstr "%s跳了起来!" #: src/mattack_actors.cpp src/monattack.cpp #, c-format msgid "The %s lunges at you, but you dodge!" -msgstr "%s 刺向你,但是你躲开了!" +msgstr "%s刺向你,但是你躲开了!" #: src/mattack_actors.cpp #, c-format @@ -152590,7 +153565,7 @@ msgstr "%1$s 咬到了你的 %2$s!" #: src/mattack_actors.cpp src/monattack.cpp #, c-format msgid "The %s lunges at , but they dodge!" -msgstr "%s 刺向 ,但是他躲开了!" +msgstr "%s刺向,但是他躲开了!" #: src/mattack_actors.cpp #, c-format @@ -152616,7 +153591,7 @@ msgstr "哔。" msgid "Pointed in your direction, the %s emits an IFF warning beep." msgid_plural "" "Pointed in your direction, the %s emits %d annoyed sounding beeps." -msgstr[0] "%s 将枪口指向了你的方向,并且发出了 %d 声烦人的警报声。" +msgstr[0] "%s将枪口指向了你的方向,并且发出了 %d 声烦人的警报声。" #. ~ There will be a 120mm HEAT shell sent at high speed to your location next #. turn. @@ -152631,37 +153606,37 @@ msgstr "一只" #: src/melee.cpp #, c-format msgid "Your %s is damaged by the force of the blow!" -msgstr "你的 %s 被这一击损坏了!" +msgstr "你的%s被这一击损坏了!" #: src/melee.cpp #, c-format msgid "'s %s is damaged by the force of the blow!" -msgstr " 的 %s 被这一击损坏了!" +msgstr "的%s被这一击损坏了!" #: src/melee.cpp #, c-format msgid "Your %s breaks apart!" -msgstr "你的 %s 散架了!" +msgstr "你的%s散架了!" #: src/melee.cpp #, c-format msgid "'s %s breaks apart!" -msgstr " 的 %s 散架了!" +msgstr "的%s散架了!" #: src/melee.cpp #, c-format msgid "The %s is destroyed!" -msgstr "%s 被毁掉了!" +msgstr "%s被毁掉了!" #: src/melee.cpp #, c-format msgid "Your %s is destroyed by the blow!" -msgstr "你的 %s 由于打击损坏了!" +msgstr "你的%s由于打击损坏了!" #: src/melee.cpp #, c-format msgid "'s %s is destroyed by the blow!" -msgstr " 的 %s 由于打击损坏了!" +msgstr "的%s由于打击损坏了!" #: src/melee.cpp msgid "Your torso encumbrance throws you off-balance." @@ -152690,17 +153665,17 @@ msgstr "你没有击中。" #: src/melee.cpp #, c-format msgid "%s misses and stumbles with the momentum." -msgstr "%s 没有击中反而由于惯性跌倒。" +msgstr "%s没有击中反而由于惯性跌倒。" #: src/melee.cpp #, c-format msgid "%s swings wildly and misses." -msgstr "%s 胡乱地挥打,但是没有击中。" +msgstr "%s胡乱地挥打,但是没有击中。" #: src/melee.cpp #, c-format msgid "%s misses." -msgstr "%s 未命中。" +msgstr "%s未命中。" #: src/melee.cpp msgid " hits something." @@ -152721,12 +153696,12 @@ msgstr " 将你缴械了!" #: src/melee.cpp #, c-format msgid "You disarm %s!" -msgstr "你缴械了 %s 的武装!" +msgstr "你缴械了%s的武装!" #: src/melee.cpp #, c-format msgid " disarms %s!" -msgstr " 缴械了 %s 的武装!" +msgstr "缴械了%s的武装!" #: src/melee.cpp #, c-format @@ -154920,15 +155895,15 @@ msgstr "...数据库连接丢失!" #: src/monattack.cpp #, c-format msgid "a robotic voice boom, \"Citizen %s!\"" -msgstr "机器人发出低沉的声音,“市民,%s!”" +msgstr "机器人发出低沉的声音,\"市民,%s!\"" #: src/monattack.cpp msgid "\"Drop your gun! Now!\"" -msgstr "“把枪放下!马上!”" +msgstr "\"把枪放下!马上!\"" #: src/monattack.cpp msgid "\"Drop your weapon! Now!\"" -msgstr "“放下武器!马上!”" +msgstr "\"放下武器!马上!\"" #: src/monattack.cpp #, c-format @@ -155742,17 +156717,17 @@ msgstr "带上背包" #: src/monexamine.cpp #, c-format msgid "Remove armor from %s" -msgstr "移除%s 的装甲" +msgstr "移除%s的装甲" #: src/monexamine.cpp #, c-format msgid "Equip %s with armor" -msgstr "给%s 安上装甲" +msgstr "给%s安上装甲" #: src/monexamine.cpp #, c-format msgid "Play with %s" -msgstr "和 %s 玩耍" +msgstr "和%s玩耍" #: src/monexamine.cpp msgid "Untie" @@ -156117,7 +157092,7 @@ msgstr "这是 %s。%s %s" #: src/monster.cpp #, c-format msgid "It is %s." -msgstr "这是%s。" +msgstr "它%s。" #: src/monster.cpp #, c-format @@ -156570,6 +157545,11 @@ msgstr "你只能在一棵树附近这样做。" msgid "You reach out to the trees with your roots." msgstr "你让你的根系与树木接触。" +#: src/mutation.cpp +msgid "" +"You lay next to the trees letting your hair roots tangle with the trees." +msgstr "你躺在树旁边,让你的根系头发和树缠在一起。" + #: src/mutation.cpp msgid "Bionic power storage increased by 100." msgstr "储能模块能量增加100。" @@ -157782,6 +158762,10 @@ msgstr "是你的朋友。" msgid "Is following you." msgstr "正追随你。" +#: src/npc.cpp +msgid "Is guiding you." +msgstr "在引导你。" + #: src/npc.cpp msgid "Will try to kill you or flee from you if you reveal yourself." msgstr "在你现身后会尝试杀了你或者逃离你。" @@ -157967,7 +158951,7 @@ msgstr "%1$s 拿走了你的 %2$s 。" #, c-format msgid "" "From your two-way radio you hear %s reporting in, 'I've arrived, boss!'" -msgstr "从你的双向无线电里,你听到%s报告说:‘我到了,老大!’" +msgstr "从你的双向无线电里,你听到%s报告说:'我到了,老大!'" #: src/npcmove.cpp msgid "Undecided" @@ -158191,7 +159175,7 @@ msgstr "放松下来。" #: src/npctalk.cpp #, c-format msgid "You yell %s" -msgstr "你大喊%s" +msgstr "你大喊:%s" #: src/npctalk.cpp #, c-format @@ -158237,10 +159221,6 @@ msgstr "如果你感兴趣的话,我这里正好需要些帮手。" msgid " If you are interested, I have another job for you." msgstr "你有兴趣的话,我这还有个活。" -#: src/npctalk.cpp -msgid "Pleasure doing business!" -msgstr "交易愉快!" - #: src/npctalk.cpp msgid "Shall we resume?" msgstr "让我们继续?" @@ -158360,23 +159340,6 @@ msgstr "[接受]好吧,说来听听。" msgid "I have news." msgstr "我有个消息。" -#: src/npctalk.cpp -#, c-format -msgid "Delivering %s." -msgstr "提供 %s。" - -#: src/npctalk.cpp -msgid "Works for me." -msgstr "挺好,我没意见。" - -#: src/npctalk.cpp -msgid "You might be seeing more of me..." -msgstr "我们还会再见的……" - -#: src/npctalk.cpp -msgid "Delivering bandages." -msgstr "提供绷带。" - #: src/npctalk.cpp msgid "Yes, let's resume training " msgstr "是的,让我们接着训练 。" @@ -158609,11 +159572,6 @@ msgstr "%s 在 (%d, %d)" msgid "My current location" msgstr "我现在的位置" -#: src/npctalk_funcs.cpp -#, c-format -msgid "I'm willing to pay %s per batch for a total of %s" -msgstr "每份我给你算 %s,一共 %s。" - #. ~ %1$s is the NPC's translated name, %2$s is the translated faction camp #. name #: src/npctalk_funcs.cpp @@ -159020,7 +159978,7 @@ msgid "" "Action to perform when 'Auto foraging' is enabled. Bushes: Only forage " "bushes. - Trees: Only forage trees. - Everything: Forage bushes, trees, " "and everything else including flowers, cattails etc." -msgstr "启用“自动搜寻”时进行的操作。灌木:只搜寻灌木。- 树木:只搜寻树木。- 所有:同时搜寻灌木和树木。" +msgstr "启用\"自动搜寻\"时进行的操作。灌木:只搜寻灌木。- 树木:只搜寻树木。- 所有:同时搜寻灌木和树木。" #: src/options.cpp msgid "Bushes" @@ -159499,7 +160457,7 @@ msgstr "侧边栏日志信息在删除前保留的回合数。设为\"0\"将禁 #: src/options.cpp msgid "Suppress \"unknown command\" messages" -msgstr "阻止“未知命令”消息" +msgstr "阻止\"未知命令\"消息" #: src/options.cpp msgid "" @@ -160283,7 +161241,7 @@ msgid "" "Sets the time of construction in percents. '50' is two times faster than " "default, '200' is two times longer. '0' automatically scales construction " "time to match the world's season length." -msgstr "建造建筑速度的倍率。'50' 代表比默认的快两倍,'200'代表比默认慢两倍,设置为0时将自动根据当前季节长度调节建造建筑的速度。" +msgstr "建造建筑速度的倍率。'50' 代表比默认的快两倍,'200' 代表比默认慢两倍,设置为0时将自动根据当前季节长度调节建造建筑的速度。" #: src/options.cpp msgid "Eternal season" @@ -161477,6 +162435,10 @@ msgstr "温度: %s" msgid "Wield:" msgstr "手持:" +#: src/panels.cpp +msgid "Style:" +msgstr "流派:" + #: src/panels.cpp msgid "Food :" msgstr "食物:" @@ -161563,7 +162525,7 @@ msgstr "天" #: src/panels.cpp msgid "Temp : " -msgstr "温度:" +msgstr "温度: " #: src/panels.cpp msgid "to open sidebar options" @@ -161640,6 +162602,18 @@ msgstr "你负重过高!" msgid "You struggle to carry such a large volume!" msgstr "你装不下更多东西了!" +#: src/pickup.cpp +msgid "Get items from vehicle cargo" +msgstr "从车辆货物中获取物品" + +#: src/pickup.cpp +msgid "Get items from where?" +msgstr "从哪里获取物品?" + +#: src/pickup.cpp src/vehicle_use.cpp +msgid "Get items on the ground" +msgstr "取得地上物品" + #: src/pickup.cpp msgid "Next page" msgstr "下一页" @@ -161789,29 +162763,29 @@ msgstr "你的书不见了!你停止阅读。" #: src/player.cpp #, c-format msgid "Your %s will be frostnipped in the next few hours." -msgstr "你的 %s 在不久就会被冻伤。" +msgstr "你的%s在不久就会被冻伤。" #: src/player.cpp #, c-format msgid "Your %s will be frostbitten within the hour!" -msgstr "你的 %s 在短时间内会被冻伤。" +msgstr "你的%s在短时间内会被冻伤。" #: src/player.cpp #, c-format msgid "Your %s will be frostbitten any minute now!" -msgstr "你的 %s 将会随时被冻伤!" +msgstr "你的%s将会随时被冻伤!" #. ~ %s is bodypart #: src/player.cpp #, c-format msgid "You feel your %s beginning to go numb from the cold!" -msgstr "你感到你的 %s 因为寒冷而变得麻木!" +msgstr "你感到你的%s因为寒冷而变得麻木!" #. ~ %s is bodypart #: src/player.cpp #, c-format msgid "You feel your %s getting very cold." -msgstr "你感到你的 %s 变得非常冷。" +msgstr "你感到你的%s变得非常冷。" #. ~ %s is bodypart #: src/player.cpp @@ -161823,24 +162797,24 @@ msgstr "你感到你的%s变得很冷。" #: src/player.cpp #, c-format msgid "You feel your %s getting red hot from the heat!" -msgstr "你感到你的 %s 由于高温变得火热!" +msgstr "你感到你的%s由于高温变得火热!" #. ~ %s is bodypart #: src/player.cpp #, c-format msgid "You feel your %s getting very hot." -msgstr "你感到你的 %s 变得非常热。" +msgstr "你感到你的%s变得非常热。" #. ~ %s is bodypart #: src/player.cpp #, c-format msgid "You feel your %s getting warm." -msgstr "你感到你的 %s 变暖和了。" +msgstr "你感到你的%s开始升温。" #: src/player.cpp #, c-format msgid "The wind is making your %s feel quite cold." -msgstr "你的 %s 被风吹得冷飕飕的。" +msgstr "你的%s被风吹得冷飕飕的。" #: src/player.cpp #, c-format @@ -162139,14 +163113,14 @@ msgstr "你加快速度,开始奔跑。" msgid "You're too tired to run." msgstr "你力竭了,无法奔跑。" -#: src/player.cpp -msgid "You start walking." -msgstr "你开始行走。" - #: src/player.cpp msgid "You start crouching." msgstr "你开始蹲伏。" +#: src/player.cpp +msgid "You start walking." +msgstr "你开始行走。" + #: src/player.cpp #, c-format msgid "Your ground sonar detected a %1$s to the %2$s!" @@ -163282,8 +164256,8 @@ msgid "Your shaking legs make you stumble." msgstr "你不停颤抖的腿把自己绊倒了。" #: src/player.cpp -msgid " stumbles." +msgstr "蹒跚而行。" #: src/player.cpp msgid " falls over!" @@ -165401,7 +166375,7 @@ msgstr "稳定度" #: src/ranged.cpp #, c-format msgid "Symbols:%s" -msgstr "符号:%s" +msgstr "符号: %s" #: src/ranged.cpp msgid "Current Aim" @@ -165702,12 +166676,13 @@ msgid "" "AcI*zO*iE case insensitive search" msgstr "" "字符 * 是通配符。以下作为示例:\n" +"\n" "human 匹配所有NPC\n" "zombie 精确匹配怪物名称\n" "acidic zo* 匹配任何以'acidic zo'开头的怪物\n" -"*mbie 匹配任何以'mbie'结尾的怪物\n" +"*mbie 匹配任何以'mbie'结尾的怪物\n" "*cid*zo*ie 允许多个通配符\n" -"AcI*zO*iE 大小写不敏感" +"AcI*zO*iE 大小写不敏感" #: src/safemode_ui.cpp msgid "Safe Mode Rule:" @@ -167362,6 +168337,11 @@ msgstr "你未能达到修理 %s 的要求。" msgid "You repair the %1$s's %2$s." msgstr "你修理好了 %1$s 的 %2$s。" +#: src/veh_utils.cpp +#, c-format +msgid "You replace the %1$s's %2$s." +msgstr "你更换了 %1$s 的 %2$s。" + #: src/vehicle.cpp msgid "Lost connection with the vehicle due to distance!" msgstr "超出距离,失去了对载具的连接!" @@ -167432,7 +168412,7 @@ msgstr "你正在加工的载具部件被毁掉了!" msgid "" "A part of the vehicle ('%s') has no containing vehicle's name. It will be " "detached from the %s vehicle." -msgstr "车辆的一部分(‘%s’)不包含车辆名称。它将与%s车辆分离。" +msgstr "车辆的一部分('%s')不包含车辆名称。它将与%s车辆分离。" #: src/vehicle.cpp #, c-format @@ -167770,10 +168750,6 @@ msgstr "(故障)" msgid " holding %s" msgstr "装着 %s" -#: src/vehicle_part.cpp -msgid "XX" -msgstr "XX" - #: src/vehicle_part.cpp #, c-format msgid "Insufficient power to enable %s" @@ -168233,10 +169209,6 @@ msgstr "关闭洗衣机" msgid "Activate the washing machine (1.5 hours)" msgstr "启动洗衣机(1.5小时)" -#: src/vehicle_use.cpp -msgid "Get items on the ground" -msgstr "取得地上物品" - #: src/vehicle_use.cpp msgid "Use the hotplate" msgstr "使用电炉" diff --git a/lang/po/zh_TW.po b/lang/po/zh_TW.po index 0f91b5f1c2dca..1746b2aff55f5 100644 --- a/lang/po/zh_TW.po +++ b/lang/po/zh_TW.po @@ -12,24 +12,25 @@ # 菲伊斯 , 2019 # 林楷翌 , 2019 # 黃某人, 2019 -# Hsinyu Chan, 2019 # HOXV , 2019 # Hao JK , 2019 # Brett Dong , 2019 # Laughing Man, 2019 # vivi00791 , 2019 # 嵩憲 楊 , 2019 +# KTISME , 2019 # xap, 2019 +# Hsinyu Chan, 2019 +# Maynard , 2019 # kiddragon Chung , 2019 -# KTISME , 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-26 14:19+0800\n" +"POT-Creation-Date: 2019-05-03 13:47+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: KTISME , 2019\n" +"Last-Translator: kiddragon Chung , 2019\n" "Language-Team: Chinese (Taiwan) (https://www.transifex.com/cataclysm-dda-translators/teams/2217/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -45,8 +46,9 @@ msgstr[0] "電池" #. ~ Description for battery #: lang/json/AMMO_from_json.py msgid "" -"A set of universal batteries. Used to charge almost any electronic device." -msgstr "一組萬用電池。幾乎能夠為任何電子裝置提供電力。" +"Some free-floating battery charge. This can be reloaded into rechargable " +"battery cells, but can never be unloaded." +msgstr "" #: lang/json/AMMO_from_json.py msgid "aluminum foil" @@ -910,18 +912,17 @@ msgid "" "enemies. Stands a good chance of remaining intact once fired." msgstr "" -#: lang/json/AMMO_from_json.py -msgid "anesthetic kit" -msgstr "麻醉包" +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "anesthetic" +msgstr "" -#. ~ Description for anesthetic kit +#. ~ Description for anesthetic #: lang/json/AMMO_from_json.py msgid "" -"A kit for inducing anesthesia for surgery, containing specialized canisters " -"with a variety of powerful hypnotic, analgetic, and stimulative drugs. It's" -" intended for use in specialized medical equipment, and can't be " -"administered manually." -msgstr "一組用來導引手術麻醉的工具包, 包含各種強效催眠藥、止痛藥和興奮藥的專用藥罐。它只能用於專業的醫療設備中, 不能手動使用。" +"A variety of powerful hypnotic, analgetic, and stimulative drugs. It's " +"intended for use in specialized medical equipment, and can't be administered" +" manually. You can reload an anesthetic kit with it." +msgstr "" #: lang/json/AMMO_from_json.py msgid "sulfur" @@ -1554,6 +1555,18 @@ msgid "" "Petroleum-based fuel made from a byproduct of the gasoline making process." msgstr "柴油。汽油提煉過程中的副產物。" +#: lang/json/AMMO_from_json.py +msgid "biodiesel" +msgid_plural "biodiesel" +msgstr[0] "" + +#. ~ Description for biodiesel +#: lang/json/AMMO_from_json.py +msgid "" +"Vegetable oil- or animal fat-based diesel fuel consisting of long-chain " +"alkyl (methyl, ethyl, or propyl) esters." +msgstr "" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "gasoline" msgid_plural "gasoline" @@ -1742,6 +1755,31 @@ msgstr "" "在 21 世紀中葉, 軍方開始研發能源類武器。最後的研究成果就是標準的核融合子彈, 它可以發射出接近光速的超高溫氣體彈, " "而不帶任何後座力。這個是由備用零件手工打造而成。" +#: lang/json/AMMO_from_json.py +msgid "throwing stick" +msgstr "" + +#. ~ Description for throwing stick +#: lang/json/AMMO_from_json.py +msgid "" +"A stick carved into a shape suitable for throwing at a target. Not a " +"boomerang, so don't expect it to return to your hand." +msgstr "只是一根木棍被雕刻成適合丟擲的形狀, 並不是迴旋鏢, 所以不要期待它會自己回到你你的手裡。" + +#: lang/json/AMMO_from_json.py +msgid "anesthetic kit" +msgstr "麻醉包" + +#. ~ Description for anesthetic kit +#. ~ Description for anesthesia kit +#: lang/json/AMMO_from_json.py lang/json/TOOL_from_json.py +msgid "" +"A kit for inducing anesthesia for surgery, containing specialized canisters " +"with a variety of powerful hypnotic, analgetic, and stimulative drugs. It's" +" intended for use in specialized medical equipment, and can't be " +"administered manually." +msgstr "一組用來導引手術麻醉的工具包, 包含各種強效催眠藥、止痛藥和興奮藥的專用藥罐。它只能用於專業的醫療設備中, 不能手動使用。" + #: lang/json/AMMO_from_json.py msgid "H&K 12mm" msgstr "H&K 12mm 子彈" @@ -2243,6 +2281,57 @@ msgid "reloaded .38 Super" msgid_plural "reloaded .38 Super" msgstr[0] ".38 超級彈 (重填彈)" +#: lang/json/AMMO_from_json.py +msgid ".380 ACP FMJ" +msgstr "" + +#. ~ Description for .380 ACP FMJ +#: lang/json/AMMO_from_json.py +msgid "" +".380 ACP ammunition with a brass jacketed 95gr bullet. Popular in pocket " +"pistols for over a century, it is often considered the weakest caliber to " +"consider carrying. One should be careful not to chamber it in 9x18mm " +"Makarov or 9x19mm firearms." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".380 ACP JHP" +msgstr "" + +#. ~ Description for .380 ACP JHP +#: lang/json/AMMO_from_json.py +msgid "" +".380 ACP ammunition with a 95gr jacketed hollow point bullet. It is a " +"popular round for small concealable backup pistols, and often the weakest " +"recommended defensive caliber. One should be careful not to chamber it in " +"9x18mm Makarov or 9x19mm firearms." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".380 ACP +P" +msgstr "" + +#. ~ Description for .380 ACP +P +#: lang/json/AMMO_from_json.py +msgid "" +"Overpressure .380 ACP ammunition with a 90gr jacketed hollow point bullet. " +"These defensive loadings are designed to maximise performance and tend to be" +" more accurate than practice ammo. One should be careful not to chamber it " +"in 9x18mm Makarov or 9x19mm firearms." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP FMJ" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP JHP" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .380 ACP +P" +msgstr "" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "10mm Auto" msgid_plural "10mm Auto" @@ -3966,18 +4055,6 @@ msgid "" "intact once fired." msgstr "由骨頭刻成並削尖的十字弓箭, 上面附帶有箭羽, 具有普通的傷害與準度。回收率高。" -#: lang/json/AMMO_from_json.py -msgid "throwing stick" -msgid_plural "throwing sticks" -msgstr[0] "投擲棒" - -#. ~ Description for throwing stick -#: lang/json/AMMO_from_json.py -msgid "" -"A stick carved into a shape suitable for throwing at a target. Not a " -"boomerang, so don't expect it to return to your hand." -msgstr "只是一根木棍被雕刻成適合丟擲的形狀, 並不是迴旋鏢, 所以不要期待它會自己回到你你的手裡。" - #: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py msgid "wooden javelin" msgid_plural "wooden javelins" @@ -5685,10 +5762,10 @@ msgstr[0] "鏈甲袖套" #. ~ Description for pair of chainmail sleeves #: lang/json/ARMOR_from_json.py msgid "" -"Customized chainmail arms. Each sleeve has leather straps to connect them " -"with each other. The lack of fingers makes them less cumbersome and allows " -"them to be used with gloves." -msgstr "一對訂製的鏈甲袖套, 袖套間使用皮革綁帶連接。露出了手掌使它較不累贅, 並允許它與手套同時使用。" +"Customized chainmail arms. Each sleeve has straps to connect them with each" +" other. The lack of fingers makes them less cumbersome and allows them to " +"be used with gloves." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "chainmail coif" @@ -5708,10 +5785,9 @@ msgstr[0] "鏈甲護腿" #. ~ Description for chainmail leggings #: lang/json/ARMOR_from_json.py msgid "" -"Customized chainmail legs. Their leather straps keep everything in place, " -"and the lack of toes and heels allows them to work perfectly well with " -"footwear." -msgstr "一對訂製的鏈甲護腿, 使用皮革綁帶固定各部位。露出了腳掌使它能完美搭配各種鞋款。" +"Customized chainmail legs. Their straps keep everything in place, and the " +"lack of toes and heels allows them to work perfectly well with footwear." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "chainmail hauberk" @@ -5722,9 +5798,10 @@ msgstr[0] "鏈甲長衣" #: lang/json/ARMOR_from_json.py msgid "" "A fully customized chainmail outfit, leaving the head uncovered. The shirt," -" arms, and leggings have been modified with leather straps to deal with " -"uneven weight distribution and to allow them to be used separately." -msgstr "一套完全訂製的鏈甲外衣, 但沒有包覆頭部。上衣、手臂和護腿已經用皮革綁帶調整以平衡重量, 並允許它們被單獨使用。" +" arms, and leggings have been modified with straps and combined with a " +"gambeson to deal with uneven weight distribution, cold environments and to " +"allow them to be used separately." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "chainmail armor" @@ -5735,9 +5812,10 @@ msgstr[0] "鏈甲套裝" #: lang/json/ARMOR_from_json.py msgid "" "A fully customized chainmail suit. The coif, shirt, arms, and leggings have" -" been modified with leather straps to deal with uneven weight distribution " -"and to allow them to be used separately." -msgstr "一套完全訂製的鏈甲套裝。兜帽、上衣、手臂和護腿已經用皮革綁帶調整以平衡重量, 並允許它們被單獨使用。" +" been modified with straps and combined with a gambeson to deal with uneven " +"weight distribution, cold environments and to allow them to be used " +"separately." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "chainmail vest" @@ -5748,8 +5826,8 @@ msgstr[0] "鏈甲背心" #: lang/json/ARMOR_from_json.py msgid "" "A customized chainmail vest. It's a sleeveless piece of chainmail with " -"small leather straps designed to better distribute the weight." -msgstr "一件訂製的鏈甲背心。它是一件無袖鏈甲, 附有設計來平衡重量的細小皮革綁帶。" +"small straps designed to better distribute the weight." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "leather chaps" @@ -11848,6 +11926,19 @@ msgid "" " gun." msgstr "小型槍械適用的快拔槍套, 使用它來拔槍/放槍。" +#: lang/json/ARMOR_from_json.py +msgid "deep concealment holster" +msgid_plural "deep concealment holsters" +msgstr[0] "" + +#. ~ Description for deep concealment holster +#: lang/json/ARMOR_from_json.py +msgid "" +"An elastic band with numerous provisions for concealing a very small pistol " +"close to the body. It is awkward to use without practice. Activate to " +"holster/draw a gun." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "survivor harness" msgid_plural "survivor harnesses" @@ -12312,8 +12403,8 @@ msgid "Active Defense System CBM" msgid_plural "Active Defense System CBMs" msgstr[0] "CBM: 主動防禦系統" -#. ~ Description for Active Defense System #. ~ Description for Active Defense System CBM +#. ~ Description for Active Defense System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A thin forcefield surrounds your body, continually draining power. Anything" @@ -12328,8 +12419,8 @@ msgid "Advanced Microreactor CBM" msgid_plural "Advanced Microreactor CBMs" msgstr[0] "CBM: 進階體腔核子反應爐" -#. ~ Description for Advanced Microreactor System #. ~ Description for Advanced Microreactor CBM +#. ~ Description for Advanced Microreactor System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This stripped down mini-reactor is safer than it appears due to integrated " @@ -12342,8 +12433,8 @@ msgid "Alarm System CBM" msgid_plural "Alarm System CBMs" msgstr[0] "CBM: 警報系統" -#. ~ Description for Alarm System #. ~ Description for Alarm System CBM +#. ~ Description for Alarm System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A motion-detecting alarm system will notice almost all movement within a " @@ -12417,8 +12508,8 @@ msgid "Battery System CBM" msgid_plural "Battery System CBMs" msgstr[0] "CBM: 電池系統" -#. ~ Description for Battery System #. ~ Description for Battery System CBM +#. ~ Description for Battery System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have a battery draining attachment, and thus can make use of the energy " @@ -12431,8 +12522,8 @@ msgid "Monomolecular Blade CBM" msgid_plural "Monomolecular Blade CBMs" msgstr[0] "CBM: 單分子刀" -#. ~ Description for Monomolecular Blade #. ~ Description for Monomolecular Blade CBM +#. ~ Description for Monomolecular Blade #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A deadly foot-long blade made of advanced material now resides inside your " @@ -12486,8 +12577,8 @@ msgid "Blood Filter CBM" msgid_plural "Blood Filter CBMs" msgstr[0] "CBM: 血液過濾" -#. ~ Description for Blood Filter #. ~ Description for Blood Filter CBM +#. ~ Description for Blood Filter #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A filtration system in your heart allows you to actively filter out chemical" @@ -12513,8 +12604,8 @@ msgid "Subdermal Carbon Filament CBM" msgid_plural "Subdermal Carbon Filament CBMs" msgstr[0] "CBM: 碳纖維皮下組織" -#. ~ Description for Subdermal Carbon Filament #. ~ Description for Subdermal Carbon Filament CBM +#. ~ Description for Subdermal Carbon Filament #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Lying just beneath your skin is a thin armor made of carbon nanotubes. This" @@ -12526,8 +12617,8 @@ msgid "Chain Lightning CBM" msgid_plural "Chain Lightning CBMs" msgstr[0] "CBM: 連鎖電擊" -#. ~ Description for Chain Lightning #. ~ Description for Chain Lightning CBM +#. ~ Description for Chain Lightning #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your body is equipped with a chain lightning generator, allowing you to emit" @@ -12554,8 +12645,8 @@ msgid "Internal Climate Control CBM" msgid_plural "Internal Climate Control CBMs" msgstr[0] "CBM: 恆溫控制系統" -#. ~ Description for Internal Climate Control #. ~ Description for Internal Climate Control CBM +#. ~ Description for Internal Climate Control #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Throughout your body lies a network of thermal piping which eases the " @@ -12567,8 +12658,8 @@ msgid "Cloaking System CBM" msgid_plural "Cloaking System CBMs" msgstr[0] "CBM: 偽裝系統" -#. ~ Description for Cloaking System #. ~ Description for Cloaking System CBM +#. ~ Description for Cloaking System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This high-power system uses a set of cameras and LEDs to make you blend into" @@ -12594,8 +12685,8 @@ msgid "Wired Reflexes CBM" msgid_plural "Wired Reflexes CBMs" msgstr[0] "CBM: 神經反射增強" -#. ~ Description for Wired Reflexes #. ~ Description for Wired Reflexes CBM +#. ~ Description for Wired Reflexes #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your reaction time has been greatly enhanced with bionic nerve stimulators, " @@ -12607,8 +12698,8 @@ msgid "Expanded Digestive System CBM" msgid_plural "Expanded Digestive System CBMs" msgstr[0] "CBM: 擴充消化系統" -#. ~ Description for Expanded Digestive System #. ~ Description for Expanded Digestive System CBM +#. ~ Description for Expanded Digestive System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have been outfitted with three synthetic stomachs and industrial-grade " @@ -12622,8 +12713,8 @@ msgid "Enhanced Hearing CBM" msgid_plural "Enhanced Hearing CBMs" msgstr[0] "CBM: 聽覺強化" -#. ~ Description for Enhanced Hearing #. ~ Description for Enhanced Hearing CBM +#. ~ Description for Enhanced Hearing #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "When this bionic is active, your hearing will be drastically improved, " @@ -12650,8 +12741,8 @@ msgid "EMP Projector CBM" msgid_plural "EMP Projector CBMs" msgstr[0] "CBM: 電磁脈衝發射器" -#. ~ Description for EMP Projector #. ~ Description for EMP Projector CBM +#. ~ Description for EMP Projector #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A ranged EMP generator system is implanted on the palm of your right hand " @@ -12664,8 +12755,8 @@ msgid "Ethanol Burner CBM" msgid_plural "Ethanol Burner CBMs" msgstr[0] "CBM: 酒精發電器" -#. ~ Description for Ethanol Burner #. ~ Description for Ethanol Burner CBM +#. ~ Description for Ethanol Burner #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You burn alcohol as fuel in an extremely efficient reaction. However, you " @@ -12677,8 +12768,8 @@ msgid "Aero-Evaporator CBM" msgid_plural "Aero-Evaporator CBMs" msgstr[0] "CBM: 濕氣凝水裝置" -#. ~ Description for Aero-Evaporator #. ~ Description for Aero-Evaporator CBM +#. ~ Description for Aero-Evaporator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This unit draws moisture from the surrounding air, which then is poured from" @@ -12690,8 +12781,8 @@ msgid "Diamond Cornea CBM" msgid_plural "Diamond Cornea CBMs" msgstr[0] "CBM: 鑽石角膜" -#. ~ Description for Diamond Cornea #. ~ Description for Diamond Cornea CBM +#. ~ Description for Diamond Cornea #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Your vision is greatly enhanced, giving you a +2 bonus to perception." msgstr "你的視力得到大幅強化, 讓你得到額外 2 點的感知。" @@ -12716,8 +12807,8 @@ msgid "Facial Distortion CBM" msgid_plural "Facial Distortion CBMs" msgstr[0] "CBM: 易容裝置" -#. ~ Description for Facial Distortion #. ~ Description for Facial Distortion CBM +#. ~ Description for Facial Distortion #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Through controlled application of electrochemical impulses, you are capable " @@ -12730,8 +12821,8 @@ msgid "Dielectric Capacitance System CBM" msgid_plural "Dielectric Capacitance System CBMs" msgstr[0] "CBM: 絕緣電容系統" -#. ~ Description for Dielectric Capacitance System #. ~ Description for Dielectric Capacitance System CBM +#. ~ Description for Dielectric Capacitance System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Throughout your body lies a network of miniature piezoelectric capacitors " @@ -12796,8 +12887,8 @@ msgid "Internal Furnace CBM" msgid_plural "Internal Furnace CBMs" msgstr[0] "CBM: 內燃機" -#. ~ Description for Internal Furnace #. ~ Description for Internal Furnace CBM +#. ~ Description for Internal Furnace #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "When this bionic is active, you can burn nearly any organic material as fuel" @@ -12837,8 +12928,8 @@ msgid "Terranian Sonar CBM" msgid_plural "Terranian Sonar CBMs" msgstr[0] "CBM: 地形聲納" -#. ~ Description for Terranian Sonar #. ~ Description for Terranian Sonar CBM +#. ~ Description for Terranian Sonar #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your feet are equipped with precision sonar equipment, allowing you to " @@ -12851,8 +12942,8 @@ msgid "Heat Drain CBM" msgid_plural "Heat Drain CBMs" msgstr[0] "CBM: 熱能吸收" -#. ~ Description for Heat Drain #. ~ Description for Heat Drain CBM +#. ~ Description for Heat Drain #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While fighting unarmed against a warm-blooded opponent, there is a chance " @@ -12878,8 +12969,8 @@ msgid "Hydraulic Muscles CBM" msgid_plural "Hydraulic Muscles CBMs" msgstr[0] "CBM: 液壓肌肉" -#. ~ Description for Hydraulic Muscles #. ~ Description for Hydraulic Muscles CBM +#. ~ Description for Hydraulic Muscles #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While activated, your muscles will be greatly enhanced, increasing your " @@ -12891,8 +12982,8 @@ msgid "Infrared Vision CBM" msgid_plural "Infrared Vision CBMs" msgstr[0] "CBM: 紅外線視覺" -#. ~ Description for Infrared Vision #. ~ Description for Infrared Vision CBM +#. ~ Description for Infrared Vision #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your range of vision extends into the infrared, allowing you to see warm-" @@ -12904,8 +12995,8 @@ msgid "Cerebral Booster CBM" msgid_plural "Cerebral Booster CBMs" msgstr[0] "CBM: 腦波增強" -#. ~ Description for Cerebral Booster #. ~ Description for Cerebral Booster CBM +#. ~ Description for Cerebral Booster #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your brain has been enhanced with bionic coprocessors, giving you a +2 bonus" @@ -12930,8 +13021,8 @@ msgid "Leukocyte Breeder System CBM" msgid_plural "Leukocyte Breeder System CBMs" msgstr[0] "CBM: 白血球培養系統" -#. ~ Description for Leukocyte Breeder System #. ~ Description for Leukocyte Breeder System CBM +#. ~ Description for Leukocyte Breeder System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You are equipped with bionic stimulators which augment your haematopoiesis " @@ -12946,8 +13037,8 @@ msgid "Mini-Flamethrower CBM" msgid_plural "Mini-Flamethrower CBMs" msgstr[0] "CBM: 迷你噴火器" -#. ~ Description for Mini-Flamethrower #. ~ Description for Mini-Flamethrower CBM +#. ~ Description for Mini-Flamethrower #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "The index fingers of both hands have powerful fire starters which extend " @@ -12984,8 +13075,8 @@ msgid "Nictating Membrane CBM" msgid_plural "Nictating Membrane CBMs" msgstr[0] "CBM: 人工瞬膜" -#. ~ Description for Nictating Membrane #. ~ Description for Nictating Membrane CBM +#. ~ Description for Nictating Membrane #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your eyes have a thin membrane that closes over your eyes while underwater, " @@ -13010,8 +13101,8 @@ msgid "Metabolic Interchange CBM" msgid_plural "Metabolic Interchange CBMs" msgstr[0] "CBM: 代謝交換器" -#. ~ Description for Metabolic Interchange #. ~ Description for Metabolic Interchange CBM +#. ~ Description for Metabolic Interchange #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your digestive system and power supply are interconnected. Bionic energy is" @@ -13024,8 +13115,8 @@ msgid "Weather Reader CBM" msgid_plural "Weather Reader CBMs" msgstr[0] "CBM: 天氣預報" -#. ~ Description for Weather Reader #. ~ Description for Weather Reader CBM +#. ~ Description for Weather Reader #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A multitude of scientific instruments and sensors collect environmental " @@ -13038,8 +13129,8 @@ msgid "Repair Nanobots CBM" msgid_plural "Repair Nanobots CBMs" msgstr[0] "CBM: 奈米機器人修復器" -#. ~ Description for Repair Nanobots #. ~ Description for Repair Nanobots CBM +#. ~ Description for Repair Nanobots #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Inside your body is a fleet of tiny dormant robots. While activated they " @@ -13052,8 +13143,8 @@ msgid "Artificial Night Generator CBM" msgid_plural "Artificial Night Generator CBMs" msgstr[0] "CBM: 黑夜產生器" -#. ~ Description for Artificial Night Generator #. ~ Description for Artificial Night Generator CBM +#. ~ Description for Artificial Night Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Destructive interference eliminates all light within a 15 tile radius." msgstr "以相消干涉遮蔽 15 格內的所有光線。" @@ -13075,8 +13166,8 @@ msgid "Offensive Defense System CBM" msgid_plural "Offensive Defense System CBMs" msgstr[0] "CBM: 攻擊性防禦系統" -#. ~ Description for Offensive Defense System #. ~ Description for Offensive Defense System CBM +#. ~ Description for Offensive Defense System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A thin forcefield surrounds your body, continually draining power. This " @@ -13090,8 +13181,8 @@ msgid "Sensory Dulling CBM" msgid_plural "Sensory Dulling CBMs" msgstr[0] "CBM: 知覺阻隔" -#. ~ Description for Sensory Dulling #. ~ Description for Sensory Dulling CBM +#. ~ Description for Sensory Dulling #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your nervous system is wired to allow you to inhibit the signals of pain, " @@ -13116,8 +13207,8 @@ msgid "Power Armor Interface CBM" msgid_plural "Power Armor Interface CBMs" msgstr[0] "CBM: 動力裝甲介面" -#. ~ Description for Power Armor Interface #. ~ Description for Power Armor Interface CBM +#. ~ Description for Power Armor Interface #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Interfaces your power system with the internal charging port on suits of " @@ -13129,8 +13220,8 @@ msgid "Power Armor Mk. II Interface CBM" msgid_plural "Power Armor Mk. II Interface CBMs" msgstr[0] "CBM: 動力裝甲介面 Mk. II" -#. ~ Description for Power Armor Interface Mk. II #. ~ Description for Power Armor Mk. II Interface CBM +#. ~ Description for Power Armor Interface Mk. II #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Interfaces your power system with the internal charging port on suits of " @@ -13144,8 +13235,8 @@ msgid "Power Storage CBM" msgid_plural "Power Storage CBMs" msgstr[0] "CBM: 能量儲存室" -#. ~ Description for Power Storage #. ~ Description for Power Storage CBM +#. ~ Description for Power Storage #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Compact Bionics Module that upgrades your power capacity by 100 units. " @@ -13158,8 +13249,8 @@ msgid "Power Storage CBM Mk. II" msgid_plural "Power Storage CBMs Mk. II" msgstr[0] "CBM: 能量儲存室 Mk. II" -#. ~ Description for Power Storage Mk. II #. ~ Description for Power Storage CBM Mk. II +#. ~ Description for Power Storage Mk. II #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Compact Bionics Module developed at DoubleTech Industries as a replacement " @@ -13172,8 +13263,8 @@ msgid "Probability Travel CBM" msgid_plural "Probability Travel CBMs" msgstr[0] "CBM: 分解傳輸" -#. ~ Description for Probability Travel #. ~ Description for Probability Travel CBM +#. ~ Description for Probability Travel #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Increases your body's wavelength, allowing you to quantum tunnel through " @@ -13212,22 +13303,21 @@ msgid "Railgun CBM" msgid_plural "Railgun CBMs" msgstr[0] "CBM: 軌道槍" -#. ~ Description for Railgun #. ~ Description for Railgun CBM -#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +#: lang/json/BIONIC_ITEM_from_json.py msgid "" -"EM field generators in your arms double the range and damage of thrown iron " -"and steel objects at a cost of 1 power per throw, causing them to leave a " -"trail of electricity that can cause additional damage." -msgstr "你手臂中的電磁力場產生器, 能夠把投擲出的鐵製或鋼製物品的距離及傷害加倍, 並留下一條會造成額外傷害的電子軌跡。每發消耗 1 單位能量。" +"EM field generators in your arms increase the range and damage of thrown " +"iron and steel objects at a cost of 1 power per throw, causing them to leave" +" a trail of electricity that can cause additional damage." +msgstr "" #: lang/json/BIONIC_ITEM_from_json.py msgid "Fingertip Razors CBM" msgid_plural "Fingertip Razors CBMs" msgstr[0] "CBM: 指尖刀刃" -#. ~ Description for Fingertip Razors #. ~ Description for Fingertip Razors CBM +#. ~ Description for Fingertip Razors #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You possess razor-sharp retractable claws underneath your fingernails, ten " @@ -13240,8 +13330,8 @@ msgid "Internal Microreactor CBM" msgid_plural "Internal Microreactor CBMs" msgstr[0] "CBM: 體腔核子反應爐" -#. ~ Description for Microreactor System #. ~ Description for Internal Microreactor CBM +#. ~ Description for Microreactor System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This stripped down mini-reactor may not be the best thing to have in your " @@ -13266,8 +13356,8 @@ msgid "Recycler Unit CBM" msgid_plural "Recycler Unit CBMs" msgstr[0] "CBM: 回收消化器" -#. ~ Description for Recycler Unit #. ~ Description for Recycler Unit CBM +#. ~ Description for Recycler Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your digestive system has been outfitted with a series of filters and " @@ -13280,8 +13370,8 @@ msgid "Remote Controller CBM" msgid_plural "Remote Controller CBMs" msgstr[0] "CBM: 遠端遙控" -#. ~ Description for Remote Controller #. ~ Description for Remote Controller CBM +#. ~ Description for Remote Controller #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A small module connected to your brain allows you to interface with nearby " @@ -13293,8 +13383,8 @@ msgid "Sonic Resonator CBM" msgid_plural "Sonic Resonator CBMs" msgstr[0] "CBM: 聲波共振器" -#. ~ Description for Sonic Resonator #. ~ Description for Sonic Resonator CBM +#. ~ Description for Sonic Resonator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your entire body may resonate at very high power, creating a short-range " @@ -13307,8 +13397,8 @@ msgid "Olfactory Mask CBM" msgid_plural "Olfactory Mask CBMs" msgstr[0] "CBM: 氣味遮罩" -#. ~ Description for Olfactory Mask #. ~ Description for Olfactory Mask CBM +#. ~ Description for Olfactory Mask #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While this system is powered, your body will produce very little odor, " @@ -13320,8 +13410,8 @@ msgid "Scent Vision CBM" msgid_plural "Scent Vision CBMs" msgstr[0] "CBM: 氣味視覺" -#. ~ Description for Scent Vision #. ~ Description for Scent Vision CBM +#. ~ Description for Scent Vision #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While this system is powered, you're able to visually sense your own scent, " @@ -13334,8 +13424,8 @@ msgid "Electroshock Unit CBM" msgid_plural "Electroshock Unit CBMs" msgstr[0] "CBM: 電擊元件" -#. ~ Description for Electroshock Unit #. ~ Description for Electroshock Unit CBM +#. ~ Description for Electroshock Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "While fighting unarmed, or with a weapon that conducts electricity, there is" @@ -13348,8 +13438,8 @@ msgid "Shockwave Generator CBM" msgid_plural "Shockwave Generator CBMs" msgstr[0] "CBM: 震波產生器" -#. ~ Description for Shockwave Generator #. ~ Description for Shockwave Generator CBM +#. ~ Description for Shockwave Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You generate a powerful shockwave, knocking back all nearby creatures. " @@ -13362,8 +13452,8 @@ msgid "Synaptic Accelerator CBM" msgid_plural "Synaptic Accelerator CBMs" msgstr[0] "CBM: 突觸加速器" -#. ~ Description for Synaptic Accelerator #. ~ Description for Synaptic Accelerator CBM +#. ~ Description for Synaptic Accelerator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py #, no-python-format msgid "" @@ -13439,8 +13529,8 @@ msgid "Teleportation Unit CBM" msgid_plural "Teleportation Unit CBMs" msgstr[0] "CBM: 空間傳送" -#. ~ Description for Teleportation Unit #. ~ Description for Teleportation Unit CBM +#. ~ Description for Teleportation Unit #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "This highly experimental unit folds space over short distances, instantly " @@ -13453,8 +13543,8 @@ msgid "Time Dilation CBM" msgid_plural "Time Dilation CBMs" msgstr[0] "CBM: 時間膨脹" -#. ~ Description for Time Dilation #. ~ Description for Time Dilation CBM +#. ~ Description for Time Dilation #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "At the cost of all stored bionic power, you may increase your body speed and" @@ -13468,8 +13558,8 @@ msgid "Integrated Toolset CBM" msgid_plural "Integrated Toolset CBMs" msgstr[0] "CBM: 整合工具手" -#. ~ Description for Integrated Toolset #. ~ Description for Integrated Toolset CBM +#. ~ Description for Integrated Toolset #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Surgically implanted in your hands and fingers is a complete tool set - " @@ -13495,8 +13585,8 @@ msgid "Joint Servo CBM" msgid_plural "Joint Servo CBMs" msgstr[0] "CBM:關節伺服馬達" -#. ~ Description for Joint Servo #. ~ Description for Joint Servo CBM +#. ~ Description for Joint Servo #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your leg joints have been equipped with servomotors that provide power-" @@ -13511,8 +13601,8 @@ msgid "Uncanny Dodge CBM" msgid_plural "Uncanny Dodge CBMs" msgstr[0] "CBM: 閃避直覺" -#. ~ Description for Uncanny Dodge #. ~ Description for Uncanny Dodge CBM +#. ~ Description for Uncanny Dodge #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "Your nervous system has been augmented with bionic processors, allowing you " @@ -13524,8 +13614,8 @@ msgid "Unified Power System CBM" msgid_plural "Unified Power System CBMs" msgstr[0] "CBM: UPS系統" -#. ~ Description for Internal Unified Power System #. ~ Description for Unified Power System CBM +#. ~ Description for Internal Unified Power System #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have a unified power system wired into your power banks. Objects that " @@ -13537,8 +13627,8 @@ msgid "Internal Chronometer CBM" msgid_plural "Internal Chronometer CBMs" msgstr[0] "CBM: 內部計時器" -#. ~ Description for Internal Chronometer #. ~ Description for Internal Chronometer CBM +#. ~ Description for Internal Chronometer #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "You have been equipped with an internal atomic clock, ensuring that you will" @@ -13606,8 +13696,8 @@ msgid "Taste Modifier CBM" msgid_plural "Taste Modifier CBMs" msgstr[0] "CBM:味覺置換" -#. ~ Description for Taste Modifier #. ~ Description for Taste Modifier CBM +#. ~ Description for Taste Modifier #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A set of highly sensitive sensors is installed in your mouth, and a small " @@ -13804,8 +13894,8 @@ msgid "" " level will slowly recharge." msgstr "你身上安裝了數個太陽能板。只要陽光直射你就能夠慢慢充能。" -#. ~ Description for Solar Panels #. ~ Description for Solar Panels CBM +#. ~ Description for Solar Panels #: lang/json/BIONIC_ITEM_from_json.py lang/json/BIONIC_ITEM_from_json.py #: lang/json/bionic_from_json.py msgid "" @@ -13871,8 +13961,8 @@ msgid "Ionic Overload Generator CBM" msgid_plural "Ionic Overload Generator CBMs" msgstr[0] "CBM: 離子超載生成器" -#. ~ Description for Ionic Overload Generator #. ~ Description for Ionic Overload Generator CBM +#. ~ Description for Ionic Overload Generator #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "" "A powerful ion energy generator is implanted on your chest. Fires a " @@ -19059,6 +19149,18 @@ msgstr[0] "牛奶" msgid "Baby cow food, appropriated for adult humans. Spoils rapidly." msgstr "小牛的食物, 但是對大人也很好, 很容易臭酸。" +#: lang/json/COMESTIBLE_from_json.py +msgid "reconstituted milk" +msgid_plural "reconstituted milk" +msgstr[0] "" + +#. ~ Description for reconstituted milk +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Baby cow food, appropriated for adult humans. This milk has been " +"reconstituted from a processed milk. Spoils rapidly." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "coffee milk" msgstr "咖啡牛奶" @@ -22256,20 +22358,20 @@ msgid "" msgstr "大麻、狼藥、草。不管你怎麼叫他, 把它用張紙捲起來, 然後準備抽。" #: lang/json/COMESTIBLE_from_json.py -msgid "pink tablet" -msgstr "搖頭丸" +msgid "pink tab" +msgstr "" -#. ~ Use action activation_message for pink tablet. +#. ~ Use action activation_message for pink tab. #: lang/json/COMESTIBLE_from_json.py msgid "You eat the pink tablet." msgstr "你吃了搖頭丸。" -#. ~ Description for pink tablet +#. ~ Description for pink tab #: lang/json/COMESTIBLE_from_json.py msgid "" -"Tiny pink candies shaped like hearts, already dosed with some sort of drug." -" Really only useful for entertainment. Will cause hallucinations." -msgstr "一個心形的粉紅色糖果, 有加入了一些毒品效果。用來作娛樂效果, 會產生幻覺。" +"Tiny pink tabs resembling postage stamps, already dosed with some sort of " +"drug. Really only useful for entertainment. Will cause hallucinations." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "medical gauze" @@ -24594,6 +24696,15 @@ msgstr[0] "杏仁" msgid "A smooth-skinned fruit, related to the peach." msgstr "一種果皮光滑的水果, 桃子的近親。" +#: lang/json/COMESTIBLE_from_json.py +msgid "cactus pad" +msgstr "" + +#. ~ Description for cactus pad +#: lang/json/COMESTIBLE_from_json.py +msgid "An edible pad of a cactus." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "barley" msgstr "大麥" @@ -26474,6 +26585,15 @@ msgid "" "hot dogs and hamburgers, or, if you're desperate, straight to your stomach." msgstr "這種脆脆、酸酸的餡料由萵苣或是捲心菜製成, 配上熱狗和漢堡包就最完美了。不過你很餓的話也可以直接吃下肚。" +#: lang/json/COMESTIBLE_from_json.py +msgid "nopalito" +msgstr "" + +#. ~ Description for nopalito +#: lang/json/COMESTIBLE_from_json.py +msgid "A less prickly version of cactus pads." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "wheat cereal" msgstr "全麥穀片" @@ -28726,6 +28846,16 @@ msgstr[0] "贗品" msgid "Dummy item. If you see this, then something went wrong." msgstr "愚蠢的玩意, 如果你看到它, 接下來一定會有一些壞事發生。" +#: lang/json/GENERIC_from_json.py +msgid "semi ground grains" +msgid_plural "semi ground grains" +msgstr[0] "" + +#. ~ Description for semi ground grains +#: lang/json/GENERIC_from_json.py +msgid "A paste of half-finished milled grains, not yet flour." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "smoldering embers" msgid_plural "smoldering embers" @@ -28793,8 +28923,8 @@ msgstr "靠近火源" #. ~ Description for wind #. ~ Description for a smoking device and a source of flame #. ~ Description for abstract map -#. ~ Description for weapon #. ~ Description for seeing this is a bug +#. ~ Description for weapon #: lang/json/GENERIC_from_json.py lang/json/GENERIC_from_json.py #: lang/json/TOOL_from_json.py lang/json/TOOL_from_json.py #: lang/json/skill_from_json.py @@ -30893,7 +31023,7 @@ msgstr "鋼製裝甲板,專門設計用於防彈背心" #: lang/json/GENERIC_from_json.py msgid "condom" msgid_plural "condoms" -msgstr[0] "" +msgstr[0] "避孕套" #. ~ Description for condom #: lang/json/GENERIC_from_json.py @@ -30935,6 +31065,18 @@ msgid "" " vehicle. Combine it with a wheel to get a mountable piece." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "welding component kit" +msgid_plural "welding component kits" +msgstr[0] "" + +#. ~ Description for welding component kit +#: lang/json/GENERIC_from_json.py +msgid "" +"A set of components useful for constructing a full-featured welding station," +" complete with soldering capability." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "canister grenade" msgid_plural "canister grenades" @@ -33710,6 +33852,18 @@ msgid "" "cargo." msgstr "一個用於運載貨物、附有繩索和附著點的重型框架。" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "floor trunk" +msgid_plural "floor trunks" +msgstr[0] "" + +#. ~ Description for floor trunk +#: lang/json/GENERIC_from_json.py +msgid "" +"A section of flooring with a cargo-space beneath, and a hinged door for " +"access." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "livestock carrier" msgid_plural "livestock carriers" @@ -33785,11 +33939,10 @@ msgstr[0] "UPS 相容的車載充電站" msgid "" "A Unified Power System recharging station designed to operate on vehicle " "power. Once installed in a vehicle storage space and turned on from a " -"dashboard or electronics control unit, it will slowly charge all tools with " -"rechargeable batteries in that space. The system can only be installed in " -"existing storage compartments." +"dashboard or electronics control unit, it will slowly charge all UPS " +"compatible tools and battery cells in that space. The system can only be " +"installed in existing storage compartments." msgstr "" -"一個使用車輛電力來運作的統一規格電力系統充電站。只需安裝在車輛的儲物空間,再於車輛控制處啟動充電系統,將會慢慢地把該儲物空間內所有工具裡的充電電池充滿。這個系統只能安裝在已有的車輛儲物空間上。" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py #: lang/json/vehicle_part_from_json.py @@ -35186,6 +35339,16 @@ msgstr[0] "9X18mm 彈殼" msgid "An empty casing from a 9x18mm round." msgstr "一個空的 9x18mm 子彈殼。" +#: lang/json/GENERIC_from_json.py +msgid ".380 ACP casing" +msgid_plural ".380 ACP casings" +msgstr[0] "" + +#. ~ Description for .380 ACP casing +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a .380 ACP round." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "shotgun hull" msgid_plural "shotgun hulls" @@ -38457,6 +38620,86 @@ msgstr "神器" msgid "ARMOR" msgstr "護具" +#: lang/json/MAGAZINE_from_json.py +msgid "ultra-light battery cell" +msgstr "" + +#. ~ Description for ultra-light battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a light battery cell designed for small size over everything else. " +"It retains its universal compatibility, though." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "light battery cell" +msgstr "" + +#. ~ Description for light battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a light battery cell, universally compatible with all kinds of small" +" devices." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "light battery cell (high-capacity)" +msgid_plural "light battery cells (high-capacity)" +msgstr[0] "" + +#. ~ Description for light battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity light battery cell, universally compatible with all " +"kinds of personal electronic devices." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "medium battery cell" +msgstr "" + +#. ~ Description for medium battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a medium battery cell, universally compatible with all kinds of " +"appliances and power tools." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "medium battery cell (high-capacity)" +msgid_plural "medium battery cells (high-capacity)" +msgstr[0] "" + +#. ~ Description for medium battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity medium battery cell, universally compatible with all" +" kinds of appliances and power tools." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "heavy battery cell" +msgstr "" + +#. ~ Description for heavy battery cell +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a heavy battery cell, universally compatible with all kinds of " +"industrial-grade equipment and large tools." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "heavy battery cell (high-capacity)" +msgid_plural "heavy battery cells (high-capacity)" +msgstr[0] "" + +#. ~ Description for heavy battery cell (high-capacity) +#: lang/json/MAGAZINE_from_json.py +msgid "" +"This is a high-capacity heavy battery cell, universally compatible with all " +"kinds of industrial-grade equipment and large tools." +msgstr "" + #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "fuel bunker" msgstr "燃料儲放庫" @@ -38603,6 +38846,15 @@ msgstr "S&W 22A 彈匣" msgid "A standard capacity magazine for the popular S&W 22A pistol." msgstr "一個標準容量的彈匣, 適用於流行的 S&W 22A 手槍。" +#: lang/json/MAGAZINE_from_json.py +msgid "Jennings J-22 magazine" +msgstr "" + +#. ~ Description for Jennings J-22 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A cheap 6-round steel box magazine for the Jennings J-22." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "LW-5 speedloader" msgstr "LW-5快速裝填器" @@ -38871,6 +39123,15 @@ msgstr "Vz.61 蠍式衝鋒槍彈匣" msgid "A standard 20-round magazine for the Skorpion Vz. 61, in .32 ACP." msgstr "一個標準的 20 發鋼製盒狀彈匣, 能容納 .32 ACP 子彈, 適用於 Vz.61 蠍式衝鋒槍。" +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec P32 magazine" +msgstr "" + +#. ~ Description for Kel-Tec P32 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 7-round steel box magazine for the Kel-Tec P32." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "P226 magazine .357 SIG" msgstr "P226 .357 SIG彈匣" @@ -38913,6 +39174,43 @@ msgid "" "revolver." msgstr "這個快速裝填器可以容納5發.38子彈,用來快速重新裝填相容的左輪手槍。" +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec P3AT magazine" +msgstr "" + +#. ~ Description for Kel-Tec P3AT magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 6-round steel box magazine for the Kel-Tec P3AT." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "FN 1910 magazine" +msgstr "" + +#. ~ Description for FN 1910 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "" +"A standard 6-round steel box magazine for the FN 1910. It looks a bit old." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "Ruger LCP magazine" +msgstr "" + +#. ~ Description for Ruger LCP magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 6-round capacity magazine for the Ruger LCP pistol." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "MAC-11 magazine" +msgstr "" + +#. ~ Description for MAC-11 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A cheap 32-round steel box magazine for use with the MAC-11 SMG." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid ".40 6-round speedloader" msgstr ".38 6發快速裝填器" @@ -39524,6 +39822,15 @@ msgstr "UZI 彈匣" msgid "A standard 32-round steel box magazine for use with the UZI SMG." msgstr "一個標準的 32 發鋼製盒狀彈匣, 適用於 UZI 衝鋒槍。" +#: lang/json/MAGAZINE_from_json.py +msgid "Kel-Tec PF-9 magazine" +msgstr "" + +#. ~ Description for Kel-Tec PF-9 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "A standard 7-round steel box magazine for the Kel-Tec PF-9." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "Makarov PM magazine" msgstr "馬卡洛夫手槍彈匣" @@ -40220,6 +40527,15 @@ msgid "" "inside." msgstr "加入一家瀕臨破產連鎖披薩店, 以及店裡仍在運作的機械布偶們 。" +#: lang/json/MOD_INFO_from_json.py +msgid "Battery Migration for Existing Games" +msgstr "" + +#. ~ Description for Battery Migration for Existing Games +#: lang/json/MOD_INFO_from_json.py +msgid "Allows you to reload and unload battery cells with legacy batteries." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "Boats" msgstr "船隻" @@ -41052,7 +41368,7 @@ msgstr "脂肪臃腫下垂的肥胖殭屍。散發出可怕的腐爛氣味, 粉 #: lang/json/MONSTER_from_json.py msgid "gasoline zombie" -msgstr "" +msgstr "汽油殭屍" #. ~ Description for gasoline zombie #: lang/json/MONSTER_from_json.py @@ -42075,7 +42391,7 @@ msgstr "這具軀體已經嚴重腫大, 但仍靠著身上的半凝固酸勉強 #: lang/json/MONSTER_from_json.py msgid "The corrosive zombie spits a glob of acid!" -msgstr "" +msgstr "腐蝕殭屍吐出了一坨酸液球!" #: lang/json/MONSTER_from_json.py msgid "crawling zombie" @@ -42735,7 +43051,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "NR-031 Dispatch" -msgstr "" +msgstr "NR-031 派遣機" #. ~ Description for NR-031 Dispatch #: lang/json/MONSTER_from_json.py @@ -42746,10 +43062,12 @@ msgid "" "paint marks a low-force variant - *comparatively* low-force, anyways - " "typically deployed as guards after an area has been cleared." msgstr "" +"一部Northrop的派遣機,設計用於人群控制工作,攜帶並放出各種神風無人機,搭載的小型電磁脈衝發射器會在破壞時烤掉它們。明亮的綠與黃色塗裝顯示它是低武力的版本" +" - 總之是\"相對的\"低武力 - 它最常派遣於清理一個地區之後擔任的看守工作。" #: lang/json/MONSTER_from_json.py msgid "NR-V05-M Dispatch" -msgstr "" +msgstr "NR-V05-M 派遣機" #. ~ Description for NR-V05-M Dispatch #: lang/json/MONSTER_from_json.py @@ -42760,6 +43078,7 @@ msgid "" " the lethal and feared military variant, carrying extreme and deadly " "firepower." msgstr "" +"一部Northrop的派遣機,設計用於人群控制工作,攜帶並放出各種神風無人機,搭載的小型電磁脈衝發射器會在破壞時烤掉它們。暗綠色塗裝顯示它是致命且可怕的軍用版本,攜帶極度強力且非常致命的火力。" #: lang/json/MONSTER_from_json.py msgid "autonomous drone" @@ -45584,8 +45903,8 @@ msgstr "" msgid "guardin gnome" msgstr "" -#. ~ Description for garden gnome #. ~ Description for guardin gnome +#. ~ Description for garden gnome #: lang/json/MONSTER_from_json.py lang/json/furniture_from_json.py msgid "A normal and completely harmless garden gnome." msgstr "" @@ -46504,19 +46823,6 @@ msgid "" "converting it to use power off the plutonium cell instead." msgstr "這個鈽電池轉接器能夠連接使用一般電池的裝置。你可以把它連接到任何電池驅動的裝備, 把裝備轉換成使用鈽電池。" -#: lang/json/TOOLMOD_from_json.py -msgid "extra battery mod" -msgid_plural "extra battery mods" -msgstr[0] "電量強化模組" - -#. ~ Description for extra battery mod -#: lang/json/TOOLMOD_from_json.py -msgid "" -"This is a homemade battery compartment made with spare electronics. With " -"enough electronics skill, you could attach this to any electronic tool to " -"double the amount of batteries it can hold." -msgstr "是一個自製的電子組件用於增加電器的電池容量。有了足夠的電子技能, 你可以將它裝上任何的電器用品, 能讓該電器用品的電池容量加倍。" - #: lang/json/TOOLMOD_from_json.py msgid "UPS conversion mod" msgid_plural "UPS conversion mods" @@ -46558,6 +46864,42 @@ msgid "" "storage batteries in regular tools." msgstr "電池相容模組, 可以使一般工具能夠使用車載電池和小型儲電池。" +#: lang/json/TOOLMOD_from_json.py +msgid "light battery mod" +msgid_plural "light battery mods" +msgstr[0] "" + +#. ~ Description for light battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of light batteries in tools " +"that otherwise could not." +msgstr "" + +#: lang/json/TOOLMOD_from_json.py +msgid "medium battery mod" +msgid_plural "medium battery mods" +msgstr[0] "" + +#. ~ Description for medium battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of medium batteries in tools " +"that otherwise could not." +msgstr "" + +#: lang/json/TOOLMOD_from_json.py +msgid "heavy battery mod" +msgid_plural "heavy battery mods" +msgstr[0] "" + +#. ~ Description for heavy battery mod +#: lang/json/TOOLMOD_from_json.py +msgid "" +"A battery compartment mod that allows the use of heavy batteries in tools " +"that otherwise could not." +msgstr "" + #: lang/json/TOOLMOD_from_json.py msgid "cybernetic power port mod" msgid_plural "cybernetic power port mods" @@ -48648,6 +48990,30 @@ msgid "" "recipes." msgstr "這是一個極端沉重且形狀奇特的鋼塊, 其中一端有個鑿子形狀的突出物。能用於大部分的金屬加工配方。" +#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +msgid "water mill" +msgid_plural "water mills" +msgstr[0] "" + +#. ~ Description for water mill +#: lang/json/TOOL_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour. Can" +" be placed via the construction menu." +msgstr "" + +#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +msgid "wind mill" +msgid_plural "wind mills" +msgstr[0] "" + +#. ~ Description for wind mill +#: lang/json/TOOL_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour. Can " +"be placed via the construction menu." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "wood axe" msgid_plural "wood axes" @@ -51679,22 +52045,10 @@ msgstr[0] "燈條" #. ~ Description for lightstrip #: lang/json/TOOL_from_json.py msgid "" -"This is a light-emitting circuit wired directly to some batteries. It " -"provides some weak light and can't be turned off. When the batteries die, " -"you'll need to scrap it to recover the components that are reusable." -msgstr "這是塊直接將電池連接到某些發光電路上的組件。它已經被啟動了, 且無法關閉。當電池用完的話, 你可以拆了它來回收些零件。" - -#: lang/json/TOOL_from_json.py -msgid "lightstrip (unpowered)" -msgid_plural "lightstrips (unpowered)" -msgstr[0] "燈條 (沒有電)" - -#. ~ Description for lightstrip (unpowered) -#: lang/json/TOOL_from_json.py -msgid "" -"This is a unpowered lightstrip. You could connect it to batteries to get a " -"light-emitting circuit." -msgstr "一個沒有電的燈條。把它連接到電池上就能造出一個發光電路。" +"This is a light-emitting circuit that has been wired directly to a battery." +" It provides some weak light and can't be turned off until the battery " +"dies." +msgstr "" #: lang/json/TOOL_from_json.py msgid "lightstrip (inactive)" @@ -51709,11 +52063,9 @@ msgstr "你啟動了不可關閉的燈條。" #. ~ Description for lightstrip (inactive) #: lang/json/TOOL_from_json.py msgid "" -"This is a light-emitting circuit wired directly to some batteries. It will " -"provide some weak light once activated and can't be turned off. When the " -"batteries die, you'll need to scrap it to recover the components that are " -"reusable." -msgstr "這是個將電池直接接上的發光電路。一旦被開啟就會開始發出微光, 且無法關閉。當電池用完的話, 你可以拆了它來回收些零件。" +"This is a light-emitting circuit that can be wired directly to a battery. " +"It provides some weak light and can't be turned off until the battery dies." +msgstr "" #: lang/json/TOOL_from_json.py msgid "lobotomizer" @@ -52231,7 +52583,12 @@ msgid "" "of reactivity. Don't try to breathe it." msgstr "" -#. ~ Description for nitrogen tank +#: lang/json/TOOL_from_json.py +msgid "hydrogen tank" +msgid_plural "hydrogen tanks" +msgstr[0] "" + +#. ~ Description for hydrogen tank #: lang/json/TOOL_from_json.py msgid "" "This is a tank of compressed hydrogen gas. If you need to make water from " @@ -52851,6 +53208,11 @@ msgid "" msgstr "" "這是一個塑膠盒裝著各種針頭與一些纏繞縫線的塑膠線軸, 與其他一些有用的縫紉工具。在物品或衣物上使用能夠嘗試修理或是強化該物。取決於你的裁縫技能。" +#: lang/json/TOOL_from_json.py +msgid "anesthesia kit" +msgid_plural "anesthesia kits" +msgstr[0] "" + #: lang/json/TOOL_from_json.py msgid "shaving kit" msgid_plural "shaving kits" @@ -57462,6 +57824,10 @@ msgstr "" msgid "9x18mm" msgstr "9x18mm" +#: lang/json/ammunition_type_from_json.py +msgid ".380 ACP" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid ".38" msgstr ".38" @@ -58340,6 +58706,14 @@ msgstr "" msgid "Railgun" msgstr "軌道槍" +#. ~ Description for Railgun +#: lang/json/bionic_from_json.py +msgid "" +"EM field generators in your arms double the range and damage of thrown iron " +"and steel objects at a cost of 1 power per throw, causing them to leave a " +"trail of electricity that can cause additional damage." +msgstr "你手臂中的電磁力場產生器, 能夠把投擲出的鐵製或鋼製物品的距離及傷害加倍, 並留下一條會造成額外傷害的電子軌跡。每發消耗 1 單位能量。" + #: lang/json/bionic_from_json.py msgid "Fingertip Razors" msgstr "指尖刀刃" @@ -58614,7 +58988,7 @@ msgstr "" #: lang/json/bionic_from_json.py msgid "Soporific Induction" -msgstr "" +msgstr "助眠誘導" #. ~ Description for Soporific Induction #: lang/json/bionic_from_json.py @@ -59403,6 +59777,14 @@ msgstr "" msgid "Build River Dock/Shallow Bridge" msgstr "" +#: lang/json/construction_from_json.py +msgid "Place Water Mill" +msgstr "" + +#: lang/json/construction_from_json.py +msgid "Place Wind Mill" +msgstr "" + #: lang/json/construction_from_json.py msgid "Build Shallow Temporary Bridge" msgstr "" @@ -64402,6 +64784,40 @@ msgid "" "deconstructed and folded for easy transportation." msgstr "金屬屠宰架專門用來將待宰的屍體懸掛起來。它可以拆移和折疊, 以便於攜行。" +#. ~ Description for wind mill +#: lang/json/furniture_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "active wind mill" +msgstr "" + +#. ~ Description for active wind mill +#: lang/json/furniture_from_json.py +msgid "" +"A small wind-powered mill that can convert starchy products into flour. Its" +" brake has been removed and it is turning." +msgstr "" + +#. ~ Description for water mill +#: lang/json/furniture_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "active water mill" +msgstr "" + +#. ~ Description for active water mill +#: lang/json/furniture_from_json.py +msgid "" +"A small water-powered mill that can convert starchy products into flour. " +"Its brake has been removed and it is turning." +msgstr "" + #. ~ Description for tourist table #: lang/json/furniture_from_json.py msgid "Small metal folding table, ideal for off-road trips into the wild." @@ -65435,7 +65851,8 @@ msgid "" msgstr "一把可以藏在袖中的迷你手弩。由於尺寸的限制, 傷害並不高, 適合用於小型的狩獵遊戲。從這把弩射出的箭矢有一定的機率可以回收使用。" #: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py src/item.cpp +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "pistol" msgstr "手槍" @@ -65826,6 +66243,11 @@ msgid "base pistol" msgid_plural "base pistols" msgstr[0] "基本手槍" +#: lang/json/gun_from_json.py +msgid "backup pistol" +msgid_plural "backup pistols" +msgstr[0] "" + #: lang/json/gun_from_json.py src/item_factory.cpp msgid "revolver" msgid_plural "revolvers" @@ -66026,6 +66448,20 @@ msgstr[0] "S&W 22A 手槍" msgid "A popular .22 pistol." msgstr "一把流行的 .22 手槍。" +#: lang/json/gun_from_json.py +msgid "Jennings J-22" +msgid_plural "Jennings J-22s" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of the quintessential 'saturday night specials', the Jennings J-22 was " +"very affordably priced with its injection molded zinc slide and frame. " +"Intended to fill the void left after small pocket pistols were banned from " +"import, these were more commonly used by criminals unfazed by their glaring " +"safety issues." +msgstr "" + #: lang/json/gun_from_json.py msgid "Remington ACR" msgid_plural "Remington ACRs" @@ -66583,6 +67019,18 @@ msgid "" " but you might find this little gun still useful." msgstr "它是 20 世紀最有名的手槍之一。你不叫龐德, 但你可能會發現這個小手槍還是有用的。" +#: lang/json/gun_from_json.py +msgid "Kel-Tec P32" +msgid_plural "Kel-Tec P32s" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of Kel-tec's oldest designs, the P32 is a popular option for deep " +"concealment and backup usage. Despite its extreme light weight and small " +"size, its .32 ACP chambering makes for good handling and recoil control." +msgstr "" + #: lang/json/gun_from_json.py msgid "SIG P226" msgid_plural "SIG P226s" @@ -66665,6 +67113,59 @@ msgid "" " high-quality, durable materials." msgstr "一把受歡迎的 .38 口徑手槍。有著多種安全的設計以及由高品質、耐用的材質打造。" +#: lang/json/gun_from_json.py +msgid "MAC-11" +msgid_plural "MAC-11s" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"A lesser known variant of the MAC-10, this machine pistol is chambered in " +".380 ACP for a smaller overall size while remaining inherently subsonic. " +"Smaller in almost every dimension, this inexpensive automatic weapon was " +"declared 'fit only for combat in a phone booth' due to its low weight and " +"absurd fire rate ranging from 1200 to 1400 rounds per minute." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Kel-Tec P3AT" +msgid_plural "Kel-Tec P3ATs" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"Essentially a slightly scaled up Kel-tec P32 in .380 ACP, the ever popular " +"P3AT offers better ballistics in a small, concealable lightweight package. " +"Handling leaves something to be desired due to snappier recoil and " +"diminuitive controls." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "FN 1910 .380" +msgid_plural "FN 1910 .380s" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"Made infamous in Sarajevo in 1914, the FN1910 was a popular pocket pistol, " +"albeit in .32 ACP. Collectors value the .380 model for its notoriety and " +"more modern terminal performance. If such a humble firearm could start a " +"world war, could it perhaps protect you from the undead?" +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Ruger LCP" +msgid_plural "Ruger LCPs" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"One of the best selling modern day 'pocket pistol's, the LCP is an " +"affordable, polymer framed pistol chambered in .380 ACP. Despite the " +"round's relatively low power, the pistol's low weight and short sight radius" +" make for a moderately poor handling pistol." +msgstr "" + #: lang/json/gun_from_json.py msgid "Glock 22" msgid_plural "Glock 22" @@ -67675,6 +68176,19 @@ msgid "" "and military." msgstr "為所有射手而設計, 格洛克17主要是向執法人員以及軍隊銷售。" +#: lang/json/gun_from_json.py +msgid "Kel-Tec PF-9" +msgid_plural "Kel-Tec PF-9s" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"The Kel-Tec PF-9 remains one of the most popular backup pistols due to its " +"history of reliability, affordability, and concealability. Chambered in " +"9x19mm, recoil is best described as unpleasant, and follow up shots are " +"difficult to place quickly." +msgstr "" + #: lang/json/gun_from_json.py msgid "Makarov PM" msgid_plural "Makarov PMs" @@ -70040,6 +70554,50 @@ msgctxt "gun_type_type" msgid "crossbow" msgstr "十字弓" +#: lang/json/gunmod_from_json.py +msgid "belt clip" +msgid_plural "belt clips" +msgstr[0] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a belt clip that attaches to the grip or slide of a pistol so as to " +"facilitate 'Mexican carry', the practice of carrying without a holster. It " +"does not offer any protection for the trigger, so users are strongly advised" +" to carry with the chamber empty or select a firearm with a very heavy " +"trigger pull." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "rugerlcp" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kp32" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kp3at" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "kpf9" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "cop_38" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "moss_brownie" +msgstr "" + #: lang/json/gunmod_from_json.py msgid "shortened barrel" msgid_plural "shortened barrels" @@ -70653,6 +71211,18 @@ msgid "" "Increases the time needed to wield the weapon." msgstr "一個折疊式槍托, 體積較小, 但需要在使用前展開。增加裝備武器所需的時間。" +#: lang/json/gunmod_from_json.py +msgid "folding wire stock" +msgid_plural "folding wire stocks" +msgstr[0] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"A folding wire stock which folds up very compactly but needs unfolding " +"before use. It's somewhat wobbly but is better than nothing at all. " +"Increases the time needed to wield the weapon." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "pistol stock" msgid_plural "pistol stocks" @@ -73560,16 +74130,15 @@ msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"You can 'e'xamine the tile or attempt to pick-up items (default ',') to " -"access the controls, or use the vehicle control key (default '^')." +"You can 'e'xamine the tile to access the controls, or use the vehicle " +"control key (default '^')." msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"With a seat or saddle, you drive from here. You can 'e'xamine the tile or " -"attempt to pick-up items (default ',') to access the controls, or use the " -"vehicle control key (default '^')." +"With a seat or saddle, you drive from here. You can 'e'xamine the tile to " +"access the controls, or use the vehicle control key (default '^')." msgstr "" #. ~ Please leave anything in unchanged. @@ -74523,6 +75092,10 @@ msgstr "睡覺" msgid "Control Vehicle" msgstr "控制車輛" +#: lang/json/keybinding_from_json.py +msgid "Toggle Auto Travel Mode" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Toggle Safe Mode" msgstr "切換安全模式" @@ -74716,7 +75289,23 @@ msgid "Active World Mods" msgstr "啟用中的模組" #: lang/json/keybinding_from_json.py -msgid "Toggle move mode (run/walk/crouch)" +msgid "Cycle move mode (run/walk/crouch)" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Reset Movement to Walk" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Run" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Crouch" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Movement Mode Menu" msgstr "" #: lang/json/keybinding_from_json.py src/game_inventory.cpp @@ -82039,6 +82628,17 @@ msgid "" "easily." msgstr "你的聽力比一般人好, 能夠輕易聽見遠方的聲音。" +#: lang/json/mutation_from_json.py +msgid "Fey Hearing" +msgstr "" + +#. ~ Description for Fey Hearing +#: lang/json/mutation_from_json.py +msgid "" +"Your not sure the shape of your ears are helping, but regardless you have " +"become very sensitive to sounds." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Outdoorsman" msgstr "野人節奏" @@ -83905,6 +84505,17 @@ msgid "" "pleasant aroma, are visually striking, and are quite sensitive." msgstr "你的頭上長出了一朵花, 而且有著令人感到愉快的芳香, 色彩鮮艷, 並且非常敏感。" +#: lang/json/mutation_from_json.py +msgid "Rosebuds" +msgstr "" + +#. ~ Description for Rosebuds +#: lang/json/mutation_from_json.py +msgid "" +"The top of your head is blooming with rosebuds. They're eye catching, and " +"have a strong fragrance that makes you pleasant to be around." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Mycus Spores" msgstr "馬庫斯孢子" @@ -86315,6 +86926,17 @@ msgstr "您可以完全控制你的藤蔓, 也能依自己的意願來控制生 msgid "You detach a vine from your body." msgstr "" +#: lang/json/mutation_from_json.py +msgid "Hair Roots" +msgstr "" + +#. ~ Description for Hair Roots +#: lang/json/mutation_from_json.py +msgid "" +"Roots have started growing from your leaf like hair, they don't seem to do " +"much." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Toe Roots" msgstr "樹根腳趾" @@ -89100,10 +89722,18 @@ msgstr "加油站" msgid "pharmacy" msgstr "藥局" +#: lang/json/overmap_terrain_from_json.py +msgid "pharmacy roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "doctor's office" msgstr "診所" +#: lang/json/overmap_terrain_from_json.py +msgid "doctor's office roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "office" msgstr "辦公室" @@ -89210,6 +89840,10 @@ msgstr "" msgid "butcher shop" msgstr "肉店" +#: lang/json/overmap_terrain_from_json.py +msgid "butcher shop roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "bike shop" msgstr "自行車商店" @@ -89414,10 +90048,22 @@ msgstr "" msgid "internet cafe" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "internet cafe roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "car showroom" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "car showroom 2nd floor" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "car showroom roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "car dealership" msgstr "" @@ -89446,6 +90092,10 @@ msgstr "無線電站" msgid "gardening allotment" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "gardening allotment roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "animal pound" msgstr "動物拘留所" @@ -96462,7 +97112,7 @@ msgid "" msgstr "" #: lang/json/recipe_from_json.py -msgid "We need to add a console to control the radio tower." +msgid "We need to build a console to control the radio tower." msgstr "" #: lang/json/recipe_from_json.py @@ -98650,7 +99300,7 @@ msgstr "" msgid "" "Drugs are great for quick stat boosts, but be careful of addictions or " "overdose." -msgstr "" +msgstr "藥物適合用作快速能力強化,但小心上癮或服用過量。" #: lang/json/snippet_from_json.py msgid "" @@ -98675,7 +99325,7 @@ msgstr "睡醒後覺得怪怪的? 試試吃健康一點, 你的健康狀況能 #: lang/json/snippet_from_json.py msgid "" "Eat well or your health might suffer. Fast food is only good in a pinch." -msgstr "" +msgstr "吃得健康點,不然會損害你的健康,快餐只適合在危急的時候。" #: lang/json/snippet_from_json.py msgid "Nature can provide. You can live off the land if you learn how." @@ -98687,7 +99337,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Why walk when you can use a car? Or a tank?" -msgstr "" +msgstr "當你有一輛車,或者一輛坦克,為甚麼還要用走的?" #: lang/json/snippet_from_json.py msgid "Food from before the Cataclysm won't last forever. Keep that in mind." @@ -106065,6 +106715,78 @@ msgstr "" msgid "Can do." msgstr "" +#: lang/json/snippet_from_json.py +msgid "Whew... smells like skunk!" +msgstr "嗚… 聞起來像是臭鼬!" + +#: lang/json/snippet_from_json.py +msgid "Man, that smells like some good shit!" +msgstr "老兄, 那聞起來很棒!" + +#: lang/json/snippet_from_json.py +msgid "Hey, don't bogart the joint!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "C'mon, , I can smell it, pass it over." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Wow, that smell takes me back." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Ah, man. Good times, good times. Love that scent." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "What do I smell? Well, I guess it's legal now." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Mmm, that weed smells good." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Man, I can smell the weed, can I have some?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Are you sure it's a good idea to smoke that now?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I don't know... should you really be smoking that stuff?" +msgstr "我不知道… 你真的要抽那東西?" + +#: lang/json/snippet_from_json.py +msgid ", that's going to ruin your nose." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Man, that stinks. Put it out!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "You're going to kill yourself smoking that stuff, ." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Oh, wow, that smell... Can I have some?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Ew, smells like burning rubber!" +msgstr "噁, 聞起來像是燃燒的橡膠!" + +#: lang/json/snippet_from_json.py +msgid "Ugh, that smells rancid!" +msgstr "呃, 腐敗的臭味!" + +#: lang/json/snippet_from_json.py +msgid "" +msgstr "" + #: lang/json/snippet_from_json.py msgid "Tell me about how you survived the cataclysm." msgstr "" @@ -106967,6 +107689,10 @@ msgstr "在我把前主人開膛破肚的時候, 她叫得像一隻豬!" msgid "\"Hello?\"" msgstr "\"哈囉? \"" +#: lang/json/speech_from_json.py +msgid "\"Papaya!\"" +msgstr "" + #: lang/json/speech_from_json.py msgid "\"Who's there?\"" msgstr "\"是誰? \"" @@ -109482,8 +110208,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I'm my own person, but I'm willing to follow your lead. I can do a lot of things for you: I can fight, I can train you or you can train me, I can carry stuff, I can bandage your wounds, I can build faction camps, I can go places, I can guard things, I can even chit-chat with you or talk about my background. You can give me instructions in conversation or by radio or shout commands at me. \n" -"What do you want to know more about?" +"I'm my own person, but I'm willing to follow your lead. I can do a lot of things for you: I can fight, I can train you or you can train me, I can carry stuff, I can bandage your wounds, I can build faction camps, I can go places, I can guard things, I can even chit-chat with you or talk about my background. You can give me instructions in conversation or by radio or shout commands at me.\n" +" What do you want to know more about?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -109544,8 +110270,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If we're next to each other, you can just bump into me and we'll start talking, right? But if I'm farther away, you're going to have to shout a bit (use the 'C'hat command) for me to hear you. You'll need to see me for us to have a conversation. Or we can talk by radios if we both have them. \n" -"When we talk, you can give me instructions about how to fight or when to sleep or whatever. I'll mostly do them, and you can ask me what my current instructions are. Sometimes you'll give me two sets of instructions: a normal set, and an override for a specific situation. I'll tell you which instructions are overriden. You can set and clear overrides with shouted commands." +"If we're next to each other, you can just bump into me and we'll start talking, right? But if I'm farther away, you're going to have to shout a bit (use the 'C'hat command) for me to hear you. You'll need to see me for us to have a conversation. Or we can talk by radios if we both have them.\n" +" When we talk, you can give me instructions about how to fight or when to sleep or whatever. I'll mostly do them, and you can ask me what my current instructions are. Sometimes you'll give me two sets of instructions: a normal set, and an override for a specific situation. I'll tell you which instructions are overriden. You can set and clear overrides with shouted commands." msgstr "" #: lang/json/talk_topic_from_json.py @@ -109559,8 +110285,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Sometimes you need to give orders in a hurry. You can use the 'C'hat command to shout a single specific order. If I hear you, I'll do what you say, as will anyone else following you that hears it. \n" -"Some orders will override other instructions you've given me. If you change my instructions when I've got an override command, I'll tell you which ones are overridden. You can shout an order to clear any overrides." +"Sometimes you need to give orders in a hurry. You can use the 'C'hat command to shout a single specific order. If I hear you, I'll do what you say, as will anyone else following you that hears it.\n" +" Some orders will override other instructions you've given me. If you change my instructions when I've got an override command, I'll tell you which ones are overridden. You can shout an order to clear any overrides, or talk to me and tell me to clear them." msgstr "" #: lang/json/talk_topic_from_json.py @@ -109569,72 +110295,75 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"It's a dangerous world out there, right? So we fight to survive. I'm on your side, and I'll stick with you, but if I think the situation is too dangerous, I'll be honest, I'm going to run. If I see you running but I think it's safe, I'll stay and fight, but you can tell me run with you and I'll stick by you as best I can. \n" -"You can give me some instructions on when I should attack, but I'll make my own decisions about who - I'll try to defend myself and you, though, but if you tell me to stay in one place I'll stay there. \n" -"I'll use guns and grenades if I have them, but you can tell me to not use grenades or not use loud weapons or to not use ranged weapons at all. If I'm shooting, you can tell me how much to aim and whether to try to avoid shooting you or not. \n" -"I'll respect your rules for what types of weapons to use, but I'll choose what to use from my stuff. \n" -"You can also tell me to hold the line and fight at chokepoints, but I'm not great at recognizing them so I may go off to fight something elsewhere anyway." +"It's a dangerous world out there, right? So we fight to survive. I'm on your side, and I'll stick with you, but if I think the situation is too dangerous, I'll be honest, I'm going to run.\n" +" You can't tell me not to run, because I'm going to flee if things are bad, but you can tell me a safe place to retreat by using the zones manager (keybind 'Y'). I'll run toward the closest place you've designated - and you can set zones on vehicles, so if you've got a car, you could tell me to retreat there.\n" +" If I see you running but I think it's safe, I'll stay and fight, but you can tell me run with you and I'll stick by you as best I can.\n" +" You can give me some instructions on when I should attack, but I'll make my own decisions about who - I'll try to defend myself and you, but if you tell me to stay in one place I'll stay there.\n" +" I'll use guns and grenades if I have them, but you can tell me to not use grenades or not use loud weapons or to not use ranged weapons at all. If I'm shooting, you can tell me how much to aim and whether to try to avoid shooting you or not. I'm not so good at recognizing safe shots, so stay out of my line of fire no matter what.\n" +" I'll respect your rules for what types of weapons to use, but I'll choose what to use from my stuff.\n" +" You can also tell me to hold the line and fight at chokepoints, but I'm not great at recognizing them so I may go off to fight something elsewhere anyway." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If I'm better at a skill than you, I can help you improve. But it's boring to teach a lot, so I'm not going to do it very often. And I'm not going to do it when we're in danger or if I'm hungry or tired or if you're driving. \n" -"If we're someplace safe and you're reading a book that improves skills, I'll listen if I don't have that skill. You can even read me books for skills that you already have." +"If I'm better at a skill than you, I can help you improve. But it's boring to teach a lot, so I'm not going to do it very often. And I'm not going to do it when we're in danger or if I'm hungry or tired or if you're driving.\n" +" If we're someplace safe and you're reading a book that improves skills, I'll listen if I don't have that skill. You can even read me books for skills that you already have." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"You give me something to carry, I'll carry it. But I only have so many pockets and I'm only so strong, so I'll drop stuff that's too big to carry. \n" -"I'll also wear stuff - I'll decide what I want to wear, but you can take stuff from me. If I'm wearing something I shouldn't, you can bump into me and sort my armor to get me to take if off. \n" -"I don't like wearing a lot of gear, so if you give me a lot of bulky stuff and things that don't fit, I'm going to take them off and probably drop them. \n" -"Also, since we're friends, I'll give you anything I'm carrying, no questions asked. \n" -"Oh, yeah, if I'm hungry or thirsty and I'm carrying food, I'll eat it. So you might want to watch what you give me, y'know?" +"You give me something to carry, I'll carry it. But I only have so many pockets and I'm only so strong, so I'll drop stuff that's too big to carry.\n" +" I'll also wear stuff - I'll decide what I want to wear, but you can take stuff from me. If I'm wearing something I shouldn't, you can bump into me and sort my armor to get me to take if off.\n" +" I don't like wearing a lot of gear, so if you give me a lot of bulky stuff and things that don't fit, I'm going to take them off and probably drop them.\n" +" Also, since we're friends, I'll give you anything I'm carrying, no questions asked.\n" +" Oh, yeah, if I'm hungry or thirsty and I'm carrying food, I'll eat it. So you might want to watch what you give me, y'know?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If you call me by radio, you can tell me to come to you. If you've got some basecamps set up, you can tell me to go to one of them. I'll start walking, and when I get to where I'm going, I'll guard it. \n" -"Now depending on where I am and where I'm going, it may take me a while to get there. I'll dodge any dangers on the way, don't worry about that, but if you're way the heck away from me and tell me to come, it may be a while until I get to you." +"If you call me by radio, you can tell me to come to you. If you've got some basecamps set up, you can tell me to go to one of them. I'll start walking, and when I get to where I'm going, I'll guard it.\n" +" Now depending on where I am and where I'm going, it may take me a while to get there. I'll dodge any dangers on the way, don't worry about that, but if you're way the heck away from me and tell me to come, it may be a while until I get to you." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"You tell me to guard, I'll stay where I am and guard it - unless I'm in a vehicle, in which case I'll stick with the vehicle. \n" -"I'm not a potted plant, though, so if I hear something dangerous happening, I'm going to go see what it is instead of getting jumped in the dark. If you want me to stay put, tell me not to investigate noises - but if I get shot by some bandit because I can't see where he is and you don't want me to go looking, I won't be happy." +"You tell me to guard, I'll stay where I am and guard it - unless I'm in a vehicle, in which case I'll stick with the vehicle.\n" +" I'm not a potted plant, though, so if I hear something dangerous happening, I'm going to go see what it is instead of getting jumped in the dark. If you want me to stay put, tell me not to investigate noises - but if I get shot by some bandit because I can't see where he is and you don't want me to go looking, I won't be happy.\n" +" You can also use the zone manager (keybind 'Y') to set up no-investigate zone, so if there's some monsters behind a door that you know about, I can ignore them. You can also set on an investigate-only zone, and I won't investigate noises coming from outside the zone. The no-investigate zone takes precedence over the investigate-only, if there's a noise coming from some place in both zones. And if you've got an investigate-only zone set anywhere, even if it's far away, I won't investigate noises coming from outside of it, so be careful with those zones. Like I said, I don't want to get sniped by some bandit because you told me not to go looking for him - but I also don't want to go investigate something pounding at door only to find out it's some horrible monster you forgot to warn me about." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Just in case - how do I tell you to stay put?" +msgid "Just in case - how else can I tell you to stay put?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"We can chit-chat, if you want. People are social animals, right? A little light conversation can do wonders for your mood. But I don't want to be yapping all the time, so if we've chatted recently, I probably am not going to want to talk for a bit. \n" -"You can also ask me about my background. I may not want to talk about it, though." +"We can chit-chat, if you want. People are social animals, right? A little light conversation can do wonders for your mood. But I don't want to be yapping all the time, so if we've chatted recently, I probably am not going to want to talk for a bit.\n" +" You can also ask me about my background. I may not want to talk about it, though." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"You can give me a bunch of instructions. Talk to me about the miscellaneous rules, and I'll tell you what I'm doing and you can give a new instruction. Sometimes you'll have shouted a command that overrides your other instructions, and I'll tell you which instructions are overridden. \n" -"I'm not a chatterbox, but I'll tell you when I see or hear danger or if I'm hurt or hungry or something. You don't want me doing that, you just tell me. \n" -"Also, I'll pulp zombies if you'd like - I would prefer that. \n" -"If I hear something suspicious and can't see if, I'll go take a look, but you can tell me not to do that. \n" -" I'll open and close doors, or open them and leave them ajar, or not going through closed doors. You just tell me what you want. \n" -"I can pick stuff up if want me to, and you can tell me what to pick up. If I've got a bow or crossbow, please tell me to pick up the ammo - it's less fuss for both of us. \n" -"If you've got a vehicle, you can e'x'amine it and use the cre'w' command to assign me a seat. That saves arguments about who needs to sit where." +"You can give me a bunch of instructions. Talk to me about the miscellaneous rules, and I'll tell you what I'm doing and you can give a new instruction. Sometimes you'll have shouted a command that overrides your other instructions, and I'll tell you which instructions are overridden.\n" +" I'm not a chatterbox, but I'll tell you when I see or hear danger or if I'm hurt or hungry or something. You don't want me doing that, you just tell me.\n" +" Also, I'll pulp zombies if you'd like - I would prefer that.\n" +" If I hear something suspicious and can't see if, I'll go take a look, but you can tell me not to do that.\n" +" I'll open and close doors, or open them and leave them ajar, or not going through closed doors. You just tell me what you want.\n" +" I can pick stuff up if want me to, and you can tell me what to pick up. If I've got a bow or crossbow, please tell me to pick up the ammo - it's less fuss for both of us.\n" +" If you've got a vehicle, you can e'x'amine it and use the cre'w' command to assign me a seat. That saves arguments about who needs to sit where." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Here's the list of shouted commands I'll respond to: \n" -"Order me to guard, and I'll stay where I am and watch out for danger. I'll investigate suspicious noises unless you told me not to. \n" -"Order me to follow, and I'll stop guarding and go back to following you. \n" -"Order me to stay awake, and I'll stay awake until I'm too tired to keep my eyes open. \n" -"Order me to sleep when tired, and I'll nap when I get tired. I'll try to tell you when I'm off to bed unless you don't want to hear it. \n" -"Order me to flee, and I'll stick close to you when you run from danger. I won't go running off on my own - though if things really bad, I might be running away already! \n" -"Order me to stop running, and I'll evaluate the danger myself and might go off and fight something while you're doing other things. \n" -"Ordering me to prepare for danger is special: it's an override command. That means I'm going to follow certain instructions, even if you've given me other instructions earlier. Specifically, I'm going to flee with you, I'm not going to open or close doors, I'm not going to sleep until I'm exhausted, and I'm going to try to hold any chokepoints that you're fighting at. \n" -"Ordering me to relax from danger is another special command, and it will clear any overrides I currently have and I'll go back to whatever instructions I had before you told me to prepare for danger." +"Here's the list of shouted commands I'll respond to:\n" +" - Order me to guard, and I'll stay where I am and watch out for danger. I'll investigate suspicious noises unless you told me not to.\n" +" - Order me to follow, and I'll stop guarding and go back to following you.\n" +" - Order me to stay awake, and I'll stay awake until I'm too tired to keep my eyes open.\n" +" - Order me to sleep when tired, and I'll nap when I get tired. I'll try to tell you when I'm off to bed unless you don't want to hear it.\n" +" - Order me to flee, and I'll stick close to you when you run from danger. I won't go running off on my own - though if things really bad, I might be running away already!\n" +" - Order me to stop running, and I'll evaluate the danger myself and might go off and fight something while you're doing other things.\n" +" - Ordering me to prepare for danger is special: it's an override command. That means I'm going to follow certain instructions, even if you've given me other instructions earlier. Specifically, I'm going to flee with you, I'm not going to open or close doors, I'm not going to sleep until I'm exhausted, and I'm going to try to hold any chokepoints that you're fighting at.\n" +" - Ordering me to relax from danger is another special command, and it will clear any overrides I currently have and I'll go back to whatever instructions I had before you told me to prepare for danger." msgstr "" #: lang/json/talk_topic_from_json.py @@ -109824,7 +110553,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Why don't you go somewhere else?" -msgstr "" +msgstr "你為什麼不去別的地方?" #: lang/json/talk_topic_from_json.py msgid "Let's trade then." @@ -109898,6 +110627,10 @@ msgstr "醒醒!" msgid "Go back to sleep." msgstr "回去睡覺。" +#: lang/json/talk_topic_from_json.py +msgid "What is it, friend?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Combat commands..." msgstr "戰鬥指令…" @@ -109907,24 +110640,20 @@ msgid "Can you teach me anything?" msgstr "你可以教我些東西嗎?" #: lang/json/talk_topic_from_json.py -msgid "Let's trade items" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Guard this position" -msgstr "" +msgid "Guard this position." +msgstr "守護這個地點。" #: lang/json/talk_topic_from_json.py msgid "I'd like to know a bit more about you..." msgstr "我想更了解你一點…" #: lang/json/talk_topic_from_json.py -msgid "I want you to use this item" -msgstr "我想要你使用這個物品" +msgid "I want you to use this item." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hold on to this item" -msgstr "拿著這個物品" +msgid "Hold on to this item." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Miscellaneous rules..." @@ -110055,10 +110784,6 @@ msgstr "耶, 我很確定。掰。" msgid "Nah, I'm just kidding." msgstr "啊, 只是開玩笑而已。" -#: lang/json/talk_topic_from_json.py -msgid "*pshhhttt* I'm reading you boss, over." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Stay at your current position." msgstr "" @@ -110515,7 +111240,7 @@ msgstr "好, 我們走!" msgid "Yeah... I don't think so." msgstr "痾… 我不這麼覺得。" -#: lang/json/talk_topic_from_json.py src/npctalk.cpp +#: lang/json/talk_topic_from_json.py msgid "What is it?" msgstr "什麼事?" @@ -110695,6 +111420,28 @@ msgstr "好吧, 好, 再見。" msgid "Okay" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm willing to pay per batch for a total of " +"." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Works for me." +msgstr "為我工作。" + +#: lang/json/talk_topic_from_json.py +msgid "Maybe later." +msgstr "也許晚點吧。" + +#: lang/json/talk_topic_from_json.py +msgid "Pleasure doing business!" +msgstr "開張大吉!" + +#: lang/json/talk_topic_from_json.py +msgid "You might be seeing more of me..." +msgstr "你可能會看到越來越多的我…" + #: lang/json/talk_topic_from_json.py msgid "Hey again. *kzzz*" msgstr "" @@ -111543,10 +112290,6 @@ msgstr "" msgid "Yes, set up the bulletin board and then go back to normal duties." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Hope you're here to trade." -msgstr "希望你來這是要交易的。" - #: lang/json/talk_topic_from_json.py msgid "" "I oversee the food stocks for the center. There was significant looting " @@ -111594,6 +112337,14 @@ msgstr "事實上, 我接受許多不同的食物: 啤酒、糖、麵粉、煙 msgid "Interesting..." msgstr "有意思…" +#: lang/json/talk_topic_from_json.py +msgid "Hope you're here to trade." +msgstr "希望你來這是要交易的。" + +#: lang/json/talk_topic_from_json.py +msgid "Who are you?" +msgstr "你是誰?" + #: lang/json/talk_topic_from_json.py msgid "Mind if we just chat for a bit?" msgstr "" @@ -111820,10 +112571,6 @@ msgstr "法警…" msgid "Citizen..." msgstr "公民…" -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Who are you?" -msgstr "你是誰?" - #: lang/json/talk_topic_from_json.py msgid "Is there any way I can join the 'Old Guard'?" msgstr "有辦法讓我加入 \"舊日守衛\" 嗎?" @@ -111937,33 +112684,33 @@ msgstr "你必須透過招募人才能夠真正加入。我們通常歡迎各種 msgid "" "Please, help me. I need food. Aren't you their sheriff? Can't you help " "me?" -msgstr "" +msgstr "請幫幫我,我需要食物。你不是他們的警長嗎?難道你不能幫我嗎?" #: lang/json/talk_topic_from_json.py msgid "Please, help me. I need food." -msgstr "" +msgstr "請幫幫我,我需要食物。" #: lang/json/talk_topic_from_json.py msgid "Get away from me." -msgstr "" +msgstr "離我遠一點!" #: lang/json/talk_topic_from_json.py msgid "" "They won't let me in. They say they're too full. I'm allowed to camp out " "here as long as I keep it clean and don't make a fuss, but I'm so hungry." -msgstr "" +msgstr "他們說他們人太多了,不能讓我加入。我被允許在這邊紮營只要我能保持乾淨跟不搞事,不過我好餓阿。" #: lang/json/talk_topic_from_json.py msgid "Why don't you scavenge your own food?" -msgstr "" +msgstr "你為什麼不自己去找食物?" #: lang/json/talk_topic_from_json.py msgid "What did you do before the cataclysm?" -msgstr "" +msgstr "你在大災變前是做什麼的?" #: lang/json/talk_topic_from_json.py msgid "I'm sorry, I can't help you." -msgstr "" +msgstr "很抱歉,我不能幫你。" #: lang/json/talk_topic_from_json.py msgid "" @@ -112034,7 +112781,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Building a house?" -msgstr "" +msgstr "蓋一間房子?" #: lang/json/talk_topic_from_json.py src/handle_action.cpp msgid "No." @@ -112082,11 +112829,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Why do you ask?" -msgstr "" +msgstr "你為什麼問?" #: lang/json/talk_topic_from_json.py msgid "Sorry, not interested." -msgstr "" +msgstr "抱歉,沒興趣。" #: lang/json/talk_topic_from_json.py msgid "" @@ -112333,10 +113080,6 @@ msgstr "" msgid "[$12000, 7d] 100 logs" msgstr "" -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Maybe later." -msgstr "也許晚點吧。" - #: lang/json/talk_topic_from_json.py msgid "I'll be back later." msgstr "我晚點會回來。" @@ -121694,6 +122437,10 @@ msgstr "精密切割" msgid "glare protection" msgstr "眩光防護" +#: lang/json/tool_quality_from_json.py +msgid "anesthesia" +msgstr "" + #: lang/json/tool_quality_from_json.py msgid "smoothing" msgstr "整平" @@ -122825,10 +123572,6 @@ msgstr "" msgid "wooden aisle" msgstr "木製走道" -#: lang/json/vehicle_part_from_json.py -msgid "floor trunk" -msgstr "地板行李箱" - #. ~ Description for floor trunk #: lang/json/vehicle_part_from_json.py msgid "An aisle. A hatch lets you access a cargo space beneath it." @@ -123504,8 +124247,8 @@ msgstr "小型電動馬達。安裝在與門或窗簾相同的框架上, 可以 msgid "" "A sophisticated set of electronic controls that allow you to control the " "vehicle from a vehicle remote while you are not in it. You can 'e'xamine " -"the tile or attempt to pick-up items (default ',') to access the controls, " -"or use the vehicle control key (default '^')." +"the tile to access the controls, or use the vehicle control key (default " +"'^')." msgstr "" #: lang/json/vehicle_part_from_json.py @@ -123517,8 +124260,8 @@ msgstr "攝影控制系統" msgid "" "An LCD display attached to one or more cameras. When turned on, it lets you" " see from the cameras, but drains power from the vehicle's batteries. You " -"can 'e'xamine the tile or attempt to pick-up items (default ',') to access " -"the controls, or use the vehicle control key (default '^')." +"can 'e'xamine the tile to access the controls, or use the vehicle control " +"key (default '^')." msgstr "" #. ~ Description for security camera @@ -123828,7 +124571,7 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "" "A combustion engine. Burns diesel fuel from a tank in the vehicle. Can " -"also burn methanol, ethanol, or lamp oil, though somewhat less efficiently." +"also burn biodiesel or lamp oil, though somewhat less efficiently." msgstr "" #: lang/json/vehicle_part_from_json.py @@ -130356,6 +131099,34 @@ msgstr "關閉 NPC 自動撿取" msgid "Friendly NPCs don't pickup items inside the zone." msgstr "友善的 NPC 不會撿取這個區域裡的物品。" +#: src/clzones.cpp +msgid "NPC Retreat" +msgstr "" + +#: src/clzones.cpp +msgid "" +"When fleeing, friendly NPCs will attempt to retreat toward this zone if it " +"is within 60 tiles." +msgstr "" + +#: src/clzones.cpp +msgid "NPC Ignore Sounds" +msgstr "" + +#: src/clzones.cpp +msgid "Friendly NPCs won't investigate unseen sounds coming from this zone." +msgstr "" + +#: src/clzones.cpp +msgid "NPC Investigation Area" +msgstr "" + +#: src/clzones.cpp +msgid "" +"Friendly NPCs will investigate unseen sounds only if they come from inside " +"this area." +msgstr "" + #: src/clzones.cpp msgid "Loot: Unsorted" msgstr "物資: 未整理" @@ -132616,11 +133387,6 @@ msgctxt "in progress craft" msgid " starts working on the %s." msgstr "" -#: src/crafting.cpp -#, c-format -msgid "%s helps with crafting..." -msgstr "%s 幫助了你的製作…" - #: src/crafting.cpp #, c-format msgid "%s assists with crafting..." @@ -132636,6 +133402,11 @@ msgstr "%s 可以在批量製作時協助你…" msgid "%s watches you craft..." msgstr "%s 看著你製作…" +#: src/crafting.cpp +#, c-format +msgid "%s helps with crafting..." +msgstr "%s 幫助了你的製作…" + #: src/crafting.cpp #, c-format msgid "You fail to make the %s, and waste some materials." @@ -132661,6 +133432,17 @@ msgstr "你參考書籍製作了 %s。" msgid "You memorized the recipe for %s!" msgstr "你記住了 %s 的配方!" +#: src/crafting.cpp +#, c-format +msgid "You don't know the recipe for the %s and can't continue crafting." +msgstr "" + +#: src/crafting.cpp +#, c-format +msgid "" +" doesn't know the recipe for the %s and can't continue crafting." +msgstr "" + #: src/crafting.cpp #, c-format msgid "%s (%d/%d nearby)" @@ -133235,6 +134017,190 @@ msgid "" "message to the clipboard." msgstr "按 C (或 c) 將此訊息複製到剪貼板。" +#: src/debug_menu.cpp +msgid "Mutate" +msgstr "突變" + +#: src/debug_menu.cpp +msgid "Change all skills" +msgstr "改變所有技能" + +#: src/debug_menu.cpp +msgid "Learn all melee styles" +msgstr "學習所有近戰招式" + +#: src/debug_menu.cpp +msgid "Unlock all recipes" +msgstr "解鎖所有配方" + +#: src/debug_menu.cpp +msgid "Edit player/NPC" +msgstr "編輯玩家/NPC" + +#: src/debug_menu.cpp +msgid "Damage self" +msgstr "" + +#: src/debug_menu.cpp +msgid "Set automove route" +msgstr "設置自動移動路徑" + +#: src/debug_menu.cpp +msgid "Player..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Check game state" +msgstr "" + +#: src/debug_menu.cpp +msgid "Display hordes" +msgstr "顯示屍潮" + +#: src/debug_menu.cpp +msgid "Test item group" +msgstr "" + +#: src/debug_menu.cpp +msgid "Show sound clustering" +msgstr "" + +#: src/debug_menu.cpp +msgid "Display weather" +msgstr "顯示天氣" + +#: src/debug_menu.cpp +msgid "Display overmap scents" +msgstr "顯示氣味大地圖" + +#: src/debug_menu.cpp +msgid "Show mutation category levels" +msgstr "顯示突變分類等級" + +#: src/debug_menu.cpp +msgid "Draw benchmark (X seconds)" +msgstr "" + +#: src/debug_menu.cpp +msgid "Test trait group" +msgstr "測試特質群組" + +#: src/debug_menu.cpp +msgid "Show debug message" +msgstr "顯示除錯消息" + +#: src/debug_menu.cpp +msgid "Crash game (test crash handling)" +msgstr "崩潰遊戲(測試崩潰處理)" + +#: src/debug_menu.cpp +msgid "Toggle NPC pathfinding on map" +msgstr "" + +#: src/debug_menu.cpp +msgid "Info..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - short range" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - long range" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport - adjacent overmap" +msgstr "" + +#: src/debug_menu.cpp +msgid "Teleport..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn an item" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn NPC" +msgstr "產生NPC" + +#: src/debug_menu.cpp +msgid "Spawn monster" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn a vehicle" +msgstr "產生車輛" + +#: src/debug_menu.cpp +msgid "Spawn artifact" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawn clairvoyance artifact" +msgstr "" + +#: src/debug_menu.cpp +msgid "Spawning..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Reveal map" +msgstr "顯示地圖" + +#: src/debug_menu.cpp +msgid "Kill NPCs" +msgstr "殺掉NPC" + +#: src/debug_menu.cpp +msgid "Map editor" +msgstr "地圖編輯器" + +#: src/debug_menu.cpp +msgid "Change weather" +msgstr "改變天氣" + +#: src/debug_menu.cpp +msgid "Change wind direction" +msgstr "" + +#: src/debug_menu.cpp +msgid "Change wind speed" +msgstr "" + +#: src/debug_menu.cpp +msgid "Kill all monsters" +msgstr "殺死全部怪物" + +#: src/debug_menu.cpp +msgid "Change time" +msgstr "改變時間" + +#: src/debug_menu.cpp +msgid "Overmap editor" +msgstr "大地圖編輯器" + +#: src/debug_menu.cpp +msgid "Spawn map extra" +msgstr "" + +#: src/debug_menu.cpp +msgid "Map..." +msgstr "" + +#: src/debug_menu.cpp +msgid "Quit to main menu" +msgstr "" + +#: src/debug_menu.cpp +msgid "" +"Debug Functions - Using these will cheat not only the game, but yourself.\n" +"You won't grow. You won't improve.\n" +"Taking this shortcut will gain you nothing. Your victory will be hollow.\n" +"Nothing will be risked and nothing will be gained." +msgstr "" + #: src/debug_menu.cpp #, c-format msgid "You teleport to point (%d,%d,%d)." @@ -133677,6 +134643,201 @@ msgstr "刪除任務 (缺乏適當的清理)" msgid "Drew %d times in %.3f seconds. (%.3f fps average)" msgstr "繪製 %d 次於 %.3f 秒內。(平均幀率 %.3f)" +#: src/debug_menu.cpp +msgid "Current overmap revealed." +msgstr "顯示目前地圖" + +#: src/debug_menu.cpp +#, c-format +msgid "Location %d:%d in %d:%d, %s\n" +msgstr "位置 %d:%d 在 %d:%d, %s\n" + +#: src/debug_menu.cpp +#, c-format +msgid "" +"Current turn: %d.\n" +"%s\n" +msgstr "" +"當前回合: %d。\n" +"%s\n" + +#: src/debug_menu.cpp +#, c-format +msgid "%d creature exists.\n" +msgid_plural "%d creatures exist.\n" +msgstr[0] "尚存 %d 個生物。\n" + +#: src/debug_menu.cpp +msgid "NPCs are going to spawn." +msgstr "NPC 將會產生。" + +#: src/debug_menu.cpp +msgid "NPCs are NOT going to spawn." +msgstr "NPC 將不會產生。" + +#: src/debug_menu.cpp +#, c-format +msgid "%s: map ( %d:%d ) pos ( %d:%d )" +msgstr "%s: 地圖 (%d:%d) 位置 (%d:%d)" + +#: src/debug_menu.cpp +#, c-format +msgid "(you: %d:%d)" +msgstr "(你: %d:%d)" + +#: src/debug_menu.cpp +#, c-format +msgid "Stomach Contents: %d ml / %d ml kCal: %d, Water: %d ml" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "" +"Guts Contents: %d ml / %d ml kCal: %d, Water: %d ml\n" +"Hunger: %d, Thirst: %d, kCal: %d / %d" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "%s's head implodes!" +msgstr "%s 的頭部發生內爆!" + +#: src/debug_menu.cpp +msgid "Choose vehicle to spawn" +msgstr "選擇要產生的車輛" + +#. ~ Menu entry in vehicle wish menu: 1st string: displayed name, 2nd string: +#. internal name of vehicle +#: src/debug_menu.cpp +#, c-format +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + +#: src/debug_menu.cpp +msgid "Martial arts debug." +msgstr "武術除錯。" + +#: src/debug_menu.cpp +msgid "Your eyes blink rapidly as knowledge floods your brain." +msgstr "大量知識湧進你的腦袋, 你的雙眼快速閃動。" + +#: src/debug_menu.cpp +msgid "You now know a lot more than just 10 styles of kung fu." +msgstr "你現在通曉十種以上的功夫。" + +#: src/debug_menu.cpp +msgid "Recipe debug." +msgstr "配方除錯。" + +#: src/debug_menu.cpp +msgid "You know how to craft that now." +msgstr "你知道如何製作這個物品了。" + +#: src/debug_menu.cpp +msgid "Select new weather pattern:" +msgstr "選擇新的天氣模式:" + +#: src/debug_menu.cpp +msgid "Disable weather forcing" +msgstr "取消鎖定天氣模式" + +#: src/debug_menu.cpp +msgid "Keep normal weather patterns" +msgstr "維持正常天氣模式" + +#: src/debug_menu.cpp +msgid "Select new wind direction:" +msgstr "" + +#: src/debug_menu.cpp +msgid "Disable direction forcing" +msgstr "" + +#: src/debug_menu.cpp +msgid "Keep normal wind direction" +msgstr "" + +#: src/debug_menu.cpp +msgid "Select new wind speed:" +msgstr "" + +#: src/debug_menu.cpp +msgid "Disable speed forcing" +msgstr "" + +#: src/debug_menu.cpp +msgid "Keep normal wind speed" +msgstr "" + +#: src/debug_menu.cpp +#, c-format +msgid "Damage self for how much? hp: %d" +msgstr "對自己造成多少傷害? hp: %d" + +#: src/debug_menu.cpp +msgid "This binary was not compiled with tiles support." +msgstr "這個執行檔並沒有編譯成支援圖像。" + +#: src/debug_menu.cpp +msgid "year" +msgstr "年份" + +#: src/debug_menu.cpp +msgid "season" +msgstr "季節" + +#: src/debug_menu.cpp +msgid "day" +msgstr "天" + +#: src/debug_menu.cpp +msgid "hour" +msgstr "小時" + +#: src/debug_menu.cpp +msgid "minute" +msgstr "分鐘" + +#: src/debug_menu.cpp src/martialarts.cpp src/martialarts.cpp +msgid "turn" +msgid_plural "turns" +msgstr[0] "回合" + +#: src/debug_menu.cpp +msgid "Set year to?" +msgstr "設定年份為?" + +#: src/debug_menu.cpp +msgid "Set season to? (0 = spring)" +msgstr "設定季節為? (0 = 春天)" + +#: src/debug_menu.cpp +msgid "Set days to?" +msgstr "設定日子為?" + +#: src/debug_menu.cpp +msgid "Set hour to?" +msgstr "設定小時為?" + +#: src/debug_menu.cpp +msgid "Set minute to?" +msgstr "設定分鐘為?" + +#: src/debug_menu.cpp +#, c-format +msgid "Set turn to? (One day is %i turns)" +msgstr "設定回合為? (一日是 %i 回合)" + +#: src/debug_menu.cpp +msgid "Enter benchmark length (in milliseconds):" +msgstr "" + +#: src/debug_menu.cpp +msgid "" +"Quit without saving? This may cause issues such as duplicated or missing " +"items and vehicles!" +msgstr "不存檔直接退出? 這可能會導致各種問題, 例如重複或缺少物品和車輛!" + #: src/defense.cpp #, c-format msgid "Please wait as the map generates [ 0%% ]" @@ -135218,6 +136379,10 @@ msgstr "跟隨" msgid "Leading" msgstr "帶領" +#: src/faction.cpp +msgid "Patrolling" +msgstr "" + #: src/faction.cpp msgid "Guarding" msgstr "" @@ -136151,6 +137316,10 @@ msgstr "" msgid "Select an end point." msgstr "" +#: src/faction_camp.cpp +msgid "Spiked pits must be built over existing trenches!" +msgstr "" + #: src/faction_camp.cpp msgid "Invalid terrain in construction path." msgstr "" @@ -136657,14 +137826,6 @@ msgstr "" msgid "You distribute %d kcal worth of food to your companions." msgstr "" -#: src/faction_camp.cpp -msgid "Accessed camp inventory whilst position does not refer to a camp" -msgstr "" - -#: src/faction_camp.cpp -msgid "consume components for camp mission, but no camp found" -msgstr "" - #: src/faction_camp.cpp #, c-format msgid "While %s, a silent specter approaches %s..." @@ -137122,26 +138283,6 @@ msgstr "殺菌濃霧" msgid "smoke vent" msgstr "排煙口" -#: src/field.cpp -msgid "Whew... smells like skunk!" -msgstr "嗚… 聞起來像是臭鼬!" - -#: src/field.cpp -msgid "Man, that smells like some good shit!" -msgstr "老兄, 那聞起來很棒!" - -#: src/field.cpp -msgid "I don't know... should you really be smoking that stuff?" -msgstr "我不知道… 你真的要抽那東西?" - -#: src/field.cpp -msgid "Ew, smells like burning rubber!" -msgstr "噁, 聞起來像是燃燒的橡膠!" - -#: src/field.cpp -msgid "Ugh, that smells rancid!" -msgstr "呃, 腐敗的臭味!" - #: src/field.cpp #, c-format msgid "A %s hits you!" @@ -137693,364 +138834,6 @@ msgstr "使用者介面資料" msgid "Failed to save game data" msgstr "無法儲存遊戲數據" -#: src/game.cpp -msgid "" -"Debug Functions - Using these will cheat not only the game, but yourself. You won't grow. You won't improve.\n" -"Taking this shortcut will gain you nothing. Your victory will be hollow.\n" -"Nothing will be risked and nothing will be gained." -msgstr "" - -#: src/game.cpp -msgid "Wish for an item" -msgstr "想要的物品" - -#: src/game.cpp -msgid "Teleport - Short Range" -msgstr "傳送 - 短距" - -#: src/game.cpp -msgid "Teleport - Long Range" -msgstr "傳送 - 長距" - -#: src/game.cpp -msgid "Reveal map" -msgstr "顯示地圖" - -#: src/game.cpp -msgid "Spawn NPC" -msgstr "產生NPC" - -#: src/game.cpp -msgid "Spawn Monster" -msgstr "產生怪物" - -#: src/game.cpp -msgid "Check game state..." -msgstr "檢查遊戲狀態" - -#: src/game.cpp -msgid "Kill NPCs" -msgstr "殺掉NPC" - -#: src/game.cpp -msgid "Mutate" -msgstr "突變" - -#: src/game.cpp -msgid "Spawn a vehicle" -msgstr "產生車輛" - -#: src/game.cpp -msgid "Change all skills" -msgstr "改變所有技能" - -#: src/game.cpp -msgid "Learn all melee styles" -msgstr "學習所有近戰招式" - -#: src/game.cpp -msgid "Unlock all recipes" -msgstr "解鎖所有配方" - -#: src/game.cpp -msgid "Edit player/NPC" -msgstr "編輯玩家/NPC" - -#: src/game.cpp -msgid "Spawn Artifact" -msgstr "產生神器" - -#: src/game.cpp -msgid "Spawn Clairvoyance Artifact" -msgstr "產生千里眼神器" - -#: src/game.cpp -msgid "Map editor" -msgstr "地圖編輯器" - -#: src/game.cpp -msgid "Change weather" -msgstr "改變天氣" - -#: src/game.cpp -msgid "Change wind direction" -msgstr "" - -#: src/game.cpp -msgid "Change wind speed" -msgstr "" - -#: src/game.cpp -msgid "Kill all monsters" -msgstr "殺死全部怪物" - -#: src/game.cpp -msgid "Display hordes" -msgstr "顯示屍潮" - -#: src/game.cpp -msgid "Test Item Group" -msgstr "測試物品組" - -#: src/game.cpp -msgid "Damage Self" -msgstr "自殘" - -#: src/game.cpp -msgid "Show Sound Clustering" -msgstr "顯示聲音聚集" - -#: src/game.cpp -msgid "Display weather" -msgstr "顯示天氣" - -#: src/game.cpp -msgid "Display overmap scents" -msgstr "顯示氣味大地圖" - -#: src/game.cpp -msgid "Change time" -msgstr "改變時間" - -#: src/game.cpp -msgid "Set automove route" -msgstr "設置自動移動路徑" - -#: src/game.cpp -msgid "Show mutation category levels" -msgstr "顯示突變分類等級" - -#: src/game.cpp -msgid "Overmap editor" -msgstr "大地圖編輯器" - -#: src/game.cpp -msgid "Draw benchmark (X seconds)" -msgstr "" - -#: src/game.cpp -msgid "Teleport - Adjacent overmap" -msgstr "傳送 - 鄰近的大地圖" - -#: src/game.cpp -msgid "Test trait group" -msgstr "測試特質群組" - -#: src/game.cpp -msgid "Show debug message" -msgstr "顯示除錯消息" - -#: src/game.cpp -msgid "Crash game (test crash handling)" -msgstr "崩潰遊戲(測試崩潰處理)" - -#: src/game.cpp -msgid "Spawn Map Extra" -msgstr "" - -#: src/game.cpp -msgid "Toggle NPC pathfinding on map" -msgstr "" - -#: src/game.cpp -msgid "Quit to Main Menu" -msgstr "回到主選單" - -#: src/game.cpp -msgid "Current overmap revealed." -msgstr "顯示目前地圖" - -#: src/game.cpp -#, c-format -msgid "Location %d:%d in %d:%d, %s\n" -msgstr "位置 %d:%d 在 %d:%d, %s\n" - -#: src/game.cpp -#, c-format -msgid "" -"Current turn: %d.\n" -"%s\n" -msgstr "" -"當前回合: %d。\n" -"%s\n" - -#: src/game.cpp -#, c-format -msgid "%d creature exists.\n" -msgid_plural "%d creatures exist.\n" -msgstr[0] "尚存 %d 個生物。\n" - -#: src/game.cpp -msgid "NPCs are going to spawn." -msgstr "NPC 將會產生。" - -#: src/game.cpp -msgid "NPCs are NOT going to spawn." -msgstr "NPC 將不會產生。" - -#: src/game.cpp -#, c-format -msgid "%s: map ( %d:%d ) pos ( %d:%d )" -msgstr "%s: 地圖 (%d:%d) 位置 (%d:%d)" - -#: src/game.cpp -#, c-format -msgid "(you: %d:%d)" -msgstr "(你: %d:%d)" - -#: src/game.cpp -#, c-format -msgid "Stomach Contents: %d ml / %d ml kCal: %d, Water: %d ml" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "" -"Guts Contents: %d ml / %d ml kCal: %d, Water: %d ml\n" -"Hunger: %d, Thirst: %d, kCal: %d / %d" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "%s's head implodes!" -msgstr "%s 的頭部發生內爆!" - -#: src/game.cpp -msgid "Choose vehicle to spawn" -msgstr "選擇要產生的車輛" - -#. ~ Menu entry in vehicle wish menu: 1st string: displayed name, 2nd string: -#. internal name of vehicle -#: src/game.cpp -#, c-format -msgid "%1$s (%2$s)" -msgstr "%1$s (%2$s)" - -#: src/game.cpp -msgid "Martial arts debug." -msgstr "武術除錯。" - -#: src/game.cpp -msgid "Your eyes blink rapidly as knowledge floods your brain." -msgstr "大量知識湧進你的腦袋, 你的雙眼快速閃動。" - -#: src/game.cpp -msgid "You now know a lot more than just 10 styles of kung fu." -msgstr "你現在通曉十種以上的功夫。" - -#: src/game.cpp -msgid "Recipe debug." -msgstr "配方除錯。" - -#: src/game.cpp -msgid "You know how to craft that now." -msgstr "你知道如何製作這個物品了。" - -#: src/game.cpp -msgid "Select new weather pattern:" -msgstr "選擇新的天氣模式:" - -#: src/game.cpp -msgid "Disable weather forcing" -msgstr "取消鎖定天氣模式" - -#: src/game.cpp -msgid "Keep normal weather patterns" -msgstr "維持正常天氣模式" - -#: src/game.cpp -msgid "Select new wind direction:" -msgstr "" - -#: src/game.cpp -msgid "Disable direction forcing" -msgstr "" - -#: src/game.cpp -msgid "Keep normal wind direction" -msgstr "" - -#: src/game.cpp -msgid "Select new wind speed:" -msgstr "" - -#: src/game.cpp -msgid "Disable speed forcing" -msgstr "" - -#: src/game.cpp -msgid "Keep normal wind speed" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "Damage self for how much? hp: %d" -msgstr "對自己造成多少傷害? hp: %d" - -#: src/game.cpp -msgid "This binary was not compiled with tiles support." -msgstr "這個執行檔並沒有編譯成支援圖像。" - -#: src/game.cpp -msgid "year" -msgstr "年份" - -#: src/game.cpp -msgid "season" -msgstr "季節" - -#: src/game.cpp -msgid "day" -msgstr "天" - -#: src/game.cpp -msgid "hour" -msgstr "小時" - -#: src/game.cpp -msgid "minute" -msgstr "分鐘" - -#: src/game.cpp src/martialarts.cpp src/martialarts.cpp -msgid "turn" -msgid_plural "turns" -msgstr[0] "回合" - -#: src/game.cpp -msgid "Set year to?" -msgstr "設定年份為?" - -#: src/game.cpp -msgid "Set season to? (0 = spring)" -msgstr "設定季節為? (0 = 春天)" - -#: src/game.cpp -msgid "Set days to?" -msgstr "設定日子為?" - -#: src/game.cpp -msgid "Set hour to?" -msgstr "設定小時為?" - -#: src/game.cpp -msgid "Set minute to?" -msgstr "設定分鐘為?" - -#: src/game.cpp -#, c-format -msgid "Set turn to? (One day is %i turns)" -msgstr "設定回合為? (一日是 %i 回合)" - -#: src/game.cpp -msgid "Enter benchmark length (in milliseconds):" -msgstr "" - -#: src/game.cpp -msgid "" -"Quit without saving? This may cause issues such as duplicated or missing " -"items and vehicles!" -msgstr "不存檔直接退出? 這可能會導致各種問題, 例如重複或缺少物品和車輛!" - #: src/game.cpp msgid "You haven't killed any monsters yet!" msgstr "沒有怪物死在你手上!" @@ -138585,14 +139368,6 @@ msgstr "" msgid "Without extra fuel it will burn for %s." msgstr "" -#: src/game.cpp -msgid "You can't do that while driving." -msgstr "你無法在駕駛時那麼做。" - -#: src/game.cpp -msgid "You can't do that on a moving vehicle." -msgstr "你無法在移動中的車輛上那麼做。" - #: src/game.cpp #, c-format msgid "The %s is too unstable to remove anything." @@ -140943,6 +141718,22 @@ msgstr "%s 自 %s (%d)" msgid "Draw what?" msgstr "抽出什麼?" +#: src/handle_action.cpp +msgid "Change to which movement mode?" +msgstr "" + +#: src/handle_action.cpp +msgid "Walk" +msgstr "" + +#: src/handle_action.cpp +msgid "Run" +msgstr "" + +#: src/handle_action.cpp +msgid "Crouch" +msgstr "" + #: src/handle_action.cpp msgid "Auto-move canceled" msgstr "自動移動取消" @@ -141030,6 +141821,14 @@ msgstr "新的預設熱鍵是 ^。" msgid "You can't operate a vehicle while you're in your shell." msgstr "你在殼中的時候不能控制車輛。" +#: src/handle_action.cpp +msgid "Auto travel mode OFF!" +msgstr "" + +#: src/handle_action.cpp +msgid "Auto travel mode ON!" +msgstr "" + #: src/handle_action.cpp msgid "Safe mode ON!" msgstr "安全模式啟動!" @@ -141590,29 +142389,33 @@ msgid "You harvest and drop: poppy bud" msgstr "" #: src/iexamine.cpp -msgid "If only you had a shovel to dig up those roots..." -msgstr "你得要有把鏟子才能挖起這些根…" +msgid "The cactus' nettles sting you!" +msgstr "" #: src/iexamine.cpp -msgid "You harvest: dahlia root" +#, c-format +msgid "You harvest: %s." msgstr "" #: src/iexamine.cpp -msgid "You harvest and drop: dahlia root" +#, c-format +msgid "You harvest and drop: %s." msgstr "" #: src/iexamine.cpp -msgid "Nothing can be harvested from this plant in current season." +msgid "If only you had a shovel to dig up those roots..." +msgstr "你得要有把鏟子才能挖起這些根…" + +#: src/iexamine.cpp +msgid "You harvest: dahlia root" msgstr "" #: src/iexamine.cpp -#, c-format -msgid "You harvest: %s." +msgid "You harvest and drop: dahlia root" msgstr "" #: src/iexamine.cpp -#, c-format -msgid "You harvest and drop: %s." +msgid "Nothing can be harvested from this plant in current season." msgstr "" #: src/iexamine.cpp @@ -142481,8 +143284,10 @@ msgid "" msgstr "找不到位於連接沙發上的病人。無法操作。退出。" #: src/iexamine.cpp -msgid "You need an anesthesia kit for autodoc to perform any operation." -msgstr "您需要一個用於 \"全自動外科醫生\" 的麻醉包來進行手術。" +msgid "" +"You need an anesthesia kit with at least one charge for autodoc to perform " +"any operation." +msgstr "" #: src/iexamine.cpp msgid "Choose CBM to install" @@ -142538,6 +143343,46 @@ msgstr "你並未有安裝任何生化插件。" msgid "%1$s doesn't have any bionics installed." msgstr "%1$s並未有安裝任何生化插件。" +#: src/iexamine.cpp +msgid "This mill already contains flour." +msgstr "" + +#: src/iexamine.cpp +msgid "Remove it before starting the mill again." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "This rack contains %s, which can't be milled!" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You remove the %s from the mill." +msgstr "" + +#: src/iexamine.cpp +msgid "" +"This mill is empty. Fill it with starchy products such as wheat, barley or " +"oats and try again." +msgstr "" + +#: src/iexamine.cpp +msgid "" +"This mill is overloaded with products, and the millstone can't turn. Remove" +" some and try again." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgctxt "volume units" +msgid "You think that you can load about %s %s in it." +msgstr "你認為可以在裡面放入 %s %s 的食物。" + +#: src/iexamine.cpp +msgid "You remove the brake on the millstone and it slowly starts to turn." +msgstr "" + #: src/iexamine.cpp msgid "This rack already contains smoked food." msgstr "這個架子裡已經裝有煙燻過的食物了。" @@ -142634,6 +143479,131 @@ msgstr "你不能放入那麼多。" msgid "You carefully place %s %s in the rack." msgstr "你小心翼翼地往架子裡放入 %s %s。" +#: src/iexamine.cpp +msgid "You can't place more food while it's milling." +msgstr "" + +#: src/iexamine.cpp +msgid "Load mill with what kind of product?" +msgstr "" + +#: src/iexamine.cpp +msgid "You don't have any products that can be milled." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "Insert how many %s into the mill?" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgctxt "item amount and name" +msgid "You carefully place %s %s in the mill." +msgstr "" + +#: src/iexamine.cpp +msgid "The water mill needs to be over shallow flowing water to work." +msgstr "" + +#: src/iexamine.cpp +msgid "The wind mill needs to be outside in the wind to work." +msgstr "" + +#: src/iexamine.cpp +msgid "What to do with the mill?" +msgstr "" + +#: src/iexamine.cpp +msgid "Inspect mill" +msgstr "" + +#: src/iexamine.cpp +msgid "" +"Remove brake and start milling... insert some products for milling first" +msgstr "" + +#: src/iexamine.cpp +msgid "Remove brake and start milling" +msgstr "" + +#: src/iexamine.cpp +msgid "Remove brake and start milling, milling will take about 6 hours." +msgstr "" + +#: src/iexamine.cpp +msgid "Insert products for milling... mill is full" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "Insert products for milling... remaining capacity is %s %s" +msgstr "" + +#: src/iexamine.cpp +msgid "Fill the mill with starchy products such as wheat, barley or oats." +msgstr "" + +#: src/iexamine.cpp +msgid "Remove products from mill" +msgstr "" + +#: src/iexamine.cpp +msgid "Apply brake to mill" +msgstr "" + +#: src/iexamine.cpp +msgid "Applying the brake will stop milling process." +msgstr "" + +#: src/iexamine.cpp +msgid "There's a mill here. It is turning and milling." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "It will finish milling in about %d hour." +msgid_plural "It will finish milling in about %d hours." +msgstr[0] "" + +#: src/iexamine.cpp +msgid "It will finish milling in less than an hour." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "It should take about %d minutes to finish milling." +msgstr "" + +#: src/iexamine.cpp +msgid "There's a mill here." +msgstr "" + +#: src/iexamine.cpp +msgid "You inspect its contents and find: " +msgstr "你檢查了它的內容物並且發現: " + +#: src/iexamine.cpp +msgid "... that it is empty." +msgstr "… 它是空的。" + +#: src/iexamine.cpp +msgid "You see some grains that are not yet milled to fine flour." +msgstr "" + +#: src/iexamine.cpp +msgid "It is already milling." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You remove %s from the mill." +msgstr "" + +#: src/iexamine.cpp +msgid "You stop the milling process." +msgstr "" + #: src/iexamine.cpp msgid "What to do with the smoking rack:" msgstr "要對煙燻架做什麼:" @@ -142737,14 +143707,6 @@ msgstr "它需要大約 %d 分鐘才能完成煙燻。" msgid "There's a smoking rack here." msgstr "這裡有一個煙燻架。" -#: src/iexamine.cpp -msgid "You inspect its contents and find: " -msgstr "你檢查了它的內容物並且發現: " - -#: src/iexamine.cpp -msgid "... that it is empty." -msgstr "… 它是空的。" - #: src/iexamine.cpp msgid "You see some smoldering embers there." msgstr "你看到裡面有一些悶燒中的餘燼。" @@ -144540,6 +145502,10 @@ msgstr "|." msgid "\\." msgstr "\\." +#: src/item.cpp +msgid "XX" +msgstr "" + #: src/item.cpp msgid ".." msgstr ".." @@ -147175,7 +148141,7 @@ msgstr "歡迎使用駭客王!" #: src/iuse.cpp msgid "Prepare IFF protocol override" -msgstr "" +msgstr "準備覆寫敵我方識別協議" #: src/iuse.cpp msgid "Set friendly robots to passive mode" @@ -154981,6 +155947,11 @@ msgstr "" msgid "You reach out to the trees with your roots." msgstr "" +#: src/mutation.cpp +msgid "" +"You lay next to the trees letting your hair roots tangle with the trees." +msgstr "" + #: src/mutation.cpp msgid "Bionic power storage increased by 100." msgstr "生化能量儲存量增加了 100。" @@ -156203,6 +157174,10 @@ msgstr "是你的朋友。" msgid "Is following you." msgstr "正在追隨你。" +#: src/npc.cpp +msgid "Is guiding you." +msgstr "" + #: src/npc.cpp msgid "Will try to kill you or flee from you if you reveal yourself." msgstr "如果你暴露自己, 會試圖殺死你或逃離你。" @@ -156658,10 +157633,6 @@ msgstr " 如果你有興趣的話, 我需要一個幫手。" msgid " If you are interested, I have another job for you." msgstr " 我有另一件工作給你。想要聽看看嗎?" -#: src/npctalk.cpp -msgid "Pleasure doing business!" -msgstr "開張大吉!" - #: src/npctalk.cpp msgid "Shall we resume?" msgstr "我們該繼續了吧?" @@ -156777,23 +157748,6 @@ msgstr "跟我說說吧。" msgid "I have news." msgstr "我有新消息。" -#: src/npctalk.cpp -#, c-format -msgid "Delivering %s." -msgstr "交付 %s。" - -#: src/npctalk.cpp -msgid "Works for me." -msgstr "為我工作。" - -#: src/npctalk.cpp -msgid "You might be seeing more of me..." -msgstr "你可能會看到越來越多的我…" - -#: src/npctalk.cpp -msgid "Delivering bandages." -msgstr "提供繃帶。" - #: src/npctalk.cpp msgid "Yes, let's resume training " msgstr "好, 繼續訓練 " @@ -157026,11 +157980,6 @@ msgstr "" msgid "My current location" msgstr "" -#: src/npctalk_funcs.cpp -#, c-format -msgid "I'm willing to pay %s per batch for a total of %s" -msgstr "" - #. ~ %1$s is the NPC's translated name, %2$s is the translated faction camp #. name #: src/npctalk_funcs.cpp @@ -159910,6 +160859,10 @@ msgstr "" msgid "Wield:" msgstr "" +#: src/panels.cpp +msgid "Style:" +msgstr "" + #: src/panels.cpp msgid "Food :" msgstr "" @@ -160073,6 +161026,18 @@ msgstr "你負重過重!" msgid "You struggle to carry such a large volume!" msgstr "你的儲物空間不足了!" +#: src/pickup.cpp +msgid "Get items from vehicle cargo" +msgstr "" + +#: src/pickup.cpp +msgid "Get items from where?" +msgstr "" + +#: src/pickup.cpp src/vehicle_use.cpp +msgid "Get items on the ground" +msgstr "拿取在地上的物品" + #: src/pickup.cpp msgid "Next page" msgstr "下一頁" @@ -160573,11 +161538,11 @@ msgid "You're too tired to run." msgstr "你累到無法繼續跑。" #: src/player.cpp -msgid "You start walking." +msgid "You start crouching." msgstr "" #: src/player.cpp -msgid "You start crouching." +msgid "You start walking." msgstr "" #: src/player.cpp @@ -161250,7 +162215,7 @@ msgstr "" #: src/player.cpp msgid "Are you hurt?" -msgstr "" +msgstr "你受傷了嗎?" #: src/player.cpp msgid "Your " @@ -161264,7 +162229,7 @@ msgstr "" #: src/player.cpp #, c-format msgid "Did you see that %1$s!?" -msgstr "" +msgstr "你有看到那個 %1$s !?" #: src/player.cpp #, c-format @@ -161289,12 +162254,12 @@ msgstr "" #: src/player.cpp #, c-format msgid "Wait, that %1$s needs to die!" -msgstr "" +msgstr "等等,那個 %1$s 必需死!" #: src/player.cpp #, c-format msgid "Go kill that %1$s!" -msgstr "" +msgstr "殺了那個 %1$s !" #: src/player.cpp #, c-format @@ -161304,11 +162269,11 @@ msgstr "看看那個 %1$s!" #: src/player.cpp #, c-format msgid "That %1$s doesn't deserve to live!" -msgstr "" +msgstr "那個 %1$s 不應該活在世上!" #: src/player.cpp msgid "Hey, you're bleeding." -msgstr "" +msgstr "你流血了!" #: src/player.cpp msgid "Your wound looks pretty bad." @@ -161324,7 +162289,7 @@ msgstr "" #: src/player.cpp msgid "You look hurt, did I do that?" -msgstr "" +msgstr "你看你來受傷了,是因為我嗎?" #: src/player.cpp msgid "Are you supposed to be bleeding?" @@ -161332,7 +162297,7 @@ msgstr "" #: src/player.cpp msgid "You're not going to die, are you?" -msgstr "" +msgstr "你不會死的,對吧?" #: src/player.cpp msgid "Kill a few more before you bleed out!" @@ -161344,7 +162309,7 @@ msgstr "" #: src/player.cpp msgid "I need healing!" -msgstr "" +msgstr "我需要醫療!" #: src/player.cpp msgid "I hurt all over..." @@ -161360,15 +162325,15 @@ msgstr "" #: src/player.cpp msgid "Medic!" -msgstr "" +msgstr "醫生!" #: src/player.cpp msgid "I can still fight, don't replace me!" -msgstr "" +msgstr "我還能打,別換掉我!" #: src/player.cpp msgid "They got me!" -msgstr "" +msgstr "他們抓到我了!" #: src/player.cpp msgid "Go on without me..." @@ -161384,27 +162349,27 @@ msgstr "" #: src/player.cpp msgid "I'm your best friend, right?" -msgstr "" +msgstr "我是你最好的朋友,對吧?" #: src/player.cpp msgid "Do you think it will rain today?" -msgstr "" +msgstr "你覺得今天會下雨嗎?" #: src/player.cpp msgid "Try not to drop me." -msgstr "" +msgstr "別丟下我." #: src/player.cpp msgid "How many do you think we've killed?" -msgstr "" +msgstr "你覺得我們殺了幾個?" #: src/player.cpp msgid "I'll keep you safe!" -msgstr "" +msgstr "我會保護你。" #: src/player.cpp msgid "You get a bad feeling." -msgstr "" +msgstr "你有一種不好的預感。" #: src/player.cpp msgid "You suddenly feel so numb..." @@ -161416,11 +162381,11 @@ msgstr "你開始不由自主的顫抖。" #: src/player.cpp msgid "\"Get away from there!\"" -msgstr "" +msgstr "離開那裡!" #: src/player.cpp msgid "\"What do you think you're doing?\"" -msgstr "" +msgstr "你到底在銃三小?" #: src/player.cpp msgid "\"Stop laughing at me!\"" @@ -161432,7 +162397,7 @@ msgstr "“別用那個指著我!”" #: src/player.cpp msgid "\"Stay away from me!\"" -msgstr "" +msgstr "離我遠一點!" #: src/player.cpp msgid "\"No! Stop!\"" @@ -161440,7 +162405,7 @@ msgstr "\"不! 住手! \"" #: src/player.cpp msgid "\"Get the fuck away from me!\"" -msgstr "" +msgstr "你他媽的離我遠一點!" #: src/player.cpp msgid "\"That's not true!\"" @@ -161464,7 +162429,7 @@ msgstr "“我不得不這麼做!”" #: src/player.cpp msgid "\"They made me do it!\"" -msgstr "" +msgstr "他們逼我這麼做的!" #: src/player.cpp msgid "\"What are you!?\"" @@ -161715,7 +162680,7 @@ msgid "Your shaking legs make you stumble." msgstr "你的顫抖的雙腿使你蹣跚而行。" #: src/player.cpp -msgid " stumbles." msgstr "" #: src/player.cpp @@ -165794,6 +166759,11 @@ msgstr "你沒有達成修理 %s 的需求。" msgid "You repair the %1$s's %2$s." msgstr "你修理了 %1$s 的 %2$s。" +#: src/veh_utils.cpp +#, c-format +msgid "You replace the %1$s's %2$s." +msgstr "" + #: src/vehicle.cpp msgid "Lost connection with the vehicle due to distance!" msgstr "距離過遠, 失去與車輛的連線!" @@ -166202,10 +167172,6 @@ msgstr " (故障)" msgid " holding %s" msgstr " 裝著 %s" -#: src/vehicle_part.cpp -msgid "XX" -msgstr "" - #: src/vehicle_part.cpp #, c-format msgid "Insufficient power to enable %s" @@ -166665,10 +167631,6 @@ msgstr "停止洗衣機" msgid "Activate the washing machine (1.5 hours)" msgstr "啟動洗衣機 (1.5小時)" -#: src/vehicle_use.cpp -msgid "Get items on the ground" -msgstr "拿取在地上的物品" - #: src/vehicle_use.cpp msgid "Use the hotplate" msgstr "使用電熱板" diff --git a/msvc-full-features/Cataclysm-App.vcxproj b/msvc-full-features/Cataclysm-App.vcxproj new file mode 100644 index 0000000000000..2ae5a01bcee2d --- /dev/null +++ b/msvc-full-features/Cataclysm-App.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + x64 + + + Debug + Win32 + + + Release + x64 + + + Release + Win32 + + + + {18A6550D-1A53-478B-B615-20A2AF25A2CB} + Win32Proj + Cataclysm-App + 8.1 + NoUpgrade + + + + Application + v140 + MultiByte + + + true + + + false + false + + + + + + + + + + + $(ProjectName)-$(Configuration)-$(Platform) + .exe + $(SolutionDir)..\ + $(SolutionDir)$(ProjectName)\$(Configuration)\$(Platform)\ + + + true + + + false + + + + Level1 + Use + true + false + true + false + ProgramDatabase + 4819;4146 + stdafx.h + /bigobj /utf-8 %(AdditionalOptions) + _SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;_WINDOWS;%(PreprocessorDefinitions) + stdcpp14 + + + Windows + true + Default + true + /LTCG:OFF %(AdditionalOptions) + $(SDL2ROOT)lib\$(PlatformTarget);$(SDL2TTF)lib\$(PlatformTarget);$(SDL2MIXER)lib\$(PlatformTarget);$(SDL2IMAGE)lib\$(PlatformTarget);$(GETTEXT)lib\$(PlatformTarget);%(AdditionalLibraryDirectories) + SDL2.lib;SDL2main.lib;SDL2_image.lib;SDL2_mixer.lib;SDL2_ttf.lib;libiconv.lib;libintl.lib;%(AdditionalDependencies) + + + prebuild.cmd + Get version string + + + true + + + + + Disabled + false + _DEBUG;%(PreprocessorDefinitions) + + + + + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + + + true + true + + + + + WIN32;%(PreprocessorDefinitions) + + + + + + + Create + + + + + {6f6eacfc-b178-4e71-abe2-805c1f4bf3d8} + + + + + + + + + diff --git a/msvc-full-features/Cataclysm-Lib.vcxproj b/msvc-full-features/Cataclysm-Lib.vcxproj new file mode 100644 index 0000000000000..6f6b6201c7b82 --- /dev/null +++ b/msvc-full-features/Cataclysm-Lib.vcxproj @@ -0,0 +1,123 @@ + + + + + Debug + x64 + + + Debug + Win32 + + + Release + x64 + + + Release + Win32 + + + + {6F6EACFC-B178-4E71-ABE2-805C1F4BF3D8} + Win32Proj + Cataclysm-Lib + 8.1 + NoUpgrade + + + + StaticLibrary + v140 + MultiByte + + + true + + + false + false + + + + + + + + + + + $(ProjectName)-$(Configuration)-$(Platform) + .lib + $(SolutionDir)..\ + $(SolutionDir)$(ProjectName)\$(Configuration)\$(Platform)\ + + + true + + + false + + + + Level1 + Use + true + false + true + false + ProgramDatabase + 4819;4146 + stdafx.h + /bigobj /utf-8 %(AdditionalOptions) + SDL_BUILDING_LIBRARY;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;_WINDOWS;%(PreprocessorDefinitions) + stdcpp14 + + + Windows + true + Default + /LTCG:OFF %(AdditionalOptions) + + + prebuild.cmd + Get version string + + + + + Disabled + false + _DEBUG;%(PreprocessorDefinitions) + + + + + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + + + true + true + + + + + WIN32;%(PreprocessorDefinitions) + + + + + + + + + + Create + + + + + diff --git a/msvc-full-features/Cataclysm-Tests.vcxproj b/msvc-full-features/Cataclysm-Tests.vcxproj new file mode 100644 index 0000000000000..ba73bd23c7b38 --- /dev/null +++ b/msvc-full-features/Cataclysm-Tests.vcxproj @@ -0,0 +1,139 @@ + + + + + Debug + x64 + + + Debug + Win32 + + + Release + x64 + + + Release + Win32 + + + + {0005F1C3-0BCC-4980-8C62-4A8B91C116BA} + Win32Proj + Cataclysm-Tests + 8.1 + NoUpgrade + + + + Application + v140 + MultiByte + false + + + true + + + false + false + + + + + + + + + + + $(ProjectName)-$(Configuration)-$(Platform) + .exe + $(SolutionDir)..\ + $(SolutionDir)$(ProjectName)\$(Configuration)\$(Platform)\ + + + true + + + false + + + + Level1 + Use + true + false + true + false + ProgramDatabase + 4819;4146 + stdafx.h + /bigobj /utf-8 %(AdditionalOptions) + SDL_MAIN_HANDLED;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;_WINDOWS;%(PreprocessorDefinitions) + $(VCInstallDir)UnitTest\include;..\src;$(SDL2ROOT)include;$(SDL2TTF)include;$(SDL2MIXER)include;$(SDL2IMAGE)include;$(GETTEXT)include;%(AdditionalIncludeDirectories) + true + stdcpp14 + + + Console + true + Default + true + /LTCG:OFF %(AdditionalOptions) + $(VCInstallDir)UnitTest\lib;$(SDL2ROOT)lib\$(PlatformTarget);$(SDL2TTF)lib\$(PlatformTarget);$(SDL2MIXER)lib\$(PlatformTarget);$(SDL2IMAGE)lib\$(PlatformTarget);$(GETTEXT)lib\$(PlatformTarget);%(AdditionalLibraryDirectories) + libiconv.lib;libintl.lib;%(AdditionalDependencies) + + + true + + + + + Disabled + false + _DEBUG;%(PreprocessorDefinitions) + + + + + + + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + + + true + true + + + + + WIN32;%(PreprocessorDefinitions) + + + + + + + + + + + + + + Create + + + + + {6f6eacfc-b178-4e71-abe2-805c1f4bf3d8} + + + + + diff --git a/msvc-full-features/Cataclysm-vcpkg-static.sln b/msvc-full-features/Cataclysm-vcpkg-static.sln index 6099656a2e618..bc83201cdab38 100644 --- a/msvc-full-features/Cataclysm-vcpkg-static.sln +++ b/msvc-full-features/Cataclysm-vcpkg-static.sln @@ -6,6 +6,7 @@ MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{04F55049-F0DE-4AE6-9D10-3DB97DFF2E2F}" ProjectSection(SolutionItems) = preProject ..\.editorconfig = ..\.editorconfig + AStyleExtension-Cataclysm-DDA.cfg = AStyleExtension-Cataclysm-DDA.cfg EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Cataclysm-vcpkg-static", "Cataclysm-vcpkg-static.vcxproj", "{19F0BE17-3DAF-40E8-A9D2-904A56382E54}" @@ -13,17 +14,17 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 - Release|x64 = Release|x64 Debug|x86 = Debug|x86 + Release|x64 = Release|x64 Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {19F0BE17-3DAF-40E8-A9D2-904A56382E54}.Debug|x64.ActiveCfg = Debug|x64 {19F0BE17-3DAF-40E8-A9D2-904A56382E54}.Debug|x64.Build.0 = Debug|x64 - {19F0BE17-3DAF-40E8-A9D2-904A56382E54}.Release|x64.ActiveCfg = Release|x64 - {19F0BE17-3DAF-40E8-A9D2-904A56382E54}.Release|x64.Build.0 = Release|x64 {19F0BE17-3DAF-40E8-A9D2-904A56382E54}.Debug|x86.ActiveCfg = Debug|Win32 {19F0BE17-3DAF-40E8-A9D2-904A56382E54}.Debug|x86.Build.0 = Debug|Win32 + {19F0BE17-3DAF-40E8-A9D2-904A56382E54}.Release|x64.ActiveCfg = Release|x64 + {19F0BE17-3DAF-40E8-A9D2-904A56382E54}.Release|x64.Build.0 = Release|x64 {19F0BE17-3DAF-40E8-A9D2-904A56382E54}.Release|x86.ActiveCfg = Release|Win32 {19F0BE17-3DAF-40E8-A9D2-904A56382E54}.Release|x86.Build.0 = Release|Win32 EndGlobalSection diff --git a/msvc-full-features/Cataclysm-vcpkg-static.vcxproj b/msvc-full-features/Cataclysm-vcpkg-static.vcxproj index 1eb5b2315c6a0..bb47e468d896b 100644 --- a/msvc-full-features/Cataclysm-vcpkg-static.vcxproj +++ b/msvc-full-features/Cataclysm-vcpkg-static.vcxproj @@ -5,14 +5,14 @@ Debug x64 - - Release - x64 - Debug Win32 + + Release + x64 + Release Win32 @@ -28,131 +28,57 @@ x64-windows-static - + Application - true - v141 - MultiByte - - - Application - false v141 - false MultiByte - - Application + true - v141 - MultiByte - - Application + false - v141 false - MultiByte - - - - - - - - - - - - - - + + + - - true - $(SolutionDir)\..\ - Cataclysm- - vcpkg-static\$(Platform)\$(Configuration)\ - - - false - $(SolutionDir)\..\ - Cataclysm - vcpkg-static\$(Platform)\$(Configuration)\ + + $(ProjectName)-$(Configuration)-$(Platform) + .exe + $(SolutionDir)..\ + $(SolutionDir)$(ProjectName)\$(Configuration)\$(Platform)\ - + true - $(SolutionDir)\..\ - Cataclysm- - vcpkg-static\$(Platform)\$(Configuration)\ - + false - $(SolutionDir)\..\ - Cataclysm - vcpkg-static\$(Platform)\$(Configuration)\ - - - Use - Level1 - Disabled - true - _SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;_DEBUG;_WINDOWS;SDL_SOUND;TILES;LOCALIZE;USE_VCPKG;USE_WINMAIN;%(PreprocessorDefinitions) - false - false - true - /bigobj /utf-8 %(AdditionalOptions) - stdafx.h - 4819;4146 - ProgramDatabase - false - true - MultiThreadedDebug - - - Windows - true - /LTCG:OFF %(AdditionalOptions) - Default - winmm.lib;imm32.lib;version.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - true - - - prebuild.cmd - Get version string - - - + Level1 Use - MaxSpeed - true - true - _SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;NDEBUG;_WINDOWS;SDL_SOUND;TILES;LOCALIZE;USE_VCPKG;USE_WINMAIN;%(PreprocessorDefinitions) true false true + false + ProgramDatabase 4819;4146 stdafx.h /bigobj /utf-8 %(AdditionalOptions) - false - ProgramDatabase - MultiThreaded + _SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;_WINDOWS;SDL_SOUND;TILES;LOCALIZE;USE_VCPKG;USE_WINMAIN;%(PreprocessorDefinitions) + stdcpp14 Windows - true - true - DebugFastLink + true Default + true /LTCG:OFF %(AdditionalOptions) winmm.lib;imm32.lib;version.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) @@ -160,71 +86,37 @@ prebuild.cmd Get version string + + true + - + - Use - Level1 Disabled - true - _SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;_DEBUG;_WINDOWS;SDL_SOUND;TILES;LOCALIZE;USE_VCPKG;USE_WINMAIN;%(PreprocessorDefinitions) + false false - false - true - /bigobj /utf-8 %(AdditionalOptions) - stdafx.h - 4819;4146 - ProgramDatabase - false - true + _DEBUG;%(PreprocessorDefinitions) MultiThreadedDebug - - Windows - true - /LTCG:OFF %(AdditionalOptions) - Default - winmm.lib;imm32.lib;version.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - true - - - prebuild.cmd - Get version string - - + - Level1 - Use MaxSpeed true true - _SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;NDEBUG;_WINDOWS;SDL_SOUND;TILES;LOCALIZE;USE_VCPKG;USE_WINMAIN;%(PreprocessorDefinitions) - true - false - true - 4819;4146 - stdafx.h - /bigobj /utf-8 %(AdditionalOptions) - false - ProgramDatabase + NDEBUG;%(PreprocessorDefinitions) + DebugFastLink MultiThreaded - Windows true true - DebugFastLink - Default - /LTCG:OFF %(AdditionalOptions) - winmm.lib;imm32.lib;version.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - prebuild.cmd - Get version string - + + + + WIN32;%(PreprocessorDefinitions) + @@ -233,13 +125,10 @@ - Create - Create - Create - Create + Create - - + + diff --git a/msvc-full-features/Cataclysm-vcpkg.sln b/msvc-full-features/Cataclysm-vcpkg.sln index cb4ced433695d..bc85246164099 100644 --- a/msvc-full-features/Cataclysm-vcpkg.sln +++ b/msvc-full-features/Cataclysm-vcpkg.sln @@ -6,6 +6,7 @@ MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F95AB660-996E-46F9-B704-DAFA4489DEA7}" ProjectSection(SolutionItems) = preProject ..\.editorconfig = ..\.editorconfig + AStyleExtension-Cataclysm-DDA.cfg = AStyleExtension-Cataclysm-DDA.cfg EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Cataclysm-vcpkg", "Cataclysm-vcpkg.vcxproj", "{2586F32C-9F3B-4410-88D1-4543C38511D7}" @@ -13,17 +14,17 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 - Release|x64 = Release|x64 Debug|x86 = Debug|x86 + Release|x64 = Release|x64 Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {2586F32C-9F3B-4410-88D1-4543C38511D7}.Debug|x64.ActiveCfg = Debug|x64 {2586F32C-9F3B-4410-88D1-4543C38511D7}.Debug|x64.Build.0 = Debug|x64 - {2586F32C-9F3B-4410-88D1-4543C38511D7}.Release|x64.ActiveCfg = Release|x64 - {2586F32C-9F3B-4410-88D1-4543C38511D7}.Release|x64.Build.0 = Release|x64 {2586F32C-9F3B-4410-88D1-4543C38511D7}.Debug|x86.ActiveCfg = Debug|Win32 {2586F32C-9F3B-4410-88D1-4543C38511D7}.Debug|x86.Build.0 = Debug|Win32 + {2586F32C-9F3B-4410-88D1-4543C38511D7}.Release|x64.ActiveCfg = Release|x64 + {2586F32C-9F3B-4410-88D1-4543C38511D7}.Release|x64.Build.0 = Release|x64 {2586F32C-9F3B-4410-88D1-4543C38511D7}.Release|x86.ActiveCfg = Release|Win32 {2586F32C-9F3B-4410-88D1-4543C38511D7}.Release|x86.Build.0 = Release|Win32 EndGlobalSection diff --git a/msvc-full-features/Cataclysm-vcpkg.vcxproj b/msvc-full-features/Cataclysm-vcpkg.vcxproj index b24bfa135c49a..af1b3d82c5161 100644 --- a/msvc-full-features/Cataclysm-vcpkg.vcxproj +++ b/msvc-full-features/Cataclysm-vcpkg.vcxproj @@ -5,14 +5,14 @@ Debug x64 - - Release - x64 - Debug Win32 + + Release + x64 + Release Win32 @@ -28,127 +28,54 @@ x64-windows - + Application - true - v141 - MultiByte - - - Application - false v141 - false MultiByte - - Application + true - v141 - MultiByte - - Application + false - v141 false - MultiByte - - - - - - - - - - - - - - + + + - - true - $(SolutionDir)\..\ - Cataclysm- - vcpkg\$(Platform)\$(Configuration)\ + + $(ProjectName)-$(Configuration)-$(Platform) + .exe + $(SolutionDir)..\ + $(SolutionDir)$(ProjectName)\$(Configuration)\$(Platform)\ - - false - $(SolutionDir)\..\ - Cataclysm - vcpkg\$(Platform)\$(Configuration)\ - - + true - $(SolutionDir)\..\ - Cataclysm- - vcpkg\$(Platform)\$(Configuration)\ - + false - $(SolutionDir)\..\ - Cataclysm - vcpkg\$(Platform)\$(Configuration)\ - - - Use - Level1 - Disabled - true - _SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;_DEBUG;_WINDOWS;SDL_SOUND;TILES;LOCALIZE;USE_VCPKG;USE_WINMAIN;%(PreprocessorDefinitions) - false - false - true - /bigobj /utf-8 %(AdditionalOptions) - stdafx.h - 4819;4146 - ProgramDatabase - false - true - - - Windows - true - /LTCG:OFF %(AdditionalOptions) - Default - - - true - - - prebuild.cmd - Get version string - - - + Level1 Use - MaxSpeed - true - true - _SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;NDEBUG;_WINDOWS;SDL_SOUND;TILES;LOCALIZE;USE_VCPKG;USE_WINMAIN;%(PreprocessorDefinitions) true false true + false + ProgramDatabase 4819;4146 stdafx.h /bigobj /utf-8 %(AdditionalOptions) - false - ProgramDatabase + _SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;_WINDOWS;SDL_SOUND;TILES;LOCALIZE;USE_VCPKG;USE_WINMAIN;%(PreprocessorDefinitions) + stdcpp14 Windows - true - true - DebugFastLink Default /LTCG:OFF %(AdditionalOptions) @@ -156,67 +83,38 @@ prebuild.cmd Get version string + + true + - + - Use - Level1 Disabled - true - _SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;_DEBUG;_WINDOWS;SDL_SOUND;TILES;LOCALIZE;USE_VCPKG;USE_WINMAIN;%(PreprocessorDefinitions) + false false - false - true - /bigobj /utf-8 %(AdditionalOptions) - stdafx.h - 4819;4146 - ProgramDatabase - false - true - - - Windows + _DEBUG;%(PreprocessorDefinitions) true - /LTCG:OFF %(AdditionalOptions) - Default - - - true - - - prebuild.cmd - Get version string - + MultiThreadedDebug + - + - Level1 - Use MaxSpeed true true - _SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;NDEBUG;_WINDOWS;SDL_SOUND;TILES;LOCALIZE;USE_VCPKG;USE_WINMAIN;%(PreprocessorDefinitions) - true - false - true - 4819;4146 - stdafx.h - /bigobj /utf-8 %(AdditionalOptions) - false - ProgramDatabase + NDEBUG;%(PreprocessorDefinitions) + DebugFastLink + MultiThreaded - Windows true true - DebugFastLink - Default - /LTCG:OFF %(AdditionalOptions) - - prebuild.cmd - Get version string - + + + + WIN32;%(PreprocessorDefinitions) + @@ -225,13 +123,9 @@ - Create - Create - Create - Create + Create - - + diff --git a/msvc-full-features/Cataclysm.sln b/msvc-full-features/Cataclysm.sln index cd9d86ddcf7bf..76e9fb50a2632 100644 --- a/msvc-full-features/Cataclysm.sln +++ b/msvc-full-features/Cataclysm.sln @@ -3,16 +3,17 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 VisualStudioVersion = 14.0.25420.1 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Cataclysm", "Cataclysm.vcxproj", "{18A6550D-1A53-478B-B615-20A2AF25A2CB}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Cataclysm-App", "Cataclysm-App.vcxproj", "{18A6550D-1A53-478B-B615-20A2AF25A2CB}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8309953A-3C97-45C4-A674-BCC7FAA49283}" ProjectSection(SolutionItems) = preProject ..\.editorconfig = ..\.editorconfig + AStyleExtension-Cataclysm-DDA.cfg = AStyleExtension-Cataclysm-DDA.cfg EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Cataclysm_lib", "Cataclysm_lib.vcxproj", "{6F6EACFC-B178-4E71-ABE2-805C1F4BF3D8}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Cataclysm-Lib", "Cataclysm-Lib.vcxproj", "{6F6EACFC-B178-4E71-ABE2-805C1F4BF3D8}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tests", "Tests.vcxproj", "{0005F1C3-0BCC-4980-8C62-4A8B91C116BA}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Cataclysm-Tests", "Cataclysm-Tests.vcxproj", "{0005F1C3-0BCC-4980-8C62-4A8B91C116BA}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/msvc-full-features/Cataclysm.vcxproj b/msvc-full-features/Cataclysm.vcxproj deleted file mode 100755 index 24be95912930b..0000000000000 --- a/msvc-full-features/Cataclysm.vcxproj +++ /dev/null @@ -1,257 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - {18A6550D-1A53-478B-B615-20A2AF25A2CB} - Win32Proj - Cataclysm - 8.1 - NoUpgrade - - - - Application - true - v140 - MultiByte - - - Application - false - v140 - false - MultiByte - - - Application - true - v140 - MultiByte - - - Application - false - v140 - false - MultiByte - - - - - - - - - - - - - - - - - - - - - - - - - true - $(SolutionDir)\..\ - Cataclysm - $(Platform)\$(Configuration)\$(ProjectName)\ - - - true - $(SolutionDir)\..\ - Cataclysm - - - false - $(SolutionDir)\..\ - Cataclysm - $(Platform)\$(Configuration)\$(ProjectName)\ - - - true - $(SolutionDir)\..\ - Cataclysm - - - - Use - Level1 - Disabled - _SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - false - true - ProgramDatabase - 4819;4146 - stdafx.h - false - /bigobj /utf-8 %(AdditionalOptions) - - - Windows - true - Default - /LTCG:OFF %(AdditionalOptions) - SDL2.lib;SDL2main.lib;SDL2_image.lib;SDL2_mixer.lib;SDL2_ttf.lib;libiconv.lib;libintl.lib;%(AdditionalDependencies) - - - prebuild.cmd - Get version string - - - true - - - - - Use - Level1 - Disabled - _SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - false - true - ProgramDatabase - 4819;4146 - stdafx.h - false - /bigobj /utf-8 %(AdditionalOptions) - - - Windows - true - Default - /LTCG:OFF %(AdditionalOptions) - $(SDL2ROOT)lib\$(PlatformTarget);$(SDL2TTF)lib\$(PlatformTarget);$(SDL2MIXER)lib\$(PlatformTarget);$(SDL2IMAGE)lib\$(PlatformTarget);$(GETTEXT)lib\$(PlatformTarget);%(AdditionalLibraryDirectories) - true - SDL2.lib;SDL2main.lib;SDL2_image.lib;SDL2_mixer.lib;SDL2_ttf.lib;libiconv.lib;libintl.lib;%(AdditionalDependencies) - - - prebuild.cmd - - - Get version string - - - true - - - - - Level1 - Use - MaxSpeed - true - true - _SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - false - true - 4819;4146 - stdafx.h - /bigobj /utf-8 %(AdditionalOptions) - false - - - Windows - true - true - true - Default - /LTCG:OFF %(AdditionalOptions) - SDL2.lib;SDL2main.lib;SDL2_image.lib;SDL2_mixer.lib;SDL2_ttf.lib;libiconv.lib;libintl.lib;%(AdditionalDependencies) - - - prebuild.cmd - - - Get version string - - - true - - - - - Level1 - Use - MaxSpeed - true - true - _SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - false - true - 4819;4146 - stdafx.h - /bigobj /utf-8 %(AdditionalOptions) - false - - - Windows - true - true - true - Default - /LTCG:OFF %(AdditionalOptions) - $(SDL2ROOT)lib\$(PlatformTarget);$(SDL2TTF)lib\$(PlatformTarget);$(SDL2MIXER)lib\$(PlatformTarget);$(SDL2IMAGE)lib\$(PlatformTarget);$(GETTEXT)lib\$(PlatformTarget);%(AdditionalLibraryDirectories) - true - SDL2.lib;SDL2main.lib;SDL2_image.lib;SDL2_mixer.lib;SDL2_ttf.lib;libiconv.lib;libintl.lib;%(AdditionalDependencies) - - - prebuild.cmd - - - Get version string - - - true - - - - - - - Create - Create - Create - Create - - - - - {6f6eacfc-b178-4e71-abe2-805c1f4bf3d8} - - - - - - - - - - \ No newline at end of file diff --git a/msvc-full-features/Cataclysm_lib.vcxproj b/msvc-full-features/Cataclysm_lib.vcxproj deleted file mode 100755 index fcbd1fd7492d8..0000000000000 --- a/msvc-full-features/Cataclysm_lib.vcxproj +++ /dev/null @@ -1,235 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - {6F6EACFC-B178-4E71-ABE2-805C1F4BF3D8} - Win32Proj - Cataclysm_lib - 8.1 - NoUpgrade - - - - StaticLibrary - true - v140 - MultiByte - - - StaticLibrary - false - v140 - false - MultiByte - - - StaticLibrary - true - v140 - MultiByte - false - - - StaticLibrary - false - v140 - false - MultiByte - - - - - - - - - - - - - - - - - - - - - - - - - true - $(SolutionDir)$(Platform)\$(Configuration)\Cataclysm_lib\ - Cataclysm_lib - $(Platform)\$(Configuration)\Cataclysm_lib\ - .lib - - - true - Cataclysm_lib - $(SolutionDir)$(Platform)\$(Configuration)\Cataclysm_lib\ - $(Platform)\$(Configuration)\Cataclysm_lib\ - - - false - $(SolutionDir)$(Platform)\$(Configuration)\Cataclysm_lib\ - Cataclysm_lib - $(Platform)\$(Configuration)\Cataclysm_lib\ - .lib - - - false - Cataclysm_lib - $(SolutionDir)$(Platform)\$(Configuration)\Cataclysm_lib\ - $(Platform)\$(Configuration)\Cataclysm_lib\ - - - - Use - Level1 - Disabled - SDL_BUILDING_LIBRARY;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - false - ProgramDatabase - 4819;4146 - stdafx.h - false - /bigobj /utf-8 %(AdditionalOptions) - Default - true - - - Windows - true - Default - /LTCG:OFF %(AdditionalOptions) - - - prebuild.cmd - - - Get version string - - - - - Use - Level1 - Disabled - SDL_BUILDING_LIBRARY;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - false - ProgramDatabase - 4819;4146 - stdafx.h - false - /bigobj /utf-8 %(AdditionalOptions) - false - Default - true - - - Windows - true - Default - /LTCG:OFF %(AdditionalOptions) - - - prebuild.cmd - Get version string - - - - - Level1 - Use - MaxSpeed - true - true - SDL_BUILDING_LIBRARY;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - false - 4819;4146 - stdafx.h - /bigobj /utf-8 %(AdditionalOptions) - false - true - - - Windows - true - true - true - Default - /LTCG:OFF %(AdditionalOptions) - - - prebuild.cmd - Get version string - - - - - Level1 - Use - MaxSpeed - true - true - SDL_BUILDING_LIBRARY;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - false - 4819;4146 - stdafx.h - /bigobj /utf-8 %(AdditionalOptions) - false - true - - - Windows - true - true - true - Default - /LTCG:OFF %(AdditionalOptions) - - - prebuild.cmd - Get version string - - - - - - - - - - Create - Create - Create - Create - - - - - - \ No newline at end of file diff --git a/msvc-full-features/Tests.vcxproj b/msvc-full-features/Tests.vcxproj deleted file mode 100755 index 796f3efcd62db..0000000000000 --- a/msvc-full-features/Tests.vcxproj +++ /dev/null @@ -1,243 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - {0005F1C3-0BCC-4980-8C62-4A8B91C116BA} - Win32Proj - Tests - 8.1 - NoUpgrade - - - - Application - true - v140 - MultiByte - false - - - Application - false - v140 - MultiByte - false - - - Application - true - v140 - MultiByte - false - - - Application - false - v140 - MultiByte - false - - - - - - - - - - - - - - - - - - - - - - - - - true - $(SolutionDir)$(Platform)\$(Configuration)\Tests\ - $(Platform)\$(Configuration)\Tests\ - Cataclysm_test - .exe - - - true - Cataclysm_test - $(SolutionDir)$(Platform)\$(Configuration)\Tests\ - $(Platform)\$(Configuration)\Tests\ - - - true - $(SolutionDir)$(Platform)\$(Configuration)\Tests\ - $(Platform)\$(Configuration)\Tests\ - Cataclysm_test - .exe - - - true - Cataclysm_test - $(SolutionDir)$(Platform)\$(Configuration)\Tests\ - $(Platform)\$(Configuration)\Tests\ - - - - Use - Level1 - Disabled - $(VCInstallDir)UnitTest\include;..\src;$(SDL2ROOT)include;$(SDL2TTF)include;$(SDL2MIXER)include;$(SDL2IMAGE)include;$(GETTEXT)include;%(AdditionalIncludeDirectories) - SDL_MAIN_HANDLED;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - true - false - stdafx.h - 4819;4146 - - - Console - $(VCInstallDir)UnitTest\lib;$(SDL2ROOT)lib\$(PlatformTarget);$(SDL2TTF)lib\$(PlatformTarget);$(SDL2MIXER)lib\$(PlatformTarget);$(SDL2IMAGE)lib\$(PlatformTarget);$(GETTEXT)lib\$(PlatformTarget);%(AdditionalLibraryDirectories) - libiconv.lib;libintl.lib;%(AdditionalDependencies) - - - true - - - - - Use - Level1 - Disabled - $(VCInstallDir)UnitTest\include;..\src;$(SDL2ROOT)include;$(SDL2TTF)include;$(SDL2MIXER)include;$(SDL2IMAGE)include;$(GETTEXT)include;%(AdditionalIncludeDirectories) - SDL_MAIN_HANDLED;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - false - stdafx.h - true - 4819;4146 - /bigobj /utf-8 %(AdditionalOptions) - - - false - Default - - - Console - $(VCInstallDir)UnitTest\lib;$(SDL2ROOT)lib\$(PlatformTarget);$(SDL2TTF)lib\$(PlatformTarget);$(SDL2MIXER)lib\$(PlatformTarget);$(SDL2IMAGE)lib\$(PlatformTarget);$(GETTEXT)lib\$(PlatformTarget);%(AdditionalLibraryDirectories) - libiconv.lib;libintl.lib;%(AdditionalDependencies) - true - Default - - - - - true - - - - - Level1 - Use - MaxSpeed - true - true - $(VCInstallDir)UnitTest\include;..\src;$(SDL2ROOT)include;$(SDL2TTF)include;$(SDL2MIXER)include;$(SDL2IMAGE)include;$(GETTEXT)include;%(AdditionalIncludeDirectories) - SDL_MAIN_HANDLED;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - false - true - stdafx.h - 4819;4146 - - - Console - true - true - $(VCInstallDir)UnitTest\lib;$(SDL2ROOT)lib\$(PlatformTarget);$(SDL2TTF)lib\$(PlatformTarget);$(SDL2MIXER)lib\$(PlatformTarget);$(SDL2IMAGE)lib\$(PlatformTarget);$(GETTEXT)lib\$(PlatformTarget);%(AdditionalLibraryDirectories) - libiconv.lib;libintl.lib;%(AdditionalDependencies) - - - true - - - - - Level1 - Use - MaxSpeed - true - true - $(VCInstallDir)UnitTest\include;..\src;$(SDL2ROOT)include;$(SDL2TTF)include;$(SDL2MIXER)include;$(SDL2IMAGE)include;$(GETTEXT)include;%(AdditionalIncludeDirectories) - SDL_MAIN_HANDLED;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - false - stdafx.h - true - 4819;4146 - /bigobj /utf-8 %(AdditionalOptions) - - - true - - - Console - true - true - $(VCInstallDir)UnitTest\lib;$(SDL2ROOT)lib\$(PlatformTarget);$(SDL2TTF)lib\$(PlatformTarget);$(SDL2MIXER)lib\$(PlatformTarget);$(SDL2IMAGE)lib\$(PlatformTarget);$(GETTEXT)lib\$(PlatformTarget);%(AdditionalLibraryDirectories) - libiconv.lib;libintl.lib;%(AdditionalDependencies) - true - Default - - - - - true - - - - - - - - - - - - - - Create - Create - Create - Create - - - - - {6f6eacfc-b178-4e71-abe2-805c1f4bf3d8} - - - - - - \ No newline at end of file diff --git a/src/action.cpp b/src/action.cpp index 7f068393d6fd3..19b1e158d4f02 100644 --- a/src/action.cpp +++ b/src/action.cpp @@ -1,6 +1,6 @@ #include "action.h" -#include +#include #include #include #include @@ -30,7 +30,7 @@ #include "enums.h" #include "item.h" #include "ret_val.h" -#include "itype.h" +#include "type_id.h" class inventory; @@ -58,7 +58,8 @@ void parse_keymap( std::istream &keymap_txt, std::map &kmap, std::string id; keymap_txt >> id; if( id.empty() ) { - getline( keymap_txt, id ); // Empty line, chomp it + // Empty line, chomp it + getline( keymap_txt, id ); } else if( id == "unbind" ) { keymap_txt >> id; const action_id act = look_up_action( id ); @@ -96,10 +97,10 @@ Fix \"%s\" at your next chance!", ch, id, FILENAMES["keymap"] ); } } -std::vector keys_bound_to( action_id act ) +std::vector keys_bound_to( action_id act, const bool restrict_to_printable ) { input_context ctxt = get_default_mode_input_context(); - return ctxt.keys_bound_to( action_ident( act ) ); + return ctxt.keys_bound_to( action_ident( act ), restrict_to_printable ); } action_id action_from_key( char ch ) @@ -179,6 +180,8 @@ std::string action_ident( action_id act ) return "advinv"; case ACTION_PICKUP: return "pickup"; + case ACTION_PICKUP_FEET: + return "pickup_feet"; case ACTION_GRAB: return "grab"; case ACTION_HAUL: @@ -213,6 +216,8 @@ std::string action_ident( action_id act ) return "take_off"; case ACTION_EAT: return "eat"; + case ACTION_OPEN_CONSUME: + return "open_consume"; case ACTION_READ: return "read"; case ACTION_WIELD: @@ -520,16 +525,12 @@ point get_delta_from_movement_direction( action_id act ) } } -// Get the key for an action, used in the action menu to give each action the -// hotkey it is bound to. -// We ignore bindings to '?' because that will already do something else in -// this menu (open the menu keybindings). -long hotkey_for_action( action_id action ) +long hotkey_for_action( action_id action, const bool restrict_to_printable ) { auto is_valid_key = []( char key ) { return key != '?'; }; - std::vector keys = keys_bound_to( action ); + std::vector keys = keys_bound_to( action, restrict_to_printable ); auto valid = std::find_if( keys.begin(), keys.end(), is_valid_key ); return valid == keys.end() ? -1 : *valid; } @@ -630,6 +631,7 @@ bool can_interact_at( action_id action, const tripoint &p ) case ACTION_EXAMINE: return can_examine_at( p ); case ACTION_PICKUP: + case ACTION_PICKUP_FEET: return can_pickup_at( p ); default: return false; @@ -781,6 +783,7 @@ action_id handle_action_menu() REGISTER_ACTION( ACTION_WEAR ); REGISTER_ACTION( ACTION_TAKE_OFF ); REGISTER_ACTION( ACTION_EAT ); + REGISTER_ACTION( ACTION_OPEN_CONSUME ); REGISTER_ACTION( ACTION_READ ); REGISTER_ACTION( ACTION_WIELD ); REGISTER_ACTION( ACTION_UNLOAD ); @@ -808,6 +811,7 @@ action_id handle_action_menu() REGISTER_ACTION( ACTION_CLOSE ); REGISTER_ACTION( ACTION_CHAT ); REGISTER_ACTION( ACTION_PICKUP ); + REGISTER_ACTION( ACTION_PICKUP_FEET ); REGISTER_ACTION( ACTION_GRAB ); REGISTER_ACTION( ACTION_HAUL ); REGISTER_ACTION( ACTION_BUTCHER ); @@ -930,6 +934,7 @@ action_id handle_main_menu() REGISTER_ACTION( ACTION_ACTIONMENU ); REGISTER_ACTION( ACTION_QUICKSAVE ); REGISTER_ACTION( ACTION_SAVE ); + REGISTER_ACTION( ACTION_DEBUG ); int width = 0; for( auto &entry : entries ) { diff --git a/src/action.h b/src/action.h index 963576d7dc2e0..3b862edd99ca2 100644 --- a/src/action.h +++ b/src/action.h @@ -103,8 +103,10 @@ enum action_id : int { ACTION_SMASH, /** Examine or pick up items from adjacent square */ ACTION_EXAMINE, - /** Pick up items from current square */ + /** Pick up items from current/adjacent squares */ ACTION_PICKUP, + /** Pick up items from current square. Auto pickup if only one item */ + ACTION_PICKUP_FEET, /** Grab or let go of an object */ ACTION_GRAB, /** Haul pile of items, or let go of them */ @@ -143,8 +145,10 @@ enum action_id : int { ACTION_WEAR, /** Open the take-off clothing selection menu */ ACTION_TAKE_OFF, - /** Open the consume item menu */ + /** Open the default consume item menu */ ACTION_EAT, + /** Open the custom consume item menu */ + ACTION_OPEN_CONSUME, /** Open the read menu */ ACTION_READ, /** Open the wield menu */ @@ -330,9 +334,19 @@ void load_keyboard_settings( std::map &keymap, * given action then the returned vector is simply left empty. * * @param act Action ID to lookup in keymap + * @param restrict_to_printable If `true` the function returns the bound keys only if they are printable. If `false`, all keys (whether they are printable or not) are returned. * @returns all keys (as characters) currently bound to a give action ID */ -std::vector keys_bound_to( action_id act ); +std::vector keys_bound_to( action_id act, bool restrict_to_printable = true ); + +/** + * Get the key for an action, used in the action menu to give each action the hotkey it is bound to. + * @param action Action ID to lookup in keymap. + * @param restrict_to_printable If `true` the function returns the bound key only if it is printable. If `false`, any key (whether they it is printable or not) is returned. + * @returns the key code for the hotkey or -1 if no key is associated with the given action. + * @note We ignore bindings to '?' because that will already do something else in this menu (open the menu keybindings). + */ +long hotkey_for_action( action_id action, bool restrict_to_printable = true ); /** * Lookup an action ID by its unique string identifier diff --git a/src/activity_handlers.cpp b/src/activity_handlers.cpp index e8f60330109fb..a1cdd0760837a 100644 --- a/src/activity_handlers.cpp +++ b/src/activity_handlers.cpp @@ -1,7 +1,7 @@ #include "activity_handlers.h" -#include -#include +#include +#include #include #include #include @@ -25,6 +25,7 @@ #include "game.h" #include "game_inventory.h" #include "gates.h" +#include "handle_liquid.h" #include "harvest.h" #include "iexamine.h" #include "itype.h" @@ -76,6 +77,7 @@ #include "ret_val.h" #include "string_id.h" #include "units.h" +#include "type_id.h" class npc; @@ -105,11 +107,15 @@ activity_handlers::do_turn_functions = { { activity_id( "ACT_GAME" ), game_do_turn }, { activity_id( "ACT_START_FIRE" ), start_fire_do_turn }, { activity_id( "ACT_VIBE" ), vibe_do_turn }, + { activity_id( "ACT_HAND_CRANK" ), hand_crank_do_turn }, { activity_id( "ACT_OXYTORCH" ), oxytorch_do_turn }, { activity_id( "ACT_AIM" ), aim_do_turn }, { activity_id( "ACT_PICKUP" ), pickup_do_turn }, { activity_id( "ACT_WEAR" ), wear_do_turn }, { activity_id( "ACT_EAT_MENU" ), eat_menu_do_turn }, + { activity_id( "ACT_CONSUME_FOOD_MENU" ), consume_food_menu_do_turn }, + { activity_id( "ACT_CONSUME_DRINK_MENU" ), consume_drink_menu_do_turn }, + { activity_id( "ACT_CONSUME_MEDS_MENU" ), consume_meds_menu_do_turn }, { activity_id( "ACT_MOVE_ITEMS" ), move_items_do_turn }, { activity_id( "ACT_MOVE_LOOT" ), move_loot_do_turn }, { activity_id( "ACT_ADV_INVENTORY" ), adv_inventory_do_turn }, @@ -183,6 +189,9 @@ activity_handlers::finish_functions = { { activity_id( "ACT_ATM" ), atm_finish }, { activity_id( "ACT_AIM" ), aim_finish }, { activity_id( "ACT_EAT_MENU" ), eat_menu_finish }, + { activity_id( "ACT_CONSUME_FOOD_MENU" ), eat_menu_finish }, + { activity_id( "ACT_CONSUME_DRINK_MENU" ), eat_menu_finish }, + { activity_id( "ACT_CONSUME_MEDS_MENU" ), eat_menu_finish }, { activity_id( "ACT_WASH" ), washing_finish }, { activity_id( "ACT_HACKSAW" ), hacksaw_finish }, { activity_id( "ACT_CHOP_TREE" ), chop_tree_finish }, @@ -220,6 +229,7 @@ void messages_in_process( const player_activity &act, const player &p ) void activity_handlers::burrow_do_turn( player_activity *act, player *p ) { + sfx::play_activity_sound( "activity", "burrow", sfx::get_heard_volume( act->placement ) ); if( calendar::once_every( 1_minutes ) ) { //~ Sound of a Rat mutant burrowing! sounds::sound( act->placement, 10, sounds::sound_t::movement, @@ -540,8 +550,6 @@ int butcher_time_to_cut( const player &u, const item &corpse_item, const butcher } break; case F_DRESS: - time_to_cut *= 2; - break; case SKIN: time_to_cut *= 2; break; @@ -565,7 +573,6 @@ int butcher_time_to_cut( const player &u, const item &corpse_item, const butcher if( corpse_item.has_flag( "QUARTERED" ) ) { time_to_cut /= 4; } - const std::vector helpers = g->u.get_crafting_helpers(); time_to_cut = time_to_cut * ( 1 - ( g->u.get_num_crafting_helpers( 3 ) / 10 ) ); return time_to_cut; } @@ -903,7 +910,7 @@ void butchery_drops_harvest( item *corpse_item, const mtype &mt, player &p, if( obj.goes_bad() ) { obj.set_rot( corpse_item->get_rot() ); } - g->handle_all_liquid( obj, 1 ); + liquid_handler::handle_all_liquid( obj, 1 ); } else if( drop->stackable ) { item obj( drop, calendar::turn, roll ); if( obj.has_temperature() ) { @@ -1744,6 +1751,7 @@ void activity_handlers::make_zlave_finish( player_activity *act, player *p ) void activity_handlers::pickaxe_do_turn( player_activity *act, player *p ) { const tripoint &pos = act->placement; + sfx::play_activity_sound( "tool", "pickaxe", sfx::get_heard_volume( pos ) ); if( calendar::once_every( 1_minutes ) ) { // each turn is too much //~ Sound of a Pickaxe at work! sounds::sound( pos, 30, sounds::sound_t::destructive_activity, _( "CHNK! CHNK! CHNK!" ) ); @@ -1756,7 +1764,6 @@ void activity_handlers::pickaxe_finish( player_activity *act, player *p ) const tripoint pos( act->placement ); item &it = p->i_at( act->position ); act->set_to_null(); // Invalidate the activity early to prevent a query from mod_pain() - const std::vector helpers = g->u.get_crafting_helpers(); const int helpersize = g->u.get_num_crafting_helpers( 3 ); if( g->m.is_bashable( pos ) && g->m.has_flag( "SUPPORTS_ROOF", pos ) && g->m.ter( pos ) != t_tree ) { @@ -2020,6 +2027,30 @@ void activity_handlers::vehicle_finish( player_activity *act, player *p ) } } +void activity_handlers::hand_crank_do_turn( player_activity *act, player *p ) +{ + // Hand-crank chargers seem to range from 2 watt (very common easily verified) + // to 10 watt (suspicious claims from some manufacturers) sustained output. + // It takes 2.4 minutes to produce 1kj at just slightly under 7 watts (25 kj per hour) + // time-based instead of speed based because it's a sustained activity + act->moves_left -= 100; + item &hand_crank_item = p ->i_at( act->position ); + + // TODO: This should be 144 seconds, rather than 24 (6-second) turns + // but we don't have a seconds time macro? + if( calendar::once_every( 24_turns ) ) { + p->mod_fatigue( 1 ); + if( hand_crank_item.ammo_capacity() > hand_crank_item.ammo_remaining() ) { + hand_crank_item.ammo_set( "battery", hand_crank_item.ammo_remaining() + 1 ); + } + } + if( p->get_fatigue() >= DEAD_TIRED ) { + act->moves_left = 0; + add_msg( m_info, _( "You're too exhausted to keep cranking." ) ); + } + +} + void activity_handlers::vibe_do_turn( player_activity *act, player *p ) { //Using a vibrator takes time (10 minutes), not speed @@ -2094,6 +2125,8 @@ void activity_handlers::start_engines_finish( player_activity *act, player *p ) //Did any engines start? veh->engine_on = started; + //init working engine noise + sfx::do_vehicle_engine_sfx(); if( attempted == 0 ) { add_msg( m_info, _( "The %s doesn't have an engine!" ), veh->name ); @@ -2133,6 +2166,7 @@ void activity_handlers::oxytorch_do_turn( player_activity *act, player *p ) it.ammo_consume( charges_used, p->pos() ); act->values[0] -= static_cast( charges_used ); + sfx::play_activity_sound( "tool", "oxytorch", sfx::get_heard_volume( act->placement ) ); if( calendar::once_every( 2_turns ) ) { sounds::sound( act->placement, 10, sounds::sound_t::destructive_activity, _( "hissssssssss!" ) ); } @@ -2588,6 +2622,21 @@ void activity_handlers::eat_menu_do_turn( player_activity *, player * ) g->eat(); } +void activity_handlers::consume_food_menu_do_turn( player_activity *, player * ) +{ + g->eat( game_menus::inv::consume_food ); +} + +void activity_handlers::consume_drink_menu_do_turn( player_activity *, player * ) +{ + g->eat( game_menus::inv::consume_drink ); +} + +void activity_handlers::consume_meds_menu_do_turn( player_activity *, player * ) +{ + g->eat( game_menus::inv::consume_meds ); +} + void activity_handlers::move_items_do_turn( player_activity *, player * ) { activity_on_turn_move_items(); @@ -2621,7 +2670,7 @@ void activity_handlers::cracking_do_turn( player_activity *act, player *p ) item temporary_item( it.type ); return temporary_item.has_flag( "SAFECRACK" ); } ); - if( !( cracking_tool.size() > 0 || p->has_bionic( bionic_id( "bio_ears" ) ) ) ) { + if( cracking_tool.empty() && !p->has_bionic( bionic_id( "bio_ears" ) ) ) { // We lost our cracking tool somehow, bail out. act->set_to_null(); return; @@ -2819,6 +2868,7 @@ void activity_handlers::eat_menu_finish( player_activity *, player * ) void activity_handlers::hacksaw_do_turn( player_activity *act, player *p ) { + sfx::play_activity_sound( "tool", "hacksaw", sfx::get_heard_volume( act->placement ) ); if( calendar::once_every( 1_minutes ) ) { //~ Sound of a metal sawing tool at work! sounds::sound( act->placement, 15, sounds::sound_t::destructive_activity, _( "grnd grnd grnd" ) ); @@ -2884,6 +2934,7 @@ void activity_handlers::hacksaw_finish( player_activity *act, player *p ) void activity_handlers::chop_tree_do_turn( player_activity *act, player *p ) { + sfx::play_activity_sound( "tool", "axe", sfx::get_heard_volume( act->placement ) ); if( calendar::once_every( 1_minutes ) ) { //~ Sound of a wood chopping tool at work! sounds::sound( act->placement, 15, sounds::sound_t::activity, _( "CHK!" ) ); @@ -2913,13 +2964,13 @@ void activity_handlers::chop_tree_finish( player_activity *act, player *p ) } g->m.ter_set( pos, t_stump ); - const std::vector helpers = g->u.get_crafting_helpers(); const int helpersize = g->u.get_num_crafting_helpers( 3 ); p->mod_stored_nutr( 5 - helpersize ); p->mod_thirst( 5 - helpersize ); p->mod_fatigue( 10 - ( helpersize * 2 ) ); p->add_msg_if_player( m_good, _( "You finish chopping down a tree." ) ); - + // sound of falling tree + sfx::play_variant_sound( "misc", "timber", sfx::get_heard_volume( act->placement ) ); act->set_to_null(); } @@ -2936,7 +2987,6 @@ void activity_handlers::chop_logs_finish( player_activity *act, player *p ) } g->m.ter_set( pos, t_dirt ); - const std::vector helpers = g->u.get_crafting_helpers(); const int helpersize = g->u.get_num_crafting_helpers( 3 ); p->mod_stored_nutr( 5 - helpersize ); p->mod_thirst( 5 - helpersize ); @@ -2948,6 +2998,7 @@ void activity_handlers::chop_logs_finish( player_activity *act, player *p ) void activity_handlers::jackhammer_do_turn( player_activity *act, player *p ) { + sfx::play_activity_sound( "tool", "jackhammer", sfx::get_heard_volume( act->placement ) ); if( calendar::once_every( 1_minutes ) ) { //~ Sound of a jackhammer at work! sounds::sound( act->placement, 15, sounds::sound_t::destructive_activity, _( "TATATATATATATAT!" ) ); @@ -2961,7 +3012,6 @@ void activity_handlers::jackhammer_finish( player_activity *act, player *p ) g->m.destroy( pos, true ); - const std::vector helpers = g->u.get_crafting_helpers(); const int helpersize = g->u.get_num_crafting_helpers( 3 ); p->mod_stored_nutr( 5 - helpersize ); p->mod_thirst( 5 - helpersize ); @@ -2973,6 +3023,7 @@ void activity_handlers::jackhammer_finish( player_activity *act, player *p ) void activity_handlers::dig_do_turn( player_activity *act, player *p ) { + sfx::play_activity_sound( "tool", "shovel", sfx::get_heard_volume( act->placement ) ); if( calendar::once_every( 1_minutes ) ) { //~ Sound of a shovel digging a pit at work! sounds::sound( act->placement, 10, sounds::sound_t::activity, _( "hsh!" ) ); @@ -2982,6 +3033,7 @@ void activity_handlers::dig_do_turn( player_activity *act, player *p ) void activity_handlers::dig_channel_do_turn( player_activity *act, player *p ) { + sfx::play_activity_sound( "tool", "shovel", sfx::get_heard_volume( act->placement ) ); if( calendar::once_every( 1_minutes ) ) { //~ Sound of a shovel digging a pit at work! sounds::sound( act->placement, 10, sounds::sound_t::activity, _( "hsh!" ) ); @@ -3034,7 +3086,6 @@ void activity_handlers::dig_finish( player_activity *act, player *p ) g->m.spawn_items( dump_loc, item_group::items_from( byproducts_item_group, calendar::turn ) ); } - const std::vector helpers = g->u.get_crafting_helpers(); const int helpersize = g->u.get_num_crafting_helpers( 3 ); p->mod_stored_nutr( 5 - helpersize ); p->mod_thirst( 5 - helpersize ); @@ -3073,6 +3124,7 @@ void activity_handlers::dig_channel_finish( player_activity *act, player *p ) void activity_handlers::fill_pit_do_turn( player_activity *act, player *p ) { + sfx::play_activity_sound( "tool", "shovel", 100 ); if( calendar::once_every( 1_minutes ) ) { //~ Sound of a shovel filling a pit or mound at work! sounds::sound( act->placement, 10, sounds::sound_t::activity, _( "hsh!" ) ); @@ -3092,7 +3144,6 @@ void activity_handlers::fill_pit_finish( player_activity *act, player *p ) } else { g->m.ter_set( pos, t_dirt ); } - const std::vector helpers = g->u.get_crafting_helpers(); const int helpersize = g->u.get_num_crafting_helpers( 3 ); p->mod_stored_nutr( 5 - helpersize ); p->mod_thirst( 5 - helpersize ); @@ -3343,7 +3394,7 @@ void activity_handlers::plant_plot_do_turn( player_activity *, player *p ) const auto seeds = get_seeds( tile ); - return std::all_of( seeds.begin(), seeds.end(), [&]( std::string seed ) { + return std::all_of( seeds.begin(), seeds.end(), [&]( const std::string & seed ) { return std::all_of( seed_inv.begin(), seed_inv.end(), [seed]( item * it ) { return it->typeId() != itype_id( seed ); } ); @@ -3353,7 +3404,7 @@ void activity_handlers::plant_plot_do_turn( player_activity *, player *p ) const auto plant_appropriate_seed = [&]( player & p, const tripoint & tile_loc ) { const auto seeds = get_seeds( tile_loc ); std::vector seed_inv = p.items_with( [seeds]( const item & itm ) { - return itm.is_seed() && std::any_of( seeds.begin(), seeds.end(), [itm]( std::string seed ) { + return itm.is_seed() && std::any_of( seeds.begin(), seeds.end(), [itm]( const std::string & seed ) { return itm.typeId() == itype_id( seed ); } ); } ); diff --git a/src/activity_handlers.h b/src/activity_handlers.h index 4dc2706e5cb26..3ccbeb380330d 100644 --- a/src/activity_handlers.h +++ b/src/activity_handlers.h @@ -65,11 +65,15 @@ void pulp_do_turn( player_activity *act, player *p ); void game_do_turn( player_activity *act, player *p ); void start_fire_do_turn( player_activity *act, player *p ); void vibe_do_turn( player_activity *act, player *p ); +void hand_crank_do_turn( player_activity *act, player *p ); void oxytorch_do_turn( player_activity *act, player *p ); void aim_do_turn( player_activity *act, player *p ); void pickup_do_turn( player_activity *act, player *p ); void wear_do_turn( player_activity *act, player *p ); void eat_menu_do_turn( player_activity *act, player *p ); +void consume_food_menu_do_turn( player_activity *act, player *p ); +void consume_drink_menu_do_turn( player_activity *act, player *p ); +void consume_meds_menu_do_turn( player_activity *act, player *p ); void move_items_do_turn( player_activity *act, player *p ); void move_loot_do_turn( player_activity *act, player *p ); void adv_inventory_do_turn( player_activity *act, player *p ); @@ -129,6 +133,7 @@ void try_sleep_finish( player_activity *act, player *p ); void disassemble_finish( player_activity *act, player *p ); void build_finish( player_activity *act, player *p ); void vibe_finish( player_activity *act, player *p ); +void hand_crank_finish( player_activity *act, player *p ); void atm_finish( player_activity *act, player *p ); void aim_finish( player_activity *act, player *p ); void eat_menu_finish( player_activity *act, player *p ); diff --git a/src/activity_item_handling.cpp b/src/activity_item_handling.cpp index 78dc365f894ff..45186f31aa945 100644 --- a/src/activity_item_handling.cpp +++ b/src/activity_item_handling.cpp @@ -1,7 +1,7 @@ #include "activity_handlers.h" // IWYU pragma: associated -#include -#include +#include +#include #include #include #include @@ -45,7 +45,7 @@ #include "item_stack.h" #include "line.h" #include "units.h" -#include "mtype.h" +#include "type_id.h" void cancel_aim_processing(); @@ -1058,7 +1058,8 @@ void activity_on_turn_move_loot( player_activity &, player &p ) continue; } - auto items = std::vector(); + // the boolean in this pair being true indicates the item is from a vehicle storage space + auto items = std::vector>(); //Check source for cargo part //map_stack and vehicle_stack are different types but inherit from item_stack @@ -1068,25 +1069,31 @@ void activity_on_turn_move_loot( player_activity &, player &p ) src_veh = &vp->vehicle(); src_part = vp->part_index(); for( auto &it : src_veh->get_items( src_part ) ) { - if( !it.made_of_from_type( LIQUID ) ) { // skip unpickable liquid - items.push_back( &it ); - } + items.push_back( std::make_pair( &it, true ) ); } } else { src_veh = nullptr; src_part = -1; - for( auto &it : g->m.i_at( src_loc ) ) { - if( !it.made_of_from_type( LIQUID ) ) { // skip unpickable liquid - items.push_back( &it ); - } - } + } + for( auto &it : g->m.i_at( src_loc ) ) { + items.push_back( std::make_pair( &it, false ) ); } //Skip items that have already been processed for( auto it = items.begin() + mgr.get_num_processed( src ); it < items.end(); it++ ) { mgr.increment_num_processed( src ); - const auto id = mgr.get_near_zone_type_for_item( **it, abspos ); + const auto thisitem = it->first; + + if( thisitem->made_of_from_type( LIQUID ) ) { // skip unpickable liquid + continue; + } + + // Only if it's from a vehicle do we use the vehicle source location information. + vehicle *this_veh = it->second ? src_veh : nullptr; + const int this_part = it->second ? src_part : -1; + + const auto id = mgr.get_near_zone_type_for_item( *thisitem, abspos ); // checks whether the item is already on correct loot zone or not // if it is, we can skip such item, if not we move the item to correct pile @@ -1120,7 +1127,7 @@ void activity_on_turn_move_loot( player_activity &, player &p ) free_space = g->m.free_volume( dest_loc ); } // check free space at destination - if( free_space >= ( *it )->volume() ) { + if( free_space >= thisitem->volume() ) { // before we move any item, check if player is at or // adjacent to the loot source tile if( !is_adjacent_or_closer ) { @@ -1160,8 +1167,7 @@ void activity_on_turn_move_loot( player_activity &, player &p ) mgr.end_sort(); return; } - move_item( p, **it, ( *it )->count(), src_loc, dest_loc, src_veh, - src_part ); + move_item( p, *thisitem, thisitem->count(), src_loc, dest_loc, this_veh, this_part ); // moved item away from source so decrement mgr.decrement_num_processed( src ); diff --git a/src/activity_type.cpp b/src/activity_type.cpp index 41335e2a3b219..4d996fc3ffc78 100644 --- a/src/activity_type.cpp +++ b/src/activity_type.cpp @@ -10,6 +10,7 @@ #include "debug.h" #include "json.h" #include "translations.h" +#include "sounds.h" #include "player_activity.h" // activity_type functions @@ -96,6 +97,7 @@ bool activity_type::call_finish( player_activity *act, player *p ) const const auto &pair = activity_handlers::finish_functions.find( id_ ); if( pair != activity_handlers::finish_functions.end() ) { pair->second( act, p ); + sfx::end_activity_sounds(); // kill activity sounds at finish return true; } return false; diff --git a/src/addiction.cpp b/src/addiction.cpp index 7e834c05cdbb7..163b53280e381 100644 --- a/src/addiction.cpp +++ b/src/addiction.cpp @@ -10,7 +10,6 @@ #include "rng.h" #include "translations.h" #include "calendar.h" -#include "creature.h" #include "enums.h" const efftype_id effect_hallu( "hallu" ); diff --git a/src/addiction.h b/src/addiction.h index 3657882cf4f67..b9627ae1ecbb9 100644 --- a/src/addiction.h +++ b/src/addiction.h @@ -4,15 +4,12 @@ #include -#include "string_id.h" +#include "type_id.h" class addiction; class player; enum add_type : int; -class morale_type_data; - -using morale_type = string_id; constexpr int MIN_ADDICTION_LEVEL = 3; // Minimum intensity before effects are seen constexpr int MAX_ADDICTION_LEVEL = 20; diff --git a/src/advanced_inv.cpp b/src/advanced_inv.cpp index f09822a9a2466..463225650c80b 100644 --- a/src/advanced_inv.cpp +++ b/src/advanced_inv.cpp @@ -32,9 +32,9 @@ #include "inventory.h" #include "item.h" #include "optional.h" -#include "pldata.h" #include "ret_val.h" #include "string_id.h" +#include "type_id.h" #if defined(__ANDROID__) # include diff --git a/src/advanced_inv.h b/src/advanced_inv.h index 783b8c2f815a4..c8854d73fb4af 100644 --- a/src/advanced_inv.h +++ b/src/advanced_inv.h @@ -2,8 +2,8 @@ #ifndef ADVANCED_INV_H #define ADVANCED_INV_H -#include -#include +#include +#include #include #include #include @@ -101,11 +101,11 @@ struct advanced_inv_area { int max_size; advanced_inv_area( aim_location id ) : id( id ) {} - advanced_inv_area( aim_location id, int hscreenx, int hscreeny, tripoint off, std::string name, - std::string shortname ) : id( id ), hscreenx( hscreenx ), - hscreeny( hscreeny ), off( off ), name( name ), shortname( shortname ), pos( 0, 0, 0 ), - canputitemsloc( false ), veh( nullptr ), vstor( -1 ), volume( 0_ml ), weight( 0_gram ), - max_size( 0 ) { + advanced_inv_area( aim_location id, int hscreenx, int hscreeny, tripoint off, + const std::string &name, const std::string &shortname ) : id( id ), + hscreenx( hscreenx ), hscreeny( hscreeny ), off( off ), name( name ), shortname( shortname ), + pos( 0, 0, 0 ), canputitemsloc( false ), veh( nullptr ), vstor( -1 ), volume( 0_ml ), + weight( 0_gram ), max_size( 0 ) { } void init(); diff --git a/src/ammo.cpp b/src/ammo.cpp index c81fc74f8eae3..59a3b6deff4cb 100644 --- a/src/ammo.cpp +++ b/src/ammo.cpp @@ -7,6 +7,7 @@ #include "json.h" #include "translations.h" #include "string_id.h" +#include "type_id.h" namespace { diff --git a/src/anatomy.cpp b/src/anatomy.cpp index 884c73c9601ce..2ce045c175302 100644 --- a/src/anatomy.cpp +++ b/src/anatomy.cpp @@ -1,6 +1,6 @@ #include "anatomy.h" -#include +#include #include #include #include diff --git a/src/animation.cpp b/src/animation.cpp index 2ca57c1b43ecb..c8ef479cf681d 100644 --- a/src/animation.cpp +++ b/src/animation.cpp @@ -15,6 +15,7 @@ #include "game_constants.h" #include "posix_time.h" #include "translations.h" +#include "type_id.h" #if defined(TILES) #include @@ -229,14 +230,14 @@ void draw_custom_explosion_curses( game &g, } // namespace #if defined(TILES) -void game::draw_explosion( const tripoint &p, const int r, const nc_color &col ) +void explosion_handler::draw_explosion( const tripoint &p, const int r, const nc_color &col ) { if( test_mode ) { return; // avoid segfault from null tilecontext in tests } if( !use_tiles ) { - draw_explosion_curses( *this, p, r, col ); + draw_explosion_curses( *g, p, r, col ); return; } @@ -259,13 +260,14 @@ void game::draw_explosion( const tripoint &p, const int r, const nc_color &col ) } } #else -void game::draw_explosion( const tripoint &p, const int r, const nc_color &col ) +void explosion_handler::draw_explosion( const tripoint &p, const int r, const nc_color &col ) { - draw_explosion_curses( *this, p, r, col ); + draw_explosion_curses( *g, p, r, col ); } #endif -void game::draw_custom_explosion( const tripoint &, const std::map &all_area ) +void explosion_handler::draw_custom_explosion( const tripoint &, + const std::map &all_area ) { if( test_mode ) { return; // avoid segfault from null tilecontext in tests @@ -282,17 +284,17 @@ void game::draw_custom_explosion( const tripoint &, const std::mapu, pr.first ); if( relative_point.z == 0 ) { neighbors[pr.first] = explosion_tile{ N_NO_NEIGHBORS, pr.second }; } } } else { // In tiles mode, the coordinates have to be absolute - const tripoint view_center = relative_view_pos( u, u.pos() ); + const tripoint view_center = relative_view_pos( g->u, g->u.pos() ); for( const auto &pr : all_area ) { // Relative point is only used for z level check - const tripoint relative_point = relative_view_pos( u, pr.first ); + const tripoint relative_point = relative_view_pos( g->u, pr.first ); if( relative_point.z == view_center.z ) { neighbors[pr.first] = explosion_tile{ N_NO_NEIGHBORS, pr.second }; } @@ -300,7 +302,7 @@ void game::draw_custom_explosion( const tripoint &, const std::mapu, pr.first ); if( relative_point.z == 0 ) { neighbors[pr.first] = explosion_tile{ N_NO_NEIGHBORS, pr.second }; } @@ -379,7 +381,7 @@ void game::draw_custom_explosion( const tripoint &, const std::mapvoid_custom_explosion(); #else - draw_custom_explosion_curses( *this, layers ); + draw_custom_explosion_curses( *g, layers ); #endif } diff --git a/src/armor_layers.cpp b/src/armor_layers.cpp index b0eebe52b2c60..2c76c1555e5b8 100644 --- a/src/armor_layers.cpp +++ b/src/armor_layers.cpp @@ -231,6 +231,7 @@ void draw_mid_pane( const catacurses::window &w_sort_middle, bad_item_name, body_parts ); } + // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores) i += fold_and_print( w_sort_middle, i, 0, win_width, c_light_gray, message ); } } diff --git a/src/artifact.cpp b/src/artifact.cpp index 75b1843c657cc..1ad07d3a8ab6d 100644 --- a/src/artifact.cpp +++ b/src/artifact.cpp @@ -1,6 +1,6 @@ #include "artifact.h" -#include +#include #include #include #include @@ -22,7 +22,7 @@ #include "iuse.h" #include "optional.h" #include "units.h" -#include "item.h" +#include "type_id.h" template inline units::quantity rng( const units::quantity &min, diff --git a/src/auto_pickup.cpp b/src/auto_pickup.cpp index 6fe8fcd74f084..8a16695287c7a 100644 --- a/src/auto_pickup.cpp +++ b/src/auto_pickup.cpp @@ -1,6 +1,6 @@ #include "auto_pickup.h" -#include +#include #include #include #include diff --git a/src/auto_pickup.h b/src/auto_pickup.h index 7ca847fa070c9..222f63749e6cd 100644 --- a/src/auto_pickup.h +++ b/src/auto_pickup.h @@ -9,7 +9,7 @@ #include #include "enums.h" -#include "material.h" +#include "type_id.h" class JsonOut; class JsonIn; @@ -43,7 +43,7 @@ class auto_pickup this->bExclude = false; } - cRules( std::string sRuleIn, bool bActiveIn, bool bExcludeIn ) { + cRules( const std::string &sRuleIn, bool bActiveIn, bool bExcludeIn ) { this->sRule = sRuleIn; this->bActive = bActiveIn; this->bExclude = bExcludeIn; diff --git a/src/ballistics.cpp b/src/ballistics.cpp index e8849c9edbac0..5b729fa729fdb 100644 --- a/src/ballistics.cpp +++ b/src/ballistics.cpp @@ -1,7 +1,7 @@ #include "ballistics.h" -#include -#include +#include +#include #include #include #include @@ -28,11 +28,10 @@ #include "debug.h" #include "enums.h" #include "item.h" -#include "itype.h" #include "optional.h" #include "translations.h" #include "units.h" -#include "mtype.h" +#include "type_id.h" const efftype_id effect_bounced( "bounced" ); @@ -58,7 +57,22 @@ static void drop_or_embed_projectile( const dealt_projectile_attack &attack ) } // TODO: Non-glass breaking // TODO: Wine glass breaking vs. entire sheet of glass breaking - sounds::sound( pt, 16, sounds::sound_t::combat, _( "glass breaking!" ) ); + sounds::sound( pt, 16, sounds::sound_t::combat, _( "glass breaking!" ), false, "bullet_hit", + "hit_glass" ); + return; + } + + if( effects.count( "BURST" ) ) { + // Drop the contents, not the thrown item + if( g->u.sees( pt ) ) { + add_msg( _( "The %s bursts!" ), drop_item.tname() ); + } + + for( const item &i : drop_item.contents ) { + g->m.add_item_or_charges( pt, i ); + } + + //TODO: Sound return; } @@ -104,9 +118,9 @@ static void drop_or_embed_projectile( const dealt_projectile_attack &attack ) if( effects.count( "HEAVY_HIT" ) ) { if( g->m.has_flag( "LIQUID", pt ) ) { - sounds::sound( pt, 10, sounds::sound_t::combat, _( "splash!" ) ); + sounds::sound( pt, 10, sounds::sound_t::combat, _( "splash!" ), false, "bullet_hit", "hit_water" ); } else { - sounds::sound( pt, 8, sounds::sound_t::combat, _( "thud." ) ); + sounds::sound( pt, 8, sounds::sound_t::combat, _( "thud." ), false, "bullet_hit", "hit_wall" ); } const trap &tr = g->m.tr_at( pt ); if( tr.triggered_by_item( dropped_item ) ) { @@ -399,7 +413,7 @@ dealt_projectile_attack projectile_attack( const projectile &proj_arg, const tri apply_ammo_effects( tp, proj.proj_effects ); const auto &expl = proj.get_custom_explosion(); if( expl.power > 0.0f ) { - g->explosion( tp, proj.get_custom_explosion() ); + explosion_handler::explosion( tp, proj.get_custom_explosion() ); } // TODO: Move this outside now that we have hit point in return values? diff --git a/src/basecamp.cpp b/src/basecamp.cpp index b933fcb750073..f6e3a1976e242 100644 --- a/src/basecamp.cpp +++ b/src/basecamp.cpp @@ -29,8 +29,8 @@ #include "calendar.h" #include "color.h" #include "compatibility.h" -#include "omdata.h" #include "string_id.h" +#include "type_id.h" static const std::string base_dir = "[B]"; static const std::string prefix = "faction_base_"; @@ -66,8 +66,8 @@ basecamp::basecamp( const std::string &name_, const tripoint &omt_pos_ ): name( } basecamp::basecamp( const std::string &name_, const tripoint &bb_pos_, - std::vector directions_, - std::map expansions_ ): + const std::vector &directions_, + const std::map &expansions_ ): directions( directions_ ), name( name_ ), bb_pos( bb_pos_ ), expansions( expansions_ ) { } diff --git a/src/basecamp.h b/src/basecamp.h index de6cd7446a0ee..e8223f4990aae 100644 --- a/src/basecamp.h +++ b/src/basecamp.h @@ -2,7 +2,7 @@ #ifndef BASECAMP_H #define BASECAMP_H -#include +#include #include #include #include @@ -42,8 +42,8 @@ class basecamp basecamp(); basecamp( const std::string &name_, const tripoint &omt_pos ); basecamp( const std::string &name_, const tripoint &bb_pos_, - std::vector directions_, - std::map expansions_ ); + const std::vector &directions_, + const std::map &expansions_ ); inline bool is_valid() const { return !name.empty() && omt_pos != tripoint_zero; diff --git a/src/bionics.cpp b/src/bionics.cpp index c39587b6a7df1..8c2c52a67d98f 100644 --- a/src/bionics.cpp +++ b/src/bionics.cpp @@ -1,8 +1,8 @@ #include "bionics.h" -#include -#include -#include +#include +#include +#include #include //std::min #include #include @@ -15,8 +15,10 @@ #include "cata_utility.h" #include "debug.h" #include "effect.h" +#include "explosion.h" #include "field.h" #include "game.h" +#include "handle_liquid.h" #include "input.h" #include "item.h" #include "itype.h" @@ -25,7 +27,6 @@ #include "map_iterator.h" #include "messages.h" #include "morale_types.h" -#include "mutation.h" #include "options.h" #include "output.h" #include "overmapbuffer.h" @@ -41,7 +42,6 @@ #include "weather.h" #include "weather_gen.h" #include "calendar.h" -#include "character.h" #include "color.h" #include "cursesdef.h" #include "damage.h" @@ -51,7 +51,6 @@ #include "pimpl.h" #include "pldata.h" #include "units.h" -#include "mtype.h" const skill_id skilll_electronics( "electronics" ); const skill_id skilll_firstaid( "firstaid" ); @@ -244,7 +243,8 @@ bool player::activate_bionic( int b, bool eff_only ) } } else if( bio.id == "bio_resonator" ) { //~Sound of a bionic sonic-resonator shaking the area - sounds::sound( pos(), 30, sounds::sound_t::combat, _( "VRRRRMP!" ) ); + sounds::sound( pos(), 30, sounds::sound_t::combat, _( "VRRRRMP!" ), false, "bionic", + "bio_resonator" ); for( const tripoint &bashpoint : g->m.points_in_radius( pos(), 1 ) ) { g->m.bash( bashpoint, 110 ); g->m.bash( bashpoint, 110 ); // Multibash effect, so that doors &c will fall @@ -389,7 +389,7 @@ bool player::activate_bionic( int b, bool eff_only ) if( water_charges == 0 ) { add_msg_if_player( m_bad, _( "There was not enough moisture in the air from which to draw water!" ) ); - } else if( !g->consume_liquid( water ) ) { + } else if( !liquid_handler::consume_liquid( water ) ) { charge_power( bionics[bionic_id( "bio_evap" )].power_activate ); } } else if( bio.id == "bio_torsionratchet" ) { @@ -425,7 +425,7 @@ bool player::activate_bionic( int b, bool eff_only ) } else if( bio.id == "bio_emp" ) { g->refresh_all(); if( const cata::optional pnt = choose_adjacent( _( "Create an EMP where?" ) ) ) { - g->emp_blast( *pnt ); + explosion_handler::emp_blast( *pnt ); mod_moves( -100 ); } else { charge_power( bionics[bionic_id( "bio_emp" )].power_activate ); @@ -433,7 +433,8 @@ bool player::activate_bionic( int b, bool eff_only ) } else if( bio.id == "bio_hydraulics" ) { add_msg( m_good, _( "Your muscles hiss as hydraulic strength fills them!" ) ); //~ Sound of hissing hydraulic muscle! (not quite as loud as a car horn) - sounds::sound( pos(), 19, sounds::sound_t::activity, _( "HISISSS!" ) ); + sounds::sound( pos(), 19, sounds::sound_t::activity, _( "HISISSS!" ), false, "bionic", + "bio_hydraulics" ); } else if( bio.id == "bio_water_extractor" ) { bool extracted = false; for( auto it = g->m.i_at( pos() ).begin(); @@ -446,7 +447,7 @@ bool player::activate_bionic( int b, bool eff_only ) colorize( it->tname(), it->color_in_inventory() ) ) ) { item water( "water_clean", calendar::turn, avail ); water.set_item_temperature( 0.00001 * it->temperature ); - if( g->consume_liquid( water ) ) { + if( liquid_handler::consume_liquid( water ) ) { extracted = true; it->set_var( "remaining_water", static_cast( water.charges ) ); } @@ -507,10 +508,10 @@ bool player::activate_bionic( int b, bool eff_only ) mod_moves( -100 ); } else if( bio.id == "bio_flashbang" ) { - g->flashbang( pos(), true ); + explosion_handler::flashbang( pos(), true ); mod_moves( -100 ); } else if( bio.id == "bio_shockwave" ) { - g->shockwave( pos(), 3, 4, 2, 8, true ); + explosion_handler::shockwave( pos(), 3, 4, 2, 8, true ); add_msg_if_player( m_neutral, _( "You unleash a powerful shockwave!" ) ); mod_moves( -100 ); } else if( bio.id == "bio_meteorologist" ) { @@ -760,7 +761,8 @@ void player::process_bionic( int b ) } } else if( bio.id == "bio_hydraulics" ) { // Sound of hissing hydraulic muscle! (not quite as loud as a car horn) - sounds::sound( pos(), 19, sounds::sound_t::activity, _( "HISISSS!" ) ); + sounds::sound( pos(), 19, sounds::sound_t::activity, _( "HISISSS!" ), false, "bionic", + "bio_hydraulics" ); } else if( bio.id == "bio_nanobots" ) { for( int i = 0; i < num_hp_parts; i++ ) { if( power_level >= 5 && hp_cur[i] > 0 && hp_cur[i] < hp_max[i] ) { @@ -1656,7 +1658,7 @@ void player::introduce_into_anesthesia( const time_duration &duration, player &i _( "You feel excited as the Autodoc slices painlessly into you. You enjoy the sight of scalpels slicing you apart, but as operation proceeds you suddenly feel tired and pass out." ) ); } else { add_msg_if_player( m_mixed, - _( "You stay very, very still, focusing intently on an interesting rock on the ceiling, as the Autodoc slices painlessly into you. Mercifully, you pass out when the blades reach your line of sight." ) ); + _( "You stay very, very still, focusing intently on an interesting stain on the ceiling, as the Autodoc slices painlessly into you. Mercifully, you pass out when the blades reach your line of sight." ) ); } } diff --git a/src/bionics.h b/src/bionics.h index 647cf6061bb10..fc8799e557800 100644 --- a/src/bionics.h +++ b/src/bionics.h @@ -2,7 +2,7 @@ #ifndef BIONICS_H #define BIONICS_H -#include +#include #include #include #include @@ -11,20 +11,12 @@ #include "bodypart.h" #include "string_id.h" +#include "type_id.h" class player; class JsonObject; class JsonIn; class JsonOut; -struct quality; - -using quality_id = string_id; -struct mutation_branch; - -using trait_id = string_id; -struct bionic_data; - -using bionic_id = string_id; using itype_id = std::string; struct bionic_data { @@ -117,7 +109,6 @@ struct bionic { /* Ammount of ammo actually held inside by this bionic gun in deactivated state */ unsigned int ammo_count = 0; - bionic() : id( "bio_batteries" ) { } bionic( bionic_id pid, char pinvlet ) diff --git a/src/bionics_ui.cpp b/src/bionics_ui.cpp index bdded6f65c908..06096e1084bbd 100644 --- a/src/bionics_ui.cpp +++ b/src/bionics_ui.cpp @@ -11,6 +11,7 @@ #include "string_formatter.h" #include "translations.h" #include "options.h" +#include "string_id.h" // '!', '-' and '=' are uses as default bindings in the menu const invlet_wrapper @@ -144,6 +145,7 @@ void draw_description( const catacurses::window &win, const bionic &bio ) // TODO: Unhide when enforcing limits if( get_option < bool >( "CBM_SLOTS_ENABLED" ) ) { const bool each_bp_on_new_line = ypos + static_cast( num_bp ) + 1 < getmaxy( win ); + // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores) ypos += fold_and_print( win, ypos, 0, width, c_light_gray, list_occupied_bps( bio.id, _( "This bionic occupies the following body parts:" ), each_bp_on_new_line ) ); @@ -343,7 +345,8 @@ void player::power_bionics() bionic_menu_mode menu_mode = ACTIVATING; // offset for display: bionic with index i is drawn at y=list_start_y+i // drawing the bionics starts with bionic[scroll_position] - const int list_start_y = HEADER_LINE_Y;// - scroll_position; + // scroll_position; + const int list_start_y = HEADER_LINE_Y; int half_list_view_location = LIST_HEIGHT / 2; int max_scroll_position = std::max( 0, static_cast( active.size() ) ); diff --git a/src/bodypart.h b/src/bodypart.h index 04eb8198e88cd..f0c9d84ec38da 100644 --- a/src/bodypart.h +++ b/src/bodypart.h @@ -2,7 +2,7 @@ #ifndef BODYPART_H #define BODYPART_H -#include +#include #include #include #include diff --git a/src/cata_tiles.cpp b/src/cata_tiles.cpp index 0f2b1ca11033b..88786e8d274ed 100644 --- a/src/cata_tiles.cpp +++ b/src/cata_tiles.cpp @@ -1,8 +1,8 @@ #if defined(TILES) #include "cata_tiles.h" -#include -#include +#include +#include #include #include #include @@ -61,6 +61,7 @@ #include "string_id.h" #include "tileray.h" #include "translations.h" +#include "type_id.h" #define dbg(x) DebugLog((DebugLevel)(x),D_SDL) << __FILE__ << ":" << __LINE__ << ": " @@ -247,7 +248,7 @@ void cata_tiles::reinit_minimap() minimap_reinit_flag = true; } -static void get_tile_information( std::string config_path, std::string &json_path, +static void get_tile_information( const std::string &config_path, std::string &json_path, std::string &tileset_path ) { const std::string default_json = FILENAMES["defaulttilejson"]; @@ -428,7 +429,7 @@ static void extend_vector_by( std::vector &vec, const size_t additional_size vec.resize( vec.size() + additional_size ); } -void tileset_loader::load_tileset( std::string img_path ) +void tileset_loader::load_tileset( const std::string &img_path ) { const SDL_Surface_Ptr tile_atlas = load_image( img_path.c_str() ); assert( tile_atlas ); @@ -2635,7 +2636,7 @@ bool cata_tiles::draw_zone_mark( const tripoint &p, lit_level ll, int &height_3d return false; } - const auto mgr = zone_manager::get_manager(); + const zone_manager &mgr = zone_manager::get_manager(); const tripoint &abs = g->m.getabs( p ); const auto zone = mgr.get_bottom_zone( abs ); diff --git a/src/cata_tiles.h b/src/cata_tiles.h index 59bdef47a953b..0b54ef4092944 100644 --- a/src/cata_tiles.h +++ b/src/cata_tiles.h @@ -2,14 +2,13 @@ #ifndef CATA_TILES_H #define CATA_TILES_H -#include +#include #include #include #include #include #include #include -#include #include #include "sdl_wrappers.h" @@ -99,7 +98,6 @@ extern bool alt_rect_tex_enabled; extern void draw_alt_rect( const SDL_Renderer_Ptr &renderer, const SDL_Rect &rect, Uint32 r, Uint32 g, Uint32 b ); - // a texture pool to avoid recreating textures every time player changes their view // at most 142 out of 144 textures can be in use due to regular player movement // (moving from submap corner to new corner) with MAPSIZE = 11 @@ -284,7 +282,7 @@ class tileset_loader * Returns the number of tiles that have been loaded from this tileset image * @throw std::exception If the image can not be loaded. */ - void load_tileset( std::string path ); + void load_tileset( const std::string &path ); /** * Load tiles from json data.This expects a "tiles" array in * config. That array should contain all the tile definition that diff --git a/src/cata_utility.cpp b/src/cata_utility.cpp index 632590522008c..0fdf36ae18ff5 100644 --- a/src/cata_utility.cpp +++ b/src/cata_utility.cpp @@ -1,7 +1,7 @@ #include "cata_utility.h" -#include -#include +#include +#include #include #include #include diff --git a/src/catacharset.h b/src/catacharset.h index cc199c8920103..c118ac9c619a8 100644 --- a/src/catacharset.h +++ b/src/catacharset.h @@ -2,7 +2,7 @@ #ifndef CATACHARSET_H #define CATACHARSET_H -#include +#include #include #include diff --git a/src/character.cpp b/src/character.cpp index 7b03dc10239cf..f52d7c31c83f7 100644 --- a/src/character.cpp +++ b/src/character.cpp @@ -1,7 +1,7 @@ #include "character.h" -#include -#include +#include +#include #include #include #include @@ -1072,25 +1072,31 @@ int Character::best_nearby_lifting_assist( const tripoint &world_pos ) const units::mass Character::weight_carried_with_tweaks( const item_tweaks &tweaks ) const { const std::map empty; - const auto &without = tweaks.without_items ? tweaks.without_items->get() : empty; + const std::map &without = tweaks.without_items ? tweaks.without_items->get() : + empty; units::mass ret = 0_gram; - if( !without.count( &weapon ) ) { - - const auto thisweight = weapon.weight(); - const auto liftrequirement = ceil( units::to_gram( thisweight ) / units::to_gram - ( TOOL_LIFT_FACTOR ) ); - if( g->new_game || best_nearby_lifting_assist() < liftrequirement ) { - ret += thisweight; - } - } for( auto &i : worn ) { if( !without.count( &i ) ) { ret += i.weight(); } } - const auto &i = tweaks.replace_inv ? tweaks.replace_inv->get() : inv; + const inventory &i = tweaks.replace_inv ? tweaks.replace_inv->get() : inv; ret += i.weight_without( without ); + + if( !without.count( &weapon ) ) { + + const units::mass thisweight = weapon.weight(); + if( thisweight + ret > weight_capacity() ) { + const float liftrequirement = ceil( units::to_gram( thisweight ) / units::to_gram + ( TOOL_LIFT_FACTOR ) ); + if( g->new_game || best_nearby_lifting_assist() < liftrequirement ) { + ret += thisweight; + } + } else { + ret += thisweight; + } + } return ret; } @@ -2448,6 +2454,15 @@ std::string Character::get_name() const return name; } +std::vector Character::get_grammatical_genders() const +{ + if( male ) { + return { "m" }; + } else { + return { "f" }; + } +} + nc_color Character::symbol_color() const { nc_color basic = basic_symbol_color(); diff --git a/src/character.h b/src/character.h index 25bcf0007f4a3..589e9c8e4233b 100644 --- a/src/character.h +++ b/src/character.h @@ -2,7 +2,7 @@ #ifndef CHARACTER_H #define CHARACTER_H -#include +#include #include #include #include @@ -30,16 +30,13 @@ #include "optional.h" #include "string_formatter.h" #include "string_id.h" +#include "type_id.h" #include "units.h" -class Skill; struct pathfinding_settings; class item_location; - -using skill_id = string_id; class SkillLevel; class SkillLevelMap; - enum field_id : int; class JsonObject; class JsonIn; @@ -47,9 +44,6 @@ class JsonOut; class vehicle; struct mutation_branch; class bionic_collection; -struct bionic_data; - -using bionic_id = string_id; enum vision_modes { DEBUG_NIGHTVISION, @@ -405,7 +399,7 @@ class Character : public Creature, public visitable private: /** Retrieves a stat mod of a mutation. */ - int get_mod( const trait_id &mut, std::string arg ) const; + int get_mod( const trait_id &mut, const std::string &arg ) const; /** Applies skill-based boosts to stats **/ void apply_skill_boost(); @@ -694,6 +688,8 @@ class Character : public Creature, public visitable std::string get_name() const override; + std::vector get_grammatical_genders() const override; + /** * It is supposed to hide the query_yn to simplify player vs. npc code. */ diff --git a/src/chkjson/chkjson.cpp b/src/chkjson/chkjson.cpp index afe4bbc504300..75a1712aa9e26 100644 --- a/src/chkjson/chkjson.cpp +++ b/src/chkjson/chkjson.cpp @@ -5,8 +5,8 @@ */ #include #include -#include -#include +#include +#include #include // for strcmp #include // for stack (obviously) #include diff --git a/src/clzones.cpp b/src/clzones.cpp index bd91da392e616..3b5ec843cf863 100644 --- a/src/clzones.cpp +++ b/src/clzones.cpp @@ -1,6 +1,7 @@ #include "clzones.h" -#include +#include +#include #include #include #include @@ -374,9 +375,9 @@ bool zone_manager::has_type( const zone_type_id &type ) const return types.count( type ) > 0; } -bool zone_manager::has_defined( const zone_type_id &type ) const +bool zone_manager::has_defined( const zone_type_id &type, const faction_id &fac ) const { - const auto &type_iter = area_cache.find( type ); + const auto &type_iter = area_cache.find( zone_data::make_type_hash( type, fac ) ); return type_iter != area_cache.end(); } @@ -389,8 +390,8 @@ void zone_manager::cache_data() continue; } - const zone_type_id &type = elem.get_type(); - auto &cache = area_cache[type]; + const std::string &type_hash = elem.get_type_hash(); + auto &cache = area_cache[type_hash]; tripoint start = elem.get_start_point(); tripoint end = elem.get_end_point(); @@ -415,8 +416,8 @@ void zone_manager::cache_vzones() continue; } - const zone_type_id &type = elem->get_type(); - auto &cache = vzone_cache[type]; + const std::string &type_hash = elem->get_type_hash(); + auto &cache = area_cache[type_hash]; tripoint start = elem->get_start_point(); tripoint end = elem->get_end_point(); @@ -432,9 +433,10 @@ void zone_manager::cache_vzones() } } -std::unordered_set zone_manager::get_point_set( const zone_type_id &type ) const +std::unordered_set zone_manager::get_point_set( const zone_type_id &type, + const faction_id &fac ) const { - const auto &type_iter = area_cache.find( type ); + const auto &type_iter = area_cache.find( zone_data::make_type_hash( type, fac ) ); if( type_iter == area_cache.end() ) { return std::unordered_set(); } @@ -442,10 +444,11 @@ std::unordered_set zone_manager::get_point_set( const zone_type_id &ty return type_iter->second; } -std::unordered_set zone_manager::get_vzone_set( const zone_type_id &type ) const +std::unordered_set zone_manager::get_vzone_set( const zone_type_id &type, + const faction_id &fac ) const { //Only regenerate the vehicle zone cache if any vehicles have moved - const auto &type_iter = vzone_cache.find( type ); + const auto &type_iter = vzone_cache.find( zone_data::make_type_hash( type, fac ) ); if( type_iter == vzone_cache.end() ) { return std::unordered_set(); } @@ -453,16 +456,18 @@ std::unordered_set zone_manager::get_vzone_set( const zone_type_id &ty return type_iter->second; } -bool zone_manager::has( const zone_type_id &type, const tripoint &where ) const +bool zone_manager::has( const zone_type_id &type, const tripoint &where, + const faction_id &fac ) const { - const auto &point_set = get_point_set( type ); - const auto &vzone_set = get_vzone_set( type ); + const auto &point_set = get_point_set( type, fac ); + const auto &vzone_set = get_vzone_set( type, fac ); return point_set.find( where ) != point_set.end() || vzone_set.find( where ) != vzone_set.end(); } -bool zone_manager::has_near( const zone_type_id &type, const tripoint &where, int range ) const +bool zone_manager::has_near( const zone_type_id &type, const tripoint &where, int range, + const faction_id &fac ) const { - const auto &point_set = get_point_set( type ); + const auto &point_set = get_point_set( type, fac ); for( auto &point : point_set ) { if( point.z == where.z ) { if( square_dist( point, where ) <= range ) { @@ -471,7 +476,7 @@ bool zone_manager::has_near( const zone_type_id &type, const tripoint &where, in } } - const auto &vzone_set = get_vzone_set( type ); + const auto &vzone_set = get_vzone_set( type, fac ); for( auto &point : vzone_set ) { if( point.z == where.z ) { if( square_dist( point, where ) <= range ) { @@ -500,9 +505,9 @@ bool zone_manager::has_loot_dest_near( const tripoint &where ) const } std::unordered_set zone_manager::get_near( const zone_type_id &type, - const tripoint &where, int range ) const + const tripoint &where, int range, const faction_id &fac ) const { - const auto &point_set = get_point_set( type ); + const auto &point_set = get_point_set( type, fac ); auto near_point_set = std::unordered_set(); for( auto &point : point_set ) { @@ -513,7 +518,7 @@ std::unordered_set zone_manager::get_near( const zone_type_id &type, } } - const auto &vzone_set = get_vzone_set( type ); + const auto &vzone_set = get_vzone_set( type, fac ); for( auto &point : vzone_set ) { if( point.z == where.z ) { if( square_dist( point, where ) <= range ) { @@ -526,7 +531,7 @@ std::unordered_set zone_manager::get_near( const zone_type_id &type, } cata::optional zone_manager::get_nearest( const zone_type_id &type, const tripoint &where, - int range ) const + int range, const faction_id &fac ) const { if( range < 0 ) { return cata::nullopt; @@ -534,7 +539,7 @@ cata::optional zone_manager::get_nearest( const zone_type_id &type, co tripoint nearest_pos = tripoint( INT_MIN, INT_MIN, INT_MIN ); int nearest_dist = range + 1; - const std::unordered_set &point_set = get_point_set( type ); + const std::unordered_set &point_set = get_point_set( type, fac ); for( const tripoint &p : point_set ) { int cur_dist = square_dist( p, where ); if( cur_dist < nearest_dist ) { @@ -546,7 +551,7 @@ cata::optional zone_manager::get_nearest( const zone_type_id &type, co } } - const std::unordered_set &vzone_set = get_vzone_set( type ); + const std::unordered_set &vzone_set = get_vzone_set( type, fac ); for( const tripoint &p : vzone_set ) { int cur_dist = square_dist( p, where ); if( cur_dist < nearest_dist ) { @@ -662,12 +667,12 @@ zone_type_id zone_manager::get_near_zone_type_for_item( const item &it, } std::vector zone_manager::get_zones( const zone_type_id &type, - const tripoint &where ) const + const tripoint &where, const faction_id &fac ) const { auto zones = std::vector(); for( const auto &zone : this->zones ) { - if( zone.get_type() == type ) { + if( zone.get_type() == type && zone.get_faction() == fac ) { if( zone.has_inside( where ) ) { zones.emplace_back( zone ); } @@ -677,10 +682,14 @@ std::vector zone_manager::get_zones( const zone_type_id &type, return zones; } -const zone_data *zone_manager::get_bottom_zone( const tripoint &where ) const +const zone_data *zone_manager::get_bottom_zone( const tripoint &where, + const faction_id &fac ) const { for( auto it = zones.rbegin(); it != zones.rend(); ++it ) { const auto &zone = *it; + if( zone.get_faction() != fac ) { + continue; + } if( zone.has_inside( where ) ) { return &zone; @@ -689,6 +698,9 @@ const zone_data *zone_manager::get_bottom_zone( const tripoint &where ) const auto vzones = g->m.get_vehicle_zones( g->get_levz() ); for( auto it = vzones.rbegin(); it != vzones.rend(); ++it ) { const auto zone = *it; + if( zone->get_faction() != fac ) { + continue; + } if( zone->has_inside( where ) ) { return zone; @@ -714,12 +726,11 @@ void zone_manager::create_vehicle_loot_zone( vehicle &vehicle, const point &moun cache_vzones(); } -void zone_manager::add( const std::string &name, const zone_type_id &type, - const bool invert, const bool enabled, const tripoint &start, const tripoint &end, - std::shared_ptr options ) +void zone_manager::add( const std::string &name, const zone_type_id &type, const faction_id &fac, + const bool invert, const bool enabled, const tripoint &start, + const tripoint &end, std::shared_ptr options ) { - zone_data new_zone = zone_data( name, type, invert, enabled, start, - end, options ); + zone_data new_zone = zone_data( name, type, fac, invert, enabled, start, end, options ); //the start is a vehicle tile with cargo space if( const cata::optional vp = g->m.veh_at( g->m.getlocal( start ) ).part_with_feature( "CARGO", false ) ) { @@ -792,6 +803,41 @@ void zone_manager::swap( zone_data &a, zone_data &b ) std::swap( a, b ); } +void zone_manager::rotate_zones( map &target_map, const int turns ) +{ + if( turns == 0 ) { + return; + } + const tripoint a_start = target_map.getabs( tripoint( 0, 0, 0 ) ); + const tripoint a_end = target_map.getabs( tripoint( 23, 23, 0 ) ); + const point dim( 24, 24 ); + for( zone_data &zone : zones ) { + const tripoint z_start = zone.get_start_point(); + const tripoint z_end = zone.get_end_point(); + if( ( a_start.x <= z_start.x && a_start.y <= z_start.y ) && + ( a_end.x > z_start.x && a_end.y >= z_start.y ) && + ( a_start.x <= z_end.x && a_start.y <= z_end.y ) && + ( a_end.x >= z_end.x && a_end.y >= z_end.y ) ) { + tripoint z_l_start3 = target_map.getlocal( z_start ); + tripoint z_l_end3 = target_map.getlocal( z_end ); + // don't rotate centered squares + if( z_l_start3.x == z_l_start3.y && z_l_end3.x == z_l_end3.y && + ( z_l_start3.x + z_l_end3.x ) == 23 ) { + continue; + } + point z_l_start = point( z_l_start3.x, z_l_start3.y ).rotate( turns, dim ); + point z_l_end = point( z_l_end3.x, z_l_end3.y ).rotate( turns, dim ); + point new_z_start = target_map.getabs( z_l_start ); + point new_z_end = target_map.getabs( z_l_end ); + tripoint first = tripoint( std::min( new_z_start.x, new_z_end.x ), + std::min( new_z_start.y, new_z_end.y ), a_start.z ); + tripoint second = tripoint( std::max( new_z_start.x, new_z_end.x ), + std::max( new_z_start.y, new_z_end.y ), a_end.z ); + zone.set_position( std::make_pair( first, second ), false ); + } + } +} + void zone_manager::start_sort( const std::vector &src_sorted ) { for( auto &src : src_sorted ) { @@ -831,35 +877,44 @@ void zone_manager::decrement_num_processed( const tripoint &src ) } } -std::vector zone_manager::get_zones() +std::vector zone_manager::get_zones( const faction_id &fac ) { auto zones = std::vector(); for( auto &zone : this->zones ) { - zones.emplace_back( zone ); + if( zone.get_faction() == fac ) { + zones.emplace_back( zone ); + } } auto vzones = g->m.get_vehicle_zones( g->get_levz() ); for( auto zone : vzones ) { - zones.emplace_back( *zone ); + if( zone->get_faction() == fac ) { + zones.emplace_back( *zone ); + } } return zones; } -std::vector zone_manager::get_zones() const +std::vector zone_manager::get_zones( + const faction_id &fac ) const { auto zones = std::vector(); for( auto &zone : this->zones ) { - zones.emplace_back( zone ); + if( zone.get_faction() == fac ) { + zones.emplace_back( zone ); + } } auto vzones = g->m.get_vehicle_zones( g->get_levz() ); for( auto zone : vzones ) { - zones.emplace_back( *zone ); + if( zone->get_faction() == fac ) { + zones.emplace_back( *zone ); + } } return zones; @@ -887,6 +942,7 @@ void zone_data::serialize( JsonOut &json ) const json.start_object(); json.member( "name", name ); json.member( "type", type ); + json.member( "faction", faction ); json.member( "invert", invert ); json.member( "enabled", enabled ); json.member( "is_vehicle", is_vehicle ); @@ -901,6 +957,11 @@ void zone_data::deserialize( JsonIn &jsin ) JsonObject data = jsin.get_object(); data.read( "name", name ); data.read( "type", type ); + if( data.has_member( "faction" ) ) { + data.read( "faction", faction ); + } else { + faction = your_fac; + } data.read( "invert", invert ); data.read( "enabled", enabled ); //Legacy support diff --git a/src/clzones.h b/src/clzones.h index 1800d00f984d5..47b44ffce7a9c 100644 --- a/src/clzones.h +++ b/src/clzones.h @@ -14,11 +14,18 @@ #include "enums.h" #include "optional.h" #include "string_id.h" +#include "type_id.h" class JsonIn; class JsonOut; class JsonObject; class item; +class faction; +class map; + +using faction_id = string_id; +const faction_id your_fac( "your_followers" ); +const std::string type_fac_hash_str = "__FAC__"; class zone_type { @@ -31,7 +38,6 @@ class zone_type std::string name() const; std::string desc() const; }; -using zone_type_id = string_id; class zone_options { @@ -129,6 +135,7 @@ class zone_data private: std::string name; zone_type_id type; + faction_id faction; bool invert; bool enabled; bool is_vehicle; @@ -148,12 +155,13 @@ class zone_data options = nullptr; } - zone_data( const std::string &_name, const zone_type_id &_type, + zone_data( const std::string &_name, const zone_type_id &_type, const faction_id &_faction, bool _invert, const bool _enabled, const tripoint &_start, const tripoint &_end, std::shared_ptr _options = nullptr ) { name = _name; type = _type; + faction = _faction; invert = _invert; enabled = _enabled; is_vehicle = false; @@ -174,9 +182,25 @@ class zone_data void set_enabled( const bool enabled_arg ); void set_is_vehicle( const bool is_vehicle_arg ); + static std::string make_type_hash( const zone_type_id &_type, const faction_id &_fac ) { + return _type.c_str() + type_fac_hash_str + _fac.c_str(); + } + static zone_type_id unhash_type( const std::string &hash_type ) { + size_t end = hash_type.find( type_fac_hash_str ); + if( end != std::string::npos && end < hash_type.size() ) { + return zone_type_id( hash_type.substr( 0, end ) ); + } + return zone_type_id( "" ); + } std::string get_name() const { return name; } + const faction_id &get_faction() const { + return faction; + } + std::string get_type_hash() const { + return make_type_hash( type, faction ); + } const zone_type_id &get_type() const { return type; } @@ -232,10 +256,12 @@ class zone_manager std::vector removed_vzones; std::map types; - std::unordered_map> area_cache; - std::unordered_map> vzone_cache; - std::unordered_set get_point_set( const zone_type_id &type ) const; - std::unordered_set get_vzone_set( const zone_type_id &type ) const; + std::unordered_map> area_cache; + std::unordered_map> vzone_cache; + std::unordered_set get_point_set( const zone_type_id &type, + const faction_id &fac = your_fac ) const; + std::unordered_set get_vzone_set( const zone_type_id &type, + const faction_id &fac = your_fac ) const; //Cache number of items already checked on each source tile when sorting std::unordered_map num_processed; @@ -253,7 +279,7 @@ class zone_manager return manager; } - void add( const std::string &name, const zone_type_id &type, + void add( const std::string &name, const zone_type_id &type, const faction_id &faction, const bool invert, const bool enabled, const tripoint &start, const tripoint &end, std::shared_ptr options = nullptr ); @@ -271,22 +297,29 @@ class zone_manager } std::string get_name_from_type( const zone_type_id &type ) const; bool has_type( const zone_type_id &type ) const; - bool has_defined( const zone_type_id &type ) const; + bool has_defined( const zone_type_id &type, const faction_id &fac = your_fac ) const; void cache_data(); void cache_vzones(); - bool has( const zone_type_id &type, const tripoint &where ) const; - bool has_near( const zone_type_id &type, const tripoint &where, int range = MAX_DISTANCE ) const; + bool has( const zone_type_id &type, const tripoint &where, + const faction_id &fac = your_fac ) const; + bool has_near( const zone_type_id &type, const tripoint &where, int range = MAX_DISTANCE, + const faction_id &fac = your_fac ) const; bool has_loot_dest_near( const tripoint &where ) const; std::unordered_set get_near( const zone_type_id &type, const tripoint &where, - int range = MAX_DISTANCE ) const; + int range = MAX_DISTANCE, + const faction_id &fac = your_fac ) const; cata::optional get_nearest( const zone_type_id &type, const tripoint &where, - int range = MAX_DISTANCE ) const; + int range = MAX_DISTANCE, + const faction_id &fac = your_fac ) const; zone_type_id get_near_zone_type_for_item( const item &it, const tripoint &where ) const; - std::vector get_zones( const zone_type_id &type, const tripoint &where ) const; - const zone_data *get_bottom_zone( const tripoint &where ) const; + std::vector get_zones( const zone_type_id &type, const tripoint &where, + const faction_id &fac = your_fac ) const; + const zone_data *get_bottom_zone( const tripoint &where, + const faction_id &fac = your_fac ) const; cata::optional query_name( const std::string &default_name = "" ) const; cata::optional query_type() const; void swap( zone_data &a, zone_data &b ); + void rotate_zones( map &target_map, const int turns ); void start_sort( const std::vector &src_sorted ); void end_sort(); @@ -296,8 +329,8 @@ class zone_manager void decrement_num_processed( const tripoint &src ); // 'direct' access to zone_manager::zones, giving direct access was nono - std::vector get_zones(); - std::vector get_zones() const; + std::vector get_zones( const faction_id &fac = your_fac ); + std::vector get_zones( const faction_id &fac = your_fac ) const; bool save_zones(); void load_zones(); diff --git a/src/color.cpp b/src/color.cpp index 5c8bb443febc0..59353e32ecd55 100644 --- a/src/color.cpp +++ b/src/color.cpp @@ -1,6 +1,6 @@ #include "color.h" -#include +#include #include // for std::count #include #include diff --git a/src/computer.cpp b/src/computer.cpp index f7113735c8683..a7a24b57fd4ee 100644 --- a/src/computer.cpp +++ b/src/computer.cpp @@ -1,8 +1,8 @@ #include "computer.h" -#include -#include -#include +#include +#include +#include #include #include #include @@ -15,6 +15,7 @@ #include "coordinate_conversions.h" #include "debug.h" #include "effect.h" +#include "explosion.h" #include "event.h" #include "field.h" #include "game.h" @@ -41,7 +42,6 @@ #include "translations.h" #include "trap.h" #include "bodypart.h" -#include "character.h" #include "color.h" #include "creature.h" #include "enums.h" @@ -53,6 +53,7 @@ #include "optional.h" #include "pldata.h" #include "string_id.h" +#include "type_id.h" const mtype_id mon_manhack( "mon_manhack" ); const mtype_id mon_secubot( "mon_secubot" ); @@ -74,7 +75,7 @@ computer_option::computer_option() { } -computer_option::computer_option( std::string N, computer_action A, int S ) +computer_option::computer_option( const std::string &N, computer_action A, int S ) : name( N ), action( A ), security( S ) { } @@ -411,7 +412,7 @@ void computer::activate_function( computer_action action ) case COMPACT_TOLL: //~ the sound of a church bell ringing sounds::sound( g->u.pos(), 120, sounds::sound_t::music, - _( "Bohm... Bohm... Bohm..." ) ); + _( "Bohm... Bohm... Bohm..." ), true, "environment", "church_bells" ); break; case COMPACT_SAMPLE: @@ -455,7 +456,8 @@ void computer::activate_function( computer_action action ) case COMPACT_RELEASE: g->u.add_memorial_log( pgettext( "memorial_male", "Released subspace specimens." ), pgettext( "memorial_female", "Released subspace specimens." ) ); - sounds::sound( g->u.pos(), 40, sounds::sound_t::alarm, _( "an alarm sound!" ) ); + sounds::sound( g->u.pos(), 40, sounds::sound_t::alarm, _( "an alarm sound!" ), false, "environment", + "alarm" ); g->m.translate_radius( t_reinforced_glass, t_thconc_floor, 25.0, g->u.pos(), true ); query_any( _( "Containment shields opened. Press any key..." ) ); break; @@ -465,7 +467,8 @@ void computer::activate_function( computer_action action ) remove_submap_turrets(); /* fallthrough */ case COMPACT_RELEASE_BIONICS: - sounds::sound( g->u.pos(), 40, sounds::sound_t::alarm, _( "an alarm sound!" ) ); + sounds::sound( g->u.pos(), 40, sounds::sound_t::alarm, _( "an alarm sound!" ), false, "environment", + "alarm" ); g->m.translate_radius( t_reinforced_glass, t_thconc_floor, 3.0, g->u.pos(), true ); query_any( _( "Containment shields opened. Press any key..." ) ); break; @@ -532,7 +535,7 @@ void computer::activate_function( computer_action action ) cascade_points.push_back( dest ); } } - g->resonance_cascade( random_entry( cascade_points, g->u.pos() ) ); + explosion_handler::resonance_cascade( random_entry( cascade_points, g->u.pos() ) ); } break; @@ -613,7 +616,8 @@ void computer::activate_function( computer_action action ) } if( query_yn( _( "Confirm nuclear missile launch." ) ) ) { add_msg( m_info, _( "Nuclear missile launched!" ) ); - options.clear();//Remove the option to fire another missile. + //Remove the option to fire another missile. + options.clear(); } else { add_msg( m_info, _( "Nuclear missile launch aborted." ) ); return; @@ -630,8 +634,9 @@ void computer::activate_function( computer_action action ) } } - g->explosion( tripoint( g->u.posx() + 10, g->u.posx() + 21, g->get_levz() ), 200, 0.7, - true ); //Only explode once. But make it large. + explosion_handler::explosion( tripoint( g->u.posx() + 10, g->u.posx() + 21, g->get_levz() ), 200, + 0.7, + true ); //Only explode once. But make it large. //...ERASE MISSILE, OPEN SILO, DISABLE COMPUTER // For each level between here and the surface, remove the missile @@ -660,7 +665,7 @@ void computer::activate_function( computer_action action ) !( x == ( target.x + 2 ) && ( y == ( target.y - 2 ) ) ) && !( x == ( target.x + 2 ) && ( y == ( target.y + 2 ) ) ) ) { // TODO: Z - g->nuke( tripoint( x, y, 0 ) ); + explosion_handler::nuke( tripoint( x, y, 0 ) ); } } @@ -675,7 +680,8 @@ void computer::activate_function( computer_action action ) g->u.add_memorial_log( pgettext( "memorial_male", "Disarmed a nuclear missile." ), pgettext( "memorial_female", "Disarmed a nuclear missile." ) ); add_msg( m_info, _( "Nuclear missile disarmed!" ) ); - options.clear();//disable missile. + //disable missile. + options.clear(); activate_failure( COMPFAIL_SHUTDOWN ); } else { add_msg( m_neutral, _( "Nuclear missile remains active." ) ); @@ -1245,7 +1251,7 @@ SHORTLY. TO ENSURE YOUR SAFETY PLEASE FOLLOW THE STEPS BELOW. \n\ tripoint p( x, y, g->get_levz() ); if( g->m.ter( x, y ) == t_elevator || g->m.ter( x, y ) == t_vat ) { g->m.make_rubble( p, f_rubble_rock, true ); - g->explosion( p, 40, 0.7, true ); + explosion_handler::explosion( p, 40, 0.7, true ); } if( g->m.ter( x, y ) == t_wall_glass ) { g->m.make_rubble( p, f_rubble_rock, true ); @@ -1256,7 +1262,7 @@ SHORTLY. TO ENSURE YOUR SAFETY PLEASE FOLLOW THE STEPS BELOW. \n\ } if( g->m.ter( x, y ) == t_sewage_pump ) { g->m.make_rubble( p, f_rubble_rock, true ); - g->explosion( p, 50, 0.7, true ); + explosion_handler::explosion( p, 50, 0.7, true ); } } } @@ -1303,14 +1309,15 @@ SHORTLY. TO ENSURE YOUR SAFETY PLEASE FOLLOW THE STEPS BELOW. \n\ } // critical failure - radiation spike sets off electronic detonators if( it->typeId() == "mininuke" || it->typeId() == "mininuke_act" || it->typeId() == "c4" ) { - g->explosion( dest, 40 ); + explosion_handler::explosion( dest, 40 ); reset_terminal(); print_error( _( "WARNING [409]: Primary sensors offline!" ) ); print_error( _( " >> Initialize secondary sensors: Geiger profiling..." ) ); print_error( _( " >> Radiation spike detected!\n" ) ); print_error( _( "WARNING [912]: Catastrophic malfunction! Contamination detected! " ) ); print_error( _( "EMERGENCY PROCEDURE [1]: Evacuate. Evacuate. Evacuate.\n" ) ); - sounds::sound( g->u.pos(), 30, sounds::sound_t::alarm, _( "an alarm sound!" ) ); + sounds::sound( g->u.pos(), 30, sounds::sound_t::alarm, _( "an alarm sound!" ), false, "environment", + "alarm" ); g->m.i_rem( dest, it ); g->m.make_rubble( dest ); g->m.propagate_field( dest, fd_nuke_gas, 100, 3 ); @@ -1425,7 +1432,7 @@ SHORTLY. TO ENSURE YOUR SAFETY PLEASE FOLLOW THE STEPS BELOW. \n\ break; } auto items = g->m.i_at( platform ); - if( items.size() != 0 ) { + if( !items.empty() ) { print_line( _( "Moving items: PLATFORM --> UNLOADING BAY." ) ); } else { print_line( _( "No items detected at: PLATFORM." ) ); @@ -1435,7 +1442,7 @@ SHORTLY. TO ENSURE YOUR SAFETY PLEASE FOLLOW THE STEPS BELOW. \n\ } g->m.i_clear( platform ); items = g->m.i_at( loading ); - if( items.size() != 0 ) { + if( !items.empty() ) { print_line( _( "Moving items: LOADING BAY --> PLATFORM." ) ); } else { print_line( _( "No items detected at: LOADING BAY." ) ); @@ -1556,7 +1563,8 @@ void computer::activate_failure( computer_failure_type fail ) case COMPFAIL_ALARM: g->u.add_memorial_log( pgettext( "memorial_male", "Set off an alarm." ), pgettext( "memorial_female", "Set off an alarm." ) ); - sounds::sound( g->u.pos(), 60, sounds::sound_t::alarm, _( "an alarm sound!" ) ); + sounds::sound( g->u.pos(), 60, sounds::sound_t::alarm, _( "an alarm sound!" ), false, "environment", + "alarm" ); if( g->get_levz() > 0 && !g->events.queued( EVENT_WANTED ) ) { g->events.add( EVENT_WANTED, calendar::turn + 30_minutes, 0, g->u.global_sm_location() ); } @@ -1615,7 +1623,7 @@ void computer::activate_failure( computer_failure_type fail ) if( g->m.ter( x, y ) == t_sewage_pump ) { tripoint p( x, y, g->get_levz() ); g->m.make_rubble( p ); - g->explosion( p, 10 ); + explosion_handler::explosion( p, 10 ); } } } @@ -1658,10 +1666,12 @@ void computer::activate_failure( computer_failure_type fail ) case COMPFAIL_AMIGARA: g->events.add( EVENT_AMIGARA, calendar::turn + 5_turns ); g->u.add_effect( effect_amigara, 2_minutes ); - g->explosion( tripoint( rng( 0, MAPSIZE_X ), rng( 0, MAPSIZE_Y ), g->get_levz() ), 10, - 0.7, false, 10 ); - g->explosion( tripoint( rng( 0, MAPSIZE_X ), rng( 0, MAPSIZE_Y ), g->get_levz() ), 10, - 0.7, false, 10 ); + explosion_handler::explosion( tripoint( rng( 0, MAPSIZE_X ), rng( 0, MAPSIZE_Y ), g->get_levz() ), + 10, + 0.7, false, 10 ); + explosion_handler::explosion( tripoint( rng( 0, MAPSIZE_X ), rng( 0, MAPSIZE_Y ), g->get_levz() ), + 10, + 0.7, false, 10 ); remove_option( COMPACT_AMIGARA_START ); break; diff --git a/src/computer.h b/src/computer.h index d5e75ccdf019e..ad96c3c81c371 100644 --- a/src/computer.h +++ b/src/computer.h @@ -94,7 +94,7 @@ struct computer_option { int security; computer_option(); - computer_option( std::string N, computer_action A, int S ); + computer_option( const std::string &N, computer_action A, int S ); static computer_option from_json( JsonObject &jo ); }; diff --git a/src/construction.cpp b/src/construction.cpp index 249d0b311422d..e736c78c38ebe 100644 --- a/src/construction.cpp +++ b/src/construction.cpp @@ -45,6 +45,7 @@ #include "item.h" #include "player_activity.h" #include "pldata.h" +#include "morale_types.h" class inventory; @@ -54,6 +55,7 @@ static const skill_id skill_electronics( "electronics" ); static const trait_id trait_DEBUG_HS( "DEBUG_HS" ); static const trait_id trait_PAINRESIST_TROGLO( "PAINRESIST_TROGLO" ); static const trait_id trait_STOCKY_TROGLO( "STOCKY_TROGLO" ); +static const trait_id trait_SPIRITUAL( "SPIRITUAL" ); const trap_str_id tr_firewood_source( "tr_firewood_source" ); const trap_str_id tr_practice_target( "tr_practice_target" ); @@ -76,6 +78,7 @@ bool check_no_trap( const tripoint & ); // Special actions to be run post-terrain-mod void done_nothing( const tripoint & ) {} void done_trunk_plank( const tripoint & ); +void done_grave( const tripoint & ); void done_vehicle( const tripoint & ); void done_deconstruct( const tripoint & ); void done_digormine_stair( const tripoint &, bool ); @@ -401,7 +404,6 @@ void construction_menu() std::vector options = constructions_by_desc( current_desc ); construct_buffers.clear(); - total_project_breakpoints = 0; current_construct_breakpoint = 0; construct_buffer_breakpoints.clear(); full_construct_buffer.clear(); @@ -678,7 +680,8 @@ void construction_menu() load_available_constructions( available, cat_available, hide_unconstructable ); } else if( action == "CONFIRM" ) { if( constructs.empty() || select >= static_cast( constructs.size() ) ) { - continue;// Nothing to be done here + // Nothing to be done here + continue; } if( player_can_build( g->u, total_inv, constructs[select] ) ) { place_construction( constructs[select] ); @@ -947,6 +950,52 @@ void construct::done_trunk_plank( const tripoint &p ) } } +void construct::done_grave( const tripoint &p ) +{ + map_stack its = g->m.i_at( p ); + for( item it : its ) { + if( it.is_corpse() ) { + if( it.get_corpse_name().empty() ) { + if( it.get_mtype()->has_flag( MF_HUMAN ) ) { + if( g->u.has_trait( trait_SPIRITUAL ) ) { + g->u.add_morale( MORALE_FUNERAL, 50, 75, 1_days, 1_hours ); + add_msg( m_good, + _( "You feel relieved after providing last rites for this human being, whose name is lost in the Cataclysm." ) ); + } else { + add_msg( m_neutral, _( "You bury remains of a human, whose name is lost in the Cataclysm." ) ); + } + g->u.add_memorial_log( pgettext( "memorial_male", + string_format( "You buried unknown victim of the Cataclysm.", it.type_name() ).c_str() ), + pgettext( "memorial_female", string_format( "You buried unknown victim of The Cataclysm.", + it.type_name() ).c_str() ) ); + } + } else { + if( g->u.has_trait( trait_SPIRITUAL ) ) { + g->u.add_morale( MORALE_FUNERAL, 50, 75, 1_days, 1_hours ); + add_msg( m_good, + _( "You feel sadness, but also relief after providing last rites for %s, whose name you will keep in your memory." ), + it.get_corpse_name() ); + } else { + add_msg( m_neutral, + _( "You bury remains of %s, who joined uncounted masses perished in the Cataclysm." ), + it.get_corpse_name() ); + } + g->u.add_memorial_log( pgettext( "memorial_male", string_format( "You buried %s.", + it.get_corpse_name() ).c_str() ), + pgettext( "memorial_female", string_format( "You buried %s.", it.get_corpse_name() ).c_str() ) ); + } + } + } + if( g->u.has_quality( quality_id( "CUT" ) ) ) { + iuse::handle_ground_graffiti( g->u, nullptr, _( "Inscribe something on the grave?" ), p ); + } else { + add_msg( m_neutral, + _( "Unfortunately you don't have anything sharp to place an inscription on the grave." ) ); + } + + g->m.destroy_furn( p, true ); +} + vpart_id vpart_from_item( const std::string &item_id ) { for( const auto &e : vpart_info::all() ) { @@ -1276,6 +1325,7 @@ void load_construction( JsonObject &jo ) static const std::map> post_special_map = {{ { "", construct::done_nothing }, { "done_trunk_plank", construct::done_trunk_plank }, + { "done_grave", construct::done_grave }, { "done_vehicle", construct::done_vehicle }, { "done_deconstruct", construct::done_deconstruct }, { "done_dig_stair", construct::done_dig_stair }, diff --git a/src/construction.h b/src/construction.h index d71402acdc938..b123679dff452 100644 --- a/src/construction.h +++ b/src/construction.h @@ -2,7 +2,7 @@ #ifndef CONSTRUCTION_H #define CONSTRUCTION_H -#include +#include #include #include #include @@ -11,6 +11,7 @@ #include "optional.h" #include "string_id.h" +#include "type_id.h" namespace catacurses { @@ -18,46 +19,55 @@ class window; } // namespace catacurses class JsonObject; class nc_color; -class Skill; -struct requirement_data; struct tripoint; -using skill_id = string_id; -using requirement_id = string_id; - struct construction { - std::string category; //Construction type category - std::string description; // how the action is displayed to the player - std::string pre_note; // Additional note displayed along with construction requirements. - std::string pre_terrain; // beginning terrain for construction - std::string post_terrain;// final terrain after construction + // Construction type category + std::string category; + // How the action is displayed to the player + std::string description; + // Additional note displayed along with construction requirements. + std::string pre_note; + // Beginning terrain for construction + std::string pre_terrain; + // Final terrain after construction + std::string post_terrain; // Item group of byproducts created by the construction on success. cata::optional byproduct_item_group; - std::set pre_flags; // flags beginning terrain must have + // Flags beginning terrain must have + std::set pre_flags; /** Skill->skill level mapping. Can be empty. */ std::map required_skills; requirement_id requirements; - size_t id; // Index in construction vector + // Index in construction vector + size_t id; int time; // If true, the requirements are generated during finalization bool vehicle_start; - std::function pre_special; // custom constructibility check - std::function post_special; // custom after-effects - std::function explain_failure; // Custom error message display + // Custom constructibility check + std::function pre_special; + // Custom after-effects + std::function post_special; + // Custom error message display + std::function explain_failure; - bool pre_is_furniture; // whether it's furniture or terrain - bool post_is_furniture; // whether it's furniture or terrain + // Whether it's furniture or terrain + bool pre_is_furniture; + // Whether it's furniture or terrain + bool post_is_furniture; - int adjusted_time() const; // NPC assistance adjusted + // NPC assistance adjusted + int adjusted_time() const; int print_time( const catacurses::window &w, int ypos, int xpos, int width, nc_color col ) const; std::vector get_folded_time_string( int width ) const; - float time_scale() const; //result of construction scaling option + // Result of construction scaling option + float time_scale() const; private: std::string get_time_string() const; }; diff --git a/src/consumption.cpp b/src/consumption.cpp index 5524b6fb4ba1f..c87b70891ecac 100644 --- a/src/consumption.cpp +++ b/src/consumption.cpp @@ -1,6 +1,6 @@ #include "player.h" // IWYU pragma: associated -#include +#include #include #include #include @@ -30,6 +30,7 @@ #include "vehicle.h" #include "vpart_position.h" #include "rng.h" +#include "string_id.h" namespace { @@ -161,11 +162,15 @@ std::pair player::fun_for( const item &comest ) const static const trait_id trait_GOURMAND( "GOURMAND" ); static const trait_id trait_SAPROPHAGE( "SAPROPHAGE" ); static const trait_id trait_SAPROVORE( "SAPROVORE" ); + static const trait_id trait_LUPINE( "THRESH_LUPINE" ); + static const trait_id trait_FELINE( "THRESH_FELINE" ); static const std::string flag_EATEN_COLD( "EATEN_COLD" ); static const std::string flag_COLD( "COLD" ); static const std::string flag_FROZEN( "FROZEN" ); static const std::string flag_MUSHY( "MUSHY" ); static const std::string flag_MELTS( "MELTS" ); + static const std::string flag_LUPINE( "LUPINE" ); + static const std::string flag_FELINE( "FELINE" ); if( !comest.is_comestible() ) { return std::pair( 0, 0 ); } @@ -213,6 +218,14 @@ std::pair player::fun_for( const item &comest ) const } } + if( ( comest.has_flag( flag_LUPINE ) && has_trait( trait_LUPINE ) ) || + ( comest.has_flag( flag_FELINE ) && has_trait( trait_FELINE ) ) ) { + if( fun < 0 ) { + fun = -fun; + fun /= 2; + } + } + if( has_trait( trait_GOURMAND ) ) { if( fun < -1 ) { fun_max = fun; @@ -348,7 +361,7 @@ int player::vitamin_mod( const vitamin_id &vit, int qty, bool capped ) return it->second; } -void player::vitamins_mod( std::map vitamins, bool capped ) +void player::vitamins_mod( const std::map &vitamins, bool capped ) { for( auto vit : vitamins ) { vitamin_mod( vit.first, vit.second, capped ); @@ -438,6 +451,15 @@ ret_val player::can_eat( const item &food ) const return ret_val::make_failure( _( "That doesn't look edible." ) ); } + if( food.has_flag( "INEDIBLE" ) ) { + if( ( food.has_flag( "CATTLE" ) && !has_trait( trait_id( "THRESH_CATTLE" ) ) ) || + ( food.has_flag( "FELINE" ) && !has_trait( trait_id( "THRESH_FELINE" ) ) ) || + ( food.has_flag( "LUPINE" ) && !has_trait( trait_id( "THRESH_LUPINE" ) ) ) || + ( food.has_flag( "BIRD" ) && !has_trait( trait_id( "THRESH_BIRD" ) ) ) ) { + return ret_val::make_failure( _( "That doesn't look edible to you." ) ); + } + } + if( food.is_craft() ) { return ret_val::make_failure( _( "That doesn't look edible in its current form." ) ); } @@ -609,8 +631,13 @@ bool player::eat( item &food, bool force ) } if( food.type->has_use() ) { - if( food.type->invoke( *this, food, pos() ) <= 0 ) { - return false; + if( !food.type->can_use( "DOGFOOD" ) && + !food.type->can_use( "CATFOOD" ) && + !food.type->can_use( "BIRDFOOD" ) && + !food.type->can_use( "CATTLEFODDER" ) ) { + if( food.type->invoke( *this, food, pos() ) <= 0 ) { + return false; + } } } @@ -1360,7 +1387,7 @@ bool player::can_consume( const item &it ) const can_consume_as_is( it.contents.front() ); } -item &player::get_comestible_from( item &it ) const +item &player::get_consumable_from( item &it ) const { if( !it.is_container_empty() && can_consume_as_is( it.contents.front() ) ) { return it.contents.front(); diff --git a/src/craft_command.cpp b/src/craft_command.cpp index 2b662ef3ca0f5..0236bf4d9dbd6 100644 --- a/src/craft_command.cpp +++ b/src/craft_command.cpp @@ -1,6 +1,6 @@ #include "craft_command.h" -#include +#include #include #include #include @@ -16,7 +16,7 @@ #include "requirements.h" #include "translations.h" #include "uistate.h" -#include "pldata.h" +#include "type_id.h" template std::string comp_selection::nname() const diff --git a/src/craft_command.h b/src/craft_command.h index 9c0f317dbb1aa..013f3b5bdfb3f 100644 --- a/src/craft_command.h +++ b/src/craft_command.h @@ -7,15 +7,12 @@ #include "enums.h" #include "requirements.h" -#include "string_id.h" class inventory; class item; class player; class recipe; -using requirement_id = string_id; - /** * enum used by comp_selection to indicate where a component should be consumed from. */ diff --git a/src/crafting.cpp b/src/crafting.cpp index 24abf02d38ce6..903a9f0029f59 100644 --- a/src/crafting.cpp +++ b/src/crafting.cpp @@ -1,7 +1,7 @@ #include "crafting.h" -#include -#include +#include +#include #include #include #include @@ -22,6 +22,7 @@ #include "debug.h" #include "game.h" #include "game_inventory.h" +#include "handle_liquid.h" #include "inventory.h" #include "item.h" #include "item_location.h" @@ -59,8 +60,7 @@ #include "string_formatter.h" #include "string_id.h" #include "units.h" -#include "mtype.h" -#include "pldata.h" +#include "type_id.h" const efftype_id effect_contacts( "contacts" ); @@ -589,7 +589,7 @@ static item *set_item_inventory( player &p, item &newit ) { item *ret_val = nullptr; if( newit.made_of( LIQUID ) ) { - g->handle_all_liquid( newit, PICKUP_RANGE ); + liquid_handler::handle_all_liquid( newit, PICKUP_RANGE ); } else { p.inv.assign_empty_invlet( newit, p ); // We might not have space for the item @@ -1069,7 +1069,7 @@ void player::complete_craft( item &craft, const tripoint &loc ) finalize_crafted_item( newit ); if( newit.made_of( LIQUID ) ) { - g->handle_all_liquid( newit, PICKUP_RANGE ); + liquid_handler::handle_all_liquid( newit, PICKUP_RANGE ); } else if( loc == tripoint_zero ) { wield_craft( *this, newit ); } else { @@ -1093,7 +1093,7 @@ void player::complete_craft( item &craft, const tripoint &loc ) } finalize_crafted_item( bp ); if( bp.made_of( LIQUID ) ) { - g->handle_all_liquid( bp, PICKUP_RANGE ); + liquid_handler::handle_all_liquid( bp, PICKUP_RANGE ); } else if( loc == tripoint_zero ) { set_item_inventory( *this, bp ); } else { @@ -1140,7 +1140,6 @@ comp_selection player::select_item_component( const std::vector 0 ) ? component.count * batch : abs( component.count ); - bool found = false; if( item::count_by_charges( type ) && count > 0 ) { long map_charges = map_inv.charges_of( type, std::numeric_limits::max(), filter ); @@ -1153,6 +1152,7 @@ comp_selection player::select_item_component( const std::vector::max(), filter ); + bool found = false; if( player_charges >= count ) { player_has.push_back( component ); found = true; @@ -1167,13 +1167,13 @@ comp_selection player::select_item_component( const std::vector= count ) { map_has.push_back( component ); - found = true; } } } else { // Counting by units, not charges // Can't use pseudo items as components if( player_inv ) { + bool found = false; if( has_amount( type, count, false, filter ) ) { player_has.push_back( component ); found = true; @@ -1190,7 +1190,6 @@ comp_selection player::select_item_component( const std::vector player::consume_items( const comp_selection &is, int return consume_items( g->m, is, batch, filter, pos(), PICKUP_RANGE ); } - std::list player::consume_items( map &m, const comp_selection &is, int batch, const std::function &filter, tripoint origin, int radius ) { @@ -1901,7 +1899,7 @@ void player::complete_disassemble( int item_pos, const tripoint &loc, } if( act_item.made_of( LIQUID ) ) { - g->handle_all_liquid( act_item, PICKUP_RANGE ); + liquid_handler::handle_all_liquid( act_item, PICKUP_RANGE ); } else { drop_items.push_back( act_item ); } @@ -1913,7 +1911,8 @@ void player::complete_disassemble( int item_pos, const tripoint &loc, if( can_decomp_learn( dis ) ) { // TODO: make this depend on intelligence if( one_in( 4 ) ) { - learn_recipe( &dis.ident().obj() );// TODO: change to forward an id or a reference + // TODO: change to forward an id or a reference + learn_recipe( &dis.ident().obj() ); add_msg( m_good, _( "You learned a recipe for %s from disassembling it!" ), dis_item.tname() ); } else { @@ -1936,7 +1935,7 @@ void remove_ammo( std::list &dis_items, player &p ) void drop_or_handle( const item &newit, player &p ) { if( newit.made_of( LIQUID ) && &p == &g->u ) { // TODO: what about NPCs? - g->handle_all_liquid( newit, PICKUP_RANGE ); + liquid_handler::handle_all_liquid( newit, PICKUP_RANGE ); } else { item tmp( newit ); p.i_add_or_drop( tmp ); diff --git a/src/crafting_gui.cpp b/src/crafting_gui.cpp index 5bf9dd93ae1ff..dfd5c88e3c22f 100644 --- a/src/crafting_gui.cpp +++ b/src/crafting_gui.cpp @@ -1,6 +1,6 @@ #include "crafting_gui.h" -#include +#include #include #include #include @@ -33,6 +33,7 @@ #include "cursesdef.h" #include "item.h" #include "recipe.h" +#include "type_id.h" class inventory; class npc; @@ -686,7 +687,8 @@ const recipe *select_crafting_recipe( int &batch_size ) scroll_pos++; } else if( action == "PREV_TAB" ) { tab.prev(); - subtab = list_circularizer( craft_subcat_list[tab.cur()] );//default ALL + // Default ALL + subtab = list_circularizer( craft_subcat_list[tab.cur()] ); redraw = true; } else if( action == "RIGHT" ) { std::string start = subtab.cur(); @@ -697,7 +699,8 @@ const recipe *select_crafting_recipe( int &batch_size ) redraw = true; } else if( action == "NEXT_TAB" ) { tab.next(); - subtab = list_circularizer( craft_subcat_list[tab.cur()] );//default ALL + // Default ALL + subtab = list_circularizer( craft_subcat_list[tab.cur()] ); redraw = true; } else if( action == "DOWN" ) { line++; @@ -894,6 +897,7 @@ std::string peek_related_recipe( const recipe *current, const recipe_subset &ava if( !related_results.empty() ) { rel_menu.addentry( ++np_last, false, -1, _( "RESULTS" ) ); } + // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores) np_last = related_menu_fill( rel_menu, related_results, available ); rel_menu.settext( _( "Related recipes:" ) ); @@ -1014,8 +1018,10 @@ static void draw_recipe_tabs( const catacurses::window &w, const std::string &ta switch( mode ) { case NORMAL: { - int pos_x = 2;//draw the tabs on each other - int tab_step = 3;//step between tabs, two for tabs border + // Draw the tabs on each other + int pos_x = 2; + // Step between tabs, two for tabs border + int tab_step = 3; for( const auto &tt : craft_cat_list ) { draw_tab( w, pos_x, normalized_names[tt], tab == tt ); pos_x += utf8_width( normalized_names[tt] ) + tab_step; @@ -1056,8 +1062,10 @@ static void draw_recipe_subtabs( const catacurses::window &w, const std::string switch( mode ) { case NORMAL: { - int pos_x = 2;//draw the tabs on each other - int tab_step = 3;//step between tabs, two for tabs border + // Draw the tabs on each other + int pos_x = 2; + // Step between tabs, two for tabs border + int tab_step = 3; for( const auto &stt : craft_subcat_list[tab] ) { bool empty = available_recipes.empty_category( tab, stt != "CSC_ALL" ? stt : "" ); draw_subtab( w, pos_x, normalized_names[stt], subtab == stt, true, empty ); diff --git a/src/crash.cpp b/src/crash.cpp index 0ef0da3ae5c54..b92bdedc7b0e1 100644 --- a/src/crash.cpp +++ b/src/crash.cpp @@ -2,7 +2,7 @@ #include "crash.h" -#include +#include #include #include #include diff --git a/src/creature.cpp b/src/creature.cpp index eb6c809f3afbe..6f63c883a0486 100644 --- a/src/creature.cpp +++ b/src/creature.cpp @@ -1,7 +1,7 @@ #include "creature.h" -#include -#include +#include +#include #include #include #include @@ -35,8 +35,7 @@ #include "mapdata.h" #include "optional.h" #include "player.h" -#include "material.h" -#include "pldata.h" +#include "string_id.h" const efftype_id effect_blind( "blind" ); const efftype_id effect_bounced( "bounced" ); @@ -83,6 +82,12 @@ Creature::Creature() Creature::~Creature() = default; +std::vector Creature::get_grammatical_genders() const +{ + // Returning empty list means we use the language-specified default + return {}; +} + void Creature::normalize() { } @@ -453,7 +458,7 @@ int Creature::deal_melee_attack( Creature *source, int hitroll ) int hit_spread = hitroll - dodge_roll() - size_melee_penalty( get_size() ); // If attacker missed call targets on_dodge event - if( hit_spread <= 0 && !source->is_hallucination() ) { + if( hit_spread <= 0 && source != nullptr && !source->is_hallucination() ) { on_dodge( source, source->get_melee() ); } @@ -463,6 +468,9 @@ int Creature::deal_melee_attack( Creature *source, int hitroll ) void Creature::deal_melee_hit( Creature *source, int hit_spread, bool critical_hit, const damage_instance &dam, dealt_damage_instance &dealt_dam ) { + if( source == nullptr || source->is_hallucination() ) { + return; + } damage_instance d = dam; // copy, since we will mutate in block_hit body_part bp_hit = select_body_part( source, hit_spread ); diff --git a/src/creature.h b/src/creature.h index c76e8e692b809..eee3cf9b0f831 100644 --- a/src/creature.h +++ b/src/creature.h @@ -13,7 +13,7 @@ #include "bodypart.h" #include "pimpl.h" #include "string_formatter.h" -#include "string_id.h" +#include "type_id.h" #include "units.h" enum game_message_type : int; @@ -31,7 +31,6 @@ class JsonObject; class JsonOut; struct tripoint; class time_duration; -class material_type; enum damage_type : int; enum field_id : int; @@ -43,16 +42,6 @@ struct dealt_damage_instance; struct dealt_projectile_attack; struct pathfinding_settings; struct trap; -class effect_type; - -using efftype_id = string_id; -using material_id = string_id; -struct mutation_branch; - -using trait_id = string_id; -class ma_technique; - -using matec_id = string_id; enum m_size : int { MS_TINY = 0, // Squirrel @@ -80,6 +69,8 @@ class Creature virtual std::string disp_name( bool possessive = false ) const = 0; // displayname for Creature virtual std::string skin_name() const = 0; // name of outer layer, e.g. "armor plates" + virtual std::vector get_grammatical_genders() const; + virtual bool is_player() const { return false; } diff --git a/src/creature_tracker.cpp b/src/creature_tracker.cpp index c37b7c9cec68a..2ef1b0b8f8144 100644 --- a/src/creature_tracker.cpp +++ b/src/creature_tracker.cpp @@ -10,6 +10,7 @@ #include "monster.h" #include "mtype.h" #include "string_formatter.h" +#include "type_id.h" #define dbg(x) DebugLog((DebugLevel)(x),D_GAME) << __FILE__ << ":" << __LINE__ << ": " diff --git a/src/creature_tracker.h b/src/creature_tracker.h index 0592e584a695d..9d00094231ddb 100644 --- a/src/creature_tracker.h +++ b/src/creature_tracker.h @@ -2,7 +2,7 @@ #ifndef CREATURE_TRACKER_H #define CREATURE_TRACKER_H -#include +#include #include #include #include diff --git a/src/cursesport.cpp b/src/cursesport.cpp index 33510bc1e0278..866058fd51514 100644 --- a/src/cursesport.cpp +++ b/src/cursesport.cpp @@ -1,7 +1,7 @@ #if defined(TILES) || defined(_WIN32) #include "cursesport.h" -#include +#include #include #include "catacharset.h" diff --git a/src/cursesport.h b/src/cursesport.h index f65091742e97b..b168f5e3105c4 100644 --- a/src/cursesport.h +++ b/src/cursesport.h @@ -50,16 +50,22 @@ struct curseline { std::vector chars; }; -//The curses window struct +// The curses window struct struct WINDOW { - int x;//left side of window - int y;//top side of window + // Left side of window + int x; + // Top side of window + int y; int width; int height; - base_color FG;//current foreground color from attron - base_color BG;//current background color from attron - bool inuse;// Does this window actually exist? - bool draw;//Tracks if the window text has been changed + // Current foreground color from attron + base_color FG; + // Current background color from attron + base_color BG; + // Does this window actually exist? + bool inuse; + // Tracks if the window text has been changed + bool draw; int cursorx; int cursory; std::vector line; @@ -68,13 +74,13 @@ struct WINDOW { extern std::array colorpairs; void curses_drawwindow( const catacurses::window &win ); -// allow extra logic for framebuffer clears +// Allow extra logic for framebuffer clears extern void handle_additional_window_clear( WINDOW *win ); } // namespace cata_cursesport // TODO: move into cata_cursesport -//used only in SDL mode for clearing windows using rendering +// Used only in SDL mode for clearing windows using rendering void clear_window_area( const catacurses::window &win ); int projected_window_width(); int projected_window_height(); diff --git a/src/damage.cpp b/src/damage.cpp index f56c6ca22519a..17b8b1a3c7e02 100644 --- a/src/damage.cpp +++ b/src/damage.cpp @@ -1,6 +1,6 @@ #include "damage.h" -#include +#include #include #include #include diff --git a/src/damage.h b/src/damage.h index ab423c3974cdb..05dd0aab24ff3 100644 --- a/src/damage.h +++ b/src/damage.h @@ -6,17 +6,14 @@ #include #include -#include "string_id.h" +#include "type_id.h" class item; class monster; class JsonObject; class JsonArray; -class Skill; class JsonIn; -using skill_id = string_id; - enum body_part : int; enum damage_type : int { diff --git a/src/debug.cpp b/src/debug.cpp index 07e607371e8b3..52cbc81983777 100644 --- a/src/debug.cpp +++ b/src/debug.cpp @@ -1,8 +1,8 @@ #include "debug.h" #include -#include -#include +#include +#include #include #include #include @@ -29,6 +29,8 @@ #include "color.h" #include "optional.h" #include "translations.h" +#include "worldfactory.h" +#include "mod_manager.h" #if !defined(_MSC_VER) #include @@ -777,4 +779,99 @@ std::ostream &DebugLog( DebugLevel lev, DebugClass cl ) return nullStream; } +std::string game_info::operating_system() +{ +#if defined(__ANDROID__) + return "Android"; +#elif defined(_WIN32) + return "Windows"; +#elif defined(__linux__) + return "Linux"; +#elif defined(unix) || defined(__unix__) || defined(__unix) || defined(__APPLE__) && defined(__MACH__) // unix; BSD; MacOs +#if defined(__APPLE__) && defined(__MACH__) + // The following include is **only** needed for the TARGET_xxx defines below and is only included if both of the above defines are true. + // The whole function only relying on compiler defines, it is probably more meaningful to include it here and not mingle with the + // headers at the top of the .cpp file. +#include +#if TARGET_IPHONE_SIMULATOR == 1 + /* iOS in Xcode simulator */ + return "iOS Simulator"; +#elif TARGET_OS_IPHONE == 1 + /* iOS on iPhone, iPad, etc. */ + return "iOS"; +#elif TARGET_OS_MAC == 1 + /* OSX */ + return "MacOs"; +#endif // TARGET_IPHONE_SIMULATOR +#elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) + return "BSD"; +#else + return "Unix"; +#endif // __APPLE__ +#else + return "Unknown"; +#endif +} + +std::string game_info::bitness() +{ + if( sizeof( void * ) == 8 ) { + return "64-bit"; + } + + if( sizeof( void * ) == 4 ) { + return "32-bit"; + } + + return "Unknown"; +} + +std::string game_info::game_version() +{ + return getVersionString(); +} + +std::string game_info::graphics_version() +{ +#if defined(TILES) + return "Tiles"; +#else + return "Curses"; +#endif +} + +std::string game_info::mods_loaded() +{ + if( world_generator->active_world == nullptr ) { + return "No active world"; + } + + const std::vector &mod_ids = world_generator->active_world->active_mod_order; + if( mod_ids.empty() ) { + return "No loaded mods"; + } + + std::vector mod_names; + mod_names.reserve( mod_ids.size() ); + std::transform( mod_ids.begin(), mod_ids.end(), + std::back_inserter( mod_names ), []( const mod_id mod ) -> std::string { + // e.g. "Dark Days Ahead [dda]". + return string_format( "%s [%s]", mod->name(), mod->ident.str() ); + } ); + + return join( mod_names, ",\n " ); // note: 4 spaces for a slight offset. +} + +std::string game_info::game_report() +{ + std::stringstream report; + report << + "- OS: " << operating_system() << " [" << bitness() << "]\n" << + "- Game Version: " << game_version() << "\n" << + "- Graphics Version: " << graphics_version() << "\n" << + "- Mods loaded: [\n " << mods_loaded() << "\n]\n"; + + return report.str(); +} + // vim:tw=72:sw=4:fdm=marker:fdl=0: diff --git a/src/debug.h b/src/debug.h index 7ac1735f10e66..3e47f3bc93f90 100644 --- a/src/debug.h +++ b/src/debug.h @@ -79,6 +79,31 @@ inline void realDebugmsg( const char *const filename, const char *const line, std::forward( args )... ) ); } +/** + * Used to generate game report information. + */ +namespace game_info +{ +/** Return the name of the current operating system. + */ +std::string operating_system(); +/** Return the "bitness" of the game (not necessarily of the operating system); either: 64-bit, 32-bit or Unknown. + */ +std::string bitness(); +/** Return the game version, as in the entry screen. + */ +std::string game_version(); +/** Return the underlying graphics version used by the game; either Tiles or Curses. +*/ +std::string graphics_version(); +/** Return a list of the loaded mods, including the mod full name and its id name in brackets, e.g. "Dark Days Ahead [dda]". +*/ +std::string mods_loaded(); +/** Generate a game report, including the information returned by all of the other functions. + */ +std::string game_report(); +}; + // Enumerations {{{1 // --------------------------------------------------------------------- diff --git a/src/debug_menu.cpp b/src/debug_menu.cpp index e5030c3afc77b..ecfb8aa1dc0d3 100644 --- a/src/debug_menu.cpp +++ b/src/debug_menu.cpp @@ -1,10 +1,11 @@ #include "debug_menu.h" -#include +#include #include #include #include #include +#include #include #include #include @@ -16,6 +17,7 @@ #include "action.h" #include "coordinate_conversions.h" +#include "filesystem.h" #include "game.h" #include "messages.h" #include "mission.h" @@ -44,6 +46,7 @@ #include "optional.h" #include "pldata.h" #include "translations.h" +#include "type_id.h" #include "map.h" #include "veh_type.h" @@ -60,6 +63,10 @@ #include "rng.h" #include "signal.h" +#if defined(TILES) +#include "sdl_wrappers.h" +#endif + #define dbg(x) DebugLog((DebugLevel)(x),D_GAME) << __FILE__ << ":" << __LINE__ << ": " namespace debug_menu @@ -105,7 +112,9 @@ enum debug_menu_index { DEBUG_MAP_EXTRA, DEBUG_DISPLAY_NPC_PATH, DEBUG_QUIT_NOSAVE, - DEBUG_TEST_WEATHER + DEBUG_TEST_WEATHER, + DEBUG_SAVE_SCREENSHOT, + DEBUG_GAME_REPORT, }; class mission_debug @@ -124,45 +133,55 @@ class mission_debug static int player_uilist() { const std::vector uilist_initializer = { - { DEBUG_MUTATE, true, 'M', _( "Mutate" ) }, - { DEBUG_CHANGE_SKILLS, true, 's', _( "Change all skills" ) }, - { DEBUG_LEARN_MA, true, 'l', _( "Learn all melee styles" ) }, - { DEBUG_UNLOCK_RECIPES, true, 'r', _( "Unlock all recipes" ) }, - { DEBUG_EDIT_PLAYER, true, 'p', _( "Edit player/NPC" ) }, - { DEBUG_DAMAGE_SELF, true, 'd', _( "Damage self" ) }, - { DEBUG_SET_AUTOMOVE, true, 'a', _( "Set automove route" ) } + { uilist_entry( DEBUG_MUTATE, true, 'M', _( "Mutate" ) ) }, + { uilist_entry( DEBUG_CHANGE_SKILLS, true, 's', _( "Change all skills" ) ) }, + { uilist_entry( DEBUG_LEARN_MA, true, 'l', _( "Learn all melee styles" ) ) }, + { uilist_entry( DEBUG_UNLOCK_RECIPES, true, 'r', _( "Unlock all recipes" ) ) }, + { uilist_entry( DEBUG_EDIT_PLAYER, true, 'p', _( "Edit player/NPC" ) ) }, + { uilist_entry( DEBUG_DAMAGE_SELF, true, 'd', _( "Damage self" ) ) }, + { uilist_entry( DEBUG_SET_AUTOMOVE, true, 'a', _( "Set automove route" ) ) }, }; return uilist( _( "Player..." ), uilist_initializer ); } -static int info_uilist() +static int info_uilist( bool display_all_entries = true ) { - const std::vector uilist_initializer = { - uilist_entry( DEBUG_GAME_STATE, true, 'g', _( "Check game state" ) ), - uilist_entry( DEBUG_DISPLAY_HORDES, true, 'h', _( "Display hordes" ) ), - uilist_entry( DEBUG_TEST_IT_GROUP, true, 'i', _( "Test item group" ) ), - uilist_entry( DEBUG_SHOW_SOUND, true, 's', _( "Show sound clustering" ) ), - uilist_entry( DEBUG_DISPLAY_WEATHER, true, 'w', _( "Display weather" ) ), - uilist_entry( DEBUG_DISPLAY_SCENTS, true, 'S', _( "Display overmap scents" ) ), - uilist_entry( DEBUG_SHOW_MUT_CAT, true, 'm', _( "Show mutation category levels" ) ), - uilist_entry( DEBUG_BENCHMARK, true, 'b', _( "Draw benchmark (X seconds)" ) ), - uilist_entry( DEBUG_TRAIT_GROUP, true, 't', _( "Test trait group" ) ), - uilist_entry( DEBUG_SHOW_MSG, true, 'd', _( "Show debug message" ) ), - uilist_entry( DEBUG_CRASH_GAME, true, 'C', _( "Crash game (test crash handling)" ) ), - uilist_entry( DEBUG_DISPLAY_NPC_PATH, true, 'n', _( "Toggle NPC pathfinding on map" ) ), - uilist_entry( DEBUG_TEST_WEATHER, true, 'W', _( "Test weather" ) ) + // always displayed + std::vector uilist_initializer = { + { uilist_entry( DEBUG_SAVE_SCREENSHOT, true, 'H', _( "Take screenshot" ) ) }, + { uilist_entry( DEBUG_GAME_REPORT, true, 'r', _( "Generate game report" ) ) }, }; + if( display_all_entries ) { + const std::vector debug_only_options = { + { uilist_entry( DEBUG_GAME_STATE, true, 'g', _( "Check game state" ) ) }, + { uilist_entry( DEBUG_DISPLAY_HORDES, true, 'h', _( "Display hordes" ) ) }, + { uilist_entry( DEBUG_TEST_IT_GROUP, true, 'i', _( "Test item group" ) ) }, + { uilist_entry( DEBUG_SHOW_SOUND, true, 's', _( "Show sound clustering" ) ) }, + { uilist_entry( DEBUG_DISPLAY_WEATHER, true, 'w', _( "Display weather" ) ) }, + { uilist_entry( DEBUG_DISPLAY_SCENTS, true, 'S', _( "Display overmap scents" ) ) }, + { uilist_entry( DEBUG_SHOW_MUT_CAT, true, 'm', _( "Show mutation category levels" ) ) }, + { uilist_entry( DEBUG_BENCHMARK, true, 'b', _( "Draw benchmark (X seconds)" ) ) }, + { uilist_entry( DEBUG_TRAIT_GROUP, true, 't', _( "Test trait group" ) ) }, + { uilist_entry( DEBUG_SHOW_MSG, true, 'd', _( "Show debug message" ) ) }, + { uilist_entry( DEBUG_CRASH_GAME, true, 'C', _( "Crash game (test crash handling)" ) ) }, + { uilist_entry( DEBUG_DISPLAY_NPC_PATH, true, 'n', _( "Toggle NPC pathfinding on map" ) ) }, + { uilist_entry( DEBUG_TEST_WEATHER, true, 'W', _( "Test weather" ) ) }, + }; + uilist_initializer.insert( uilist_initializer.begin(), debug_only_options.begin(), + debug_only_options.end() ); + } + return uilist( _( "Info..." ), uilist_initializer ); } static int teleport_uilist() { const std::vector uilist_initializer = { - uilist_entry( DEBUG_SHORT_TELEPORT, true, 's', _( "Teleport - short range" ) ), - uilist_entry( DEBUG_LONG_TELEPORT, true, 'l', _( "Teleport - long range" ) ), - uilist_entry( DEBUG_OM_TELEPORT, true, 'o', _( "Teleport - adjacent overmap" ) ) + { uilist_entry( DEBUG_SHORT_TELEPORT, true, 's', _( "Teleport - short range" ) ) }, + { uilist_entry( DEBUG_LONG_TELEPORT, true, 'l', _( "Teleport - long range" ) ) }, + { uilist_entry( DEBUG_OM_TELEPORT, true, 'o', _( "Teleport - adjacent overmap" ) ) }, }; return uilist( _( "Teleport..." ), uilist_initializer ); @@ -171,12 +190,12 @@ static int teleport_uilist() static int spawning_uilist() { const std::vector uilist_initializer = { - uilist_entry( DEBUG_WISH, true, 'w', _( "Spawn an item" ) ), - uilist_entry( DEBUG_SPAWN_NPC, true, 'n', _( "Spawn NPC" ) ), - uilist_entry( DEBUG_SPAWN_MON, true, 'm', _( "Spawn monster" ) ), - uilist_entry( DEBUG_SPAWN_VEHICLE, true, 'v', _( "Spawn a vehicle" ) ), - uilist_entry( DEBUG_SPAWN_ARTIFACT, true, 'a', _( "Spawn artifact" ) ), - uilist_entry( DEBUG_SPAWN_CLAIRVOYANCE, true, 'c', _( "Spawn clairvoyance artifact" ) ) + { uilist_entry( DEBUG_WISH, true, 'w', _( "Spawn an item" ) ) }, + { uilist_entry( DEBUG_SPAWN_NPC, true, 'n', _( "Spawn NPC" ) ) }, + { uilist_entry( DEBUG_SPAWN_MON, true, 'm', _( "Spawn monster" ) ) }, + { uilist_entry( DEBUG_SPAWN_VEHICLE, true, 'v', _( "Spawn a vehicle" ) ) }, + { uilist_entry( DEBUG_SPAWN_ARTIFACT, true, 'a', _( "Spawn artifact" ) ) }, + { uilist_entry( DEBUG_SPAWN_CLAIRVOYANCE, true, 'c', _( "Spawn clairvoyance artifact" ) ) }, }; return uilist( _( "Spawning..." ), uilist_initializer ); @@ -185,35 +204,55 @@ static int spawning_uilist() static int map_uilist() { const std::vector uilist_initializer = { - uilist_entry( DEBUG_REVEAL_MAP, true, 'r', _( "Reveal map" ) ), - uilist_entry( DEBUG_KILL_NPCS, true, 'k', _( "Kill NPCs" ) ), - uilist_entry( DEBUG_MAP_EDITOR, true, 'M', _( "Map editor" ) ), - uilist_entry( DEBUG_CHANGE_WEATHER, true, 'w', _( "Change weather" ) ), - uilist_entry( DEBUG_WIND_DIRECTION, true, 'd', _( "Change wind direction" ) ), - uilist_entry( DEBUG_WIND_SPEED, true, 's', _( "Change wind speed" ) ), - uilist_entry( DEBUG_KILL_MONS, true, 'K', _( "Kill all monsters" ) ), - uilist_entry( DEBUG_CHANGE_TIME, true, 't', _( "Change time" ) ), - uilist_entry( DEBUG_OM_EDITOR, true, 'O', _( "Overmap editor" ) ), - uilist_entry( DEBUG_MAP_EXTRA, true, 'm', _( "Spawn map extra" ) ) + { uilist_entry( DEBUG_REVEAL_MAP, true, 'r', _( "Reveal map" ) ) }, + { uilist_entry( DEBUG_KILL_NPCS, true, 'k', _( "Kill NPCs" ) ) }, + { uilist_entry( DEBUG_MAP_EDITOR, true, 'M', _( "Map editor" ) ) }, + { uilist_entry( DEBUG_CHANGE_WEATHER, true, 'w', _( "Change weather" ) ) }, + { uilist_entry( DEBUG_WIND_DIRECTION, true, 'd', _( "Change wind direction" ) ) }, + { uilist_entry( DEBUG_WIND_SPEED, true, 's', _( "Change wind speed" ) ) }, + { uilist_entry( DEBUG_KILL_MONS, true, 'K', _( "Kill all monsters" ) ) }, + { uilist_entry( DEBUG_CHANGE_TIME, true, 't', _( "Change time" ) ) }, + { uilist_entry( DEBUG_OM_EDITOR, true, 'O', _( "Overmap editor" ) ) }, + { uilist_entry( DEBUG_MAP_EXTRA, true, 'm', _( "Spawn map extra" ) ) }, }; return uilist( _( "Map..." ), uilist_initializer ); } -static int debug_menu_uilist() +/** + * Create the debug menu UI list. + * @param display_all_entries: `true` if all entries should be displayed, `false` is some entries should be hidden (for ex. when the debug menu is called from the main menu). + * This allows to have some menu elements at the same time in the main menu and in the debug menu. + * @returns The chosen action. + */ +static int debug_menu_uilist( bool display_all_entries = true ) { - const std::vector uilist_initializer = { - uilist_entry( DEBUG_QUIT_NOSAVE, true, 'Q', _( "Quit to main menu" ) ), - uilist_entry( 1, true, 's', _( "Spawning..." ) ), - uilist_entry( 2, true, 'p', _( "Player..." ) ), - uilist_entry( 3, true, 't', _( "Teleport..." ) ), - uilist_entry( 4, true, 'm', _( "Map..." ) ), - uilist_entry( 5, true, 'i', _( "Info..." ) ) + std::vector menu = { + { uilist_entry( 1, true, 'i', _( "Info..." ) ) }, }; + + if( display_all_entries ) { + const std::vector debug_menu = { + { uilist_entry( DEBUG_QUIT_NOSAVE, true, 'Q', _( "Quit to main menu" ) ) }, + { uilist_entry( 2, true, 's', _( "Spawning..." ) ) }, + { uilist_entry( 3, true, 'p', _( "Player..." ) ) }, + { uilist_entry( 4, true, 't', _( "Teleport..." ) ) }, + { uilist_entry( 5, true, 'm', _( "Map..." ) ) }, + }; + + // insert debug-only menu right after "Info". + menu.insert( menu.begin() + 1, debug_menu.begin(), debug_menu.end() ); + } + + std::string msg; + if( display_all_entries ) { + msg = _( "Debug Functions - Using these will cheat not only the game, but yourself.\nYou won't grow. You won't improve.\nTaking this shortcut will gain you nothing. Your victory will be hollow.\nNothing will be risked and nothing will be gained." ); + } else { + msg = _( "Debug Functions" ); + } + while( true ) { - const int group = uilist( - _( "Debug Functions - Using these will cheat not only the game, but yourself.\nYou won't grow. You won't improve.\nTaking this shortcut will gain you nothing. Your victory will be hollow.\nNothing will be risked and nothing will be gained." ), - uilist_initializer ); + const int group = uilist( msg, menu ); int action; @@ -222,20 +261,21 @@ static int debug_menu_uilist() action = DEBUG_QUIT_NOSAVE; break; case 1: - action = spawning_uilist(); + action = info_uilist( display_all_entries ); break; case 2: - action = player_uilist(); + action = spawning_uilist(); break; case 3: - action = teleport_uilist(); + action = player_uilist(); break; case 4: - action = map_uilist(); + action = teleport_uilist(); break; case 5: - action = info_uilist(); + action = map_uilist(); break; + default: return group; } @@ -886,7 +926,8 @@ void draw_benchmark( const int max_difference ) void debug() { - int action = debug_menu_uilist(); + bool debug_menu_has_hotkey = hotkey_for_action( ACTION_DEBUG, false ) != -1; + int action = debug_menu_uilist( debug_menu_has_hotkey ); g->refresh_all(); player &u = g->u; map &m = g->m; @@ -1314,9 +1355,59 @@ void debug() g->uquit = QUIT_NOSAVED; } break; - case DEBUG_TEST_WEATHER: + case DEBUG_TEST_WEATHER: { weather_generator weathergen; weathergen.test_weather(); + } + break; + + + case DEBUG_SAVE_SCREENSHOT: { +#if defined(TILES) + // check that the current '/screenshots' directory exists + std::stringstream map_directory; + map_directory << g->get_world_base_save_path() << "/screenshots/"; + assure_dir_exist( map_directory.str() ); + + // build file name: /screenshots/[]_.png + // Date format is a somewhat ISO-8601 compliant GMT time date (except for some characters that wouldn't pass on most file systems like ':'). + std::time_t time = std::time( nullptr ); + std::stringstream date_buffer; + date_buffer << std::put_time( std::gmtime(&time), "%F_%H-%M-%S_%z" ); + const auto tmp_file_name = string_format( "[%s]_%s.png", g->u.get_name(), date_buffer.str() ); + + std::string file_name = ensure_valid_file_name( tmp_file_name ); + auto current_file_path = map_directory.str() + file_name; + + // Take a screenshot of the viewport. + if ( g->take_screenshot( current_file_path ) ) { + popup( string_format( _( "Successfully saved your screenshot to: %s" ), map_directory.str() ) ); + } + else { + popup( _( "An error occurred while trying to save the screenshot." ) ); + } +#else + popup( _( "This binary was not compiled with tiles support." ) ); +#endif + } + break; + + case DEBUG_GAME_REPORT: { + // generate a game report, useful for bug reporting. + std::string report = game_info::game_report(); + // write to log + DebugLog( DL_ALL, DC_ALL ) << " GAME REPORT: \n" << report; + std::string popup_msg = _( "Report written to debug.log" ); +#if defined(TILES) + // copy to clipboard + int clipboard_result = SDL_SetClipboardText( report.c_str() ); + printErrorIf( clipboard_result != 0, "Error while copying the game report to the clipboard." ); + if ( clipboard_result == 0 ) { + popup_msg += _( " and to the clipboard." ); + } +#endif + popup( popup_msg ); + } break; } catacurses::erase(); diff --git a/src/defense.cpp b/src/defense.cpp index b19b9770e8393..913b3d273e533 100644 --- a/src/defense.cpp +++ b/src/defense.cpp @@ -28,10 +28,9 @@ #include "game_constants.h" #include "item.h" #include "monster.h" -#include "omdata.h" #include "pldata.h" -#include "itype.h" #include "mapdata.h" +#include "string_id.h" #define SPECIAL_WAVE_CHANCE 5 // One in X chance of single-flavor wave #define SPECIAL_WAVE_MIN 5 // Don't use a special wave with < X monsters diff --git a/src/dependency_tree.cpp b/src/dependency_tree.cpp index ed821bb77234d..15577b52a0fd6 100644 --- a/src/dependency_tree.cpp +++ b/src/dependency_tree.cpp @@ -9,7 +9,7 @@ #include "debug.h" #include "output.h" -#include "game.h" +#include "string_id.h" std::array error_keyvals = {{ "Missing Dependency(ies): ", "", "" }}; @@ -150,6 +150,8 @@ std::vector dependency_node::get_dependencies_as_strings() std::vector as_nodes = get_dependencies_as_nodes(); + ret.reserve( as_nodes.size() ); + for( auto &as_node : as_nodes ) { ret.push_back( ( as_node )->key ); } @@ -209,6 +211,8 @@ std::vector dependency_node::get_dependents_as_strings() std::vector as_nodes = get_dependents_as_nodes(); + ret.reserve( as_nodes.size() ); + for( auto &as_node : as_nodes ) { ret.push_back( ( as_node )->key ); } diff --git a/src/dependency_tree.h b/src/dependency_tree.h index e161a3e9a538e..56d6aa9e52698 100644 --- a/src/dependency_tree.h +++ b/src/dependency_tree.h @@ -7,11 +7,7 @@ #include #include -#include "string_id.h" - -struct MOD_INFORMATION; - -using mod_id = string_id; +#include "type_id.h" enum NODE_ERROR_TYPE { DEPENDENCY, diff --git a/src/descriptions.cpp b/src/descriptions.cpp index 4f82f7a912763..a68e72dddcd95 100644 --- a/src/descriptions.cpp +++ b/src/descriptions.cpp @@ -13,9 +13,8 @@ #include "player.h" #include "string_formatter.h" #include "color.h" -#include "itype.h" -#include "pldata.h" #include "translations.h" +#include "string_id.h" const skill_id skill_survival( "survival" ); diff --git a/src/dialogue.h b/src/dialogue.h index 0efc579360e7a..01bd4f5dfa9db 100644 --- a/src/dialogue.h +++ b/src/dialogue.h @@ -12,11 +12,10 @@ #include "dialogue_win.h" #include "npc.h" -#include "npc_class.h" #include "json.h" -#include "pldata.h" #include "string_id.h" #include "material.h" +#include "type_id.h" class mission; struct dialogue; diff --git a/src/dialogue_win.h b/src/dialogue_win.h index 3709a3a504b82..918b337e5692b 100644 --- a/src/dialogue_win.h +++ b/src/dialogue_win.h @@ -2,7 +2,7 @@ #ifndef DIALOGUE_WIN_H #define DIALOGUE_WIN_H -#include +#include #include #include #include diff --git a/src/dump.cpp b/src/dump.cpp index 71569ffdc6150..a4edcae0033a9 100644 --- a/src/dump.cpp +++ b/src/dump.cpp @@ -1,6 +1,6 @@ #include "game.h" // IWYU pragma: associated -#include +#include #include #include #include @@ -28,6 +28,7 @@ #include "translations.h" #include "units.h" #include "material.h" +#include "string_id.h" bool game::dump_stats( const std::string &what, dump_mode mode, const std::vector &opts ) diff --git a/src/editmap.cpp b/src/editmap.cpp index be9ae0a9539e0..5971c7c0cad5a 100644 --- a/src/editmap.cpp +++ b/src/editmap.cpp @@ -12,7 +12,6 @@ #include #include #include -#include #include #include "calendar.h" @@ -642,7 +641,8 @@ void editmap::update_view( bool update_info ) } mvwprintw( w_info, off, 1, "%s %s", g->m.features( target ).c_str(), extras ); - off++; // 9 + // 9 + off++; for( auto &fld : *cur_field ) { const field_entry &cur = fld.second; @@ -684,7 +684,9 @@ void editmap::update_view( bool update_info ) } if( g->m.has_graffiti_at( target ) ) { - mvwprintw( w_info, off, 1, _( "Graffiti: %s" ), g->m.graffiti_at( target ) ); + mvwprintw( w_info, off, 1, + g->m.ter( target ) == t_grave_new ? _( "Graffiti: %s" ) : _( "Incription: %s" ), + g->m.graffiti_at( target ) ); } wrefresh( w_info ); @@ -1750,7 +1752,7 @@ int editmap::mapgen_preview( const real_coords &tc, uilist &gmenu ) g->m.update_vehicle_list( destsm, target.z ); // update real map's vcaches - if( destsm->spawns.size() > 0 ) { // trigger spawnpoints + if( !destsm->spawns.empty() ) { // trigger spawnpoints g->m.spawn_monsters( true ); } } @@ -1808,6 +1810,7 @@ vehicle *editmap::mapgen_veh_query( const tripoint &omt_tgt ) } std::vector car_titles; + car_titles.reserve( possible_vehicles.size() ); for( auto &elem : possible_vehicles ) { car_titles.push_back( elem->name ); } diff --git a/src/editmap.h b/src/editmap.h index 64dda14de2eb7..f81b188d6285a 100644 --- a/src/editmap.h +++ b/src/editmap.h @@ -6,18 +6,19 @@ #include #include -#include "map.h" #include "optional.h" -#include "trap.h" #include "color.h" #include "cursesdef.h" #include "enums.h" +#include "type_id.h" struct real_coords; class Creature; class field; class uilist; class vehicle; +class map; +class tinymap; enum field_id : int; diff --git a/src/effect.cpp b/src/effect.cpp index 996b53ff4b608..6cb33cbcf0489 100644 --- a/src/effect.cpp +++ b/src/effect.cpp @@ -14,9 +14,7 @@ #include "rng.h" #include "string_formatter.h" #include "color.h" -#include "creature.h" #include "enums.h" -#include "pldata.h" namespace { @@ -381,7 +379,8 @@ game_message_type effect_type::gain_game_message_type() const case e_mixed: return m_mixed; default: - return m_neutral; // Should never happen + // Should never happen + return m_neutral; } } game_message_type effect_type::lose_game_message_type() const @@ -396,7 +395,8 @@ game_message_type effect_type::lose_game_message_type() const case e_mixed: return m_mixed; default: - return m_neutral; // Should never happen + // Should never happen + return m_neutral; } } std::string effect_type::get_apply_message() const diff --git a/src/effect.h b/src/effect.h index f2ddb95be836b..e744095652bc0 100644 --- a/src/effect.h +++ b/src/effect.h @@ -2,7 +2,7 @@ #ifndef EFFECT_H #define EFFECT_H -#include +#include #include #include #include @@ -14,15 +14,11 @@ #include "string_id.h" #include "translations.h" #include "tuple_hash.h" +#include "type_id.h" -class effect_type; class player; enum game_message_type : int; -using efftype_id = string_id; -struct mutation_branch; - -using trait_id = string_id; class JsonObject; class JsonIn; class JsonOut; diff --git a/src/emit.cpp b/src/emit.cpp index 0b14c0a27d71b..f372b73fdb7e3 100644 --- a/src/emit.cpp +++ b/src/emit.cpp @@ -6,7 +6,6 @@ #include "debug.h" #include "json.h" -#include "itype.h" static std::map emits_all; diff --git a/src/emit.h b/src/emit.h index f98a8cbbd50d0..d9b83bac25a3f 100644 --- a/src/emit.h +++ b/src/emit.h @@ -7,12 +7,10 @@ #include "field.h" #include "string_id.h" +#include "type_id.h" #include "game_constants.h" class JsonObject; -class emit; - -using emit_id = string_id; class emit { diff --git a/src/enum_bitset.h b/src/enum_bitset.h index 4132308387ad3..f3175699c4485 100644 --- a/src/enum_bitset.h +++ b/src/enum_bitset.h @@ -5,11 +5,9 @@ #include #include - template struct enum_traits; - namespace detail { @@ -24,7 +22,6 @@ struct has_proper_traits> : std::true_type {}; } // namespace detail - template class enum_bitset { diff --git a/src/enums.h b/src/enums.h index e8d43a43a1821..cb5cb3dcc7929 100644 --- a/src/enums.h +++ b/src/enums.h @@ -2,7 +2,7 @@ #ifndef ENUMS_H #define ENUMS_H -#include +#include #include #include #include @@ -17,6 +17,14 @@ constexpr inline int sgn( const T x ) return x < 0 ? -1 : ( x > 0 ? 1 : 0 ); } +enum temperature_flag : int { + TEMP_NORMAL = 0, + TEMP_HEATER, + TEMP_FRIDGE, + TEMP_FREEZER, + TEMP_ROOT_CELLAR +}; + //Used for autopickup and safemode rules enum rule_state : int { RULE_NONE, @@ -262,6 +270,15 @@ struct tripoint { constexpr tripoint operator-() const { return tripoint( -x, -y, -z ); } + constexpr tripoint operator*( const int rhs ) const { + return tripoint( x * rhs, y * rhs, z * rhs ); + } + tripoint &operator*=( const int rhs ) { + x *= rhs; + y *= rhs; + z *= rhs; + return *this; + } /*** some point operators and functions ***/ constexpr tripoint operator+( const point &rhs ) const { return tripoint( x + rhs.x, y + rhs.y, z ); diff --git a/src/event.cpp b/src/event.cpp index 2cdff0f4dba07..c75855d0f5812 100644 --- a/src/event.cpp +++ b/src/event.cpp @@ -17,6 +17,7 @@ #include "game_constants.h" #include "int_id.h" #include "player.h" +#include "type_id.h" const mtype_id mon_amigara_horror( "mon_amigara_horror" ); const mtype_id mon_copbot( "mon_copbot" ); @@ -80,7 +81,8 @@ void event::actualize() } // You could drop the flag, you know. if( g->u.has_amount( "petrified_eye", 1 ) ) { - sounds::sound( g->u.pos(), 60, sounds::sound_t::alert, _( "a tortured scream!" ) ); + sounds::sound( g->u.pos(), 60, sounds::sound_t::alert, _( "a tortured scream!" ), false, "shout", + "scream_tortured" ); if( !g->u.is_deaf() ) { add_msg( _( "The eye you're carrying lets out a tortured scream!" ) ); g->u.add_morale( MORALE_SCREAM, -15, 0, 30_minutes, 5_turns ); diff --git a/src/event.h b/src/event.h index df11bb9fe4f9a..6ff238b26e42e 100644 --- a/src/event.h +++ b/src/event.h @@ -34,8 +34,10 @@ struct event { event( event_type e_t, const time_point &w, int f_id, tripoint p ); - void actualize(); // When the time runs out - void per_turn(); // Every turn + // When the time runs out + void actualize(); + // Every turn + void per_turn(); }; class event_manager diff --git a/src/explosion.cpp b/src/explosion.cpp index 9fca4a330d7ff..fec11519d1ab7 100644 --- a/src/explosion.cpp +++ b/src/explosion.cpp @@ -1,7 +1,7 @@ #include "explosion.h" // IWYU pragma: associated #include "fragment_cloud.h" // IWYU pragma: associated -#include +#include #include #include #include @@ -14,39 +14,54 @@ #include #include +#include "bodypart.h" +#include "calendar.h" #include "cata_utility.h" +#include "color.h" #include "creature.h" +#include "damage.h" #include "debug.h" +#include "enums.h" #include "field.h" #include "game.h" +#include "game_constants.h" #include "item_factory.h" +#include "item.h" +#include "itype.h" #include "json.h" +#include "line.h" #include "math_defines.h" #include "map.h" +#include "mapdata.h" #include "messages.h" +#include "mongroup.h" +#include "npc.h" +#include "optional.h" +#include "overmapbuffer.h" #include "player.h" #include "projectile.h" +#include "rng.h" #include "shadowcasting.h" #include "sounds.h" +#include "string_formatter.h" #include "translations.h" +#include "trap.h" +#include "units.h" #include "vehicle.h" #include "vpart_position.h" -#include "bodypart.h" -#include "calendar.h" -#include "color.h" -#include "damage.h" -#include "enums.h" -#include "game_constants.h" -#include "item.h" -#include "itype.h" -#include "line.h" -#include "optional.h" -#include "rng.h" -#include "string_formatter.h" -#include "units.h" static const itype_id null_itype( "null" ); +// Global to smuggle data into shrapnel_calc() function without replicating it across entire map. +// Mass in kg +float fragment_mass = 0.0001; +// Cross-sectional area in cm^2 +float fragment_area = 0.00001; +// Minimum velocity resulting in skin perforation according to https://www.ncbi.nlg->m.nih.gov/pubmed/7304523 +constexpr float MIN_EFFECTIVE_VELOCITY = 70.0; +// Pretty arbitrary minimum density. 1/1,000 change of a fragment passing through the given square. +constexpr float MIN_FRAGMENT_DENSITY = 0.0001; + explosion_data load_explosion_data( JsonObject &jo ) { explosion_data ret; @@ -78,10 +93,37 @@ shrapnel_data load_shrapnel_data( JsonObject &jo ) ret.drop = itype_id( jo.get_string( "drop", "null" ) ); return ret; } +namespace explosion_handler +{ + +static int ballistic_damage( float velocity, float mass ) +{ + // Damage is square root of Joules, dividing by 2000 because it's dividing by 2 and + // converting mass from grams to kg. 5 is simply a scaling factor. + return 2.0 * std::sqrt( ( velocity * velocity * mass ) / 2000.0 ); +} +// Calculate cross-sectional area of a steel sphere in cm^2 based on mass of fragment. +static float mass_to_area( const float mass ) +{ + // Density of steel in g/cm^3 + constexpr float steel_density = 7.85; + float fragment_volume = ( mass / 1000.0 ) / steel_density; + float fragment_radius = cbrt( ( fragment_volume * 3.0 ) / ( 4.0 * M_PI ) ); + return fragment_radius * fragment_radius * M_PI; +} + +// Approximate Gurney constant for Composition B and C (in m/s instead of the usual km/s). +// Source: https://en.wikipedia.org/wiki/Gurney_equations#Gurney_constant_and_detonation_velocity +constexpr double TYPICAL_GURNEY_CONSTANT = 2700.0; +static float gurney_spherical( const double charge, const double mass ) +{ + return static_cast( std::pow( ( mass / charge ) + ( 3.0 / 5.0 ), + -0.5 ) * TYPICAL_GURNEY_CONSTANT ); +} // (C1001) Compiler Internal Error on Visual Studio 2015 with Update 2 -void game::do_blast( const tripoint &p, const float power, - const float distance_factor, const bool fire ) +static void do_blast( const tripoint &p, const float power, + const float distance_factor, const bool fire ) { const float tile_dist = 1.0f; const float diag_dist = trigdist ? 1.41f * tile_dist : 1.0f * tile_dist; @@ -90,12 +132,12 @@ void game::do_blast( const tripoint &p, const float power, // 1 . 2 // 6 4 8 // 9 and 10 are up and down - static const int x_offset[10] = { -1, 1, 0, 0, 1, -1, -1, 1, 0, 0 }; - static const int y_offset[10] = { 0, 0, -1, 1, -1, 1, -1, 1, 0, 0 }; - static const int z_offset[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, -1 }; - const size_t max_index = m.has_zlevels() ? 10 : 8; + static const int x_offset[10] = { -1, 1, 0, 0, 1, -1, -1, 1, 0, 0 }; + static const int y_offset[10] = { 0, 0, -1, 1, -1, 1, -1, 1, 0, 0 }; + static const int z_offset[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, -1 }; + const size_t max_index = g->m.has_zlevels() ? 10 : 8; - m.bash( p, fire ? power : ( 2 * power ), true, false, false ); + g->m.bash( p, fire ? power : ( 2 * power ), true, false, false ); std::priority_queue< std::pair, std::vector< std::pair >, pair_greater_cmp_first > open; @@ -121,7 +163,7 @@ void game::do_blast( const tripoint &p, const float power, continue; } - if( m.impassable( pt ) && pt != p ) { + if( g->m.impassable( pt ) && pt != p ) { // Don't propagate further continue; } @@ -131,7 +173,7 @@ void game::do_blast( const tripoint &p, const float power, int empty_neighbors = 0; for( size_t i = 0; i < 8; i++ ) { tripoint dest( pt.x + x_offset[i], pt.y + y_offset[i], pt.z + z_offset[i] ); - if( closed.count( dest ) == 0 && m.valid_move( pt, dest, false, true ) ) { + if( closed.count( dest ) == 0 && g->m.valid_move( pt, dest, false, true ) ) { empty_neighbors++; } } @@ -140,7 +182,7 @@ void game::do_blast( const tripoint &p, const float power, // Iterate over all neighbors. Bash all of them, propagate to some for( size_t i = 0; i < max_index; i++ ) { tripoint dest( pt.x + x_offset[i], pt.y + y_offset[i], pt.z + z_offset[i] ); - if( closed.count( dest ) != 0 || !m.inbounds( dest ) ) { + if( closed.count( dest ) != 0 || !g->m.inbounds( dest ) ) { continue; } @@ -151,20 +193,20 @@ void game::do_blast( const tripoint &p, const float power, force / 2; if( z_offset[i] == 0 ) { // Horizontal - no floor bashing - m.bash( dest, bash_force, true, false, false ); + g->m.bash( dest, bash_force, true, false, false ); } else if( z_offset[i] > 0 ) { // Should actually bash through the floor first, but that's not really possible yet - m.bash( dest, bash_force, true, false, true ); - } else if( !m.valid_move( pt, dest, false, true ) ) { + g->m.bash( dest, bash_force, true, false, true ); + } else if( !g->m.valid_move( pt, dest, false, true ) ) { // Only bash through floor if it doesn't exist // Bash the current tile's floor, not the one's below - m.bash( pt, bash_force, true, false, true ); + g->m.bash( pt, bash_force, true, false, true ); } float next_dist = distance; next_dist += ( x_offset[i] == 0 || y_offset[i] == 0 ) ? tile_dist : diag_dist; if( z_offset[i] != 0 ) { - if( !m.valid_move( pt, dest, false, true ) ) { + if( !g->m.valid_move( pt, dest, false, true ) ) { continue; } @@ -181,7 +223,7 @@ void game::do_blast( const tripoint &p, const float power, // Draw the explosion std::map explosion_colors; for( auto &pt : closed ) { - if( m.impassable( pt ) ) { + if( g->m.impassable( pt ) ) { continue; } @@ -196,7 +238,7 @@ void game::do_blast( const tripoint &p, const float power, explosion_colors[pt] = col; } - draw_custom_explosion( u.pos(), explosion_colors ); + draw_custom_explosion( g->u.pos(), explosion_colors ); for( const tripoint &pt : closed ) { const float force = power * std::pow( distance_factor, dist_map.at( pt ) ); @@ -205,7 +247,7 @@ void game::do_blast( const tripoint &p, const float power, continue; } - m.smash_items( pt, force ); + g->m.smash_items( pt, force ); if( fire ) { int density = ( force > 50.0f ) + ( force > 100.0f ); @@ -213,27 +255,26 @@ void game::do_blast( const tripoint &p, const float power, density++; } - if( !m.has_zlevels() && m.is_outside( pt ) && density == 2 ) { + if( !g->m.has_zlevels() && g->m.is_outside( pt ) && density == 2 ) { // In 3D mode, it would have fire fields above, which would then fall // and fuel the fire on this tile density++; } - m.add_field( pt, fd_fire, density ); + g->m.add_field( pt, fd_fire, density ); } - if( const optional_vpart_position vp = m.veh_at( pt ) ) { + if( const optional_vpart_position vp = g->m.veh_at( pt ) ) { // TODO: Make this weird unit used by vehicle::damage more sensible vp->vehicle().damage( vp->part_index(), force, fire ? DT_HEAT : DT_BASH, false ); } - Creature *critter = critter_at( pt, true ); + Creature *critter = g->critter_at( pt, true ); if( critter == nullptr ) { continue; } - add_msg( m_debug, "Blast hits %s with force %.1f", - critter->disp_name(), force ); + add_msg( m_debug, "Blast hits %s with force %.1f", critter->disp_name(), force ); player *pl = dynamic_cast( critter ); if( pl == nullptr ) { @@ -283,164 +324,8 @@ void game::do_blast( const tripoint &p, const float power, } } -void game::explosion( const tripoint &p, float power, float factor, bool fire, - int casing_mass, float fragment_mass ) -{ - explosion_data data; - data.power = power; - data.distance_factor = factor; - data.fire = fire; - data.shrapnel.casing_mass = casing_mass; - data.shrapnel.fragment_mass = fragment_mass; - explosion( p, data ); -} - -void game::explosion( const tripoint &p, const explosion_data &ex ) -{ - const int noise = ex.power * ( ex.fire ? 2 : 10 ); - if( noise >= 30 ) { - sounds::sound( p, noise, sounds::sound_t::combat, _( "a huge explosion!" ) ); - sfx::play_variant_sound( "explosion", "huge", 100 ); - } else if( noise >= 4 ) { - sounds::sound( p, noise, sounds::sound_t::combat, _( "an explosion!" ) ); - sfx::play_variant_sound( "explosion", "default", 100 ); - } else if( noise > 0 ) { - sounds::sound( p, 3, sounds::sound_t::combat, _( "a loud pop!" ) ); - sfx::play_variant_sound( "explosion", "small", 100 ); - } - - if( ex.distance_factor >= 1.0f ) { - debugmsg( "called game::explosion with factor >= 1.0 (infinite size)" ); - } else if( ex.distance_factor > 0.0f && ex.power > 0.0f ) { - // Power rescaled to mean grams of TNT equivalent, this scales it roughly back to where - // it was before until we re-do blasting power to be based on TNT-equivalent directly. - do_blast( p, ex.power / 15.0, ex.distance_factor, ex.fire ); - } - - const auto &shr = ex.shrapnel; - if( shr.casing_mass > 0 ) { - auto shrapnel_locations = shrapnel( p, ex.power, shr.casing_mass, shr.fragment_mass ); - - // If explosion drops shrapnel... - if( shr.recovery > 0 && shr.drop != "null" ) { - - // Extract only passable tiles affected by shrapnel - std::vector tiles; - for( const auto &e : shrapnel_locations ) { - if( g->m.passable( e ) ) { - tiles.push_back( e ); - } - } - const itype *fragment_drop = item_controller->find_template( shr.drop ); - int qty = shr.casing_mass * std::min( 1.0, shr.recovery / 100.0 ) / - to_gram( fragment_drop->weight ); - // Truncate to a random selection - std::shuffle( tiles.begin(), tiles.end(), rng_get_engine() ); - tiles.resize( std::min( static_cast( tiles.size() ), qty ) ); - - for( const auto &e : tiles ) { - g->m.add_item_or_charges( e, item( shr.drop, calendar::turn, item::solitary_tag{} ) ); - } - } - } -} - -int ballistic_damage( float velocity, float mass ) -{ - // Damage is square root of Joules, dividing by 2000 because it's dividing by 2 and - // converting mass from grams to kg. 5 is simply a scaling factor. - return 2.0 * std::sqrt( ( velocity * velocity * mass ) / 2000.0 ); -} - -// This is only ever used to zero the cloud values, which is what makes it work. -fragment_cloud &fragment_cloud::operator=( const float &value ) -{ - velocity = value; - density = value; - - return *this; -} - -bool fragment_cloud::operator==( const fragment_cloud &that ) -{ - return velocity == that.velocity && density == that.density; -} - -bool operator<( const fragment_cloud &us, const fragment_cloud &them ) -{ - return us.density < them.density && us.velocity < them.velocity; -} - -// Global to smuggle data into shrapnel_calc() function without replicating it across entire map. -// Mass in kg -float fragment_mass = 0.0001; -// Cross-sectional area in cm^2 -float fragment_area = 0.00001; - -// Projectile velocity in air. See https://fas.org/man/dod-101/navy/docs/es310/warheads/Warheads.htm -// for a writeup of this exact calculation. -fragment_cloud shrapnel_calc( const fragment_cloud &initial, - const fragment_cloud &cloud, - const int &distance ) -{ - // SWAG coefficient of drag. - constexpr float Cd = 0.5; - fragment_cloud new_cloud; - new_cloud.velocity = initial.velocity * exp( -cloud.velocity * ( ( Cd * fragment_area * distance ) / - ( 2.0 * fragment_mass ) ) ); - // Two effects, the accumulated proportion of blocked fragments, - // and the inverse-square dilution of fragments with distance. - new_cloud.density = ( initial.density * cloud.density ) / ( distance * distance / 2.5 ); - return new_cloud; -} -// Minimum velocity resulting in skin perforation according to https://www.ncbi.nlm.nih.gov/pubmed/7304523 -constexpr float MIN_EFFECTIVE_VELOCITY = 70.0; -// Pretty arbitrary minimum density. 1/1,000 change of a fragment passing through the given square. -constexpr float MIN_FRAGMENT_DENSITY = 0.0001; -bool shrapnel_check( const fragment_cloud &cloud, const fragment_cloud &intensity ) -{ - return cloud.density > 0.0 && intensity.velocity > MIN_EFFECTIVE_VELOCITY && - intensity.density > MIN_FRAGMENT_DENSITY; -} - -void update_fragment_cloud( fragment_cloud &update, const fragment_cloud &new_value, quadrant ) -{ - update = std::max( update, new_value ); -} - -fragment_cloud accumulate_fragment_cloud( const fragment_cloud &cumulative_cloud, - const fragment_cloud ¤t_cloud, const int &distance ) -{ - // Velocity is the cumulative and continuous decay of speed, - // so it is accumulated the same way as light attentuation. - // Density is the accumulation of discrete attenuaton events encountered in the traversed squares, - // so each term is added to the series via multiplication. - return fragment_cloud( ( ( distance - 1 ) * cumulative_cloud.velocity + current_cloud.velocity ) / - distance, - cumulative_cloud.density * current_cloud.density ); -} - -// Approximate Gurney constant for Composition B and C (in m/s instead of the usual km/s). -// Source: https://en.wikipedia.org/wiki/Gurney_equations#Gurney_constant_and_detonation_velocity -constexpr double TYPICAL_GURNEY_CONSTANT = 2700.0; -static float gurney_spherical( const double charge, const double mass ) -{ - return static_cast( std::pow( ( mass / charge ) + ( 3.0 / 5.0 ), - -0.5 ) * TYPICAL_GURNEY_CONSTANT ); -} - -// Calculate cross-sectional area of a steel sphere in cm^2 based on mass of fragment. -static float mass_to_area( const float mass ) -{ - // Density of steel in g/cm^3 - constexpr float steel_density = 7.85; - float fragment_volume = ( mass / 1000.0 ) / steel_density; - float fragment_radius = cbrt( ( fragment_volume * 3.0 ) / ( 4.0 * M_PI ) ); - return fragment_radius * fragment_radius * M_PI; -} - -std::vector game::shrapnel( const tripoint &src, int power, - int casing_mass, float per_fragment_mass, int range ) +static std::vector shrapnel( const tripoint &src, int power, + int casing_mass, float per_fragment_mass, int range = -1 ) { // The gurney equation wants the total mass of the casing. const float fragment_velocity = gurney_spherical( power, casing_mass ); @@ -456,16 +341,16 @@ std::vector game::shrapnel( const tripoint &src, int power, proj.range = range; proj.proj_effects.insert( "NULL_SOURCE" ); - fragment_cloud obstacle_cache[ MAPSIZE_X ][ MAPSIZE_Y ]; - fragment_cloud visited_cache[ MAPSIZE_X ][ MAPSIZE_Y ]; + fragment_cloud obstacle_cache[MAPSIZE_X][MAPSIZE_Y]; + fragment_cloud visited_cache[MAPSIZE_X][MAPSIZE_Y]; // TODO: Calculate range based on max effective range for projectiles. // Basically bisect between 0 and map diameter using shrapnel_calc(). // Need to update shadowcasting to support limiting range without adjusting initial distance. const tripoint start = { 0, 0, src.z }; - const tripoint end = { m.getmapsize() *SEEX, m.getmapsize() *SEEY, src.z }; + const tripoint end = { g->m.getmapsize() *SEEX, g->m.getmapsize() *SEEY, src.z }; - m.build_obstacle_cache( start, end, obstacle_cache ); + g->m.build_obstacle_cache( start, end, obstacle_cache ); // Shadowcasting normally ignores the origin square, // so apply it manually to catch monsters standing on the explosive. @@ -489,7 +374,7 @@ std::vector game::shrapnel( const tripoint &src, int power, distrib.emplace_back( x, y, src.z ); tripoint target( x, y, src.z ); int damage = ballistic_damage( cloud.velocity, fragment_mass ); - auto critter = critter_at( target ); + auto critter = g->critter_at( target ); if( damage > 0 && critter && !critter->is_dead_state() ) { std::poisson_distribution<> d( cloud.density ); int hits = d( rng_get_engine() ); @@ -497,8 +382,8 @@ std::vector game::shrapnel( const tripoint &src, int power, frag.proj = proj; frag.proj.speed = cloud.velocity; frag.proj.impact = damage_instance::physical( 0, damage, 0, 0 ); - // dealt_dam.total_damage() == 0 means armor block - // dealt_dam.total_damage() > 0 means took damage + // dealt_dag->m.total_damage() == 0 means armor block + // dealt_dag->m.total_damage() > 0 means took damage // Need to diffentiate target among player, npc, and monster // Do we even print monster damage? int damage_taken = 0; @@ -532,7 +417,7 @@ std::vector game::shrapnel( const tripoint &src, int power, }; std::string impact_count = std::find_if( impact_count_descriptions.begin(), impact_count_descriptions.end(), - [ total_hits ]( std::pair desc ) { + [total_hits]( const std::pair &desc ) { return desc.first >= total_hits; } )->second; std::string damage_description = ( damage_taken > 0 ) ? @@ -555,11 +440,11 @@ std::vector game::shrapnel( const tripoint &src, int power, } } } - if( m.impassable( target ) ) { - if( optional_vpart_position vp = m.veh_at( target ) ) { + if( g->m.impassable( target ) ) { + if( optional_vpart_position vp = g->m.veh_at( target ) ) { vp->vehicle().damage( vp->part_index(), damage ); } else { - m.bash( target, damage / 10, true ); + g->m.bash( target, damage / 10, true ); } } } @@ -568,6 +453,453 @@ std::vector game::shrapnel( const tripoint &src, int power, return distrib; } +void explosion( const tripoint &p, float power, float factor, bool fire, + int casing_mass, float fragment_mass ) +{ + explosion_data data; + data.power = power; + data.distance_factor = factor; + data.fire = fire; + data.shrapnel.casing_mass = casing_mass; + data.shrapnel.fragment_mass = fragment_mass; + explosion( p, data ); +} + +void explosion( const tripoint &p, const explosion_data &ex ) +{ + const int noise = ex.power * ( ex.fire ? 2 : 10 ); + if( noise >= 30 ) { + sounds::sound( p, noise, sounds::sound_t::combat, _( "a huge explosion!" ), false, "explosion", + "huge" ); + } else if( noise >= 4 ) { + sounds::sound( p, noise, sounds::sound_t::combat, _( "an explosion!" ), false, "explosion", + "default" ); + } else if( noise > 0 ) { + sounds::sound( p, 3, sounds::sound_t::combat, _( "a loud pop!" ), false, "explosion", "small" ); + } + + if( ex.distance_factor >= 1.0f ) { + debugmsg( "called game::explosion with factor >= 1.0 (infinite size)" ); + } else if( ex.distance_factor > 0.0f && ex.power > 0.0f ) { + // Power rescaled to mean grams of TNT equivalent, this scales it roughly back to where + // it was before until we re-do blasting power to be based on TNT-equivalent directly. + do_blast( p, ex.power / 15.0, ex.distance_factor, ex.fire ); + } + + const auto &shr = ex.shrapnel; + if( shr.casing_mass > 0 ) { + auto shrapnel_locations = shrapnel( p, ex.power, shr.casing_mass, shr.fragment_mass ); + + // If explosion drops shrapnel... + if( shr.recovery > 0 && shr.drop != "null" ) { + + // Extract only passable tiles affected by shrapnel + std::vector tiles; + for( const auto &e : shrapnel_locations ) { + if( g->m.passable( e ) ) { + tiles.push_back( e ); + } + } + const itype *fragment_drop = item_controller->find_template( shr.drop ); + int qty = shr.casing_mass * std::min( 1.0, shr.recovery / 100.0 ) / + to_gram( fragment_drop->weight ); + // Truncate to a random selection + std::shuffle( tiles.begin(), tiles.end(), rng_get_engine() ); + tiles.resize( std::min( static_cast( tiles.size() ), qty ) ); + + for( const auto &e : tiles ) { + g->m.add_item_or_charges( e, item( shr.drop, calendar::turn, item::solitary_tag{} ) ); + } + } + } +} + +void flashbang( const tripoint &p, bool player_immune ) +{ + const efftype_id effect_blind( "blind" ); + const efftype_id effect_deaf( "deaf" ); + + draw_explosion( p, 8, c_white ); + int dist = rl_dist( g->u.pos(), p ); + if( dist <= 8 && !player_immune ) { + if( !g->u.has_bionic( bionic_id( "bio_ears" ) ) && !g->u.is_wearing( "rm13_armor_on" ) ) { + g->u.add_effect( effect_deaf, time_duration::from_turns( 40 - dist * 4 ) ); + } + if( g->m.sees( g->u.pos(), p, 8 ) ) { + int flash_mod = 0; + if( g->u.has_trait( trait_id( "PER_SLIME" ) ) ) { + if( one_in( 2 ) ) { + flash_mod = 3; // Yay, you weren't looking! + } + } else if( g->u.has_trait( trait_id( "PER_SLIME_OK" ) ) ) { + flash_mod = 8; // Just retract those and extrude fresh eyes + } else if( g->u.has_bionic( bionic_id( "bio_sunglasses" ) ) || + g->u.is_wearing( "rm13_armor_on" ) ) { + flash_mod = 6; + } else if( g->u.worn_with_flag( "BLIND" ) || g->u.worn_with_flag( "FLASH_PROTECTION" ) ) { + flash_mod = 3; // Not really proper flash protection, but better than nothing + } + g->u.add_env_effect( effect_blind, bp_eyes, ( 12 - flash_mod - dist ) / 2, + time_duration::from_turns( 10 - dist ) ); + } + } + for( monster &critter : g->all_monsters() ) { + // TODO: can the following code be called for all types of creatures + dist = rl_dist( critter.pos(), p ); + if( dist <= 8 ) { + if( dist <= 4 ) { + critter.add_effect( efftype_id( "stunned" ), time_duration::from_turns( 10 - dist ) ); + } + if( critter.has_flag( MF_SEES ) && g->m.sees( critter.pos(), p, 8 ) ) { + critter.add_effect( effect_blind, time_duration::from_turns( 18 - dist ) ); + } + if( critter.has_flag( MF_HEARS ) ) { + critter.add_effect( effect_deaf, time_duration::from_turns( 60 - dist * 4 ) ); + } + } + } + sounds::sound( p, 12, sounds::sound_t::combat, _( "a huge boom!" ), false, "misc", "flashbang" ); + // TODO: Blind/deafen NPC +} + +void shockwave( const tripoint &p, int radius, int force, int stun, int dam_mult, + bool ignore_player ) +{ + draw_explosion( p, radius, c_blue ); + + sounds::sound( p, force * force * dam_mult / 2, sounds::sound_t::combat, _( "Crack!" ), false, + "misc", "shockwave" ); + + for( monster &critter : g->all_monsters() ) { + if( rl_dist( critter.pos(), p ) <= radius ) { + add_msg( _( "%s is caught in the shockwave!" ), critter.name() ); + g->knockback( p, critter.pos(), force, stun, dam_mult ); + } + } + // TODO: combine the two loops and the case for g->u using all_creatures() + for( npc &guy : g->all_npcs() ) { + if( rl_dist( guy.pos(), p ) <= radius ) { + add_msg( _( "%s is caught in the shockwave!" ), guy.name ); + g->knockback( p, guy.pos(), force, stun, dam_mult ); + } + } + if( rl_dist( g->u.pos(), p ) <= radius && !ignore_player && + ( !g->u.has_trait( trait_id( "LEG_TENT_BRACE" ) ) || g->u.footwear_factor() == 1 || + ( g->u.footwear_factor() == .5 && one_in( 2 ) ) ) ) { + add_msg( m_bad, _( "You're caught in the shockwave!" ) ); + g->knockback( p, g->u.pos(), force, stun, dam_mult ); + } +} + +void scrambler_blast( const tripoint &p ) +{ + if( monster *const mon_ptr = g->critter_at( p ) ) { + monster &critter = *mon_ptr; + if( critter.has_flag( MF_ELECTRONIC ) ) { + critter.make_friendly(); + } + add_msg( m_warning, _( "The %s sparks and begins searching for a target!" ), + critter.name() ); + } +} + +void emp_blast( const tripoint &p ) +{ + // TODO: Implement z part + int x = p.x; + int y = p.y; + const bool sight = g->u.sees( p ); + if( g->m.has_flag( "CONSOLE", x, y ) ) { + if( sight ) { + add_msg( _( "The %s is rendered non-functional!" ), g->m.tername( x, y ) ); + } + g->m.ter_set( x, y, t_console_broken ); + return; + } + // TODO: More terrain effects. + if( g->m.ter( x, y ) == t_card_science || g->m.ter( x, y ) == t_card_military || + g->m.ter( x, y ) == t_card_industrial ) { + int rn = rng( 1, 100 ); + if( rn > 92 || rn < 40 ) { + if( sight ) { + add_msg( _( "The card reader is rendered non-functional." ) ); + } + g->m.ter_set( x, y, t_card_reader_broken ); + } + if( rn > 80 ) { + if( sight ) { + add_msg( _( "The nearby doors slide open!" ) ); + } + for( int i = -3; i <= 3; i++ ) { + for( int j = -3; j <= 3; j++ ) { + if( g->m.ter( x + i, y + j ) == t_door_metal_locked ) { + g->m.ter_set( x + i, y + j, t_floor ); + } + } + } + } + if( rn >= 40 && rn <= 80 ) { + if( sight ) { + add_msg( _( "Nothing happens." ) ); + } + } + } + if( monster *const mon_ptr = g->critter_at( p ) ) { + monster &critter = *mon_ptr; + if( critter.has_flag( MF_ELECTRONIC ) ) { + int deact_chance = 0; + const auto mon_item_id = critter.type->revert_to_itype; + switch( critter.get_size() ) { + case MS_TINY: + deact_chance = 6; + break; + case MS_SMALL: + deact_chance = 3; + break; + default: + // Currently not used, I have no idea what chances bigger bots should have, + // Maybe export this to json? + break; + } + if( !mon_item_id.empty() && deact_chance != 0 && one_in( deact_chance ) ) { + if( sight ) { + add_msg( _( "The %s beeps erratically and deactivates!" ), critter.name() ); + } + g->m.add_item_or_charges( x, y, critter.to_item() ); + for( auto &ammodef : critter.ammo ) { + if( ammodef.second > 0 ) { + g->m.spawn_item( x, y, ammodef.first, 1, ammodef.second, calendar::turn ); + } + } + g->remove_zombie( critter ); + } else { + if( sight ) { + add_msg( _( "The EMP blast fries the %s!" ), critter.name() ); + } + int dam = dice( 10, 10 ); + critter.apply_damage( nullptr, bp_torso, dam ); + critter.check_dead_state(); + if( !critter.is_dead() && one_in( 6 ) ) { + critter.make_friendly(); + } + } + } else if( critter.has_flag( MF_ELECTRIC_FIELD ) ) { + const efftype_id effect_emp( "emp" ); + if( sight && !critter.has_effect( effect_emp ) ) { + add_msg( m_good, _( "The %s's electrical field momentarily goes out!" ), critter.name() ); + critter.add_effect( effect_emp, 3_minutes ); + } else if( sight && critter.has_effect( effect_emp ) ) { + int dam = dice( 3, 5 ); + add_msg( m_good, _( "The %s's disabled electrical field reverses polarity!" ), + critter.name() ); + add_msg( m_good, _( "It takes %d damage." ), dam ); + critter.add_effect( effect_emp, 1_minutes ); + critter.apply_damage( nullptr, bp_torso, dam ); + critter.check_dead_state(); + } + } else if( sight ) { + add_msg( _( "The %s is unaffected by the EMP blast." ), critter.name() ); + } + } + if( g->u.posx() == x && g->u.posy() == y ) { + if( g->u.power_level > 0 ) { + add_msg( m_bad, _( "The EMP blast drains your power." ) ); + int max_drain = ( g->u.power_level > 1000 ? 1000 : g->u.power_level ); + g->u.charge_power( -rng( 1 + max_drain / 3, max_drain ) ); + } + // TODO: More effects? + //e-handcuffs effects + if( g->u.weapon.typeId() == "e_handcuffs" && g->u.weapon.charges > 0 ) { + g->u.weapon.item_tags.erase( "NO_UNWIELD" ); + g->u.weapon.charges = 0; + g->u.weapon.active = false; + add_msg( m_good, _( "The %s on your wrists spark briefly, then release your hands!" ), + g->u.weapon.tname() ); + } + } + // Drain any items of their battery charge + for( auto &it : g->m.i_at( x, y ) ) { + if( it.is_tool() && it.ammo_type() == ammotype( "battery" ) ) { + it.charges = 0; + } + } + // TODO: Drain NPC energy reserves +} + +void resonance_cascade( const tripoint &p ) +{ + const time_duration maxglow = time_duration::from_turns( 100 - 5 * trig_dist( p, g->u.pos() ) ); + const time_duration minglow = std::max( 0_turns, time_duration::from_turns( 60 - 5 * trig_dist( p, + g->u.pos() ) ) ); + MonsterGroupResult spawn_details; + monster invader; + if( maxglow > 0_turns ) { + g->u.add_effect( efftype_id( "teleglow" ), rng( minglow, maxglow ) * 100 ); + } + int startx = ( p.x < 8 ? 0 : p.x - 8 ), endx = ( p.x + 8 >= SEEX * 3 ? SEEX * 3 - 1 : p.x + 8 ); + int starty = ( p.y < 8 ? 0 : p.y - 8 ), endy = ( p.y + 8 >= SEEY * 3 ? SEEY * 3 - 1 : p.y + 8 ); + tripoint dest( startx, starty, p.z ); + for( int &i = dest.x; i <= endx; i++ ) { + for( int &j = dest.y; j <= endy; j++ ) { + switch( rng( 1, 80 ) ) { + case 1: + case 2: + emp_blast( dest ); + break; + case 3: + case 4: + case 5: + for( int k = i - 1; k <= i + 1; k++ ) { + for( int l = j - 1; l <= j + 1; l++ ) { + field_id type = fd_null; + switch( rng( 1, 7 ) ) { + case 1: + type = fd_blood; + break; + case 2: + type = fd_bile; + break; + case 3: + case 4: + type = fd_slime; + break; + case 5: + type = fd_fire; + break; + case 6: + case 7: + type = fd_nuke_gas; + break; + } + if( !one_in( 3 ) ) { + g->m.add_field( { k, l, p.z }, type, 3 ); + } + } + } + break; + case 6: + case 7: + case 8: + case 9: + case 10: + g->m.trap_set( dest, tr_portal ); + break; + case 11: + case 12: + g->m.trap_set( dest, tr_goo ); + break; + case 13: + case 14: + case 15: + spawn_details = MonsterGroupManager::GetResultFromGroup( mongroup_id( "GROUP_NETHER" ) ); + invader = monster( spawn_details.name, dest ); + g->add_zombie( invader ); + break; + case 16: + case 17: + case 18: + g->m.destroy( dest ); + break; + case 19: + explosion( dest, rng( 1, 10 ), rng( 0, 1 ) * rng( 0, 6 ), one_in( 4 ) ); + break; + default: + break; + } + } + } +} + +void nuke( const tripoint &p ) +{ + // TODO: nukes hit above surface, not critter = 0 + // TODO: Z + int x = p.x; + int y = p.y; + tinymap tmpmap; + tmpmap.load( x * 2, y * 2, 0, false ); + tripoint dest( 0, 0, p.z ); + int &i = dest.x; + int &j = dest.y; + for( i = 0; i < SEEX * 2; i++ ) { + for( j = 0; j < SEEY * 2; j++ ) { + if( !one_in( 10 ) ) { + tmpmap.make_rubble( dest, f_rubble_rock, true, t_dirt, true ); + } + if( one_in( 3 ) ) { + tmpmap.add_field( dest, fd_nuke_gas, 3 ); + } + tmpmap.adjust_radiation( dest, rng( 20, 80 ) ); + } + } + tmpmap.save(); + overmap_buffer.ter( x, y, 0 ) = oter_id( "crater" ); + // Kill any npcs on that omap location. + for( const auto &npc : overmap_buffer.get_npcs_near_omt( x, y, 0, 0 ) ) { + npc->marked_for_death = true; + } +} + +} + +// This is only ever used to zero the cloud values, which is what makes it work. +fragment_cloud &fragment_cloud::operator=( const float &value ) +{ + velocity = value; + density = value; + + return *this; +} + +bool fragment_cloud::operator==( const fragment_cloud &that ) +{ + return velocity == that.velocity && density == that.density; +} + +bool operator<( const fragment_cloud &us, const fragment_cloud &them ) +{ + return us.density < them.density && us.velocity < them.velocity; +} + +// Projectile velocity in air. See https://fas.org/man/dod-101/navy/docs/es310/warheads/Warheads.htm +// for a writeup of this exact calculation. +fragment_cloud shrapnel_calc( const fragment_cloud &initial, + const fragment_cloud &cloud, + const int &distance ) +{ + // SWAG coefficient of drag. + constexpr float Cd = 0.5; + fragment_cloud new_cloud; + new_cloud.velocity = initial.velocity * exp( -cloud.velocity * ( ( Cd * fragment_area * distance ) / + ( 2.0 * fragment_mass ) ) ); + // Two effects, the accumulated proportion of blocked fragments, + // and the inverse-square dilution of fragments with distance. + new_cloud.density = ( initial.density * cloud.density ) / ( distance * distance / 2.5 ); + return new_cloud; +} +bool shrapnel_check( const fragment_cloud &cloud, const fragment_cloud &intensity ) +{ + return cloud.density > 0.0 && intensity.velocity > MIN_EFFECTIVE_VELOCITY && + intensity.density > MIN_FRAGMENT_DENSITY; +} + +void update_fragment_cloud( fragment_cloud &update, const fragment_cloud &new_value, quadrant ) +{ + update = std::max( update, new_value ); +} + +fragment_cloud accumulate_fragment_cloud( const fragment_cloud &cumulative_cloud, + const fragment_cloud ¤t_cloud, const int &distance ) +{ + // Velocity is the cumulative and continuous decay of speed, + // so it is accumulated the same way as light attentuation. + // Density is the accumulation of discrete attenuaton events encountered in the traversed squares, + // so each term is added to the series via multiplication. + return fragment_cloud( ( ( distance - 1 ) * cumulative_cloud.velocity + current_cloud.velocity ) / + distance, + cumulative_cloud.density * current_cloud.density ); +} + float explosion_data::expected_range( float ratio ) const { if( power <= 0.0f || distance_factor >= 1.0f || distance_factor <= 0.0f ) { diff --git a/src/explosion.h b/src/explosion.h index 38b7d783757f8..8f16f15a5d768 100644 --- a/src/explosion.h +++ b/src/explosion.h @@ -2,11 +2,16 @@ #ifndef EXPLOSION_H #define EXPLOSION_H +#include #include +#include using itype_id = std::string; +struct tripoint; + class JsonObject; +class nc_color; struct shrapnel_data { int casing_mass = 0; @@ -30,6 +35,39 @@ struct explosion_data { int safe_range() const; }; +// handles explosion related functions +namespace explosion_handler +{ +/** Create explosion at p of intensity (power) with (shrapnel) chunks of shrapnel. + Explosion intensity formula is roughly power*factor^distance. + If factor <= 0, no blast is produced */ +void explosion( + const tripoint &p, float power, float factor = 0.8f, + bool fire = false, int casing_mass = 0, float fragment_mass = 0.05 +); + +void explosion( const tripoint &p, const explosion_data &ex ); + +/** Triggers a flashbang explosion at p. */ +void flashbang( const tripoint &p, bool player_immune = false ); +/** Triggers a resonance cascade at p. */ +void resonance_cascade( const tripoint &p ); +/** Triggers a scrambler blast at p. */ +void scrambler_blast( const tripoint &p ); +/** Triggers an EMP blast at p. */ +void emp_blast( const tripoint &p ); +/** Nuke the area at p - global overmap terrain coordinates! */ +void nuke( const tripoint &p ); +// shockwave applies knockback to all targets within radius of p +// parameters force, stun, and dam_mult are passed to knockback() +// ignore_player determines if player is affected, useful for bionic, etc. +void shockwave( const tripoint &p, int radius, int force, int stun, int dam_mult, + bool ignore_player ); + +void draw_explosion( const tripoint &p, int radius, const nc_color &col ); +void draw_custom_explosion( const tripoint &p, const std::map &area ); +}; + shrapnel_data load_shrapnel_data( JsonObject &jo ); explosion_data load_explosion_data( JsonObject &jo ); diff --git a/src/faction.cpp b/src/faction.cpp index ed81a134ef57b..03fbda3fad6c7 100644 --- a/src/faction.cpp +++ b/src/faction.cpp @@ -25,9 +25,9 @@ #include "string_formatter.h" #include "translations.h" #include "item.h" -#include "itype.h" #include "optional.h" #include "pimpl.h" +#include "type_id.h" static std::map _all_faction_templates; diff --git a/src/faction_camp.cpp b/src/faction_camp.cpp index 8e708d6bf84e0..b023f93b06b91 100644 --- a/src/faction_camp.cpp +++ b/src/faction_camp.cpp @@ -1,6 +1,6 @@ #include "faction_camp.h" // IWYU pragma: associated -#include +#include #include #include #include @@ -67,6 +67,7 @@ #include "ui.h" #include "units.h" #include "weighted_list.h" +#include "type_id.h" const skill_id skill_dodge( "dodge" ); const skill_id skill_gun( "gun" ); @@ -1100,7 +1101,6 @@ void basecamp::get_available_missions( mission_data &mission_key, bool by_radio comp_list npc_list = get_mission_workers( "_faction_exp_plant_" + dir ); const bcp_miss_data &miss_info = basecamp_missions_info[ "_faction_exp_plant_" ]; if( npc_list.empty() ) { - std::string title_e = dir + " Plant Fields"; entry = _( "Notes:\n" "Plant designated seeds in the spaces that have already been " "tilled.\n \n" ) + @@ -1129,7 +1129,6 @@ void basecamp::get_available_missions( mission_data &mission_key, bool by_radio comp_list npc_list = get_mission_workers( "_faction_exp_harvest_" + dir ); const bcp_miss_data &miss_info = basecamp_missions_info[ "_faction_exp_harvest_" ]; if( npc_list.empty() ) { - std::string title_e = dir + " Harvest Fields"; entry = _( "Notes:\n" "Harvest any plants that are ripe and bring the produce back.\n \n" ) + farm_description( omt_trg, plots, farm_ops::harvest ) + @@ -1710,10 +1709,10 @@ void basecamp::start_fortifications( std::string &bldg_exp, bool by_radio ) making.skill_used.str(), making.difficulty ); if( comp != nullptr ) { consume_components( total_inv, making, fortify_om.size() * 2 - 2, by_radio ); - } - comp->companion_mission_role_id = bldg_exp; - for( auto pt : fortify_om ) { - comp->companion_mission_points.push_back( pt ); + comp->companion_mission_role_id = bldg_exp; + for( auto pt : fortify_om ) { + comp->companion_mission_points.push_back( pt ); + } } } } @@ -2095,7 +2094,6 @@ bool basecamp::upgrade_return( const std::string &dir, const std::string &miss ) } const tripoint upos = e->second.pos; - const std::string bldg = next_upgrade( dir, 1 ); if( bldg == "null" ) { return false; @@ -2336,14 +2334,15 @@ void basecamp::recruit_return( const std::string &task, int score ) break; } } - //Roll for recruitment + // Roll for recruitment if( rng( 1, 20 ) + appeal >= 10 ) { popup( _( "%s has been convinced to join!" ), recruit->name ); } else { popup( _( "%s wasn't interested..." ), recruit->name ); - return;// nullptr; + // nullptr; + return; } - // time durations always subtract from camp food supply + // Time durations always subtract from camp food supply camp_food_supply( 1_days * food_desire ); recruit->spawn_at_precise( { g->get_levx(), g->get_levy() }, g->u.pos() + point( -4, -4 ) ); overmap_buffer.insert_npc( recruit ); @@ -3071,6 +3070,7 @@ std::vector basecamp::give_equipment( std::vector equipment, wrefresh( g->w_terrain ); std::vector names; + names.reserve( equipment.size() ); for( auto &i : equipment ) { names.push_back( i->tname() + " [" + to_string( i->charges ) + "]" ); } @@ -3256,6 +3256,10 @@ int basecamp::recruit_evaluation( int &sbase, int &sexpansions, int &sfaction, i { auto e = expansions.find( "[B]" ); if( e == expansions.end() ) { + sbase = 0; + sexpansions = 0; + sfaction = 0; + sbonus = 0; return 0; } sbase = e->second.cur_level * 5; diff --git a/src/fault.cpp b/src/fault.cpp index 19aabafc58dab..42c86f99f6f88 100644 --- a/src/fault.cpp +++ b/src/fault.cpp @@ -6,7 +6,6 @@ #include "json.h" #include "requirements.h" #include "translations.h" -#include "item.h" static std::map faults_all; diff --git a/src/fault.h b/src/fault.h index 7f32788e9c372..4c7f6fdaece64 100644 --- a/src/fault.h +++ b/src/fault.h @@ -6,20 +6,11 @@ #include #include "string_id.h" +#include "type_id.h" class JsonObject; -class fault; - -using fault_id = string_id; - -class Skill; - -using skill_id = string_id; - struct requirement_data; -using requirement_id = string_id; - class fault { public: diff --git a/src/field.cpp b/src/field.cpp index a1f940bda6492..f3b3dd2e54ffd 100644 --- a/src/field.cpp +++ b/src/field.cpp @@ -1,7 +1,7 @@ #include "field.h" -#include -#include +#include +#include #include #include #include @@ -39,7 +39,6 @@ #include "vpart_position.h" #include "weather.h" #include "bodypart.h" -#include "character.h" #include "creature.h" #include "damage.h" #include "int_id.h" @@ -51,6 +50,7 @@ #include "pldata.h" #include "string_id.h" #include "units.h" +#include "type_id.h" const species_id FUNGUS( "FUNGUS" ); @@ -903,8 +903,6 @@ bool map::process_fields_in_submap( submap *const current_submap, } break; case fd_plasma: - dirty_transparency_cache = true; - break; case fd_laser: dirty_transparency_cache = true; break; @@ -1381,10 +1379,6 @@ bool map::process_fields_in_submap( submap *const current_submap, break; case fd_smoke: - dirty_transparency_cache = true; - spread_gas( cur, p, curtype, 10, 0_turns ); - break; - case fd_tear_gas: dirty_transparency_cache = true; spread_gas( cur, p, curtype, 10, 0_turns ); diff --git a/src/filesystem.cpp b/src/filesystem.cpp index 23a0289778bfe..42f805ca00cb2 100644 --- a/src/filesystem.cpp +++ b/src/filesystem.cpp @@ -2,7 +2,7 @@ // FILE I/O #include -#include +#include #include #include #include @@ -65,7 +65,7 @@ bool do_mkdir( const std::string &path, const int mode ) bool assure_dir_exist( const std::string &path ) { - return dir_exist( path ) || do_mkdir( path, 0777 ); + return do_mkdir( path, 0777 ) || ( errno == EEXIST && dir_exist( path ) ); } bool dir_exist( const std::string &path ) @@ -416,3 +416,21 @@ bool copy_file( const std::string &source_path, const std::string &dest_path ) return dest_stream && source_stream; } + +std::string ensure_valid_file_name( const std::string &file_name ) +{ + const char replacement_char = ' '; + const std::string invalid_chars = "\\/:?\"<>|"; + + // do any replacement in the file name, if needed. + std::string new_file_name = file_name; + std::transform( new_file_name.begin(), new_file_name.end(), + new_file_name.begin(), [&]( const char c ) { + if( invalid_chars.find( c ) != std::string::npos ) { + return replacement_char; + } + return c; + } ); + + return new_file_name; +} diff --git a/src/filesystem.h b/src/filesystem.h index 501e48cbb6445..d86a415452c82 100644 --- a/src/filesystem.h +++ b/src/filesystem.h @@ -52,4 +52,12 @@ std::vector get_directories_with( const std::string &pattern, bool copy_file( const std::string &source_path, const std::string &dest_path ); +/** + * Replace invalid characters in a string with a default character; can be used to ensure that a file name is compliant with most file systems. + * @param file_name Name of the file to check. + * @return A string with all invalid characters replaced with the replacement character, if any change was made. + * @note The default replacement character is space (0x20) and the invalid characters are "\\/:?\"<>|". + */ +std::string ensure_valid_file_name( const std::string &file_name ); + #endif //CATA_FILE_SYSTEM_H diff --git a/src/fungal_effects.cpp b/src/fungal_effects.cpp index 0d384e3c16f0f..4e92810517fdc 100644 --- a/src/fungal_effects.cpp +++ b/src/fungal_effects.cpp @@ -17,10 +17,9 @@ #include "enums.h" #include "item.h" #include "item_stack.h" -#include "itype.h" -#include "pldata.h" #include "rng.h" #include "translations.h" +#include "type_id.h" const mtype_id mon_fungal_blossom( "mon_fungal_blossom" ); const mtype_id mon_spore( "mon_spore" ); diff --git a/src/game.cpp b/src/game.cpp index 9dad49b21a04b..7a8529815d3b2 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -1,6 +1,6 @@ #include "game.h" -#include +#include #include #include #include @@ -40,7 +40,6 @@ #include "creature_tracker.h" #include "cursesport.h" #include "debug.h" -#include "debug_menu.h" #include "dependency_tree.h" #include "editmap.h" #include "enums.h" @@ -79,12 +78,10 @@ #include "mod_manager.h" #include "monattack.h" #include "monexamine.h" -#include "monfaction.h" #include "mongroup.h" #include "monstergenerator.h" #include "morale_types.h" #include "mtype.h" -#include "mutation.h" #include "npc.h" #include "npc_class.h" #include "omdata.h" @@ -143,6 +140,8 @@ #include "ui.h" #include "units.h" #include "weighted_list.h" +#include "int_id.h" +#include "string_id.h" #if defined(TILES) #include "cata_tiles.h" @@ -222,8 +221,6 @@ static const trait_id trait_INFRESIST( "INFRESIST" ); static const trait_id trait_LEG_TENT_BRACE( "LEG_TENT_BRACE" ); static const trait_id trait_M_IMMUNE( "M_IMMUNE" ); static const trait_id trait_PARKOUR( "PARKOUR" ); -static const trait_id trait_PER_SLIME_OK( "PER_SLIME_OK" ); -static const trait_id trait_PER_SLIME( "PER_SLIME" ); static const trait_id trait_RUMINANT( "RUMINANT" ); static const trait_id trait_SHELL2( "SHELL2" ); static const trait_id trait_VINES2( "VINES2" ); @@ -246,6 +243,7 @@ std::unique_ptr g; #if defined(TILES) extern std::unique_ptr tilecontext; extern void toggle_fullscreen_window(); +extern bool save_screenshot( const std::string &file_path ); #endif // TILES uistatedata uistate; @@ -255,8 +253,6 @@ bool is_valid_in_w_terrain( int x, int y ) return x >= 0 && x < TERRAIN_WINDOW_WIDTH && y >= 0 && y < TERRAIN_WINDOW_HEIGHT; } -#define DEFAULT_TILESET_ZOOM 16 - // This is the main game set-up process. game::game() : liveview( *liveview_ptr ), @@ -517,31 +513,11 @@ void game::init_ui( const bool resized ) //Otherwise it segfaults when the overmap needs a bigger buffer size than it provides reinitialize_framebuffer(); - // minimapX x minimapY is always MINIMAP_WIDTH x MINIMAP_HEIGHT in size - int minimapX = 0; - int minimapY = 0; - int pixelminimapW = 0; - int pixelminimapH = 0; - bool pixel_minimap_custom_height = false; - -#if defined(TILES) - pixel_minimap_custom_height = get_option( "PIXEL_MINIMAP_HEIGHT" ) > 0; -#endif // TILES - - minimapX = 0; - minimapY = 0; - pixelminimapW = MINIMAP_WIDTH; - pixelminimapH = ( pixelminimapW / 2 ); - if( pixel_minimap_custom_height && - pixelminimapH > get_option( "PIXEL_MINIMAP_HEIGHT" ) ) { - pixelminimapH = get_option( "PIXEL_MINIMAP_HEIGHT" ); - } - + // minimap is always MINIMAP_WIDTH x MINIMAP_HEIGHT in size int _y = VIEW_OFFSET_Y; int _x = VIEW_OFFSET_X; - w_minimap = w_minimap_ptr = - catacurses::newwin( MINIMAP_HEIGHT, MINIMAP_WIDTH, _y + minimapY, _x + minimapX ); + w_minimap = w_minimap_ptr = catacurses::newwin( MINIMAP_HEIGHT, MINIMAP_WIDTH, _y, _x ); werase( w_minimap ); w_panel_adm = w_panel_adm_ptr = catacurses::newwin( 15, 65, ( TERMY / 2 ) - 8, ( TERMX / 2 ) - 33 ); @@ -702,6 +678,9 @@ bool game::start_game() mostseen = 0; // ...and mostseen is 0, we haven't seen any monsters yet. get_safemode().load_global(); + last_mouse_edge_scroll = std::chrono::steady_clock::now(); + last_mouse_edge_scroll_vector = tripoint_zero; + init_autosave(); catacurses::clear(); @@ -1557,6 +1536,8 @@ bool game::do_turn() sfx::remove_hearing_loss(); } sfx::do_danger_music(); + sfx::do_vehicle_engine_sfx(); + sfx::do_vehicle_exterior_engine_sfx(); sfx::do_fatigue(); // reset player noise @@ -2214,6 +2195,56 @@ bool game::handle_mouseview( input_context &ctxt, std::string &action ) return true; } +tripoint game::mouse_edge_scrolling( input_context ctxt, const int speed ) +{ + const int rate = get_option( "EDGE_SCROLL" ); + tripoint ret = tripoint_zero; + if( rate == -1 ) { + // Fast return when the option is disabled. + return ret; + } + // Ensure the parameters are used even if the #if below is false + ( void ) ctxt; + ( void ) speed; +#if (defined TILES || defined _WIN32 || defined WINDOWS) + auto now = std::chrono::steady_clock::now(); + if( now < last_mouse_edge_scroll + std::chrono::milliseconds( rate ) ) { + return ret; + } else { + last_mouse_edge_scroll = now; + } + const input_event event = ctxt.get_raw_input(); + if( event.type == CATA_INPUT_MOUSE ) { + const int threshold_x = projected_window_width() / 100; + const int threshold_y = projected_window_height() / 100; + if( event.mouse_x <= threshold_x ) { + ret.x -= speed; + } else if( event.mouse_x >= projected_window_width() - threshold_x ) { + ret.x += speed; + } + if( event.mouse_y <= threshold_y ) { + ret.y -= speed; + } else if( event.mouse_y >= projected_window_height() - threshold_y ) { + ret.y += speed; + } + last_mouse_edge_scroll_vector = ret; + } else if( event.type == CATA_INPUT_TIMEOUT ) { + return last_mouse_edge_scroll_vector; + } +#endif + return ret; +} + +tripoint game::mouse_edge_scrolling_terrain( input_context &ctxt ) +{ + return mouse_edge_scrolling( ctxt, std::max( DEFAULT_TILESET_ZOOM / tileset_zoom, 1 ) ); +} + +tripoint game::mouse_edge_scrolling_overmap( input_context &ctxt ) +{ + return mouse_edge_scrolling( ctxt, 1 ); +} + #if defined(TILES) void rescale_tileset( int size ); #endif @@ -2256,6 +2287,7 @@ input_context get_default_mode_input_context() ctxt.register_action( "examine" ); ctxt.register_action( "advinv" ); ctxt.register_action( "pickup" ); + ctxt.register_action( "pickup_feet" ); ctxt.register_action( "grab" ); ctxt.register_action( "haul" ); ctxt.register_action( "butcher" ); @@ -2272,6 +2304,7 @@ input_context get_default_mode_input_context() ctxt.register_action( "wear" ); ctxt.register_action( "take_off" ); ctxt.register_action( "eat" ); + ctxt.register_action( "open_consume" ); ctxt.register_action( "read" ); ctxt.register_action( "wield" ); ctxt.register_action( "pick_style" ); @@ -4305,78 +4338,6 @@ void game::overmap_npc_move() return; } -void game::flashbang( const tripoint &p, bool player_immune ) -{ - draw_explosion( p, 8, c_white ); - int dist = rl_dist( u.pos(), p ); - if( dist <= 8 && !player_immune ) { - if( !u.has_bionic( bionic_id( "bio_ears" ) ) && !u.is_wearing( "rm13_armor_on" ) ) { - u.add_effect( effect_deaf, time_duration::from_turns( 40 - dist * 4 ) ); - } - if( m.sees( u.pos(), p, 8 ) ) { - int flash_mod = 0; - if( u.has_trait( trait_PER_SLIME ) ) { - if( one_in( 2 ) ) { - flash_mod = 3; // Yay, you weren't looking! - } - } else if( u.has_trait( trait_PER_SLIME_OK ) ) { - flash_mod = 8; // Just retract those and extrude fresh eyes - } else if( u.has_bionic( bionic_id( "bio_sunglasses" ) ) || u.is_wearing( "rm13_armor_on" ) ) { - flash_mod = 6; - } else if( u.worn_with_flag( "BLIND" ) || u.worn_with_flag( "FLASH_PROTECTION" ) ) { - flash_mod = 3; // Not really proper flash protection, but better than nothing - } - u.add_env_effect( effect_blind, bp_eyes, ( 12 - flash_mod - dist ) / 2, - time_duration::from_turns( 10 - dist ) ); - } - } - for( monster &critter : all_monsters() ) { - // TODO: can the following code be called for all types of creatures - dist = rl_dist( critter.pos(), p ); - if( dist <= 8 ) { - if( dist <= 4 ) { - critter.add_effect( effect_stunned, time_duration::from_turns( 10 - dist ) ); - } - if( critter.has_flag( MF_SEES ) && m.sees( critter.pos(), p, 8 ) ) { - critter.add_effect( effect_blind, time_duration::from_turns( 18 - dist ) ); - } - if( critter.has_flag( MF_HEARS ) ) { - critter.add_effect( effect_deaf, time_duration::from_turns( 60 - dist * 4 ) ); - } - } - } - sounds::sound( p, 12, sounds::sound_t::combat, _( "a huge boom!" ) ); - // TODO: Blind/deafen NPC -} - -void game::shockwave( const tripoint &p, int radius, int force, int stun, int dam_mult, - bool ignore_player ) -{ - draw_explosion( p, radius, c_blue ); - - sounds::sound( p, force * force * dam_mult / 2, sounds::sound_t::combat, _( "Crack!" ) ); - - for( monster &critter : all_monsters() ) { - if( rl_dist( critter.pos(), p ) <= radius ) { - add_msg( _( "%s is caught in the shockwave!" ), critter.name() ); - knockback( p, critter.pos(), force, stun, dam_mult ); - } - } - // TODO: combine the two loops and the case for g->u using all_creatures() - for( npc &guy : all_npcs() ) { - if( rl_dist( guy.pos(), p ) <= radius ) { - add_msg( _( "%s is caught in the shockwave!" ), guy.name ); - knockback( p, guy.pos(), force, stun, dam_mult ); - } - } - if( rl_dist( u.pos(), p ) <= radius && !ignore_player && - ( !u.has_trait( trait_LEG_TENT_BRACE ) || u.footwear_factor() == 1 || - ( u.footwear_factor() == .5 && one_in( 2 ) ) ) ) { - add_msg( m_bad, _( "You're caught in the shockwave!" ) ); - knockback( p, u.pos(), force, stun, dam_mult ); - } -} - /* Knockback target at t by force number of tiles in direction from s to t stun > 0 indicates base stun duration, and causes impact stun; stun == -1 indicates only impact stun dam_mult multiplies impact damage, bash effect on impact, and sound level on impact */ @@ -4648,224 +4609,6 @@ void game::use_computer( const tripoint &p ) refresh_all(); } -void game::resonance_cascade( const tripoint &p ) -{ - const time_duration maxglow = time_duration::from_turns( 100 - 5 * trig_dist( p, u.pos() ) ); - const time_duration minglow = std::max( 0_turns, time_duration::from_turns( 60 - 5 * trig_dist( p, - u.pos() ) ) ); - MonsterGroupResult spawn_details; - monster invader; - if( maxglow > 0_turns ) { - u.add_effect( effect_teleglow, rng( minglow, maxglow ) * 100 ); - } - int startx = ( p.x < 8 ? 0 : p.x - 8 ), endx = ( p.x + 8 >= SEEX * 3 ? SEEX * 3 - 1 : p.x + 8 ); - int starty = ( p.y < 8 ? 0 : p.y - 8 ), endy = ( p.y + 8 >= SEEY * 3 ? SEEY * 3 - 1 : p.y + 8 ); - tripoint dest( startx, starty, p.z ); - for( int &i = dest.x; i <= endx; i++ ) { - for( int &j = dest.y; j <= endy; j++ ) { - switch( rng( 1, 80 ) ) { - case 1: - case 2: - emp_blast( dest ); - break; - case 3: - case 4: - case 5: - for( int k = i - 1; k <= i + 1; k++ ) { - for( int l = j - 1; l <= j + 1; l++ ) { - field_id type = fd_null; - switch( rng( 1, 7 ) ) { - case 1: - type = fd_blood; - break; - case 2: - type = fd_bile; - break; - case 3: - case 4: - type = fd_slime; - break; - case 5: - type = fd_fire; - break; - case 6: - case 7: - type = fd_nuke_gas; - break; - } - if( !one_in( 3 ) ) { - m.add_field( {k, l, p.z}, type, 3 ); - } - } - } - break; - case 6: - case 7: - case 8: - case 9: - case 10: - m.trap_set( dest, tr_portal ); - break; - case 11: - case 12: - m.trap_set( dest, tr_goo ); - break; - case 13: - case 14: - case 15: - spawn_details = MonsterGroupManager::GetResultFromGroup( mongroup_id( "GROUP_NETHER" ) ); - invader = monster( spawn_details.name, dest ); - add_zombie( invader ); - break; - case 16: - case 17: - case 18: - m.destroy( dest ); - break; - case 19: - explosion( dest, rng( 1, 10 ), rng( 0, 1 ) * rng( 0, 6 ), one_in( 4 ) ); - break; - default: - break; - } - } - } -} - -void game::scrambler_blast( const tripoint &p ) -{ - if( monster *const mon_ptr = critter_at( p ) ) { - monster &critter = *mon_ptr; - if( critter.has_flag( MF_ELECTRONIC ) ) { - critter.make_friendly(); - } - add_msg( m_warning, _( "The %s sparks and begins searching for a target!" ), - critter.name() ); - } -} - -void game::emp_blast( const tripoint &p ) -{ - // TODO: Implement z part - int x = p.x; - int y = p.y; - const bool sight = g->u.sees( p ); - if( m.has_flag( "CONSOLE", x, y ) ) { - if( sight ) { - add_msg( _( "The %s is rendered non-functional!" ), m.tername( x, y ) ); - } - m.ter_set( x, y, t_console_broken ); - return; - } - // TODO: More terrain effects. - if( m.ter( x, y ) == t_card_science || m.ter( x, y ) == t_card_military || - m.ter( x, y ) == t_card_industrial ) { - int rn = rng( 1, 100 ); - if( rn > 92 || rn < 40 ) { - if( sight ) { - add_msg( _( "The card reader is rendered non-functional." ) ); - } - m.ter_set( x, y, t_card_reader_broken ); - } - if( rn > 80 ) { - if( sight ) { - add_msg( _( "The nearby doors slide open!" ) ); - } - for( int i = -3; i <= 3; i++ ) { - for( int j = -3; j <= 3; j++ ) { - if( m.ter( x + i, y + j ) == t_door_metal_locked ) { - m.ter_set( x + i, y + j, t_floor ); - } - } - } - } - if( rn >= 40 && rn <= 80 ) { - if( sight ) { - add_msg( _( "Nothing happens." ) ); - } - } - } - if( monster *const mon_ptr = critter_at( p ) ) { - monster &critter = *mon_ptr; - if( critter.has_flag( MF_ELECTRONIC ) ) { - int deact_chance = 0; - const auto mon_item_id = critter.type->revert_to_itype; - switch( critter.get_size() ) { - case MS_TINY: - deact_chance = 6; - break; - case MS_SMALL: - deact_chance = 3; - break; - default: - // Currently not used, I have no idea what chances bigger bots should have, - // Maybe export this to json? - break; - } - if( !mon_item_id.empty() && deact_chance != 0 && one_in( deact_chance ) ) { - if( sight ) { - add_msg( _( "The %s beeps erratically and deactivates!" ), critter.name() ); - } - m.add_item_or_charges( x, y, critter.to_item() ); - for( auto &ammodef : critter.ammo ) { - if( ammodef.second > 0 ) { - m.spawn_item( x, y, ammodef.first, 1, ammodef.second, calendar::turn ); - } - } - remove_zombie( critter ); - } else { - if( sight ) { - add_msg( _( "The EMP blast fries the %s!" ), critter.name() ); - } - int dam = dice( 10, 10 ); - critter.apply_damage( nullptr, bp_torso, dam ); - critter.check_dead_state(); - if( !critter.is_dead() && one_in( 6 ) ) { - critter.make_friendly(); - } - } - } else if( critter.has_flag( MF_ELECTRIC_FIELD ) ) { - if( sight && !critter.has_effect( effect_emp ) ) { - add_msg( m_good, _( "The %s's electrical field momentarily goes out!" ), critter.name() ); - critter.add_effect( effect_emp, 3_minutes ); - } else if( sight && critter.has_effect( effect_emp ) ) { - int dam = dice( 3, 5 ); - add_msg( m_good, _( "The %s's disabled electrical field reverses polarity!" ), - critter.name() ); - add_msg( m_good, _( "It takes %d damage." ), dam ); - critter.add_effect( effect_emp, 1_minutes ); - critter.apply_damage( nullptr, bp_torso, dam ); - critter.check_dead_state(); - } - } else if( sight ) { - add_msg( _( "The %s is unaffected by the EMP blast." ), critter.name() ); - } - } - if( u.posx() == x && u.posy() == y ) { - if( u.power_level > 0 ) { - add_msg( m_bad, _( "The EMP blast drains your power." ) ); - int max_drain = ( u.power_level > 1000 ? 1000 : u.power_level ); - u.charge_power( -rng( 1 + max_drain / 3, max_drain ) ); - } - // TODO: More effects? - //e-handcuffs effects - if( u.weapon.typeId() == "e_handcuffs" && u.weapon.charges > 0 ) { - u.weapon.item_tags.erase( "NO_UNWIELD" ); - u.weapon.charges = 0; - u.weapon.active = false; - add_msg( m_good, _( "The %s on your wrists spark briefly, then release your hands!" ), - u.weapon.tname() ); - } - } - // Drain any items of their battery charge - for( auto &it : m.i_at( x, y ) ) { - if( it.is_tool() && it.ammo_type() == ammotype( "battery" ) ) { - it.charges = 0; - } - } - // TODO: Drain NPC energy reserves -} - template T *game::critter_at( const tripoint &p, bool allow_hallucination ) { @@ -5000,6 +4743,20 @@ void game::clear_zombies() */ bool game::spawn_hallucination( const tripoint &p ) { + if( one_in( 100 ) ) { + std::shared_ptr tmp = std::make_shared(); + tmp->normalize(); + tmp->randomize( NC_HALLU ); + tmp->spawn_at_precise( { get_levx(), get_levy() }, p ); + if( !critter_at( p, true ) ) { + overmap_buffer.insert_npc( tmp ); + load_npcs(); + return true; + } else { + return false; + } + } + monster phantasm( MonsterGenerator::generator().get_valid_hallucination() ); phantasm.hallucination = true; phantasm.spawn( p ); @@ -5171,7 +4928,8 @@ void game::save_cyborg( item *cyborg, const tripoint couch_pos, player &installe popup( _( "WARNING: Patient's body is damaged. Difficulty of the procedure is increased by %s." ), dmg_lvl ); - difficulty += dmg_lvl;// damage of the cyborg increases difficulty + // Damage of the cyborg increases difficulty + difficulty += dmg_lvl; } int chance_of_success = bionic_manip_cos( adjusted_skill, true, difficulty ); @@ -5826,7 +5584,12 @@ void game::pickup( const tripoint &p ) g->m.drawsq( w_terrain, u, p, true, true, u.pos() + u.view_offset ); wrefresh( w_terrain ); - Pickup::pick_up( p, 1 ); + Pickup::pick_up( p, 0 ); +} + +void game::pickup_feet() +{ + Pickup::pick_up( u.pos(), 1 ); } //Shift player by one tile, look_around(), then restore previous position. @@ -6161,7 +5924,8 @@ void game::print_graffiti_info( const tripoint &lp, const catacurses::window &w_ const int max_width = getmaxx( w_look ) - column - 2; if( m.has_graffiti_at( lp ) ) { - fold_and_print( w_look, ++line, column, max_width, c_light_gray, _( "Graffiti: %s" ), + fold_and_print( w_look, ++line, column, max_width, c_light_gray, + m.ter( lp ) == t_grave_new ? _( "Graffiti: %s" ) : _( "Incription: %s" ), m.graffiti_at( lp ) ); } } @@ -6189,15 +5953,18 @@ static void zones_manager_shortcuts( const catacurses::window &w_info ) tmpx += shortcut_print( w_info, 1, tmpx, c_white, c_light_green, _( "dd" ) ) + 2; tmpx += shortcut_print( w_info, 1, tmpx, c_white, c_light_green, _( "emove" ) ) + 2; tmpx += shortcut_print( w_info, 1, tmpx, c_white, c_light_green, _( "nable" ) ) + 2; + // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores) tmpx += shortcut_print( w_info, 1, tmpx, c_white, c_light_green, _( "isable" ) ) + 2; tmpx = 1; tmpx += shortcut_print( w_info, 2, tmpx, c_white, c_light_green, _( "<+-> Move up/down" ) ) + 2; + // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores) tmpx += shortcut_print( w_info, 2, tmpx, c_white, c_light_green, _( "-Edit" ) ) + 2; tmpx = 1; tmpx += shortcut_print( w_info, 3, tmpx, c_white, c_light_green, _( "how all / hide distant" ) ) + 2; + // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores) tmpx += shortcut_print( w_info, 3, tmpx, c_white, c_light_green, _( "ap" ) ) + 2; wrefresh( w_info ); @@ -6262,19 +6029,17 @@ void game::zones_manager() int zone_options_height = 7; const int width = 45; - const int offsetX = get_option( "SIDEBAR_POSITION" ) == "left" ? TERMX + VIEW_OFFSET_X - - - width : VIEW_OFFSET_X; - catacurses::window w_zones = catacurses::newwin( TERMY - 2 - zone_ui_height - VIEW_OFFSET_Y * 2, - width - 2, VIEW_OFFSET_Y + 1, offsetX + 1 ); - catacurses::window w_zones_border = catacurses::newwin( TERMY - zone_ui_height - VIEW_OFFSET_Y * 2, - width, + const int offsetX = get_option( "SIDEBAR_POSITION" ) == "left" ? + TERMX + VIEW_OFFSET_X - width : VIEW_OFFSET_X; + int w_zone_height = TERMY - zone_ui_height - VIEW_OFFSET_Y * 2; + catacurses::window w_zones = catacurses::newwin( w_zone_height - 2, width - 2, + VIEW_OFFSET_Y + 1, offsetX + 1 ); + catacurses::window w_zones_border = catacurses::newwin( w_zone_height, width, VIEW_OFFSET_Y, offsetX ); catacurses::window w_zones_info = catacurses::newwin( zone_ui_height - zone_options_height - 1, - width - 2, - TERMY - zone_ui_height - VIEW_OFFSET_Y, offsetX + 1 ); + width - 2, w_zone_height + VIEW_OFFSET_Y, offsetX + 1 ); catacurses::window w_zones_info_border = catacurses::newwin( zone_ui_height, width, - TERMY - zone_ui_height - VIEW_OFFSET_Y, offsetX ); + w_zone_height + VIEW_OFFSET_Y, offsetX ); catacurses::window w_zones_options = catacurses::newwin( zone_options_height - 1, width - 2, TERMY - zone_options_height - VIEW_OFFSET_Y, offsetX + 1 ); @@ -6297,11 +6062,10 @@ void game::zones_manager() ctxt.register_action( "HELP_KEYBINDINGS" ); auto &mgr = zone_manager::get_manager(); - const int max_rows = TERMY - zone_ui_height - 2 - VIEW_OFFSET_Y * 2; + const int max_rows = w_zone_height - 2; int start_index = 0; int active_index = 0; bool blink = false; - bool redraw_info = true; bool stuff_changed = false; bool show_all_zones = false; int zone_cnt = 0; @@ -6309,24 +6073,18 @@ void game::zones_manager() // get zones on the same z-level, with distance between player and // zone center point <= 50 or all zones, if show_all_zones is true auto get_zones = [&]() { - auto zones = mgr.get_zones(); - - if( !show_all_zones ) { - zones.erase( - std::remove_if( - zones.begin(), - zones.end(), - [&]( zone_manager::ref_zone_data ref ) -> bool { - const auto &zone = ref.get(); - const auto &a = m.getabs( u.pos() ); - const auto &b = zone.get_center_point(); - return a.z != b.z || rl_dist( a, b ) > 50; + std::vector zones; + if( show_all_zones ) { + zones = mgr.get_zones(); + } else { + const tripoint &u_abs_pos = m.getabs( u.pos() ); + for( zone_manager::ref_zone_data &ref : mgr.get_zones() ) { + const tripoint &zone_abs_pos = ref.get().get_center_point(); + if( u_abs_pos.z == zone_abs_pos.z && rl_dist( u_abs_pos, zone_abs_pos ) <= 50 ) { + zones.emplace_back( ref ); + } } - ), - zones.end() - ); } - zone_cnt = static_cast( zones.size() ); return zones; }; @@ -6363,25 +6121,29 @@ void game::zones_manager() tripoint center = u.pos() + u.view_offset; - const look_around_result first = look_around( w_zones_info, center, center, false, true, false ); + const look_around_result first = look_around( w_zones_info, center, center, false, true, + false ); if( first.position ) { mvwprintz( w_zones_info, 3, 2, c_white, _( "Select second point." ) ); wrefresh( w_zones_info ); - const look_around_result second = look_around( w_zones_info, center, *first.position, true, true, - false ); + const look_around_result second = look_around( w_zones_info, center, *first.position, + true, true, false ); if( second.position ) { werase( w_zones_info ); wrefresh( w_zones_info ); - tripoint first_abs = m.getabs( tripoint( std::min( first.position->x, second.position->x ), + tripoint first_abs = m.getabs( tripoint( std::min( first.position->x, + second.position->x ), std::min( first.position->y, second.position->y ), - std::min( first.position->z, second.position->z ) ) ); - tripoint second_abs = m.getabs( tripoint( std::max( first.position->x, second.position->x ), + std::min( first.position->z, + second.position->z ) ) ); + tripoint second_abs = m.getabs( tripoint( std::max( first.position->x, + second.position->x ), std::max( first.position->y, second.position->y ), - std::max( first.position->z, second.position->z ) ) ); - + std::max( first.position->z, + second.position->z ) ) ); return std::pair( first_abs, second_abs ); } } @@ -6392,7 +6154,8 @@ void game::zones_manager() zones_manager_open = true; do { if( action == "ADD_ZONE" ) { - zones_manager_draw_borders( w_zones_border, w_zones_info_border, zone_ui_height, width ); + zones_manager_draw_borders( w_zones_border, w_zones_info_border, + zone_ui_height, width ); do { // not a loop, just for quick bailing out if canceled const auto maybe_id = mgr.query_type(); @@ -6422,7 +6185,8 @@ void game::zones_manager() break; } - mgr.add( name, id, false, true, position->first, position->second, options ); + mgr.add( name, id, your_followers, false, true, position->first, position->second, + options ); zones = get_zones(); active_index = zone_cnt - 1; @@ -6432,9 +6196,9 @@ void game::zones_manager() draw_ter(); blink = false; - redraw_info = true; - zones_manager_draw_borders( w_zones_border, w_zones_info_border, zone_ui_height, width ); + zones_manager_draw_borders( w_zones_border, w_zones_info_border, + zone_ui_height, width ); zones_manager_shortcuts( w_zones_info ); } else if( action == "SHOW_ALL_ZONES" ) { @@ -6442,7 +6206,6 @@ void game::zones_manager() zones = get_zones(); active_index = 0; draw_ter(); - redraw_info = true; } else if( zone_cnt > 0 ) { if( action == "UP" ) { @@ -6452,7 +6215,6 @@ void game::zones_manager() } draw_ter(); blink = false; - redraw_info = true; } else if( action == "DOWN" ) { active_index++; @@ -6461,7 +6223,6 @@ void game::zones_manager() } draw_ter(); blink = false; - redraw_info = true; } else if( action == "REMOVE_ZONE" ) { if( active_index < zone_cnt ) { @@ -6478,7 +6239,6 @@ void game::zones_manager() draw_panels(); } blink = false; - redraw_info = true; stuff_changed = true; } else if( action == "CONFIRM" ) { @@ -6511,8 +6271,8 @@ void game::zones_manager() break; case 4: { const auto pos = query_position(); - if( pos && ( pos->first != zone.get_start_point() || pos->second != zone.get_end_point() ) ) { - + if( pos && ( pos->first != zone.get_start_point() || + pos->second != zone.get_end_point() ) ) { zone.set_position( *pos ); stuff_changed = true; } @@ -6525,9 +6285,9 @@ void game::zones_manager() draw_ter(); blink = false; - redraw_info = true; - zones_manager_draw_borders( w_zones_border, w_zones_info_border, zone_ui_height, width ); + zones_manager_draw_borders( w_zones_border, w_zones_info_border, + zone_ui_height, width ); zones_manager_shortcuts( w_zones_info ); } else if( action == "MOVE_ZONE_UP" && zone_cnt > 1 ) { @@ -6537,7 +6297,6 @@ void game::zones_manager() active_index++; } blink = false; - redraw_info = true; stuff_changed = true; } else if( action == "MOVE_ZONE_DOWN" && zone_cnt > 1 ) { @@ -6547,7 +6306,6 @@ void game::zones_manager() active_index--; } blink = false; - redraw_info = true; stuff_changed = true; } else if( action == "SHOW_ZONE_ON_MAP" ) { @@ -6557,23 +6315,20 @@ void game::zones_manager() ui::omap::display_zones( player_overmap_position, zone_overmap, active_index ); - zones_manager_draw_borders( w_zones_border, w_zones_info_border, zone_ui_height, width ); + zones_manager_draw_borders( w_zones_border, w_zones_info_border, + zone_ui_height, width ); zones_manager_shortcuts( w_zones_info ); draw_ter(); - redraw_info = true; - } else if( action == "ENABLE_ZONE" ) { zones[active_index].get().set_enabled( true ); - redraw_info = true; stuff_changed = true; } else if( action == "DISABLE_ZONE" ) { zones[active_index].get().set_enabled( false ); - redraw_info = true; stuff_changed = true; } } @@ -6583,8 +6338,7 @@ void game::zones_manager() wrefresh( w_zones_border ); mvwprintz( w_zones, 5, 2, c_white, _( "No Zones defined." ) ); - } else if( redraw_info ) { - redraw_info = false; + } else { werase( w_zones ); calcStartPos( start_index, active_index, max_rows, zone_cnt ); @@ -6622,7 +6376,8 @@ void game::zones_manager() //Draw direction + distance mvwprintz( w_zones, iNum - start_index, 32, colorLine, "%*d %s", 5, static_cast( trig_dist( player_absolute_pos, center ) ), - direction_name_short( direction_from( player_absolute_pos, center ) ) ); + direction_name_short( direction_from( player_absolute_pos, + center ) ) ); //Draw Vehicle Indicator mvwprintz( w_zones, iNum - start_index, 41, colorLine, @@ -6670,10 +6425,11 @@ void game::zones_manager() u.pos() + u.view_offset ); } else { if( u.has_effect( effect_boomered ) ) { - mvwputch( w_terrain, iY - offset_y, iX - offset_x, c_magenta, '#' ); - + mvwputch( w_terrain, iY - offset_y, iX - offset_x, + c_magenta, '#' ); } else { - mvwputch( w_terrain, iY - offset_y, iX - offset_x, c_black, ' ' ); + mvwputch( w_terrain, iY - offset_y, iX - offset_x, + c_black, ' ' ); } } } @@ -6691,7 +6447,6 @@ void game::zones_manager() wrefresh( w_terrain ); zones_manager_draw_borders( w_zones_border, w_zones_info_border, zone_ui_height, width ); zones_manager_shortcuts( w_zones_info ); - redraw_info = true; draw_panels(); wrefresh( w_zones ); wrefresh( w_zones_border ); @@ -6749,7 +6504,6 @@ look_around_result game::look_around( catacurses::window w_info, tripoint ¢e temp_exit_fullscreen(); - const int offset_x = ( u.posx() + u.view_offset.x ) - getmaxx( w_terrain ) / 2; const int offset_y = ( u.posy() + u.view_offset.y ) - getmaxy( w_terrain ) / 2; @@ -6825,7 +6579,6 @@ look_around_result game::look_around( catacurses::window w_info, tripoint ¢e const visibility_variables &cache = g->m.get_visibility_variables_cache(); bool blink = true; - bool action_unprocessed = false; bool redraw = true; look_around_result result; do { @@ -6891,12 +6644,7 @@ look_around_result game::look_around( catacurses::window w_info, tripoint ¢e redraw = true; //Wait for input - if( action_unprocessed ) { - // There was an action unprocessed after the mouse event consumption loop, process it now - action_unprocessed = false; - } else { - action = ctxt.handle_input(); - } + action = ctxt.handle_input( get_option( "EDGE_SCROLL" ) ); if( action == "LIST_ITEMS" ) { list_items_monsters(); } else if( action == "TOGGLE_FAST_SCROLL" ) { @@ -6941,49 +6689,24 @@ look_around_result game::look_around( catacurses::window w_info, tripoint ¢e center = u.pos(); lp = u.pos(); u.view_offset.z = 0; - } else if( action == "MOUSE_MOVE" ) { + } else if( action == "MOUSE_MOVE" || action == "TIMEOUT" ) { + if( action == "TIMEOUT" ) { + blink = !blink; + } const tripoint old_lp = lp; const tripoint old_center = center; - // Maximum mouse events before a forced graphics update - int max_consume = 10; - do { + tripoint edge_scroll = mouse_edge_scrolling_terrain( ctxt ); + if( edge_scroll != tripoint_zero ) { + if( action == "MOUSE_MOVE" ) { + edge_scroll *= 2; + } + center += edge_scroll; + } else { const cata::optional mouse_pos = ctxt.get_coordinates( w_terrain ); if( mouse_pos ) { lx = mouse_pos->x; ly = mouse_pos->y; } -#if (defined TILES || defined _WIN32 || defined WINDOWS) - // Below we implement mouse panning. In order to make - // it less jerky we rate limit it by only allowing a - // panning move during the first iteration of this - // mouse move event consumption loop. - if( max_consume == 10 && get_option( "EDGE_SCROLL" ) ) { - const input_event event = ctxt.get_raw_input(); - const int threshold_x = projected_window_width() / 20; - const int threshold_y = projected_window_height() / 20; - const int panning_speed = std::max( DEFAULT_TILESET_ZOOM / tileset_zoom, 1 ); - if( event.mouse_x <= threshold_x ) { - center.x -= panning_speed; - } else if( event.mouse_x >= projected_window_width() - threshold_x ) { - center.x += panning_speed; - } - if( event.mouse_y <= threshold_y ) { - center.y -= panning_speed; - } else if( event.mouse_y >= projected_window_height() - threshold_y ) { - center.y += panning_speed; - } - } -#endif - if( --max_consume == 0 ) { - break; - } - // Consume all consecutive mouse movements. This lowers CPU consumption - // by graphics updates when user moves the mouse continuously. - action = ctxt.handle_input( 10 ); - } while( action == "MOUSE_MOVE" ); - if( action != "MOUSE_MOVE" && action != "TIMEOUT" ) { - // The last event is not a mouse event or timeout, it needs to be processed in the next loop. - action_unprocessed = true; } lx = clamp( lx, 0, MAPSIZE_X ); ly = clamp( ly, 0, MAPSIZE_Y ); @@ -7009,8 +6732,6 @@ look_around_result game::look_around( catacurses::window w_info, tripoint ¢e if( select_zone && has_first_point ) { // is blinking blink = true; // Always draw blink symbols when moving cursor } - } else if( action == "TIMEOUT" ) { - blink = !blink; } else if( action == "throw_blind" ) { result.peek_action = PA_BLIND_THROW; } else if( action == "zoom_in" ) { @@ -7205,6 +6926,16 @@ int game::get_user_action_counter() const return user_action_counter; } +bool game::take_screenshot( const std::string &path ) const +{ +#if defined(TILES) + return save_screenshot( path ); +#else + ( void )path; // unused + return false; +#endif +} + //helper method so we can keep list_items shorter void game::reset_item_list_state( const catacurses::window &window, int height, bool bRadiusSort ) { @@ -7368,7 +7099,6 @@ game::vmenu_ret game::list_items( const std::vector &item_list ) int iStartPos = 0; tripoint active_pos; cata::optional iLastActive; - bool reset = true; bool refilter = true; int page_num = 0; int iCatSortNum = 0; @@ -7400,7 +7130,6 @@ game::vmenu_ret game::list_items( const std::vector &item_list ) do { if( action == "COMPARE" ) { game_menus::inv::compare( u, active_pos ); - reset = true; refresh_all(); } else if( action == "FILTER" ) { draw_item_filter_rules( w_item_info, 0, iInfoHeight - 1, item_filter_type::FILTER ); @@ -7411,7 +7140,6 @@ game::vmenu_ret game::list_items( const std::vector &item_list ) .identifier( "item_filter" ) .max_length( 256 ) .edit( sFilter ); - reset = true; refilter = true; addcategory = !sort_radius; uistate.list_item_filter_active = !sFilter.empty(); @@ -7419,7 +7147,6 @@ game::vmenu_ret game::list_items( const std::vector &item_list ) sFilter.clear(); filtered_items = ground_items; iLastActive.reset(); - reset = true; refilter = true; uistate.list_item_filter_active = false; addcategory = !sort_radius; @@ -7427,13 +7154,13 @@ game::vmenu_ret game::list_items( const std::vector &item_list ) std::vector vThisItem; std::vector vDummy; int dummy = 0; // draw_item_info needs an int & + assert( activeItem ); // To appease static analysis activeItem->example->info( true, vThisItem ); draw_item_info( 0, width - 5, 0, TERMY - VIEW_OFFSET_Y * 2, activeItem->example->tname(), activeItem->example->type_name(), vThisItem, vDummy, dummy, false, false, true ); // wait until the user presses a key to wipe the screen iLastActive.reset(); - reset = true; } else if( action == "PRIORITY_INCREASE" ) { draw_item_filter_rules( w_item_info, 0, iInfoHeight - 1, item_filter_type::HIGH_PRIORITY ); list_item_upvote = string_input_popup() @@ -7445,7 +7172,6 @@ game::vmenu_ret game::list_items( const std::vector &item_list ) .max_length( 256 ) .query_string(); refilter = true; - reset = true; addcategory = !sort_radius; uistate.list_item_priority_active = !list_item_upvote.empty(); } else if( action == "PRIORITY_DECREASE" ) { @@ -7459,7 +7185,6 @@ game::vmenu_ret game::list_items( const std::vector &item_list ) .max_length( 256 ) .query_string(); refilter = true; - reset = true; addcategory = !sort_radius; uistate.list_item_downvote_active = !list_item_downvote.empty(); } else if( action == "SORT" ) { @@ -7477,7 +7202,6 @@ game::vmenu_ret game::list_items( const std::vector &item_list ) mSortCategory.clear(); refilter = true; - reset = true; } else if( action == "TRAVEL_TO" ) { if( !u.sees( u.pos() + active_pos ) ) { add_msg( _( "You can't see that destination." ) ); @@ -7535,11 +7259,8 @@ game::vmenu_ret game::list_items( const std::vector &item_list ) iItemNum = static_cast( filtered_items.size() ) + iCatSortNum; } - if( reset ) { - reset_item_list_state( w_items_border, iInfoHeight, sort_radius ); - reset = false; - iScrollPos = 0; - } + reset_item_list_state( w_items_border, iInfoHeight, sort_radius ); + iScrollPos = 0; if( action == "HELP_KEYBINDINGS" ) { game::draw_ter(); @@ -7573,10 +7294,8 @@ game::vmenu_ret game::list_items( const std::vector &item_list ) page_num = std::max( 0, page_num - 1 ); } else if( action == "PAGE_UP" ) { iScrollPos--; - reset = true; } else if( action == "PAGE_DOWN" ) { iScrollPos++; - reset = true; } else if( action == "NEXT_TAB" || action == "PREV_TAB" ) { u.view_offset = stored_view_offset; return game::vmenu_ret::CHANGE_TAB; @@ -7686,7 +7405,6 @@ game::vmenu_ret game::list_items( const std::vector &item_list ) const bool bDrawLeft = ground_items.empty() || filtered_items.empty(); draw_custom_border( w_item_info, bDrawLeft, true, false, true, LINE_XOXO, LINE_XOXO, true, true ); - reset = true; wrefresh( w_items ); wrefresh( w_item_info ); catacurses::refresh(); @@ -8008,325 +7726,6 @@ std::vector nearby_vehicles_for( const itype_id &ft ) return result; } -void game::handle_all_liquid( item liquid, const int radius ) -{ - while( liquid.charges > 0l ) { - // handle_liquid allows to pour onto the ground, which will handle all the liquid and - // set charges to 0. This allows terminating the loop. - // The result of handle_liquid is ignored, the player *has* to handle all the liquid. - handle_liquid( liquid, nullptr, radius ); - } -} - -bool game::consume_liquid( item &liquid, const int radius ) -{ - const auto original_charges = liquid.charges; - while( liquid.charges > 0 && handle_liquid( liquid, nullptr, radius ) ) { - // try again with the remaining charges - } - return original_charges != liquid.charges; -} - -bool game::handle_liquid_from_ground( std::list::iterator on_ground, const tripoint &pos, - const int radius ) -{ - // TODO: not all code paths on handle_liquid consume move points, fix that. - handle_liquid( *on_ground, nullptr, radius, &pos ); - if( on_ground->charges > 0 ) { - return false; - } - m.i_at( pos ).erase( on_ground ); - return true; -} - -bool game::handle_liquid_from_container( std::list::iterator in_container, item &container, - int radius ) -{ - // TODO: not all code paths on handle_liquid consume move points, fix that. - const long old_charges = in_container->charges; - handle_liquid( *in_container, &container, radius ); - if( in_container->charges != old_charges ) { - container.on_contents_changed(); - } - - if( in_container->charges > 0 ) { - return false; - } - container.contents.erase( in_container ); - return true; -} - -bool game::handle_liquid_from_container( item &container, int radius ) -{ - return handle_liquid_from_container( container.contents.begin(), container, radius ); -} - -extern void serialize_liquid_source( player_activity &act, const vehicle &veh, const int part_num, - const item &liquid ); -extern void serialize_liquid_source( player_activity &act, const tripoint &pos, - const item &liquid ); -extern void serialize_liquid_source( player_activity &act, const monster &mon, const item &liquid ); - -extern void serialize_liquid_target( player_activity &act, const vehicle &veh ); -extern void serialize_liquid_target( player_activity &act, int container_item_pos ); -extern void serialize_liquid_target( player_activity &act, const tripoint &pos ); -extern void serialize_liquid_target( player_activity &act, const monster &mon ); - -bool game::get_liquid_target( item &liquid, item *const source, const int radius, - const tripoint *const source_pos, - const vehicle *const source_veh, - const monster *const source_mon, - liquid_dest_opt &target ) -{ - if( !liquid.made_of_from_type( LIQUID ) ) { - dbg( D_ERROR ) << "game:handle_liquid: Tried to handle_liquid a non-liquid!"; - debugmsg( "Tried to handle_liquid a non-liquid!" ); - // "canceled by the user" because we *can* not handle it. - return false; - } - - uilist menu; - - const std::string liquid_name = liquid.display_name( liquid.charges ); - if( source_pos != nullptr ) { - menu.text = string_format( _( "What to do with the %s from %s?" ), liquid_name, - m.name( *source_pos ) ); - } else if( source_veh != nullptr ) { - menu.text = string_format( _( "What to do with the %s from the %s?" ), liquid_name, - source_veh->name ); - } else if( source_mon != nullptr ) { - menu.text = string_format( _( "What to do with the %s from the %s?" ), liquid_name, - source_mon->get_name() ); - } else { - menu.text = string_format( _( "What to do with the %s?" ), liquid_name ); - } - std::vector> actions; - - if( u.can_consume( liquid ) && !source_mon ) { - menu.addentry( -1, true, 'e', _( "Consume it" ) ); - actions.emplace_back( [ & ]() { - target.dest_opt = LD_CONSUME; - } ); - } - // This handles containers found anywhere near the player, including on the map and in vehicle storage. - menu.addentry( -1, true, 'c', _( "Pour into a container" ) ); - actions.emplace_back( [ & ]() { - target.item_loc = game_menus::inv::container_for( u, liquid, radius ); - item *const cont = target.item_loc.get_item(); - - if( cont == nullptr || cont->is_null() ) { - add_msg( _( "Never mind." ) ); - return; - } - if( source != nullptr && cont == source ) { - add_msg( m_info, _( "That's the same container!" ) ); - return; // The user has intended to do something, but mistyped. - } - target.dest_opt = LD_ITEM; - } ); - // This handles liquids stored in vehicle parts directly (e.g. tanks). - std::set opts; - for( const auto &e : g->m.points_in_radius( g->u.pos(), 1 ) ) { - auto veh = veh_pointer_or_null( g->m.veh_at( e ) ); - if( veh && std::any_of( veh->parts.begin(), veh->parts.end(), [&liquid]( const vehicle_part & pt ) { - return pt.can_reload( liquid ); - } ) ) { - opts.insert( veh ); - } - } - for( auto veh : opts ) { - if( veh == source_veh ) { - continue; - } - menu.addentry( -1, true, MENU_AUTOASSIGN, _( "Fill nearby vehicle %s" ), veh->name ); - actions.emplace_back( [ &, veh]() { - target.veh = veh; - target.dest_opt = LD_VEH; - } ); - } - - for( auto &target_pos : m.points_in_radius( u.pos(), 1 ) ) { - if( !iexamine::has_keg( target_pos ) ) { - continue; - } - if( source_pos != nullptr && *source_pos == target_pos ) { - continue; - } - const std::string dir = direction_name( direction_from( u.pos(), target_pos ) ); - menu.addentry( -1, true, MENU_AUTOASSIGN, _( "Pour into an adjacent keg (%s)" ), dir ); - actions.emplace_back( [ &, target_pos ]() { - target.pos = target_pos; - target.dest_opt = LD_KEG; - } ); - } - - menu.addentry( -1, true, 'g', _( "Pour on the ground" ) ); - actions.emplace_back( [ & ]() { - // From infinite source to the ground somewhere else. The target has - // infinite space and the liquid can not be used from there anyway. - if( liquid.has_infinite_charges() && source_pos != nullptr ) { - add_msg( m_info, _( "Clearing out the %s would take forever." ), m.name( *source_pos ) ); - return; - } - - const std::string liqstr = string_format( _( "Pour %s where?" ), liquid_name ); - - refresh_all(); - const cata::optional target_pos_ = choose_adjacent( liqstr ); - if( !target_pos_ ) { - return; - } - target.pos = *target_pos_; - - if( source_pos != nullptr && *source_pos == target.pos ) { - add_msg( m_info, _( "That's where you took it from!" ) ); - return; - } - if( !m.can_put_items_ter_furn( target.pos ) ) { - add_msg( m_info, _( "You can't pour there!" ) ); - return; - } - target.dest_opt = LD_GROUND; - } ); - - if( liquid.rotten() ) { - // Pre-select this one as it is the most likely one for rotten liquids - menu.selected = menu.entries.size() - 1; - } - - if( menu.entries.empty() ) { - return false; - } - - menu.query(); - refresh_all(); - if( menu.ret < 0 || static_cast( menu.ret ) >= actions.size() ) { - add_msg( _( "Never mind." ) ); - // Explicitly canceled all options (container, drink, pour). - return false; - } - - actions[menu.ret](); - return true; -} - -bool game::perform_liquid_transfer( item &liquid, const tripoint *const source_pos, - const vehicle *const source_veh, const int part_num, - const monster *const source_mon, liquid_dest_opt &target ) -{ - bool transfer_ok = false; - if( !liquid.made_of_from_type( LIQUID ) ) { - dbg( D_ERROR ) << "game:handle_liquid: Tried to handle_liquid a non-liquid!"; - debugmsg( "Tried to handle_liquid a non-liquid!" ); - // "canceled by the user" because we *can* not handle it. - return transfer_ok; - } - - const auto create_activity = [&]() { - if( source_veh != nullptr ) { - u.assign_activity( activity_id( "ACT_FILL_LIQUID" ) ); - serialize_liquid_source( u.activity, *source_veh, part_num, liquid ); - return true; - } else if( source_pos != nullptr ) { - u.assign_activity( activity_id( "ACT_FILL_LIQUID" ) ); - serialize_liquid_source( u.activity, *source_pos, liquid ); - return true; - } else if( source_mon != nullptr ) { - return false; - } else { - return false; - } - }; - - switch( target.dest_opt ) { - case LD_CONSUME: - u.consume_item( liquid ); - transfer_ok = true; - break; - case LD_ITEM: { - item *const cont = target.item_loc.get_item(); - const int item_index = u.get_item_position( cont ); - // Currently activities can only store item position in the players inventory, - // not on ground or similar. TODO: implement storing arbitrary container locations. - if( item_index != INT_MIN && create_activity() ) { - serialize_liquid_target( u.activity, item_index ); - } else if( u.pour_into( *cont, liquid ) ) { - if( cont->needs_processing() ) { - // Polymorphism fail, have to introspect into the type to set the target container as active. - switch( target.item_loc.where() ) { - case item_location::type::map: - m.make_active( target.item_loc ); - break; - case item_location::type::vehicle: - m.veh_at( target.item_loc.position() )->vehicle().make_active( target.item_loc ); - break; - case item_location::type::character: - case item_location::type::invalid: - break; - } - } - u.mod_moves( -100 ); - } - transfer_ok = true; - break; - } - case LD_VEH: - if( target.veh == nullptr ) { - break; - } - if( create_activity() ) { - serialize_liquid_target( u.activity, *target.veh ); - } else if( u.pour_into( *target.veh, liquid ) ) { - u.mod_moves( -1000 ); // consistent with veh_interact::do_refill activity - } - transfer_ok = true; - break; - case LD_KEG: - case LD_GROUND: - if( create_activity() ) { - serialize_liquid_target( u.activity, target.pos ); - } else { - if( target.dest_opt == LD_KEG ) { - iexamine::pour_into_keg( target.pos, liquid ); - } else { - m.add_item_or_charges( target.pos, liquid ); - liquid.charges = 0; - } - u.mod_moves( -100 ); - } - transfer_ok = true; - break; - case LD_NULL: - default: - break; - } - return transfer_ok; -} - -bool game::handle_liquid( item &liquid, item *const source, const int radius, - const tripoint *const source_pos, - const vehicle *const source_veh, const int part_num, - const monster *const source_mon ) -{ - if( liquid.made_of_from_type( SOLID ) ) { - dbg( D_ERROR ) << "game:handle_liquid: Tried to handle_liquid a non-liquid!"; - debugmsg( "Tried to handle_liquid a non-liquid!" ); - // "canceled by the user" because we *can* not handle it. - return false; - } - if( !liquid.made_of( LIQUID ) ) { - add_msg( _( "The %s froze solid before you could finish." ), liquid.tname() ); - return false; - } - struct liquid_dest_opt liquid_target; - if( get_liquid_target( liquid, source, radius, source_pos, source_veh, source_mon, - liquid_target ) ) { - return perform_liquid_transfer( liquid, source_pos, source_veh, part_num, source_mon, - liquid_target ); - } - return false; -} - void game::drop() { u.drop( game_menus::inv::multidrop( u ), u.pos() ); @@ -9063,7 +8462,22 @@ void game::butcher() } } +void game::eat() +{ + eat( game_menus::inv::consume, INT_MIN ); +} + void game::eat( int pos ) +{ + eat( game_menus::inv::consume, pos ); +} + +void game::eat( item_location( *menu )( player &p ) ) +{ + eat( menu, INT_MIN ); +} + +void game::eat( item_location( *menu )( player &p ), int pos ) { if( ( u.has_active_mutation( trait_RUMINANT ) || u.has_active_mutation( trait_GRAZER ) ) && ( m.ter( u.pos() ) == t_underbrush || m.ter( u.pos() ) == t_shrub ) ) { @@ -9118,11 +8532,7 @@ void game::eat( int pos ) return; } - if( !u.has_activity( activity_id( "ACT_EAT_MENU" ) ) ) { - u.assign_activity( activity_id( "ACT_EAT_MENU" ) ); - } - - auto item_loc = game_menus::inv::consume( u ); + auto item_loc = menu( u ); if( !item_loc ) { u.cancel_activity(); add_msg( _( "Never mind." ) ); @@ -9246,7 +8656,6 @@ void game::reload( item_location &loc, bool prompt, bool empty ) refresh_all(); } - // Reload something. void game::reload_item() { @@ -9678,40 +9087,38 @@ bool game::plmove( int dx, int dy, int dz ) // breaking up some flat surface, like pavement mining_turns /= 2; } - if( get_option( "AUTO_FEATURES" ) && get_option( "AUTO_MINING" ) && - u.weapon.has_flag( "DIG_TOOL" ) ) { - if( u.weapon.has_flag( "POWERED" ) ) { - if( u.weapon.ammo_sufficient() ) { - mining_turns *= MINUTES( 30 ); - u.weapon.ammo_consume( u.weapon.ammo_required(), u.pos() ); - u.assign_activity( activity_id( "ACT_JACKHAMMER" ), mining_turns, -1, + if( get_option( "AUTO_FEATURES" ) && get_option( "AUTO_MINING" ) ) { + if( u.weapon.has_flag( "DIG_TOOL" ) ) { + if( u.weapon.has_flag( "POWERED" ) ) { + if( u.weapon.ammo_sufficient() ) { + mining_turns *= MINUTES( 30 ); + u.weapon.ammo_consume( u.weapon.ammo_required(), u.pos() ); + u.assign_activity( activity_id( "ACT_JACKHAMMER" ), mining_turns, -1, + u.get_item_position( &u.weapon ) ); + u.activity.placement = dest_loc; + add_msg( _( "You start breaking the %1$s with your %2$s." ), + m.tername( dest_loc ), u.weapon.tname() ); + u.defer_move( dest_loc ); // don't move into the tile until done mining + return true; + } else { + add_msg( _( "Your %s doesn't turn on." ), u.weapon.tname() ); + } + } else { + mining_turns *= ( ( MAX_STAT + 4 ) - std::min( u.str_cur, MAX_STAT ) ) * MINUTES( 5 ); + u.assign_activity( activity_id( "ACT_PICKAXE" ), mining_turns, -1, u.get_item_position( &u.weapon ) ); u.activity.placement = dest_loc; add_msg( _( "You start breaking the %1$s with your %2$s." ), m.tername( dest_loc ), u.weapon.tname() ); u.defer_move( dest_loc ); // don't move into the tile until done mining return true; - } else { - add_msg( _( "Your %s doesn't turn on." ), u.weapon.tname() ); } - } else { - mining_turns *= ( ( MAX_STAT + 4 ) - std::min( u.str_cur, MAX_STAT ) ) * MINUTES( 5 ); - u.assign_activity( activity_id( "ACT_PICKAXE" ), mining_turns, -1, - u.get_item_position( &u.weapon ) ); - u.activity.placement = dest_loc; - add_msg( _( "You start breaking the %1$s with your %2$s." ), - m.tername( dest_loc ), u.weapon.tname() ); + } else if( u.has_trait( trait_BURROW ) ) { + item burrowing_item( itype_id( "fake_burrowing" ) ); + u.invoke_item( &burrowing_item, "BURROW", dest_loc ); u.defer_move( dest_loc ); // don't move into the tile until done mining return true; } - } else if( u.has_active_mutation( trait_BURROW ) ) { - mining_turns *= ( ( MAX_STAT + 3 ) - std::min( u.str_cur, MAX_STAT ) ) * MINUTES( 2 ); - u.assign_activity( activity_id( "ACT_BURROW" ), mining_turns, -1, 0 ); - u.activity.placement = dest_loc; - add_msg( _( "You start tearing into the %s with your teeth and claws." ), - m.tername( dest_loc ) ); - u.defer_move( dest_loc ); // don't move into the tile until done mining - return true; } } } @@ -10089,18 +9496,21 @@ bool game::walk_move( const tripoint &dest_loc ) if( auto displayed_part = vp_there.part_displayed() ) { add_msg( m_warning, _( "Moving onto this %s is slow!" ), displayed_part->part().name() ); + sfx::do_obstacle( displayed_part->part().info().get_id().str() ); } else { add_msg( m_warning, _( "Moving onto this %s is slow!" ), m.name( dest_loc ) ); + sfx::do_obstacle( m.ter( dest_loc ).id().str() ); } } else { if( auto displayed_part = vp_here.part_displayed() ) { add_msg( m_warning, _( "Moving off of this %s is slow!" ), displayed_part->part().name() ); + sfx::do_obstacle( displayed_part->part().info().get_id().str() ); } else { add_msg( m_warning, _( "Moving off of this %s is slow!" ), m.name( u.pos() ) ); + sfx::do_obstacle( m.ter( u.pos() ).id().str() ); } } - sfx::play_variant_sound( "plmove", "clear_obstacle", sfx::get_heard_volume( u.pos() ) ); } if( u.has_trait( trait_id( "LEG_TENT_BRACE" ) ) && ( !u.footwear_factor() || @@ -10138,7 +9548,8 @@ bool game::walk_move( const tripoint &dest_loc ) } if( one_in( 20 ) && u.has_artifact_with( AEP_MOVEMENT_NOISE ) ) { - sounds::sound( u.pos(), 40, sounds::sound_t::movement, _( "a rattling sound." ) ); + sounds::sound( u.pos(), 40, sounds::sound_t::movement, _( "a rattling sound." ), true, + "misc", "rattling" ); } } @@ -10640,7 +10051,7 @@ bool game::grabbed_furn_move( const tripoint &dp ) } } sounds::sound( fdest, furntype.move_str_req * 2, sounds::sound_t::movement, - _( "a scraping noise." ) ); + _( "a scraping noise." ), true, "misc", "scraping" ); // Actually move the furniture. m.furn_set( fdest, m.furn( fpos ) ); @@ -11219,7 +10630,8 @@ void game::vertical_move( int movez, bool force ) if( m.has_zlevels() && abs( movez ) == 1 ) { for( monster &critter : all_monsters() ) { - if( critter.attack_target() == &g->u ) { + if( critter.attack_target() == &g->u || ( critter.has_effect( effect_pet ) && + critter.friendly == -1 ) ) { monsters_following.push_back( &critter ); } } @@ -11752,7 +11164,7 @@ void game::update_stair_monsters() add_msg( m_warning, dump.str() ); } else { sounds::sound( dest, 5, sounds::sound_t::movement, - _( "a sound nearby from the stairs!" ) ); + _( "a sound nearby from the stairs!" ), true, "misc", "stairs_movement" ); } if( critter.staircount > 0 ) { @@ -12036,36 +11448,6 @@ void game::teleport( player *p, bool add_teleglow ) } } -void game::nuke( const tripoint &p ) -{ - // TODO: nukes hit above surface, not critter = 0 - // TODO: Z - int x = p.x; - int y = p.y; - tinymap tmpmap; - tmpmap.load( x * 2, y * 2, 0, false ); - tripoint dest( 0, 0, p.z ); - int &i = dest.x; - int &j = dest.y; - for( i = 0; i < SEEX * 2; i++ ) { - for( j = 0; j < SEEY * 2; j++ ) { - if( !one_in( 10 ) ) { - tmpmap.make_rubble( dest, f_rubble_rock, true, t_dirt, true ); - } - if( one_in( 3 ) ) { - tmpmap.add_field( dest, fd_nuke_gas, 3 ); - } - tmpmap.adjust_radiation( dest, rng( 20, 80 ) ); - } - } - tmpmap.save(); - overmap_buffer.ter( x, y, 0 ) = oter_id( "crater" ); - // Kill any npcs on that omap location. - for( const auto &npc : overmap_buffer.get_npcs_near_omt( x, y, 0, 0 ) ) { - npc->marked_for_death = true; - } -} - void game::display_scent() { if( use_tiles ) { @@ -12574,9 +11956,6 @@ void game::add_artifact_messages( const std::vector &effects break; case AEP_CLAIRVOYANCE: - add_msg( m_good, _( "You can see through walls!" ) ); - break; - case AEP_CLAIRVOYANCE_PLUS: add_msg( m_good, _( "You can see through walls!" ) ); break; @@ -12760,7 +12139,11 @@ overmap &game::get_cur_om() const std::vector game::allies() { return get_npcs_if( [&]( const npc & guy ) { - return guy.is_ally( g->u ); + if( !guy.is_hallucination() ) { + return guy.is_ally( g->u ); + } else { + return false; + } } ); } diff --git a/src/game.h b/src/game.h index 1a80a2be2b4fd..e25fa391d1671 100644 --- a/src/game.h +++ b/src/game.h @@ -2,7 +2,7 @@ #ifndef GAME_H #define GAME_H -#include +#include #include #include #include @@ -14,19 +14,24 @@ #include #include #include +#include #include "calendar.h" #include "cursesdef.h" #include "enums.h" +#include "explosion.h" #include "game_constants.h" -#include "int_id.h" +#include "handle_liquid.h" #include "item_location.h" #include "optional.h" #include "pimpl.h" #include "creature.h" #include "item.h" -#include "string_id.h" +#include "type_id.h" #include "monster.h" +#include "game_inventory.h" + +#define DEFAULT_TILESET_ZOOM 16 extern bool test_mode; @@ -76,27 +81,13 @@ enum target_mode : int; struct targeting_data; struct special_game; -struct mtype; - -using mtype_id = string_id; -struct species_type; -using species_id = string_id; using itype_id = std::string; -class ammunition_type; - -using ammotype = string_id; class map; -class zone_type; - -using zone_type_id = string_id; class faction_manager; class new_faction_manager; class player; class npc; -struct MOD_INFORMATION; - -using mod_id = string_id; class vehicle; class Creature_tracker; class scenario; @@ -109,37 +100,17 @@ class overmap; class event_manager; enum event_type : int; -struct ter_t; - -using ter_id = int_id; class weather_generator; struct weather_printable; class live_view; class nc_color; struct w_point; -struct explosion_data; struct visibility_variables; class scent_map; class loading_ui; typedef std::function item_filter; -enum liquid_dest : int { - LD_NULL, - LD_CONSUME, - LD_ITEM, - LD_VEH, - LD_KEG, - LD_GROUND -}; - -struct liquid_dest_opt { - liquid_dest dest_opt = LD_NULL; - tripoint pos; - item_location item_loc; - vehicle *veh = nullptr; -}; - enum peek_act : int { PA_BLIND_THROW // obvious future additional value is PA_BLIND_FIRE @@ -157,6 +128,9 @@ struct w_map { catacurses::window win; }; +// There is only one game instance, so losing a few bytes of memory +// due to padding is not much of a concern. +// NOLINTNEXTLINE(clang-analyzer-optin.performance.Padding) class game { friend class editmap; @@ -221,6 +195,7 @@ class game /** Returns false if saving failed. */ bool save(); + /** Returns a list of currently active character saves. */ std::vector list_active_characters(); void write_memorial_file( std::string sLastWords ); @@ -243,35 +218,6 @@ class game cata::optional get_veh_dir_indicator_location( bool next ) const; void draw_veh_dir_indicator( bool next ); - /** Create explosion at p of intensity (power) with (shrapnel) chunks of shrapnel. - Explosion intensity formula is roughly power*factor^distance. - If factor <= 0, no blast is produced */ - void explosion( - const tripoint &p, float power, float factor = 0.8f, - bool fire = false, int casing_mass = 0, float fragment_mass = 0.05 - ); - - void explosion( - const tripoint &p, const explosion_data &ex - ); - - /** Helper for explosion, does the actual blast. */ - void do_blast( const tripoint &p, float power, float factor, bool fire ); - - /* - * Emits shrapnel damaging creatures and sometimes terrain/furniture within range - * @param src source from which shrapnel radiates outwards in a uniformly random distribution - * @param power raw kinetic energy which is responsible for damage and reduced by effects of cover - * @param casing_mass total mass of bomb casing, determines fragment velocity. - * @param fragment_mass mass of individual fragments, affects range, damage and coverage. - * @param range maximum distance shrapnel may travel - * @return vector containing all tiles that took damage. - */ - std::vector shrapnel( const tripoint &src, int power, int casing_mass, - float fragment_mass, int range = -1 ); - - /** Triggers a flashbang explosion at p. */ - void flashbang( const tripoint &p, bool player_immune = false ); /** Moves the player vertically. If force == true then they are falling. */ void vertical_move( int z, bool force ); /** Returns the other end of the stairs (if any). May query, affect u etc. */ @@ -282,12 +228,6 @@ class game void vertical_notes( int z_before, int z_after ); /** Checks to see if a player can use a computer (not illiterate, etc.) and uses if able. */ void use_computer( const tripoint &p ); - /** Triggers a resonance cascade at p. */ - void resonance_cascade( const tripoint &p ); - /** Triggers a scrambler blast at p. */ - void scrambler_blast( const tripoint &p ); - /** Triggers an EMP blast at p. */ - void emp_blast( const tripoint &p ); /** * @return The living creature with the given id. Returns null if no living * creature with such an id exists. Never returns a dead creature. @@ -551,8 +491,6 @@ class game /** Flings the input creature in the given direction. */ void fling_creature( Creature *c, const int &dir, float flvel, bool controlled = false ); - /** Nuke the area at p - global overmap terrain coordinates! */ - void nuke( const tripoint &p ); float natural_light_level( int zlev ) const; /** Returns coarse number-of-squares of visibility at the current light level. * Used by monster and NPC AI. @@ -637,6 +575,13 @@ class game int get_moves_since_last_save() const; int get_user_action_counter() const; + /** Saves a screenshot of the current viewport, as a PNG file, to the given location. + * @param file_path: A full path to the file where the screenshot should be saved. + * @note: Only works for SDL/TILES (otherwise the function returns `false`). A window (more precisely, a viewport) must already exist and the SDL renderer must be valid. + * @returns `true` if the screenshot generation was successful, `false` otherwise. + */ + bool take_screenshot( const std::string &file_path ) const; + // Returns outdoor or indoor temperature of given location (in absolute (@ref map::getabs)) int get_temperature( const tripoint &location ); @@ -668,103 +613,6 @@ class game // the function set the driving offset to (0,0) void calc_driving_offset( vehicle *veh = nullptr ); - /** - * @name Liquid handling - */ - /**@{*/ - /** - * Consume / handle all of the liquid. The function can be used when the liquid needs - * to be handled and can not be put back to where it came from (e.g. when it's a newly - * created item from crafting). - * The player is forced to handle all of it, which may required them to pour it onto - * the ground (if they don't have enough container space available) and essentially - * loose the item. - * @return Whether any of the liquid has been consumed. `false` indicates the player has - * declined all options to handle the liquid (essentially canceled the action) and no - * charges of the liquid have been transferred. - * `true` indicates some charges have been transferred (but not necessarily all of them). - */ - void handle_all_liquid( item liquid, int radius ); - - /** - * Consume / handle as much of the liquid as possible in varying ways. This function can - * be used when the action can be canceled, which implies the liquid can be put back - * to wherever it came from and is *not* lost if the player cancels the action. - * It returns when all liquid has been handled or if the player has explicitly canceled - * the action (use the charges count to distinguish). - * @return Whether any of the liquid has been consumed. `false` indicates the player has - * declined all options to handle the liquid and no charges of the liquid have been transferred. - * `true` indicates some charges have been transferred (but not necessarily all of them). - */ - bool consume_liquid( item &liquid, int radius = 0 ); - - /** - * Handle finite liquid from ground. The function also handles consuming move points. - * This may start a player activity. - * @param on_ground Iterator to the item on the ground. Must be valid and point to an - * item in the stack at `m.i_at(pos)` - * @param pos The position of the item on the map. - * @param radius around position to handle liquid for - * @return Whether the item has been removed (which implies it was handled completely). - * The iterator is invalidated in that case. Otherwise the item remains but may have - * fewer charges. - */ - bool handle_liquid_from_ground( std::list::iterator on_ground, const tripoint &pos, - int radius = 0 ); - - /** - * Handle liquid from inside a container item. The function also handles consuming move points. - * @param in_container Iterator to the liquid. Must be valid and point to an - * item in the @ref item::contents of the container. - * @param container Container of the liquid - * @param radius around position to handle liquid for - * @return Whether the item has been removed (which implies it was handled completely). - * The iterator is invalidated in that case. Otherwise the item remains but may have - * fewer charges. - */ - bool handle_liquid_from_container( std::list::iterator in_container, item &container, - int radius = 0 ); - /** - * Shortcut to the above: handles the first item in the container. - */ - bool handle_liquid_from_container( item &container, int radius = 0 ); - - /** - * This may start a player activity if either \p source_pos or \p source_veh is not - * null. - * The function consumes moves of the player as needed. - * Supply one of the source parameters to prevent the player from pouring the liquid back - * into that "container". If no source parameter is given, the liquid must not be in a - * container at all (e.g. freshly crafted, or already removed from the container). - * @param liquid The actual liquid - * @param source The container that currently contains the liquid. - * @param radius Radius to look for liquid around pos - * @param source_pos The source of the liquid when it's from the map. - * @param source_veh The vehicle that currently contains the liquid in its tank. - * @return Whether the user has handled the liquid (at least part of it). `false` indicates - * the user has rejected all possible actions. But note that `true` does *not* indicate any - * liquid was actually consumed, the user may have chosen an option that turned out to be - * invalid (chose to fill into a full/unsuitable container). - * Basically `false` indicates the user does not *want* to handle the liquid, `true` - * indicates they want to handle it. - */ - bool handle_liquid( item &liquid, item *source = nullptr, int radius = 0, - const tripoint *source_pos = nullptr, - const vehicle *source_veh = nullptr, const int part_num = -1, - const monster *source_mon = nullptr ); - /** - * These are helper functions for transfer liquid, for times when you just want to - * get the target of the transfer, or know the target and just want to transfer the - * liquid. They take the same arguments as handle_liquid, plus - * @param target structure containing information about the target - */ - bool get_liquid_target( item &liquid, item *const source, const int radius, - const tripoint *source_pos, const vehicle *const source_veh, - const monster *const source_mon, liquid_dest_opt &target ); - bool perform_liquid_transfer( item &liquid, - const tripoint *source_pos, - const vehicle *const source_veh, const int part_num, - const monster *const source_mon, liquid_dest_opt &target ); /**@}*/ void open_gate( const tripoint &p ); @@ -778,15 +626,7 @@ class game void knockback( const tripoint &s, const tripoint &t, int force, int stun, int dam_mult ); void knockback( std::vector &traj, int force, int stun, int dam_mult ); - // shockwave applies knockback to all targets within radius of p - // parameters force, stun, and dam_mult are passed to knockback() - // ignore_player determines if player is affected, useful for bionic, etc. - void shockwave( const tripoint &p, int radius, int force, int stun, int dam_mult, - bool ignore_player ); - // Animation related functions - void draw_explosion( const tripoint &p, int radius, const nc_color &col ); - void draw_custom_explosion( const tripoint &p, const std::map &area ); void draw_bullet( const tripoint &pos, int i, const std::vector &trajectory, char bullet ); void draw_hit_mon( const tripoint &p, const monster &critter, bool dead = false ); @@ -909,8 +749,9 @@ class game void examine( const tripoint &p ); // Examine nearby terrain 'e' void examine(); - void pickup(); // Pickup neaby items 'g' + void pickup(); // Pickup nearby items 'g', min 0 void pickup( const tripoint &p ); + void pickup_feet(); // Pick items at player position ',', min 1 void drop(); // Drop an item 'd' void drop_in_direction(); // Drop w/ direction 'D' @@ -924,7 +765,11 @@ class game void mend( int pos = INT_MIN ); void autoattack(); public: - void eat( int pos = INT_MIN ); // Eat food or fuel 'E' (or 'a') + /** Eat food or fuel 'E' (or 'a') */ + void eat(); + void eat( item_location( *menu )( player &p ) ); + void eat( int pos ); + void eat( item_location( *menu )( player &p ), int pos ); void reload_item(); // Reload an item void reload_weapon( bool try_everything = true ); // Reload a wielded gun/tool 'r' // Places the player at the specified point; hurts feet, lists items etc. @@ -971,7 +816,6 @@ class game int last_line ); void print_graffiti_info( const tripoint &lp, const catacurses::window &w_look, int column, int &line, int last_line ); - void get_lookaround_dimensions( int &lookWidth, int &begin_y, int &begin_x ) const; input_context get_player_input( std::string &action ); @@ -1002,6 +846,7 @@ class game void process_activity(); // Processes and enacts the player's activity void update_weather(); // Updates the temperature and weather patten void handle_key_blocking_activity(); // Abort reading etc. + void open_consume_item_menu(); // Custom menu for consuming specific group of items bool handle_action(); bool try_get_right_click_action( action_id &act, const tripoint &mouse_target ); bool try_get_left_click_action( action_id &act, const tripoint &mouse_target ); @@ -1030,6 +875,18 @@ class game public: void quicksave(); // Saves the game without quitting void disp_NPCs(); // Currently for debug use. Lists global NPCs. + + /** Used to implement mouse "edge scrolling". Returns a + * tripoint which is a vector of the resulting "move", i.e. + * (0, 0, 0) if the mouse is not at the edge of the screen, + * otherwise some (x, y, 0) depending on which edges are + * hit. + * This variant adjust scrolling speed according to zoom + * level, making it suitable when viewing the "terrain". + */ + tripoint mouse_edge_scrolling_terrain( input_context &ctxt ); + /** This variant is suitable for the overmap. */ + tripoint mouse_edge_scrolling_overmap( input_context &ctxt ); private: void quickload(); // Loads the previously saved game if it exists @@ -1175,6 +1032,10 @@ class game // Preview for auto move route std::vector destination_preview; + std::chrono::time_point last_mouse_edge_scroll; + tripoint last_mouse_edge_scroll_vector; + tripoint mouse_edge_scrolling( input_context ctxt, const int speed ); + }; // Returns temperature modifier from direct heat radiation of nearby sources diff --git a/src/game_constants.h b/src/game_constants.h index 95c7e9577a697..ba6a89c288ac0 100644 --- a/src/game_constants.h +++ b/src/game_constants.h @@ -1,9 +1,8 @@ -#include "calendar.h" - #pragma once #ifndef GAME_CONSTANTS_H #define GAME_CONSTANTS_H +#include "calendar.h" #include "units.h" // Fixed window sizes diff --git a/src/game_inventory.cpp b/src/game_inventory.cpp index 98582fbc996d3..c57d3baab8b31 100644 --- a/src/game_inventory.cpp +++ b/src/game_inventory.cpp @@ -1,7 +1,7 @@ #include "game_inventory.h" -#include -#include +#include +#include #include #include #include @@ -40,6 +40,7 @@ #include "ret_val.h" #include "translations.h" #include "units.h" +#include "type_id.h" class Character; @@ -101,7 +102,13 @@ static item_location inv_internal( player &u, const inventory_selector_preset &p std::pair init_pair; bool init_selection = false; - if( u.has_activity( activity_id( "ACT_EAT_MENU" ) ) && u.activity.values.size() >= 2 ) { + const std::vector consuming { + activity_id( "ACT_EAT_MENU" ), + activity_id( "ACT_CONSUME_FOOD_MENU" ), + activity_id( "ACT_CONSUME_DRINK_MENU" ), + activity_id( "ACT_CONSUME_MEDS_MENU" ) }; + + if( u.has_activity( consuming ) && u.activity.values.size() >= 2 ) { init_pair.first = u.activity.values[0]; init_pair.second = u.activity.values[1]; init_selection = true; @@ -135,7 +142,7 @@ static item_location inv_internal( player &u, const inventory_selector_preset &p continue; } - if( u.has_activity( activity_id( "ACT_EAT_MENU" ) ) ) { + if( u.has_activity( consuming ) ) { u.activity.values.clear(); init_pair = inv_s.get_selection_position(); u.activity.values.push_back( init_pair.first ); @@ -434,7 +441,7 @@ class comestible_inventory_preset : public inventory_selector_preset comestible_inventory_preset( const player &p ) : inventory_selector_preset(), p( p ) { append_cell( [ &p, this ]( const item_location & loc ) { - return good_bad_none( p.kcal_for( get_comestible_item( loc ) ) ); + return good_bad_none( p.kcal_for( get_consumable_item( loc ) ) ); }, _( "CALORIES" ) ); append_cell( [ this ]( const item_location & loc ) { @@ -442,11 +449,11 @@ class comestible_inventory_preset : public inventory_selector_preset }, _( "QUENCH" ) ); append_cell( [ &p, this ]( const item_location & loc ) { - const item &it = get_comestible_item( loc ); + const item &it = get_consumable_item( loc ); if( it.has_flag( "MUSHY" ) ) { - return highlight_good_bad_none( p.fun_for( get_comestible_item( loc ) ).first ); + return highlight_good_bad_none( p.fun_for( get_consumable_item( loc ) ).first ); } else { - return good_bad_none( p.fun_for( get_comestible_item( loc ) ).first ); + return good_bad_none( p.fun_for( get_consumable_item( loc ) ).first ); } }, _( "JOY" ) ); @@ -474,7 +481,7 @@ class comestible_inventory_preset : public inventory_selector_preset if( g->u.can_estimate_rot() ) { const islot_comestible item = get_edible_comestible( loc ); if( item.spoils > 0_turns ) { - if( !get_comestible_item( loc ).rotten() ) { + if( !get_consumable_item( loc ).rotten() ) { return get_time_left_rounded( loc ); } } @@ -486,7 +493,7 @@ class comestible_inventory_preset : public inventory_selector_preset append_cell( [ this, &p ]( const item_location & loc ) { std::string cbm_name; - switch( p.get_cbm_rechargeable_with( get_comestible_item( loc ) ) ) { + switch( p.get_cbm_rechargeable_with( get_consumable_item( loc ) ) ) { case rechargeable_cbm::none: break; case rechargeable_cbm::battery: @@ -508,7 +515,7 @@ class comestible_inventory_preset : public inventory_selector_preset }, _( "CBM" ) ); append_cell( [ this, &p ]( const item_location & loc ) { - return good_bad_none( p.get_acquirable_energy( get_comestible_item( loc ) ) ); + return good_bad_none( p.get_acquirable_energy( get_consumable_item( loc ) ) ); }, _( "ENERGY" ) ); } @@ -521,7 +528,7 @@ class comestible_inventory_preset : public inventory_selector_preset return _( "Can't drink spilt liquids" ); } - const auto &it = get_comestible_item( loc ); + const auto &it = get_consumable_item( loc ); const auto res = p.can_eat( it ); const auto cbm = p.get_cbm_rechargeable_with( it ); @@ -535,8 +542,8 @@ class comestible_inventory_preset : public inventory_selector_preset } bool sort_compare( const inventory_entry &lhs, const inventory_entry &rhs ) const override { - const auto &a = get_comestible_item( lhs.location ); - const auto &b = get_comestible_item( rhs.location ); + const auto &a = get_consumable_item( lhs.location ); + const auto &b = get_consumable_item( rhs.location ); const int freshness = rate_freshness( a, *lhs.location ) - rate_freshness( b, *rhs.location ); if( freshness != 0 ) { @@ -563,12 +570,14 @@ class comestible_inventory_preset : public inventory_selector_preset return 0; } - const item &get_comestible_item( const item_location &loc ) const { - return p.get_comestible_from( const_cast( *loc ) ); + // WARNING: this can return consumables which are not necessarily possessing + // the comestible type. please dereference responsibly. + const item &get_consumable_item( const item_location &loc ) const { + return p.get_consumable_from( const_cast( *loc ) ); } const islot_comestible &get_edible_comestible( const item_location &loc ) const { - return get_edible_comestible( get_comestible_item( loc ) ); + return get_edible_comestible( get_consumable_item( loc ) ); } const islot_comestible &get_edible_comestible( const item &it ) const { @@ -581,7 +590,7 @@ class comestible_inventory_preset : public inventory_selector_preset } std::string get_time_left_rounded( const item_location &loc ) { - const item &it = get_comestible_item( loc ); + const item &it = get_consumable_item( loc ); const double relative_rot = it.get_relative_rot(); const time_duration shelf_life = get_edible_comestible( loc ).spoils; time_duration time_left = shelf_life - shelf_life * relative_rot; @@ -600,7 +609,7 @@ class comestible_inventory_preset : public inventory_selector_preset } std::string get_freshness( const item_location &loc ) { - const item &it = get_comestible_item( loc ); + const item &it = get_consumable_item( loc ); const double rot_progress = it.get_relative_rot(); if( it.is_fresh() ) { return _( "fresh" ); @@ -625,11 +634,71 @@ class comestible_inventory_preset : public inventory_selector_preset item_location game_menus::inv::consume( player &p ) { + if( !g->u.has_activity( activity_id( "ACT_EAT_MENU" ) ) ) { + g->u.assign_activity( activity_id( "ACT_EAT_MENU" ) ); + } + return inv_internal( p, comestible_inventory_preset( p ), _( "Consume item" ), 1, _( "You have nothing to consume." ) ); } +class comestible_filtered_inventory_preset : public comestible_inventory_preset +{ + public: + comestible_filtered_inventory_preset( const player &p, bool( *predicate )( const item &it ) ) : + comestible_inventory_preset( p ), predicate( predicate ) {} + + bool is_shown( const item_location &loc ) const override { + return comestible_inventory_preset::is_shown( loc ) && + predicate( get_consumable_item( loc ) ); + } + + private: + bool( *predicate )( const item &it ); +}; + +item_location game_menus::inv::consume_food( player &p ) +{ + if( !g->u.has_activity( activity_id( "ACT_CONSUME_FOOD_MENU" ) ) ) { + g->u.assign_activity( activity_id( "ACT_CONSUME_FOOD_MENU" ) ); + } + + return inv_internal( p, comestible_filtered_inventory_preset( p, []( const item & it ) { + return ( it.is_comestible() && it.get_comestible()->comesttype == "FOOD" ) || + it.has_flag( "USE_EAT_VERB" ); + } ), + _( "Consume food" ), 1, + _( "You have no food to consume." ) ); +} + +item_location game_menus::inv::consume_drink( player &p ) +{ + if( !g->u.has_activity( activity_id( "ACT_CONSUME_DRINK_MENU" ) ) ) { + g->u.assign_activity( activity_id( "ACT_CONSUME_DRINK_MENU" ) ); + } + + return inv_internal( p, comestible_filtered_inventory_preset( p, []( const item & it ) { + return it.is_comestible() && it.get_comestible()->comesttype == "DRINK" && + !it.has_flag( "USE_EAT_VERB" ); + } ), + _( "Consume drink" ), 1, + _( "You have no drink to consume." ) ); +} + +item_location game_menus::inv::consume_meds( player &p ) +{ + if( !g->u.has_activity( activity_id( "ACT_CONSUME_MEDS_MENU" ) ) ) { + g->u.assign_activity( activity_id( "ACT_CONSUME_MEDS_MENU" ) ); + } + + return inv_internal( p, comestible_filtered_inventory_preset( p, []( const item & it ) { + return it.is_medication(); + } ), + _( "Consume medication" ), 1, + _( "You have no medication to consume." ) ); +} + class activatable_inventory_preset : public pickup_inventory_preset { public: @@ -787,11 +856,14 @@ class read_inventory_preset: public pickup_inventory_preset return unknown; } const auto &book = get_book( loc ); - if( book.skill && p.get_skill_level_object( book.skill ).can_train() ) { - return string_format( _( "%s to %d" ), book.skill->name(), book.level ); + if( book.skill ) { + const SkillLevel &skill = p.get_skill_level_object( book.skill ); + if( skill.can_train() ) { + return string_format( _( "%s to %d (%d)" ), book.skill->name(), book.level, skill.level() ); + } } return std::string(); - }, _( "TRAINS" ), unknown ); + }, _( "TRAINS (CURRENT)" ), unknown ); append_cell( [ this ]( const item_location & loc ) -> std::string { if( !is_known( loc ) ) { diff --git a/src/game_inventory.h b/src/game_inventory.h index 58628720cc1fb..d6988720b7414 100644 --- a/src/game_inventory.h +++ b/src/game_inventory.h @@ -63,6 +63,12 @@ std::list> multidrop( player &p ); /** Consuming an item. */ item_location consume( player &p ); +/** Consuming a food item via a custom menu. */ +item_location consume_food( player &p ); +/** Consuming a drink item via a custom menu. */ +item_location consume_drink( player &p ); +/** Consuming a medication item via a custom menu. */ +item_location consume_meds( player &p ); /** Choosing a container for liquid. */ item_location container_for( player &p, const item &liquid, int radius = 0 ); /** Item disassembling menu. */ diff --git a/src/gamemode.h b/src/gamemode.h index fe12e21f56120..1e740d7ef4efe 100644 --- a/src/gamemode.h +++ b/src/gamemode.h @@ -8,7 +8,7 @@ #include "calendar.h" #include "enums.h" -#include "string_id.h" +#include "type_id.h" enum action_id : int; using itype_id = std::string; @@ -17,9 +17,6 @@ namespace catacurses class window; } // namespace catacurses struct special_game; -struct mtype; - -using mtype_id = string_id; std::string special_game_name( special_game_id id ); std::unique_ptr get_special_game( special_game_id id ); diff --git a/src/gates.cpp b/src/gates.cpp index 72e4608442231..db55811a20756 100644 --- a/src/gates.cpp +++ b/src/gates.cpp @@ -29,6 +29,7 @@ #include "string_id.h" #include "translations.h" #include "units.h" +#include "type_id.h" // Gates namespace diff --git a/src/generic_factory.h b/src/generic_factory.h index 583e3815c9505..f6b338871ca14 100644 --- a/src/generic_factory.h +++ b/src/generic_factory.h @@ -876,7 +876,6 @@ class typed_flag_reader : public generic_typed_reader> } }; - template typed_flag_reader make_flag_reader( const std::map &m, const std::string &e ) { diff --git a/src/grab.cpp b/src/grab.cpp index 7b090f5ee79b3..b3b751aff4c16 100644 --- a/src/grab.cpp +++ b/src/grab.cpp @@ -1,7 +1,7 @@ #include "game.h" // IWYU pragma: associated -#include -#include +#include +#include #include #include "map.h" @@ -98,7 +98,7 @@ bool game::grabbed_veh_move( const tripoint &dp ) //if vehicle has no wheels str_req make a noise. if( str_req <= u.get_str() ) { sounds::sound( grabbed_vehicle->global_pos3(), str_req * 2, sounds::sound_t::movement, - _( "a scraping noise." ) ); + _( "a scraping noise." ), true, "misc", "scraping" ); } } diff --git a/src/gun_mode.h b/src/gun_mode.h index 6e1316b26829d..ef12689238041 100644 --- a/src/gun_mode.h +++ b/src/gun_mode.h @@ -5,6 +5,8 @@ #include #include +#include "translations.h" + class item; class gun_mode @@ -53,6 +55,10 @@ class gun_mode std::string name() const { return name_; } + + std::string tname() const { + return _( name_ ); + } }; #endif diff --git a/src/handle_action.cpp b/src/handle_action.cpp index 9409ef8b75523..064ef4efa440c 100644 --- a/src/handle_action.cpp +++ b/src/handle_action.cpp @@ -1,7 +1,7 @@ #include "game.h" // IWYU pragma: associated -#include -#include +#include +#include #include #include #include @@ -38,7 +38,6 @@ #include "options.h" #include "output.h" #include "overmap_ui.h" -#include "pickup.h" #include "player.h" #include "popup.h" #include "ranged.h" @@ -52,7 +51,6 @@ #include "weather.h" #include "worldfactory.h" #include "bodypart.h" -#include "character.h" #include "color.h" #include "damage.h" #include "lightmap.h" @@ -63,6 +61,7 @@ #include "translations.h" #include "ui.h" #include "units.h" +#include "string_id.h" #define dbg(x) DebugLog((DebugLevel)(x),D_GAME) << __FILE__ << ":" << __LINE__ << ": " @@ -362,11 +361,11 @@ static void rcdrive( int dx, int dy ) if( m.impassable( dest ) || !m.can_put_items_ter_furn( dest ) || m.has_furn( dest ) ) { sounds::sound( dest, 7, sounds::sound_t::combat, - _( "sound of a collision with an obstacle." ) ); + _( "sound of a collision with an obstacle." ), true, "misc", "rc_car_hits_obstacle" ); return; } else if( !m.add_item_or_charges( dest, *rc_car ).is_null() ) { //~ Sound of moving a remote controlled car - sounds::sound( src, 6, sounds::sound_t::movement, _( "zzz..." ) ); + sounds::sound( src, 6, sounds::sound_t::movement, _( "zzz..." ), true, "misc", "rc_car_drives" ); u.moves -= 50; m.i_rem( src, rc_car ); car_location_string.clear(); @@ -626,7 +625,7 @@ static void smash() if( m.get_field( smashp, fd_web ) != nullptr ) { m.remove_field( smashp, fd_web ); - sounds::sound( smashp, 2, sounds::sound_t::combat, "hsh!" ); + sounds::sound( smashp, 2, sounds::sound_t::combat, "hsh!", true, "smash", "web" ); add_msg( m_info, _( "You brush aside some webs." ) ); u.moves -= 100; return; @@ -659,7 +658,7 @@ static void smash() for( auto &elem : u.weapon.contents ) { m.add_item_or_charges( u.pos(), elem ); } - sounds::sound( u.pos(), 24, sounds::sound_t::combat, "CRACK!" ); + sounds::sound( u.pos(), 24, sounds::sound_t::combat, "CRACK!", true, "smash", "glass" ); u.deal_damage( nullptr, bp_hand_r, damage_instance( DT_CUT, rng( 0, vol ) ) ); if( vol > 20 ) { // Hurt left arm too, if it was big @@ -1252,6 +1251,32 @@ static void open_movement_mode_menu() } } +void game::open_consume_item_menu() +{ + uilist as_m; + + as_m.text = _( "What do you want to consume?" ); + + as_m.entries.emplace_back( 0, true, 'f', _( "Food" ) ); + as_m.entries.emplace_back( 1, true, 'd', _( "Drink" ) ); + as_m.entries.emplace_back( 2, true, 'm', _( "Medication" ) ); + as_m.query(); + + switch( as_m.ret ) { + case 0: + eat( game_menus::inv::consume_food ); + break; + case 1: + eat( game_menus::inv::consume_drink ); + break; + case 2: + eat( game_menus::inv::consume_meds ); + break; + default: + break; + } +} + bool game::handle_action() { std::string action; @@ -1567,6 +1592,14 @@ bool game::handle_action() } break; + case ACTION_PICKUP_FEET: + if( u.has_active_mutation( trait_SHELL2 ) ) { + add_msg( m_info, _( "You can't pick anything up while you're in your shell." ) ); + } else { + pickup_feet(); + } + break; + case ACTION_GRAB: if( u.has_active_mutation( trait_SHELL2 ) ) { add_msg( m_info, _( "You can't grab things while you're in your shell." ) ); @@ -1649,6 +1682,10 @@ bool game::handle_action() eat(); break; + case ACTION_OPEN_CONSUME: + open_consume_item_menu(); + break; + case ACTION_READ: // Shell-users are presumed to have the book just at an opening and read it that way read(); diff --git a/src/handle_liquid.cpp b/src/handle_liquid.cpp new file mode 100644 index 0000000000000..0f9d0439ee87e --- /dev/null +++ b/src/handle_liquid.cpp @@ -0,0 +1,345 @@ +#include "handle_liquid.h" + +#include "action.h" +#include "activity_handlers.h" +#include "game.h" +#include "game_inventory.h" +#include "iexamine.h" +#include "item.h" +#include "map.h" +#include "map_iterator.h" +#include "messages.h" +#include "monster.h" +#include "player.h" +#include "translations.h" +#include "ui.h" +#include "vehicle.h" +#include "vpart_position.h" + +#define dbg(x) DebugLog((DebugLevel)(x),D_GAME) << __FILE__ << ":" << __LINE__ << ": " + +extern void serialize_liquid_source( player_activity &act, const vehicle &veh, const int part_num, + const item &liquid ); +extern void serialize_liquid_source( player_activity &act, const tripoint &pos, + const item &liquid ); +extern void serialize_liquid_source( player_activity &act, const monster &mon, const item &liquid ); + +extern void serialize_liquid_target( player_activity &act, const vehicle &veh ); +extern void serialize_liquid_target( player_activity &act, int container_item_pos ); +extern void serialize_liquid_target( player_activity &act, const tripoint &pos ); +extern void serialize_liquid_target( player_activity &act, const monster &mon ); + +namespace liquid_handler +{ +void handle_all_liquid( item liquid, const int radius ) +{ + while( liquid.charges > 0l ) { + // handle_liquid allows to pour onto the ground, which will handle all the liquid and + // set charges to 0. This allows terminating the loop. + // The result of handle_liquid is ignored, the player *has* to handle all the liquid. + handle_liquid( liquid, nullptr, radius ); + } +} + +bool consume_liquid( item &liquid, const int radius ) +{ + const auto original_charges = liquid.charges; + while( liquid.charges > 0 && handle_liquid( liquid, nullptr, radius ) ) { + // try again with the remaining charges + } + return original_charges != liquid.charges; +} + +bool handle_liquid_from_ground( std::list::iterator on_ground, + const tripoint &pos, + const int radius ) +{ + // TODO: not all code paths on handle_liquid consume move points, fix that. + handle_liquid( *on_ground, nullptr, radius, &pos ); + if( on_ground->charges > 0 ) { + return false; + } + g->m.i_at( pos ).erase( on_ground ); + return true; +} + +bool handle_liquid_from_container( std::list::iterator in_container, + item &container, + int radius ) +{ + // TODO: not all code paths on handle_liquid consume move points, fix that. + const long old_charges = in_container->charges; + handle_liquid( *in_container, &container, radius ); + if( in_container->charges != old_charges ) { + container.on_contents_changed(); + } + + if( in_container->charges > 0 ) { + return false; + } + container.contents.erase( in_container ); + return true; +} + +bool handle_liquid_from_container( item &container, int radius ) +{ + return handle_liquid_from_container( container.contents.begin(), container, radius ); +} + + + +static bool get_liquid_target( item &liquid, item *const source, const int radius, + const tripoint *const source_pos, + const vehicle *const source_veh, + const monster *const source_mon, + liquid_dest_opt &target ) +{ + if( !liquid.made_of_from_type( LIQUID ) ) { + dbg( D_ERROR ) << "game:handle_liquid: Tried to handle_liquid a non-liquid!"; + debugmsg( "Tried to handle_liquid a non-liquid!" ); + // "canceled by the user" because we *can* not handle it. + return false; + } + + uilist menu; + + const std::string liquid_name = liquid.display_name( liquid.charges ); + if( source_pos != nullptr ) { + menu.text = string_format( _( "What to do with the %s from %s?" ), liquid_name, + g->m.name( *source_pos ) ); + } else if( source_veh != nullptr ) { + menu.text = string_format( _( "What to do with the %s from the %s?" ), liquid_name, + source_veh->name ); + } else if( source_mon != nullptr ) { + menu.text = string_format( _( "What to do with the %s from the %s?" ), liquid_name, + source_mon->get_name() ); + } else { + menu.text = string_format( _( "What to do with the %s?" ), liquid_name ); + } + std::vector> actions; + + if( g->u.can_consume( liquid ) && !source_mon ) { + menu.addentry( -1, true, 'e', _( "Consume it" ) ); + actions.emplace_back( [&]() { + target.dest_opt = LD_CONSUME; + } ); + } + // This handles containers found anywhere near the player, including on the map and in vehicle storage. + menu.addentry( -1, true, 'c', _( "Pour into a container" ) ); + actions.emplace_back( [&]() { + target.item_loc = game_menus::inv::container_for( g->u, liquid, radius ); + item *const cont = target.item_loc.get_item(); + + if( cont == nullptr || cont->is_null() ) { + add_msg( _( "Never mind." ) ); + return; + } + if( source != nullptr && cont == source ) { + add_msg( m_info, _( "That's the same container!" ) ); + return; // The user has intended to do something, but mistyped. + } + target.dest_opt = LD_ITEM; + } ); + // This handles liquids stored in vehicle parts directly (e.g. tanks). + std::set opts; + for( const auto &e : g->m.points_in_radius( g->u.pos(), 1 ) ) { + auto veh = veh_pointer_or_null( g->m.veh_at( e ) ); + if( veh && std::any_of( veh->parts.begin(), veh->parts.end(), [&liquid]( const vehicle_part & pt ) { + return pt.can_reload( liquid ); + } ) ) { + opts.insert( veh ); + } + } + for( auto veh : opts ) { + if( veh == source_veh ) { + continue; + } + menu.addentry( -1, true, MENU_AUTOASSIGN, _( "Fill nearby vehicle %s" ), veh->name ); + actions.emplace_back( [ &, veh]() { + target.veh = veh; + target.dest_opt = LD_VEH; + } ); + } + + for( auto &target_pos : g->m.points_in_radius( g->u.pos(), 1 ) ) { + if( !iexamine::has_keg( target_pos ) ) { + continue; + } + if( source_pos != nullptr && *source_pos == target_pos ) { + continue; + } + const std::string dir = direction_name( direction_from( g->u.pos(), target_pos ) ); + menu.addentry( -1, true, MENU_AUTOASSIGN, _( "Pour into an adjacent keg (%s)" ), dir ); + actions.emplace_back( [ &, target_pos]() { + target.pos = target_pos; + target.dest_opt = LD_KEG; + } ); + } + + menu.addentry( -1, true, 'g', _( "Pour on the ground" ) ); + actions.emplace_back( [&]() { + // From infinite source to the ground somewhere else. The target has + // infinite space and the liquid can not be used from there anyway. + if( liquid.has_infinite_charges() && source_pos != nullptr ) { + add_msg( m_info, _( "Clearing out the %s would take forever." ), g->m.name( *source_pos ) ); + return; + } + + const std::string liqstr = string_format( _( "Pour %s where?" ), liquid_name ); + + g->refresh_all(); + const cata::optional target_pos_ = choose_adjacent( liqstr ); + if( !target_pos_ ) { + return; + } + target.pos = *target_pos_; + + if( source_pos != nullptr && *source_pos == target.pos ) { + add_msg( m_info, _( "That's where you took it from!" ) ); + return; + } + if( !g->m.can_put_items_ter_furn( target.pos ) ) { + add_msg( m_info, _( "You can't pour there!" ) ); + return; + } + target.dest_opt = LD_GROUND; + } ); + + if( liquid.rotten() ) { + // Pre-select this one as it is the most likely one for rotten liquids + menu.selected = menu.entries.size() - 1; + } + + if( menu.entries.empty() ) { + return false; + } + + menu.query(); + g->refresh_all(); + if( menu.ret < 0 || static_cast( menu.ret ) >= actions.size() ) { + add_msg( _( "Never mind." ) ); + // Explicitly canceled all options (container, drink, pour). + return false; + } + + actions[menu.ret](); + return true; +} + +static bool perform_liquid_transfer( item &liquid, const tripoint *const source_pos, + const vehicle *const source_veh, const int part_num, + const monster *const source_mon, liquid_dest_opt &target ) +{ + bool transfer_ok = false; + if( !liquid.made_of_from_type( LIQUID ) ) { + dbg( D_ERROR ) << "game:handle_liquid: Tried to handle_liquid a non-liquid!"; + debugmsg( "Tried to handle_liquid a non-liquid!" ); + // "canceled by the user" because we *can* not handle it. + return transfer_ok; + } + + const auto create_activity = [&]() { + if( source_veh != nullptr ) { + g->u.assign_activity( activity_id( "ACT_FILL_LIQUID" ) ); + serialize_liquid_source( g->u.activity, *source_veh, part_num, liquid ); + return true; + } else if( source_pos != nullptr ) { + g->u.assign_activity( activity_id( "ACT_FILL_LIQUID" ) ); + serialize_liquid_source( g->u.activity, *source_pos, liquid ); + return true; + } else if( source_mon != nullptr ) { + return false; + } else { + return false; + } + }; + + switch( target.dest_opt ) { + case LD_CONSUME: + g->u.consume_item( liquid ); + transfer_ok = true; + break; + case LD_ITEM: { + item *const cont = target.item_loc.get_item(); + const int item_index = g->u.get_item_position( cont ); + // Currently activities can only store item position in the players inventory, + // not on ground or similar. TODO: implement storing arbitrary container locations. + if( item_index != INT_MIN && create_activity() ) { + serialize_liquid_target( g->u.activity, item_index ); + } else if( g->u.pour_into( *cont, liquid ) ) { + if( cont->needs_processing() ) { + // Polymorphism fail, have to introspect into the type to set the target container as active. + switch( target.item_loc.where() ) { + case item_location::type::map: + g->m.make_active( target.item_loc ); + break; + case item_location::type::vehicle: + g->m.veh_at( target.item_loc.position() )->vehicle().make_active( target.item_loc ); + break; + case item_location::type::character: + case item_location::type::invalid: + break; + } + } + g->u.mod_moves( -100 ); + } + transfer_ok = true; + break; + } + case LD_VEH: + if( target.veh == nullptr ) { + break; + } + if( create_activity() ) { + serialize_liquid_target( g->u.activity, *target.veh ); + } else if( g->u.pour_into( *target.veh, liquid ) ) { + g->u.mod_moves( -1000 ); // consistent with veh_interact::do_refill activity + } + transfer_ok = true; + break; + case LD_KEG: + case LD_GROUND: + if( create_activity() ) { + serialize_liquid_target( g->u.activity, target.pos ); + } else { + if( target.dest_opt == LD_KEG ) { + iexamine::pour_into_keg( target.pos, liquid ); + } else { + g->m.add_item_or_charges( target.pos, liquid ); + liquid.charges = 0; + } + g->u.mod_moves( -100 ); + } + transfer_ok = true; + break; + case LD_NULL: + default: + break; + } + return transfer_ok; +} + +bool handle_liquid( item &liquid, item *const source, const int radius, + const tripoint *const source_pos, + const vehicle *const source_veh, const int part_num, + const monster *const source_mon ) +{ + if( liquid.made_of_from_type( SOLID ) ) { + dbg( D_ERROR ) << "game:handle_liquid: Tried to handle_liquid a non-liquid!"; + debugmsg( "Tried to handle_liquid a non-liquid!" ); + // "canceled by the user" because we *can* not handle it. + return false; + } + if( !liquid.made_of( LIQUID ) ) { + add_msg( _( "The %s froze solid before you could finish." ), liquid.tname() ); + return false; + } + struct liquid_dest_opt liquid_target; + if( get_liquid_target( liquid, source, radius, source_pos, source_veh, source_mon, + liquid_target ) ) { + return perform_liquid_transfer( liquid, source_pos, source_veh, part_num, source_mon, + liquid_target ); + } + return false; +} +} diff --git a/src/handle_liquid.h b/src/handle_liquid.h new file mode 100644 index 0000000000000..6a0b04dd0baac --- /dev/null +++ b/src/handle_liquid.h @@ -0,0 +1,118 @@ +#pragma once +#ifndef HANDLE_LIQUID_H +#define HANDLE_LIQUID_H + +#include "item_location.h" + +#include + +class item; +class monster; +class vehicle; + +struct tripoint; + +enum liquid_dest : int { + LD_NULL, + LD_CONSUME, + LD_ITEM, + LD_VEH, + LD_KEG, + LD_GROUND +}; + +struct liquid_dest_opt { + liquid_dest dest_opt = LD_NULL; + tripoint pos; + item_location item_loc; + vehicle *veh = nullptr; +}; + +// Contains functions that handle liquid +namespace liquid_handler +{ +/** + * Consume / handle all of the liquid. The function can be used when the liquid needs + * to be handled and can not be put back to where it came from (e.g. when it's a newly + * created item from crafting). + * The player is forced to handle all of it, which may required them to pour it onto + * the ground (if they don't have enough container space available) and essentially + * loose the item. + * @return Whether any of the liquid has been consumed. `false` indicates the player has + * declined all options to handle the liquid (essentially canceled the action) and no + * charges of the liquid have been transferred. + * `true` indicates some charges have been transferred (but not necessarily all of them). + */ +void handle_all_liquid( item liquid, int radius ); + +/** + * Consume / handle as much of the liquid as possible in varying ways. This function can + * be used when the action can be canceled, which implies the liquid can be put back + * to wherever it came from and is *not* lost if the player cancels the action. + * It returns when all liquid has been handled or if the player has explicitly canceled + * the action (use the charges count to distinguish). + * @return Whether any of the liquid has been consumed. `false` indicates the player has + * declined all options to handle the liquid and no charges of the liquid have been transferred. + * `true` indicates some charges have been transferred (but not necessarily all of them). + */ +bool consume_liquid( item &liquid, int radius = 0 ); + +/** + * Handle finite liquid from ground. The function also handles consuming move points. + * This may start a player activity. + * @param on_ground Iterator to the item on the ground. Must be valid and point to an + * item in the stack at `m.i_at(pos)` + * @param pos The position of the item on the map. + * @param radius around position to handle liquid for + * @return Whether the item has been removed (which implies it was handled completely). + * The iterator is invalidated in that case. Otherwise the item remains but may have + * fewer charges. + */ +bool handle_liquid_from_ground( std::list::iterator on_ground, const tripoint &pos, + int radius = 0 ); + +/** + * Handle liquid from inside a container item. The function also handles consuming move points. + * @param in_container Iterator to the liquid. Must be valid and point to an + * item in the @ref item::contents of the container. + * @param container Container of the liquid + * @param radius around position to handle liquid for + * @return Whether the item has been removed (which implies it was handled completely). + * The iterator is invalidated in that case. Otherwise the item remains but may have + * fewer charges. + */ +bool handle_liquid_from_container( std::list::iterator in_container, item &container, + int radius = 0 ); +/** + * Shortcut to the above: handles the first item in the container. + */ +bool handle_liquid_from_container( item &container, int radius = 0 ); + +/** + * This may start a player activity if either \p source_pos or \p source_veh is not + * null. + * The function consumes moves of the player as needed. + * Supply one of the source parameters to prevent the player from pouring the liquid back + * into that "container". If no source parameter is given, the liquid must not be in a + * container at all (e.g. freshly crafted, or already removed from the container). + * @param liquid The actual liquid + * @param source The container that currently contains the liquid. + * @param radius Radius to look for liquid around pos + * @param source_pos The source of the liquid when it's from the map. + * @param source_veh The vehicle that currently contains the liquid in its tank. + * @return Whether the user has handled the liquid (at least part of it). `false` indicates + * the user has rejected all possible actions. But note that `true` does *not* indicate any + * liquid was actually consumed, the user may have chosen an option that turned out to be + * invalid (chose to fill into a full/unsuitable container). + * Basically `false` indicates the user does not *want* to handle the liquid, `true` + * indicates they want to handle it. + */ +bool handle_liquid( item &liquid, item *source = nullptr, int radius = 0, + const tripoint *source_pos = nullptr, + const vehicle *source_veh = nullptr, const int part_num = -1, + const monster *source_mon = nullptr ); +}; + + + +#endif diff --git a/src/harvest.cpp b/src/harvest.cpp index cfa1b3f3b8833..919da15a06e19 100644 --- a/src/harvest.cpp +++ b/src/harvest.cpp @@ -12,7 +12,6 @@ #include "item_group.h" #include "output.h" #include "json.h" -#include "mapdata.h" // TODO: Make a generic factory static std::map harvest_all; diff --git a/src/harvest.h b/src/harvest.h index 7ff1bb98d59c3..9c568d1e0d667 100644 --- a/src/harvest.h +++ b/src/harvest.h @@ -9,12 +9,10 @@ #include #include "string_id.h" +#include "type_id.h" typedef std::string itype_id; class JsonObject; -class harvest_list; - -using harvest_id = string_id; // Could be reused for butchery struct harvest_entry { diff --git a/src/help.cpp b/src/help.cpp index ed25846055732..bfb6c69239c7f 100644 --- a/src/help.cpp +++ b/src/help.cpp @@ -1,6 +1,6 @@ #include "help.h" -#include +#include #include #include #include @@ -136,8 +136,6 @@ void help::display_help() 1 + static_cast( ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0 ), 1 + static_cast( ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ) ); - bool needs_refresh = true; - ctxt.register_cardinal(); ctxt.register_action( "QUIT" ); ctxt.register_action( "CONFIRM" ); @@ -147,13 +145,10 @@ void help::display_help() std::string action; do { - if( needs_refresh ) { - draw_border( w_help_border, BORDER_COLOR, _( " HELP " ) ); - wrefresh( w_help_border ); - draw_menu( w_help ); - catacurses::refresh(); - needs_refresh = false; - } + draw_border( w_help_border, BORDER_COLOR, _( " HELP " ) ); + wrefresh( w_help_border ); + draw_menu( w_help ); + catacurses::refresh(); action = ctxt.handle_input(); std::string sInput = ctxt.get_raw_input().text; @@ -189,8 +184,6 @@ void help::display_help() } } } - - needs_refresh = true; } while( action != "QUIT" ); } diff --git a/src/iexamine.cpp b/src/iexamine.cpp index 45eab33f0e329..2bc557fccbef7 100644 --- a/src/iexamine.cpp +++ b/src/iexamine.cpp @@ -1,7 +1,7 @@ #include "iexamine.h" -#include -#include +#include +#include #include #include #include @@ -29,6 +29,7 @@ #include "field.h" #include "fungal_effects.h" #include "game.h" +#include "handle_liquid.h" #include "harvest.h" #include "input.h" #include "inventory.h" @@ -79,7 +80,7 @@ #include "pimpl.h" #include "player_activity.h" #include "pldata.h" -#include "character.h" +#include "string_id.h" const mtype_id mon_dark_wyrm( "mon_dark_wyrm" ); const mtype_id mon_fungal_blossom( "mon_fungal_blossom" ); @@ -256,7 +257,7 @@ void iexamine::gaspump( player &p, const tripoint &examp ) } } else { - g->handle_liquid_from_ground( item_it, examp, 1 ); + liquid_handler::handle_liquid_from_ground( item_it, examp, 1 ); } return; } @@ -595,13 +596,11 @@ void iexamine::vending( player &p, const tripoint &examp ) _( "Money left: %s" ), format_money( money ) ); // Keep the item selector centered in the page. - int page_beg = 0; - int page_end = page_size; + int page_beg; if( cur_pos < num_items - cur_pos ) { page_beg = std::max( 0, cur_pos - lines_above ); - page_end = std::min( num_items, page_beg + list_lines ); } else { - page_end = std::min( num_items, cur_pos + lines_below ); + int page_end = std::min( num_items, cur_pos + lines_below ); page_beg = std::max( 0, page_end - list_lines ); } @@ -699,7 +698,7 @@ void iexamine::toilet( player &p, const tripoint &examp ) water->poison = one_in( 3 ) ? 0 : rng( 1, 3 ); ( void ) p; // TODO: use me - g->handle_liquid_from_ground( water, examp ); + liquid_handler::handle_liquid_from_ground( water, examp ); } } @@ -816,37 +815,6 @@ void iexamine::rubble( player &p, const tripoint &examp ) return; } -/** - * Try to pry crate open with crowbar. - */ -void iexamine::crate( player &p, const tripoint &examp ) -{ - // PRY 1 is sufficient for popping open a nailed-shut crate. - auto prying_items = p.crafting_inventory().items_with( []( const item & it ) -> bool { - item temporary_item( it.type ); - return temporary_item.has_quality( quality_id( "PRY" ), 1 ); - } ); - - - if( prying_items.size() == 0 ) { - add_msg( m_info, _( "If only you had something to pry with..." ) ); - return; - } - - // Sort by their quality level. - std::sort( prying_items.begin(), prying_items.end(), []( const item * a, const item * b ) -> bool { - return a->get_quality( quality_id( "PRY" ) ) > b->get_quality( quality_id( "PRY" ) ); - } ); - - // if crowbar() ever eats charges or otherwise alters the passed item, rewrite this to reflect - // changes to the original item. - iuse dummy; - item temporary_item( prying_items[0]->type ); - p.add_msg_if_player( string_format( _( "You attempt to pry open the %s using your %s..." ), - g->m.furnname( examp ), prying_items[0]->tname() ) ); - dummy.crowbar( &p, &temporary_item, false, examp ); -} - /** * Prompt climbing over fence. Calculates move cost, applies it to player and, moves them. */ @@ -1099,7 +1067,7 @@ void iexamine::safe( player &p, const tripoint &examp ) return temporary_item.has_flag( "SAFECRACK" ); } ); - if( !( cracking_tool.size() > 0 || p.has_bionic( bionic_id( "bio_ears" ) ) ) ) { + if( !( !cracking_tool.empty() || p.has_bionic( bionic_id( "bio_ears" ) ) ) ) { p.moves -= 100; // one_in(30^3) chance of guessing if( one_in( 27000 ) ) { @@ -1187,7 +1155,8 @@ void iexamine::gunsafe_el( player &p, const tripoint &examp ) case HACK_FAIL: p.add_memorial_log( pgettext( "memorial_male", "Set off an alarm." ), pgettext( "memorial_female", "Set off an alarm." ) ); - sounds::sound( p.pos(), 60, sounds::sound_t::music, _( "an alarm sound!" ) ); + sounds::sound( p.pos(), 60, sounds::sound_t::music, _( "an alarm sound!" ), true, "environment", + "alarm" ); if( examp.z > 0 && !g->events.queued( EVENT_WANTED ) ) { g->events.add( EVENT_WANTED, calendar::turn + 30_minutes, 0, p.global_sm_location() ); } @@ -1217,10 +1186,10 @@ void iexamine::locked_object( player &p, const tripoint &examp ) { auto prying_items = p.crafting_inventory().items_with( []( const item & it ) -> bool { item temporary_item( it.type ); - return temporary_item.has_quality( quality_id( "PRY" ), 2 ); + return temporary_item.has_quality( quality_id( "PRY" ), 1 ); } ); - if( prying_items.size() == 0 ) { + if( prying_items.empty() ) { add_msg( m_info, _( "If only you had something to pry with..." ) ); return; } @@ -1230,10 +1199,14 @@ void iexamine::locked_object( player &p, const tripoint &examp ) return a->get_quality( quality_id( "PRY" ) ) > b->get_quality( quality_id( "PRY" ) ); } ); + p.add_msg_if_player( string_format( _( "You attempt to pry open the %s using your %s..." ), + g->m.has_furn( examp ) ? g->m.furnname( examp ) : g->m.tername( examp ), + prying_items[0]->tname() ) ); + + // if crowbar() ever eats charges or otherwise alters the passed item, rewrite this to reflect + // changes to the original item. iuse dummy; item temporary_item( prying_items[0]->type ); - p.add_msg_if_player( string_format( _( "You attempt to pry open the %s using your %s..." ), - g->m.tername( examp ), prying_items[0]->tname() ) ); dummy.crowbar( &p, &temporary_item, false, examp ); } @@ -1299,7 +1272,8 @@ void iexamine::pedestal_wyrm( player &p, const tripoint &examp ) } } add_msg( _( "The pedestal sinks into the ground..." ) ); - sounds::sound( examp, 80, sounds::sound_t::combat, _( "an ominous grinding noise..." ) ); + sounds::sound( examp, 80, sounds::sound_t::combat, _( "an ominous grinding noise..." ), true, + "misc", "stones_grinding" ); g->m.ter_set( examp, t_rock_floor ); g->events.add( EVENT_SPAWN_WYRMS, calendar::turn + rng( 5_turns, 10_turns ) ); } @@ -1865,6 +1839,7 @@ std::vector iexamine::get_seed_entries( const std::vector &s } std::vector seed_entries; + seed_entries.reserve( seed_map.size() ); for( const auto &pr : seed_map ) { seed_entries.emplace_back( pr.first, item::nname( pr.first, pr.second ), pr.second ); @@ -2497,7 +2472,7 @@ void iexamine::fvat_empty( player &p, const tripoint &examp ) break; } case REMOVE_BREW: { - g->handle_liquid_from_ground( g->m.i_at( examp ).begin(), examp ); + liquid_handler::handle_liquid_from_ground( g->m.i_at( examp ).begin(), examp ); return; } case START_FERMENT: { @@ -2610,7 +2585,7 @@ void iexamine::fvat_full( player &p, const tripoint &examp ) } const std::string booze_name = items_here.front().tname(); - if( g->handle_liquid_from_ground( items_here.begin(), examp ) ) { + if( liquid_handler::handle_liquid_from_ground( items_here.begin(), examp ) ) { g->m.furn_set( examp, f_fvat_empty ); add_msg( _( "You squeeze the last drops of %s from the vat." ), booze_name ); } @@ -2733,7 +2708,7 @@ void iexamine::keg( player &p, const tripoint &examp ) switch( selectmenu.ret ) { case DISPENSE: - if( g->handle_liquid_from_ground( drink, examp ) ) { + if( liquid_handler::handle_liquid_from_ground( drink, examp ) ) { add_msg( _( "You squeeze the last drops of %1$s from the %2$s." ), drink_tname, keg_name ); } @@ -2998,7 +2973,7 @@ void iexamine::tree_maple_tapped( player &p, const tripoint &examp ) if( ( it.is_bucket() || it.is_watertight_container() ) && !it.is_container_empty() ) { auto &liquid = it.contents.front(); if( liquid.typeId() == "maple_sap" ) { - g->handle_liquid_from_container( it, PICKUP_RANGE ); + liquid_handler::handle_liquid_from_container( it, PICKUP_RANGE ); } } } @@ -3152,7 +3127,7 @@ void iexamine::recycle_compactor( player &, const tripoint &examp ) // produce outputs double recover_factor = rng( 6, 9 ) / 10.0; sum_weight = sum_weight * recover_factor; - sounds::sound( examp, 80, sounds::sound_t::combat, _( "Ka-klunk!" ) ); + sounds::sound( examp, 80, sounds::sound_t::combat, _( "Ka-klunk!" ), true, "tool", "compactor" ); bool out_desired = false; bool out_any = false; for( auto it = m.compacts_into().begin() + o_idx; it != m.compacts_into().end(); ++it ) { @@ -3212,7 +3187,7 @@ void iexamine::water_source( player &p, const tripoint &examp ) { item water = g->m.water_from( examp ); ( void ) p; // TODO: use me - g->handle_liquid( water, nullptr, 0, &examp ); + liquid_handler::handle_liquid( water, nullptr, 0, &examp ); } const itype *furn_t::crafting_pseudo_item_type() const @@ -3374,6 +3349,7 @@ void iexamine::sign( player &p, const tripoint &examp ) std::vector filter = p.crafting_inventory().items_with( []( const item & it ) { return it.has_flag( "WRITE_MESSAGE" ) && it.charges > 0; } ); + tools.reserve( filter.size() ); for( const item *writing_item : filter ) { tools.push_back( tool_comp( writing_item->typeId(), 1 ) ); } @@ -3730,7 +3706,8 @@ void iexamine::pay_gas( player &p, const tripoint &examp ) return; } - sounds::sound( p.pos(), 6, sounds::sound_t::activity, _( "Glug Glug Glug" ) ); + sounds::sound( p.pos(), 6, sounds::sound_t::activity, _( "Glug Glug Glug" ), true, "tool", + "gaspump" ); long cost = liters * pricePerUnit; money -= cost; @@ -3748,7 +3725,8 @@ void iexamine::pay_gas( player &p, const tripoint &examp ) case HACK_FAIL: p.add_memorial_log( pgettext( "memorial_male", "Set off an alarm." ), pgettext( "memorial_female", "Set off an alarm." ) ); - sounds::sound( p.pos(), 60, sounds::sound_t::music, _( "an alarm sound!" ) ); + sounds::sound( p.pos(), 60, sounds::sound_t::music, _( "an alarm sound!" ), true, "environment", + "alarm" ); if( examp.z > 0 && !g->events.queued( EVENT_WANTED ) ) { g->events.add( EVENT_WANTED, calendar::turn + 30_minutes, 0, p.global_sm_location() ); } @@ -3762,7 +3740,7 @@ void iexamine::pay_gas( player &p, const tripoint &examp ) if( pGasPump && toPumpFuel( pTank, *pGasPump, tankGasUnits ) ) { add_msg( _( "You hack the terminal and route all available fuel to your pump!" ) ); sounds::sound( p.pos(), 6, sounds::sound_t::activity, - _( "Glug Glug Glug Glug Glug Glug Glug Glug Glug" ) ); + _( "Glug Glug Glug Glug Glug Glug Glug Glug Glug" ), true, "tool", "gaspump" ); } else { add_msg( _( "Nothing happens." ) ); } @@ -3784,7 +3762,8 @@ void iexamine::pay_gas( player &p, const tripoint &examp ) uistate.ags_pay_gas_selected_pump ); long amount = pGasPump ? fromPumpFuel( pTank, *pGasPump ) : 0l; if( amount >= 0 ) { - sounds::sound( p.pos(), 6, sounds::sound_t::activity, _( "Glug Glug Glug" ) ); + sounds::sound( p.pos(), 6, sounds::sound_t::activity, _( "Glug Glug Glug" ), true, "tool", + "gaspump" ); cashcard->charges += amount * pricePerUnit / 1000.0f; add_msg( m_info, _( "Your cash cards now hold %s." ), format_money( p.charges_of( "cash_card" ) ) ); p.moves -= 100; @@ -4006,7 +3985,6 @@ void iexamine::autodoc( player &p, const tripoint &examp ) return; } - uilist cmenu; cmenu.text = _( "Autodoc Mk. XI. Status: Online. Please choose operation." ); cmenu.addentry( 1, true, 'i', _( "Choose Compact Bionic Module to install." ) ); @@ -4044,7 +4022,8 @@ void iexamine::autodoc( player &p, const tripoint &examp ) } bool needs_anesthesia = true; - std::vector acomps;//legacy + // Legacy + std::vector acomps; std::vector anesth_kit; if( p.has_trait( trait_NOPAIN ) || p.has_bionic( bionic_id( "bio_painkiller" ) ) ) { needs_anesthesia = false; @@ -4131,10 +4110,12 @@ void iexamine::autodoc( player &p, const tripoint &examp ) comps.push_back( item_comp( it->typeId(), 1 ) ); p.consume_items( comps, 1, is_crafting_component ); if( needs_anesthesia ) { - if( acomps.empty() ) { // consume obsolete anesthesia first + // Consume obsolete anesthesia first + if( acomps.empty() ) { p.consume_tools( anesth_kit, 1 ); } else { - p.consume_items( acomps, 1, is_crafting_component );//legacy + // Legacy + p.consume_items( acomps, 1, is_crafting_component ); } } @@ -4210,6 +4191,7 @@ namespace sm_rack const int MIN_CHARCOAL = 100; const int CHARCOAL_PER_LITER = 25; const units::volume MAX_FOOD_VOLUME = units::from_liter( 20 ); +const units::volume MAX_FOOD_VOLUME_PORTABLE = units::from_liter( 15 ); } static int get_charcoal_charges( units::volume food ) @@ -4294,8 +4276,12 @@ void smoker_activate( player &p, const tripoint &examp ) { furn_id cur_smoker_type = g->m.furn( examp ); furn_id next_smoker_type = f_null; + const bool portable = g->m.furn( examp ) == furn_str_id( "f_metal_smoking_rack" ) || + g->m.furn( examp ) == furn_str_id( "f_metal_smoking_rack_active" ); if( cur_smoker_type == f_smoking_rack ) { next_smoker_type = f_smoking_rack_active; + } else if( cur_smoker_type == f_metal_smoking_rack ) { + next_smoker_type = f_metal_smoking_rack_active; } else { debugmsg( "Examined furniture has action smoker_activate, but is of type %s", g->m.furn( examp ).id().c_str() ); @@ -4344,7 +4330,12 @@ void smoker_activate( player &p, const tripoint &examp ) add_msg( _( "There is no charcoal in the rack." ) ); return; } - if( food_volume > sm_rack::MAX_FOOD_VOLUME ) { + if( portable && food_volume > sm_rack::MAX_FOOD_VOLUME_PORTABLE ) { + add_msg( _( "This rack is overloaded with food, and it blocks the flow of smoke. Remove some and try again." ) ); + add_msg( _( "You think that you can load about %s %s in it." ), + format_volume( sm_rack::MAX_FOOD_VOLUME_PORTABLE ), volume_units_long() ); + return; + } else if( food_volume > sm_rack::MAX_FOOD_VOLUME ) { add_msg( _( "This rack is overloaded with food, and it blocks the flow of smoke. Remove some and try again." ) ); add_msg( _( "You think that you can load about %s %s in it." ), format_volume( sm_rack::MAX_FOOD_VOLUME ), volume_units_long() ); @@ -4432,6 +4423,8 @@ void smoker_finalize( player &, const tripoint &examp, const time_point &start_t furn_id next_smoker_type = f_null; if( cur_smoker_type == f_smoking_rack_active ) { next_smoker_type = f_smoking_rack; + } else if( cur_smoker_type == f_metal_smoking_rack_active ) { + next_smoker_type = f_metal_smoking_rack; } else { debugmsg( "Furniture executed action smoker_finalize, but is of type %s", g->m.furn( examp ).id().c_str() ); @@ -4473,7 +4466,8 @@ void smoker_load_food( player &p, const tripoint &examp, const units::volume &re { std::vector comps; - if( g->m.furn( examp ) == furn_str_id( "f_smoking_rack_active" ) ) { + if( g->m.furn( examp ) == furn_str_id( "f_smoking_rack_active" ) || + g->m.furn( examp ) == furn_str_id( "f_metal_smoking_rack_active" ) ) { p.add_msg_if_player( _( "You can't place more food while it's smoking." ) ); return; } @@ -4489,11 +4483,10 @@ void smoker_load_food( player &p, const tripoint &examp, const units::volume &re uilist smenu; smenu.text = _( "Load smoking rack with what kind of food?" ); // count and ask for item to be placed ... - int count = 0; std::list names; std::vector entries; for( const item *smokable_item : filtered ) { - + int count; if( smokable_item->count_by_charges() ) { count = inv.charges_of( smokable_item->typeId() ); } else { @@ -4508,7 +4501,6 @@ void smoker_load_food( player &p, const tripoint &examp, const units::volume &re names.push_back( item::nname( smokable_item->typeId(), 1 ) ); comps.push_back( item_comp( smokable_item->typeId(), count ) ); } - count = 0; } if( comps.empty() ) { @@ -4522,7 +4514,7 @@ void smoker_load_food( player &p, const tripoint &examp, const units::volume &re add_msg( m_info, _( "Never mind." ) ); return; } - count = 0; + int count = 0; auto what = entries[smenu.ret]; for( const auto &c : comps ) { if( c.type == what->typeId() ) { @@ -4598,11 +4590,10 @@ void mill_load_food( player &p, const tripoint &examp, const units::volume &rema uilist smenu; smenu.text = _( "Load mill with what kind of product?" ); // count and ask for item to be placed ... - int count = 0; std::list names; std::vector entries; for( const item *millable_item : filtered ) { - + int count; if( millable_item->count_by_charges() ) { count = inv.charges_of( millable_item->typeId() ); } else { @@ -4617,7 +4608,6 @@ void mill_load_food( player &p, const tripoint &examp, const units::volume &rema names.push_back( item::nname( millable_item->typeId(), 1 ) ); comps.push_back( item_comp( millable_item->typeId(), count ) ); } - count = 0; } if( comps.empty() ) { @@ -4631,7 +4621,7 @@ void mill_load_food( player &p, const tripoint &examp, const units::volume &rema add_msg( m_info, _( "Never mind." ) ); return; } - count = 0; + int count = 0; auto what = entries[smenu.ret]; for( const auto &c : comps ) { if( c.type == what->typeId() ) { @@ -4688,7 +4678,8 @@ void mill_load_food( player &p, const tripoint &examp, const units::volume &rema void iexamine::on_smoke_out( const tripoint &examp, const time_point &start_time ) { - if( g->m.furn( examp ) == furn_str_id( "f_smoking_rack_active" ) ) { + if( g->m.furn( examp ) == furn_str_id( "f_smoking_rack_active" ) || + g->m.furn( examp ) == furn_str_id( "f_metal_smoking_rack_active" ) ) { smoker_finalize( g->u, examp, start_time ); } } @@ -4785,7 +4776,6 @@ void iexamine::quern_examine( player &p, const tripoint &examp ) _( "Applying the brake will stop milling process." ) ); } - smenu.query(); switch( smenu.ret ) { @@ -4875,16 +4865,27 @@ void iexamine::quern_examine( player &p, const tripoint &examp ) void iexamine::smoker_options( player &p, const tripoint &examp ) { - bool active = g->m.furn( examp ) == furn_str_id( "f_smoking_rack_active" ); + const bool active = g->m.furn( examp ) == furn_str_id( "f_smoking_rack_active" ) || + g->m.furn( examp ) == furn_str_id( "f_metal_smoking_rack_active" ); + const bool portable = g->m.furn( examp ) == furn_str_id( "f_metal_smoking_rack" ) || + g->m.furn( examp ) == furn_str_id( "f_metal_smoking_rack_active" ); auto items_here = g->m.i_at( examp ); - if( items_here.empty() && active ) { + if( portable && items_here.empty() && active ) { + debugmsg( "f_metal_smoking_rack_active was empty!" ); + g->m.furn_set( examp, f_metal_smoking_rack ); + return; + } else if( items_here.empty() && active ) { debugmsg( "f_smoking_rack_active was empty!" ); g->m.furn_set( examp, f_smoking_rack ); return; } - - if( items_here.size() == 1 && items_here.begin()->typeId() == "fake_smoke_plume" ) { + if( portable && items_here.size() == 1 && items_here.begin()->typeId() == "fake_smoke_plume" ) { + debugmsg( "f_metal_smoking_rack_active was empty, and had fake_smoke_plume!" ); + g->m.furn_set( examp, f_metal_smoking_rack ); + items_here.erase( items_here.begin() ); + return; + } else if( items_here.size() == 1 && items_here.begin()->typeId() == "fake_smoke_plume" ) { debugmsg( "f_smoking_rack_active was empty, and had fake_smoke_plume!" ); g->m.furn_set( examp, f_smoking_rack ); items_here.erase( items_here.begin() ); @@ -4914,7 +4915,9 @@ void iexamine::smoker_options( player &p, const tripoint &examp ) const bool empty = f_volume == 0_ml; const bool full = f_volume >= sm_rack::MAX_FOOD_VOLUME; + const bool full_portable = f_volume >= sm_rack::MAX_FOOD_VOLUME_PORTABLE; const auto remaining_capacity = sm_rack::MAX_FOOD_VOLUME - f_volume; + const auto remaining_capacity_portable = sm_rack::MAX_FOOD_VOLUME_PORTABLE - f_volume; const auto has_coal_in_inventory = p.charges_of( "charcoal" ) > 0; const auto coal_charges = count_charges_in_list( item::find_type( "charcoal" ), items_here ); const auto need_charges = get_charcoal_charges( f_volume ); @@ -4935,12 +4938,24 @@ void iexamine::smoker_options( player &p, const tripoint &examp ) need_charges - coal_charges ) : _( "Light up and smoke food" ), _( "Light up the smoking rack and start smoking. Smoking will take about 6 hours." ) ); + if( portable ) { + smenu.addentry_desc( 2, !full_portable, 'f', + full_portable ? _( "Insert food for smoking... smoking rack is full" ) : + string_format( _( "Insert food for smoking... remaining capacity is %s %s" ), + format_volume( remaining_capacity_portable ), volume_units_abbr() ), + _( "Fill the smoking rack with raw meat, fish or sausages for smoking or fruit or vegetable or smoked meat for drying." ) ); - smenu.addentry_desc( 2, !full, 'f', - full ? _( "Insert food for smoking... smoking rack is full" ) : - string_format( _( "Insert food for smoking... remaining capacity is %s %s" ), - format_volume( remaining_capacity ), volume_units_abbr() ), - _( "Fill the smoking rack with raw meat, fish or sausages for smoking or fruit or vegetable or smoked meat for drying." ) ); + smenu.addentry_desc( 8, !active, 'z', + active ? _( "You cannot disassemble this smoking rack while it is active!" ) : + _( "Disassemble the smoking rack" ), "" ); + + } else { + smenu.addentry_desc( 2, !full, 'f', + full ? _( "Insert food for smoking... smoking rack is full" ) : + string_format( _( "Insert food for smoking... remaining capacity is %s %s" ), + format_volume( remaining_capacity ), volume_units_abbr() ), + _( "Fill the smoking rack with raw meat, fish or sausages for smoking or fruit or vegetable or smoked meat for drying." ) ); + } if( f_check ) { smenu.addentry( 4, f_check, 'e', _( "Remove food from smoking rack" ) ); @@ -4953,6 +4968,7 @@ void iexamine::smoker_options( player &p, const tripoint &examp ) _( "You need %d charges of charcoal for %s %s of food. Minimal amount of charcoal is %d charges." ), sm_rack::CHARCOAL_PER_LITER, format_volume( 1000_ml ), volume_units_long(), sm_rack::MIN_CHARCOAL ) ); + } else { smenu.addentry_desc( 7, true, 'x', _( "Quench burning charcoal" ), @@ -4979,9 +4995,10 @@ void iexamine::smoker_options( player &p, const tripoint &examp ) "It will finish smoking in about %d hours.", hours_left ), hours_left ) << "\n \n "; } else if( minutes_left > 30 ) { - pop << _( "It will finish smoking in less than an hour." ); + pop << _( "It will finish smoking in less than an hour." ) << "\n "; } else { - pop << string_format( _( "It should take about %d minutes to finish smoking." ), minutes_left ); + pop << string_format( _( "It should take about %d minutes to finish smoking." ), + minutes_left ) << "\n "; } } } else { @@ -5013,7 +5030,11 @@ void iexamine::smoker_options( player &p, const tripoint &examp ) } break; case 2: // load food - smoker_load_food( p, examp, remaining_capacity ); + if( portable ) { + smoker_load_food( p, examp, remaining_capacity_portable ); + } else { + smoker_load_food( p, examp, remaining_capacity ); + } break; case 3: // load charcoal reload_furniture( p, examp ); @@ -5035,7 +5056,10 @@ void iexamine::smoker_options( player &p, const tripoint &examp ) i--; } } - if( active && rem_f_opt ) { + if( portable && active && rem_f_opt ) { + g->m.furn_set( examp, f_metal_smoking_rack ); + add_msg( m_info, _( "You stop the smoking process." ) ); + } else if( active && rem_f_opt ) { g->m.furn_set( examp, f_smoking_rack ); add_msg( m_info, _( "You stop the smoking process." ) ); } @@ -5045,8 +5069,17 @@ void iexamine::smoker_options( player &p, const tripoint &examp ) add_msg( m_info, _( "Never mind." ) ); break; case 7: - g->m.furn_set( examp, f_smoking_rack ); - add_msg( m_info, _( "You stop the smoking process." ) ); + if( portable ) { + g->m.furn_set( examp, f_metal_smoking_rack ); + add_msg( m_info, _( "You stop the smoking process." ) ); + } else { + g->m.furn_set( examp, f_smoking_rack ); + add_msg( m_info, _( "You stop the smoking process." ) ); + } + break; + case 8: + g->m.furn_set( examp, f_metal_smoking_rack ); + deployed_furniture( p, examp ); break; } } @@ -5197,7 +5230,6 @@ iexamine_function iexamine_function_from_string( const std::string &function_nam { "controls_gate", &iexamine::controls_gate }, { "cardreader", &iexamine::cardreader }, { "rubble", &iexamine::rubble }, - { "crate", &iexamine::crate }, { "chainfence", &iexamine::chainfence }, { "bars", &iexamine::bars }, { "portable_structure", &iexamine::portable_structure }, diff --git a/src/iexamine.h b/src/iexamine.h index 83d2d77397e9c..4730543020eb8 100644 --- a/src/iexamine.h +++ b/src/iexamine.h @@ -8,18 +8,16 @@ #include #include "itype.h" -#include "string_id.h" #include "calendar.h" #include "optional.h" #include "ret_val.h" +#include "type_id.h" class item; class player; class vpart_reference; struct tripoint; -struct mtype; -using mtype_id = string_id; using seed_tuple = std::tuple; enum hack_result { @@ -46,7 +44,6 @@ void controls_gate( player &p, const tripoint &examp ); void cardreader( player &p, const tripoint &examp ); void cvdmachine( player &p, const tripoint &examp ); void rubble( player &p, const tripoint &examp ); -void crate( player &p, const tripoint &examp ); void chainfence( player &p, const tripoint &examp ); void bars( player &p, const tripoint &examp ); void deployed_furniture( player &p, const tripoint &pos ); diff --git a/src/init.cpp b/src/init.cpp index 093627ed5896a..0c29166936dee 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -1,6 +1,6 @@ #include "init.h" -#include +#include #include #include #include // for throwing errors @@ -36,6 +36,7 @@ #include "martialarts.h" #include "material.h" #include "mission.h" +#include "magic.h" #include "mod_tileset.h" #include "monfaction.h" #include "mongroup.h" @@ -70,6 +71,7 @@ #include "worldfactory.h" #include "bodypart.h" #include "translations.h" +#include "type_id.h" #if defined(TILES) void load_tileset(); @@ -357,6 +359,7 @@ void DynamicDataLoader::initialize() add( "body_part", &body_part_struct::load_bp ); add( "anatomy", &anatomy::load_anatomy ); add( "morale_type", &morale_type_data::load_type ); + add( "SPELL", &spell_type::load_spell ); #if defined(TILES) add( "mod_tileset", &load_mod_tileset ); #else @@ -634,7 +637,8 @@ void DynamicDataLoader::check_consistency( loading_ui &ui ) { _( "Harvest lists" ), &harvest_list::check_consistency }, { _( "NPC templates" ), &npc_template::check_consistency }, { _( "Body parts" ), &body_part_struct::check_consistency }, - { _( "Anatomies" ), &anatomy::check_consistency } + { _( "Anatomies" ), &anatomy::check_consistency }, + { _( "Spells" ), &spell_type::check_consistency } } }; diff --git a/src/input.cpp b/src/input.cpp index 105f67bbb5349..1c62a8f875dfe 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -78,7 +78,7 @@ bool is_mouse_enabled() } //helper function for those have problem inputting certain characters. -std::string get_input_string_from_file( std::string fname ) +std::string get_input_string_from_file( const std::string &fname ) { std::string ret; read_from_file_optional( fname, [&ret]( std::istream & fin ) { @@ -656,7 +656,8 @@ void input_context::register_action( const std::string &action_descriptor, const } } -std::vector input_context::keys_bound_to( const std::string &action_descriptor ) const +std::vector input_context::keys_bound_to( const std::string &action_descriptor, + const bool restrict_to_printable ) const { std::vector result; const std::vector &events = inp_mngr.get_input_for_action( action_descriptor, @@ -664,9 +665,11 @@ std::vector input_context::keys_bound_to( const std::string &action_descri for( const auto &events_event : events ) { // Ignore multi-key input and non-keyboard input // TODO: fix for Unicode. - if( events_event.type == CATA_INPUT_KEYBOARD && events_event.sequence.size() == 1 && - events_event.sequence.front() < 0xFF && isprint( events_event.sequence.front() ) ) { - result.push_back( static_cast( events_event.sequence.front() ) ); + if( events_event.type == CATA_INPUT_KEYBOARD && events_event.sequence.size() == 1 ) { + if( !restrict_to_printable || ( events_event.sequence.front() < 0xFF && + isprint( events_event.sequence.front() ) ) ) { + result.push_back( static_cast( events_event.sequence.front() ) ); + } } } return result; @@ -792,7 +795,9 @@ const std::string &input_context::handle_input() const std::string &input_context::handle_input( const int timeout ) { const auto old_timeout = inp_mngr.get_timeout(); - inp_mngr.set_timeout( timeout ); + if( timeout >= 0 ) { + inp_mngr.set_timeout( timeout ); + } next_action.type = CATA_INPUT_ERROR; const std::string *result = &CATA_ERROR; while( true ) { @@ -1248,8 +1253,15 @@ cata::optional input_context::get_coordinates( const catacurses::windo return cata::nullopt; } - const int x = g->ter_view_x - ( ( view_columns / 2 ) - coordinate_x ); - const int y = g->ter_view_y - ( ( view_rows / 2 ) - coordinate_y ); + int view_offset_x = 0; + int view_offset_y = 0; + if( capture_win == g->w_terrain ) { + view_offset_x = g->ter_view_x; + view_offset_y = g->ter_view_y; + } + + const int x = view_offset_x - ( ( view_columns / 2 ) - coordinate_x ); + const int y = view_offset_y - ( ( view_rows / 2 ) - coordinate_y ); return tripoint( x, y, g->get_levz() ); } diff --git a/src/input.h b/src/input.h index e8bf83fb4b4c8..6ff00359fc83b 100644 --- a/src/input.h +++ b/src/input.h @@ -2,7 +2,7 @@ #ifndef INPUT_H #define INPUT_H -#include +#include #include #include #include @@ -57,7 +57,7 @@ static constexpr int LEGEND_HEIGHT = 11; static constexpr int BORDER_SPACE = 2; bool is_mouse_enabled(); -std::string get_input_string_from_file( std::string fname = "input.txt" ); +std::string get_input_string_from_file( const std::string &fname = "input.txt" ); enum mouse_buttons { MOUSE_BUTTON_LEFT = 1, MOUSE_BUTTON_RIGHT, SCROLLWHEEL_UP, SCROLLWHEEL_DOWN, MOUSE_MOVE }; @@ -384,7 +384,7 @@ class input_context } // TODO: consider making the curses WINDOW an argument to the constructor, so that mouse input // outside that window can be ignored - input_context( std::string category ) : registered_any_input( false ), + input_context( const std::string &category ) : registered_any_input( false ), category( category ), handling_coordinate_input( false ) { #if defined(__ANDROID__) input_context_stack.push_back( this ); @@ -639,8 +639,12 @@ class input_context /** * Keys (and only keys, other input types are not included) that * trigger the given action. + * @param action_descriptor The action descriptor for which to get the bound keys. + * @param restrict_to_printable If `true` the function returns the bound keys only if they are printable. If `false`, all keys (whether they are printable or not) are returned. + * @returns All keys bound to the given action descriptor. */ - std::vector keys_bound_to( const std::string &action_id ) const; + std::vector keys_bound_to( const std::string &action_descriptor, + bool restrict_to_printable = true ) const; /** * Get/Set edittext to display IME unspecified string. diff --git a/src/inventory.cpp b/src/inventory.cpp index 1ad54f75a69cc..26cea3630925d 100644 --- a/src/inventory.cpp +++ b/src/inventory.cpp @@ -1,9 +1,9 @@ #include "inventory.h" -#include -#include -#include -#include +#include +#include +#include +#include #include #include #include @@ -30,6 +30,7 @@ #include "player.h" #include "rng.h" #include "material.h" +#include "type_id.h" struct itype; diff --git a/src/inventory.h b/src/inventory.h index dcb8cd64d7edd..89bc8493d29ce 100644 --- a/src/inventory.h +++ b/src/inventory.h @@ -2,7 +2,7 @@ #ifndef INVENTORY_H #define INVENTORY_H -#include +#include #include #include #include @@ -211,7 +211,6 @@ class inventory : public visitable invlets_bitset allocated_invlets() const; - /** * Returns visitable items binned by their itype. * May not contain items that wouldn't be visited by @ref visitable methods. diff --git a/src/inventory_ui.h b/src/inventory_ui.h index 417a6acf9ae63..d9c791a3baa64 100644 --- a/src/inventory_ui.h +++ b/src/inventory_ui.h @@ -2,8 +2,8 @@ #ifndef INVENTORY_UI_H #define INVENTORY_UI_H -#include -#include +#include +#include #include #include #include diff --git a/src/item.cpp b/src/item.cpp index 06b3f20f8a934..734ca55b18661 100644 --- a/src/item.cpp +++ b/src/item.cpp @@ -1,8 +1,8 @@ #include "item.h" -#include -#include -#include +#include +#include +#include #include #include #include @@ -26,6 +26,7 @@ #include "dispersion.h" #include "effect.h" // for weed_msg #include "enums.h" +#include "explosion.h" #include "fault.h" #include "field.h" #include "fire.h" @@ -33,6 +34,7 @@ #include "game.h" #include "game_constants.h" #include "gun_mode.h" +#include "handle_liquid.h" #include "iexamine.h" #include "item_category.h" #include "item_factory.h" @@ -74,14 +76,11 @@ #include "item_group.h" #include "iuse.h" #include "line.h" -#include "mapdata.h" #include "optional.h" #include "pimpl.h" #include "recipe.h" #include "rng.h" #include "weather_gen.h" -#include "mongroup.h" -#include "pldata.h" static const std::string GUN_MODE_VAR_NAME( "item::mode" ); @@ -112,6 +111,9 @@ const material_id mat_kevlar( "kevlar" ); const trait_id trait_small2( "SMALL2" ); const trait_id trait_small_ok( "SMALL_OK" ); +const trait_id trait_huge( "HUGE" ); +const trait_id trait_huge_ok( "HUGE_OK" ); + const std::string &rad_badge_color( const int rad ) { using pair_t = std::pair; @@ -599,12 +601,22 @@ item item::in_container( const itype_id &cont ) const long item::charges_per_volume( const units::volume &vol ) const { - if( type->volume == 0_ml ) { - return INFINITE_CHARGES; // TODO: items should not have 0 volume at all! + if( count_by_charges() ) { + if( type->volume == 0_ml ) { + debugmsg( "Item '%s' with zero volume", tname() ); + return INFINITE_CHARGES; + } + // Type cast to prevent integer overflow with large volume containers like the cargo + // dimension + return vol * static_cast( type->stack_size ) / type->volume; + } else { + units::volume my_volume = volume(); + if( my_volume == 0_ml ) { + debugmsg( "Item '%s' with zero volume", tname() ); + return INFINITE_CHARGES; + } + return vol / my_volume; } - // Type cast to prevent integer overflow with large volume containers like the cargo dimension - return count_by_charges() ? vol * static_cast( type->stack_size ) / type->volume - : vol / volume(); } bool item::stacks_with( const item &rhs, bool check_components ) const @@ -933,6 +945,52 @@ std::string get_freshness_description( const item &food_item ) } } +item::sizing item::get_sizing( const Character &p, bool wearable ) const +{ + if( wearable ) { + const bool small = p.has_trait( trait_small2 ) || + p.has_trait( trait_small_ok ); + + const bool big = p.has_trait( trait_huge ) || + p.has_trait( trait_huge_ok ); + + // due to the iterative nature of these features, something can fit and be undersized/oversized + // but that is fine because we have separate logic to adjust encumberance per each. One day we + // may want to have fit be a flag that only applies if a piece of clothing is sized for you as there + // is a bit of cognitive dissonance when something 'fits' and is 'oversized' and the same time + const bool undersize = has_flag( "UNDERSIZE" ); + const bool oversize = has_flag( "OVERSIZE" ); + + if( undersize ) { + if( small ) { + return sizing::small_sized_small_char; + } else if( big ) { + return sizing::small_sized_big_char; + } else { + return sizing::small_sized_human_char; + } + } else if( oversize ) { + if( big ) { + return sizing::big_sized_big_char; + } else if( small ) { + return sizing::big_sized_small_char; + } else { + return sizing::big_sized_human_char; + } + } else { + if( big ) { + return sizing::human_sized_big_char; + } else if( small ) { + return sizing::human_sized_small_char; + } else { + return sizing::human_sized_human_char; + } + } + } + return sizing::not_wearable; + +} + int get_base_env_resist( const item &it ) { const auto t = it.find_armor_data(); @@ -941,6 +999,7 @@ int get_base_env_resist( const item &it ) } return t->env_resist * it.get_relative_health(); + } std::string item::info( std::vector &info, const iteminfo_query *parts, int batch ) const @@ -962,6 +1021,9 @@ std::string item::info( std::vector &info, const iteminfo_query *parts } }; + int encumbrance = get_encumber( g->u ); + const sizing sizing_level = get_sizing( g->u, encumbrance != 0 ); + if( !is_null() ) { if( parts->test( iteminfo_parts::BASE_CATEGORY ) ) { info.push_back( iteminfo( "BASE", _( "Category: " ), @@ -1587,7 +1649,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts std::vector fm; for( const auto &e : fire_modes ) { if( e.second.target == this && !e.second.melee() ) { - fm.emplace_back( string_format( "%s (%i)", e.second.name(), e.second.qty ) ); + fm.emplace_back( string_format( "%s (%i)", e.second.tname(), e.second.qty ) ); } } if( !fm.empty() ) { @@ -1845,13 +1907,26 @@ std::string item::info( std::vector &info, const iteminfo_query *parts insert_separation_line(); if( parts->test( iteminfo_parts::ARMOR_ENCUMBRANCE ) && covers_anything ) { - int encumbrance = get_encumber( g->u ); std::string format; if( has_flag( "FIT" ) ) { format = _( " (fits)" ); } else if( has_flag( "VARSIZE" ) && encumbrance ) { format = _( " (poor fit)" ); } + + //If we have the wrong size, we do not fit so alert the player + if( sizing_level == sizing::big_sized_human_char || + sizing_level == sizing::human_sized_small_char ) { + format = _( " (too big)" ); + } else if( sizing_level == sizing::big_sized_small_char ) { + format = _( " (huge!)" ); + } else if( sizing_level == sizing::small_sized_human_char || + sizing_level == sizing::human_sized_big_char ) { + format = _( " (too small)" ); + } else if( sizing_level == sizing::small_sized_big_char ) { + format = _( " (tiny!)" ); + } + info.push_back( iteminfo( "ARMOR", _( "Encumbrance: " ), format, iteminfo::no_newline | iteminfo::lower_is_better, encumbrance ) ); @@ -1927,12 +2002,13 @@ std::string item::info( std::vector &info, const iteminfo_query *parts } if( g->u.has_identified( typeId() ) ) { if( book.skill ) { - if( g->u.get_skill_level_object( book.skill ).can_train() && - parts->test( iteminfo_parts::BOOK_SKILLRANGE_MAX ) ) { - auto fmt = string_format( - _( "Can bring your %s skill to " ), - book.skill.obj().name() ); + const SkillLevel &skill = g->u.get_skill_level_object( book.skill ); + if( skill.can_train() && parts->test( iteminfo_parts::BOOK_SKILLRANGE_MAX ) ) { + const std::string skill_name = book.skill->name(); + auto fmt = string_format( _( "Can bring your %s skill to ." ), skill_name ); info.push_back( iteminfo( "BOOK", "", fmt, iteminfo::no_flags, book.level ) ); + fmt = string_format( _( "Your current %s skill is ." ), skill_name ); + info.push_back( iteminfo( "BOOK", "", fmt, iteminfo::no_flags, skill.level() ) ); } if( book.req != 0 && parts->test( iteminfo_parts::BOOK_SKILLRANGE_MIN ) ) { @@ -2317,27 +2393,86 @@ std::string item::info( std::vector &info, const iteminfo_query *parts info.push_back( iteminfo( "DESCRIPTION", _( "* This item can be worn with a helmet." ) ) ); } - const bool little = g->u.has_trait( trait_id( "SMALL2" ) ) || - g->u.has_trait( trait_id( "SMALL_OK" ) ); - if( has_flag( "FIT" ) && parts->test( iteminfo_parts::DESCRIPTION_FLAGS_FITS ) ) { - info.push_back( iteminfo( "DESCRIPTION", - _( "* This piece of clothing fits you perfectly." ) ) ); - } else if( has_flag( "VARSIZE" ) && parts->test( iteminfo_parts::DESCRIPTION_FLAGS_VARSIZE ) ) { - info.push_back( iteminfo( "DESCRIPTION", - _( "* This piece of clothing can be refitted." ) ) ); - } - if( little && get_encumber( g->u ) ) { - if( !has_flag( "UNDERSIZE" ) ) { + + if( parts->test( iteminfo_parts::DESCRIPTION_FLAGS_FITS ) ) { + if( has_flag( "FIT" ) ) { + if( sizing_level == sizing::human_sized_human_char ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "* This piece of clothing fits you perfectly." ) ) ); + } else if( sizing_level == sizing::big_sized_big_char ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "* This piece of clothing fits your large frame perfectly." ) ) ); + } else if( sizing_level == sizing::small_sized_small_char ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "* This piece of clothing fits your small frame perfectly." ) ) ); + } + } + + if( sizing_level == sizing::big_sized_human_char ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "* This piece of clothing is oversized and does not fit you." ) ) ); + } else if( sizing_level == sizing::big_sized_small_char ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "* This piece of clothing is hilariously oversized and does not fit your abnormally small mutated anatomy." ) ) ); + } else if( sizing_level == sizing::human_sized_big_char ) { info.push_back( iteminfo( "DESCRIPTION", - _( "* These clothes are too large but can be undersized." ) ) ); + _( "* This piece of clothing is normal sized and does not fit your abnormally large mutated anatomy." ) ) ); + } else if( sizing_level == sizing::human_sized_small_char ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "* This piece of clothing is normal sized and does not fit your abnormally small mutated anatomy." ) ) ); + } else if( sizing_level == sizing::small_sized_big_char ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "* This piece of clothing is hilariously undersized and does not fit your abnormally large mutated anatomy." ) ) ); + } else if( sizing_level == sizing::small_sized_human_char ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "* This piece of clothing is undersized and does not fit you." ) ) ); + } + } + + if( parts->test( iteminfo_parts::DESCRIPTION_FLAGS_VARSIZE ) ) { + if( has_flag( "VARSIZE" ) ) { + if( has_flag( "FIT" ) ) { + if( sizing_level == sizing::small_sized_human_char ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "* This piece of clothing can be upsized." ) ) ); + } else if( sizing_level == sizing::human_sized_small_char ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "* This piece of clothing can be downsized." ) ) ); + } else if( sizing_level == sizing::big_sized_human_char || + sizing_level == sizing::big_sized_small_char ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "* This piece of clothing can not be downsized." ) ) ); + } else if( sizing_level == sizing::small_sized_big_char || + sizing_level == sizing::human_sized_big_char ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "* This piece of clothing can not be upsized." ) ) ); + } + } else { + if( sizing_level == sizing::small_sized_human_char ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "* This piece of clothing can be refitted and upsized." ) ) ); + } else if( sizing_level == sizing::human_sized_small_char ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "* This piece of clothing can be refitted and downsized." ) ) ); + } else if( sizing_level == sizing::big_sized_human_char || + sizing_level == sizing::big_sized_small_char ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "* This piece of clothing can be refitted but not downsized." ) ) ); + } else if( sizing_level == sizing::small_sized_big_char || + sizing_level == sizing::human_sized_big_char ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "* This piece of clothing can be refitted but not upsized." ) ) ); + } else { + info.push_back( iteminfo( "DESCRIPTION", + _( "* This piece of clothing can be refitted." ) ) ); + } + } } else { info.push_back( iteminfo( "DESCRIPTION", - _( "* These clothes are undersized enough to accommodate abnormally small mutated anatomy." ) ) ); + _( "* This piece of clothing can not be refitted, upsized, or downsized." ) ) ); } - } else if( has_flag( "UNDERSIZE" ) ) { - info.push_back( iteminfo( "DESCRIPTION", - _( "* These clothes are undersized but can be refitted." ) ) ); } + if( is_sided() && parts->test( iteminfo_parts::DESCRIPTION_FLAGS_SIDED ) ) { info.push_back( iteminfo( "DESCRIPTION", _( "* This item can be worn on either side of the body." ) ) ); @@ -3058,18 +3193,20 @@ std::string item::tname( unsigned int quantity, bool with_prefix, unsigned int t } } - const bool small = g->u.has_trait( trait_id( "SMALL2" ) ) || - g->u.has_trait( trait_id( "SMALL_OK" ) ); - const bool fits = has_flag( "FIT" ); - const bool undersize = has_flag( "UNDERSIZE" ); - if( get_encumber( g->u ) ) { - if( small && !undersize ) { - ret << _( " (oversize)" ); - } else if( !small && undersize ) { - ret << _( " (undersize)" ); - } else if( !fits && has_flag( "VARSIZE" ) ) { - ret << _( " (poor fit)" ); - } + const sizing sizing_level = get_sizing( g->u, get_encumber( g->u ) != 0 ); + + if( sizing_level == sizing::big_sized_human_char || + sizing_level == sizing::human_sized_small_char ) { + ret << _( " (too big)" ); + } else if( sizing_level == sizing::big_sized_small_char ) { + ret << _( " (huge!)" ); + } else if( sizing_level == sizing::human_sized_big_char || + sizing_level == sizing::small_sized_human_char ) { + ret << _( " (too small)" ); + } else if( sizing_level == sizing::small_sized_big_char ) { + ret << _( " (tiny!)" ); + } else if( !has_flag( "FIT" ) && has_flag( "VARSIZE" ) ) { + ret << _( " (poor fit)" ); } if( is_filthy() ) { @@ -3283,8 +3420,7 @@ units::mass item::weight( bool include_contents ) const return ret; } - units::mass ret = 0_gram; - ret = units::from_gram( get_var( "weight", to_gram( type->weight ) ) ); + units::mass ret = units::from_gram( get_var( "weight", to_gram( type->weight ) ) ); if( has_flag( "REDUCED_WEIGHT" ) ) { ret *= 0.75; @@ -3739,13 +3875,8 @@ bool item::goes_bad() const } if( is_corpse() ) { // Corpses rot only if they are made of rotting materials - std::vector rotting_materials = {"Insect Flesh", "Human Flesh", "Flesh", "Bone"}; - for( std::string material : rotting_materials ) { - if( made_of_types()[0]->name() == material ) { - return true; - } - } - return false; + static const std::set rotting_materials = materials::get_rotting(); + return made_of_any( rotting_materials ); } return is_food() && get_comestible()->spoils != 0_turns; } @@ -3759,7 +3890,7 @@ time_duration item::get_shelf_life() const return CORPSE_ROT_TIME; } } - return 0; + return 0_turns; } double item::get_relative_rot() const @@ -3882,7 +4013,7 @@ int get_hourly_rotpoints_at_temp( const int temp ) return rot_chart[temp]; } -void item::calc_rot( time_point time ) +void item::calc_rot( time_point time, int temp ) { if( !goes_bad() ) { return; @@ -3906,8 +4037,12 @@ void item::calc_rot( time_point time ) factor = 0.75; } + if( item_tags.count( "COLD" ) ) { + temp = temperatures::fridge; + } + // bday and/or last_rot_check might be zero, if both are then we want calendar::start - const time_point since = std::max( {last_rot_check, ( time_point ) calendar::start} ); + const time_point since = std::max( {last_rot_check, time_point( calendar::start )} ); // simulation of different age of food at the start of the game and good/bad storage // conditions by applying starting variation bonus/penalty of +/- 20% of base shelf-life @@ -3919,8 +4054,7 @@ void item::calc_rot( time_point time ) } time_duration time_delta = time - since; - rot += factor * time_delta / 1_hours * get_hourly_rotpoints_at_temp( kelvin_to_fahrenheit( - 0.00001 * temperature ) ) * 1_turns; + rot += factor * time_delta / 1_hours * get_hourly_rotpoints_at_temp( temp ) * 1_turns; last_rot_check = time; } @@ -4003,17 +4137,25 @@ int item::get_encumber_when_containing( } // Fit checked before changes, fitting shouldn't reduce penalties from patching. - if( item_tags.count( "FIT" ) && has_flag( "VARSIZE" ) ) { + if( has_flag( "FIT" ) && has_flag( "VARSIZE" ) ) { encumber = std::max( encumber / 2, encumber - 10 ); } - const bool tiniest = p.has_trait( trait_small2 ) || - p.has_trait( trait_small_ok ); - const bool is_undersize = has_flag( "UNDERSIZE" ); - if( !is_undersize && tiniest ) { - encumber *= 2; // clothes bag up around smol mousefolk and encumber them more - } else if( is_undersize && !tiniest ) { - encumber *= 3; // normal humans have a HARD time wearing undersized clothing + //TODO: Should probably have sizing affect coverage + const sizing sizing_level = get_sizing( p, encumber != 0 ); + switch( sizing_level ) { + case sizing::small_sized_human_char: + case sizing::small_sized_big_char: + // non small characters have a HARD time wearing undersized clothing + encumber *= 3; + break; + case sizing::human_sized_small_char: + case sizing::big_sized_small_char: + // clothes bag up around smol characters and encumber them more + encumber *= 2; + break; + default: + break; } const int thickness = get_thickness(); @@ -5153,7 +5295,7 @@ bool item::spill_contents( Character &c ) while( !contents.empty() ) { on_contents_changed(); if( contents_made_of( LIQUID ) ) { - if( !g->handle_liquid_from_container( *this, 1 ) ) { + if( !liquid_handler::handle_liquid_from_container( *this, 1 ) ) { return false; } } else { @@ -6916,7 +7058,7 @@ bool item::will_explode_in_fire() const bool item::detonate( const tripoint &p, std::vector &drops ) { if( type->explosion.power >= 0 ) { - g->explosion( p, type->explosion ); + explosion_handler::explosion( p, type->explosion ); return true; } else if( type->ammo && ( type->ammo->special_cookoff || type->ammo->cookoff ) ) { long charges_remaining = charges; @@ -7061,7 +7203,7 @@ void item::apply_freezerburn() } void item::process_temperature_rot( int temp, float insulation, const tripoint pos, - player *carrier ) + player *carrier, const temperature_flag flag ) { const time_point now = calendar::turn; @@ -7085,7 +7227,7 @@ void item::process_temperature_rot( int temp, float insulation, const tripoint p temp += 5; // body heat increases inventory temperature } calc_temp( temp, insulation, now ); - calc_rot( now ); + calc_rot( now, temp ); } return; } @@ -7096,7 +7238,12 @@ void item::process_temperature_rot( int temp, float insulation, const tripoint p insulation *= 1.5; // clothing provides inventory some level of insulation } - time_point time = std::min( { last_rot_check, last_temp_check } ); + time_point time; + if( goes_bad() ) { + time = std::min( { last_rot_check, last_temp_check } ); + } else { + time = last_temp_check; + } if( now - time > 1_hours ) { // This code is for items that were left out of reality bubble for long time @@ -7105,7 +7252,6 @@ void item::process_temperature_rot( int temp, float insulation, const tripoint p const auto seed = g->get_seed(); const auto local = g->m.getlocal( pos ); auto local_mod = g->new_game ? 0 : g->m.get_temperature( local ); - const auto temp_modify = ( !g->new_game ) && ( g->m.ter( local ) == t_rootcellar ); int enviroment_mod; // Toilets and vending machines will try to get the heat radiation and convection during mapgen and segfault. @@ -7127,14 +7273,35 @@ void item::process_temperature_rot( int temp, float insulation, const tripoint p time_duration time_delta = std::min( 1_hours, now - 1_hours - time ); time += time_delta; - w_point weather = wgen.get_weather( pos, time, seed ); - //Use weather if above ground, use map temp if below - double env_temperature = ( pos.z >= 0 ? weather.temperature + enviroment_mod : temp ) + local_mod; + double env_temperature = 0; + if( pos.z >= 0 ) { + w_point weather = wgen.get_weather( pos, time, seed ); + env_temperature = weather.temperature + enviroment_mod + local_mod; + } else { + env_temperature = AVERAGE_ANNUAL_TEMPERATURE + enviroment_mod + local_mod; + } - // If in a root celler: use AVERAGE_ANNUAL_TEMPERATURE - // If not: use calculated temperature - env_temperature = ( temp_modify * AVERAGE_ANNUAL_TEMPERATURE ) + ( !temp_modify * env_temperature ); + switch( flag ) { + case TEMP_NORMAL: + // Just use the temperature normally + break; + case TEMP_FRIDGE: + env_temperature = std::min( env_temperature, static_cast( temperatures::fridge ) ); + break; + case TEMP_FREEZER: + env_temperature = std::min( env_temperature, static_cast( temperatures::freezer ) ); + break; + case TEMP_HEATER: + env_temperature = std::max( env_temperature, static_cast( temperatures::normal ) ); + break; + case TEMP_ROOT_CELLAR: + env_temperature = AVERAGE_ANNUAL_TEMPERATURE; + break; + default: + env_temperature = temp; + debugmsg( "Temperature flag enum not valid. Using current temperature." ); + } // Calculate item temperature from enviroment temperature // If the time was more than 2 d ago just set the item to enviroment temperature @@ -7146,10 +7313,9 @@ void item::process_temperature_rot( int temp, float insulation, const tripoint p calc_temp( env_temperature, insulation, time ); } - // Calculate item rot from item temperature if( time - last_rot_check > smallest_interval ) { - calc_rot( time ); + calc_rot( time, env_temperature ); if( has_rotten_away() || ( is_corpse() && rot > 10_days ) ) { // No need to track item that will be gone @@ -7167,7 +7333,7 @@ void item::process_temperature_rot( int temp, float insulation, const tripoint p temp += 5; // body heat increases inventory temperature } calc_temp( temp, insulation, now ); - calc_rot( now ); + calc_rot( now, temp ); return; } @@ -7177,8 +7343,6 @@ void item::process_temperature_rot( int temp, float insulation, const tripoint p } } - - void item::calc_temp( const int temp, const float insulation, const time_point &time ) { // Limit calculations to max 4000 C (4273.15 K) to avoid specific energy from overflowing @@ -7469,7 +7633,8 @@ bool item::process_fake_mill( player * /*carrier*/, const tripoint &pos ) bool item::process_fake_smoke( player * /*carrier*/, const tripoint &pos ) { - if( g->m.furn( pos ) != furn_str_id( "f_smoking_rack_active" ) ) { + if( g->m.furn( pos ) != furn_str_id( "f_smoking_rack_active" ) && + g->m.furn( pos ) != furn_str_id( "f_metal_smoking_rack_active" ) ) { item_counter = 0; return true; //destroy fake smoke } @@ -7763,14 +7928,15 @@ bool item::process_tool( player *carrier, const tripoint &pos ) bool item::process( player *carrier, const tripoint &pos, bool activate ) { if( has_temperature() || is_food_container() ) { - return process( carrier, pos, activate, g->get_temperature( pos ), 1 ); + return process( carrier, pos, activate, g->get_temperature( pos ), 1, + temperature_flag::TEMP_NORMAL ); } else { - return process( carrier, pos, activate, 0, 1 ); + return process( carrier, pos, activate, 0, 1, temperature_flag::TEMP_NORMAL ); } } bool item::process( player *carrier, const tripoint &pos, bool activate, int temp, - float insulation ) + float insulation, const temperature_flag flag ) { const bool preserves = type->container && type->container->preserves; for( auto it = contents.begin(); it != contents.end(); ) { @@ -7779,7 +7945,7 @@ bool item::process( player *carrier, const tripoint &pos, bool activate, int tem // is not changed, the item is still fresh. it->last_rot_check = calendar::turn; } - if( it->process( carrier, pos, activate, temp, type->insulation_factor * insulation ) ) { + if( it->process( carrier, pos, activate, temp, type->insulation_factor * insulation, flag ) ) { it = contents.erase( it ); } else { ++it; @@ -7817,7 +7983,6 @@ bool item::process( player *carrier, const tripoint &pos, bool activate, int tem g->m.emit_field( pos, e ); } - if( has_flag( "FAKE_SMOKE" ) && process_fake_smoke( carrier, pos ) ) { return true; } @@ -7847,7 +8012,7 @@ bool item::process( player *carrier, const tripoint &pos, bool activate, int tem } // All foods that go bad have temperature if( has_temperature() ) { - process_temperature_rot( temp, insulation, pos, carrier ); + process_temperature_rot( temp, insulation, pos, carrier, flag ); } return false; @@ -8048,6 +8213,14 @@ std::string item::type_name( unsigned int quantity ) const } } +std::string item::get_corpse_name() +{ + if( corpse_name.empty() ) { + return std::string(); + } + return corpse_name; +} + std::string item::nname( const itype_id &id, unsigned int quantity ) { const auto t = find_type( id ); @@ -8216,6 +8389,9 @@ const recipe &item::get_making() const const cata::optional &item::get_comestible() const { - return is_craft() ? find_type( making->result() )->comestible : - type->comestible; + if( is_craft() ) { + return find_type( making->result() )->comestible; + } else { + return type->comestible; + } } diff --git a/src/item.h b/src/item.h index 8cf42a1f1e727..ead8c6816c118 100644 --- a/src/item.h +++ b/src/item.h @@ -20,10 +20,14 @@ #include "io_tags.h" #include "item_location.h" #include "string_id.h" +#include "type_id.h" #include "units.h" #include "visitable.h" +#include "gun_mode.h" class item; +class material_type; +struct mtype; namespace cata { @@ -38,23 +42,15 @@ template class ret_val; class gun_type_type; class gunmod_location; -class gun_mode; - -using gun_mode_id = string_id; class Character; class player; class recipe; struct itype; struct islot_comestible; -struct mtype; -using mtype_id = string_id; using bodytype_id = std::string; struct islot_armor; struct use_function; -class material_type; - -using material_id = string_id; class item_category; enum art_effect_passive : int; @@ -63,23 +59,8 @@ enum body_part : int; enum m_size : int; enum class side : int; class body_part_set; -class ammunition_type; -using ammotype = string_id; using itype_id = std::string; -class ma_technique; - -using matec_id = string_id; -using recipe_id = string_id; -class Skill; - -using skill_id = string_id; -class fault; - -using fault_id = string_id; -struct quality; - -using quality_id = string_id; struct fire_data; struct damage_instance; struct damage_unit; @@ -672,8 +653,9 @@ class item : public visitable * This function should not be called directly. since it does not have all the needed checks or temperature calculations. * If you need to calc rot of item call process_temperature_rot instead. * @param time Time point to which rot is calculated + * @param temp Temperature at which the rot is calculated */ - void calc_rot( time_point time ); + void calc_rot( time_point time, int temp ); /** * This is part of a workaround so that items don't rot away to nothing if the smoking rack @@ -690,8 +672,10 @@ class item : public visitable * @param insulation Amount of insulation item has from surroundings * @param pos The current position * @param carrier The current carrier + * @param flag to specify special temperature situations */ - void process_temperature_rot( int temp, float insulation, const tripoint pos, player *carrier ); + void process_temperature_rot( int temp, float insulation, const tripoint pos, player *carrier, + const temperature_flag flag = temperature_flag::TEMP_NORMAL ); /** Set the item to HOT */ void heat_up(); @@ -997,7 +981,8 @@ class item : public visitable * Returns false if the item is not destroyed. */ bool process( player *carrier, const tripoint &pos, bool activate ); - bool process( player *carrier, const tripoint &pos, bool activate, int temp, float insulation ); + bool process( player *carrier, const tripoint &pos, bool activate, int temp, float insulation, + const temperature_flag flag = temperature_flag::TEMP_NORMAL ); /** * Gets the point (vehicle tile) the cable is connected to. @@ -1796,7 +1781,10 @@ class item : public visitable * @param qty units required, if unspecified use item default */ bool units_sufficient( const Character &ch, int qty = -1 ) const; - + /** + * Returns name of deceased being if it had any or empty string if not + **/ + std::string get_corpse_name(); /** * Returns the translated item name for the item with given id. * The name is in the proper plural form as specified by the @@ -1877,6 +1865,21 @@ class item : public visitable /** Helper for checking reloadability. **/ bool is_reloadable_helper( const itype_id &ammo, bool now ) const; + enum class sizing { + human_sized_human_char = 0, + big_sized_human_char, + small_sized_human_char, + big_sized_big_char, + human_sized_big_char, + small_sized_big_char, + small_sized_small_char, + human_sized_small_char, + big_sized_small_char, + not_wearable + }; + + sizing get_sizing( const Character &, bool ) const; + protected: // Sub-functions of @ref process, they handle the processing for different // processing types, just to make the process function cleaner. diff --git a/src/item_action.cpp b/src/item_action.cpp index 3520738a1f81b..2de95b73cd251 100644 --- a/src/item_action.cpp +++ b/src/item_action.cpp @@ -25,9 +25,9 @@ #include "ui.h" #include "calendar.h" #include "catacharset.h" -#include "character.h" #include "cursesdef.h" #include "iuse.h" +#include "type_id.h" struct tripoint; diff --git a/src/item_factory.cpp b/src/item_factory.cpp index 5553b58a83555..e4aa185cc3c46 100644 --- a/src/item_factory.cpp +++ b/src/item_factory.cpp @@ -1,6 +1,6 @@ #include "item_factory.h" -#include +#include #include #include #include @@ -36,11 +36,9 @@ #include "bodypart.h" #include "calendar.h" #include "color.h" -#include "creature.h" #include "damage.h" #include "explosion.h" #include "game_constants.h" -#include "omdata.h" #include "optional.h" #include "recipe.h" #include "string_id.h" @@ -611,6 +609,7 @@ void Item_factory::init() add_iuse( "CHAINSAW_ON", &iuse::chainsaw_on ); add_iuse( "CHEW", &iuse::chew ); add_iuse( "BIRDFOOD", &iuse::feedbird ); + add_iuse( "BURROW", &iuse::burrow ); add_iuse( "CHOP_TREE", &iuse::chop_tree ); add_iuse( "CHOP_LOGS", &iuse::chop_logs ); add_iuse( "CIRCSAW_ON", &iuse::circsaw_on ); @@ -751,6 +750,7 @@ void Item_factory::init() add_iuse( "VACCINE", &iuse::vaccine ); add_iuse( "BLOOD_DRAW", &iuse::blood_draw ); add_iuse( "VIBE", &iuse::vibe ); + add_iuse( "HAND_CRANK", &iuse::hand_crank ); add_iuse( "VORTEX", &iuse::vortex ); add_iuse( "WASHCLOTHES", &iuse::washclothes ); add_iuse( "WATER_PURIFIER", &iuse::water_purifier ); @@ -2441,7 +2441,6 @@ void Item_factory::load_item_group( JsonObject &jsobj, const Group_tag &group_id const std::string &subtype ) { std::unique_ptr &isd = m_template_groups[group_id]; - Item_group *ig = dynamic_cast( isd.get() ); Item_group::Type type = Item_group::G_COLLECTION; if( subtype == "old" || subtype == "distribution" ) { @@ -2449,8 +2448,8 @@ void Item_factory::load_item_group( JsonObject &jsobj, const Group_tag &group_id } else if( subtype != "collection" ) { jsobj.throw_error( "unknown item group type", "subtype" ); } - ig = make_group_or_throw( group_id, isd, type, jsobj.get_int( "ammo", 0 ), - jsobj.get_int( "magazine", 0 ) ); + Item_group *ig = make_group_or_throw( group_id, isd, type, jsobj.get_int( "ammo", 0 ), + jsobj.get_int( "magazine", 0 ) ); if( subtype == "old" ) { JsonArray items = jsobj.get_array( "items" ); diff --git a/src/item_factory.h b/src/item_factory.h index 66483275102b8..1035085bc1520 100644 --- a/src/item_factory.h +++ b/src/item_factory.h @@ -18,6 +18,7 @@ #include "item_category.h" #include "item_group.h" #include "iuse.h" +#include "type_id.h" namespace cata { diff --git a/src/item_group.cpp b/src/item_group.cpp index 04ac4fdf0914e..087f4773ba476 100644 --- a/src/item_group.cpp +++ b/src/item_group.cpp @@ -17,6 +17,7 @@ #include "compatibility.h" #include "enums.h" #include "string_id.h" +#include "type_id.h" static const std::string null_item_id( "null" ); @@ -162,6 +163,25 @@ bool Single_item_creator::has_item( const Item_tag &itemid ) const return type == S_ITEM && itemid == id; } +std::set Single_item_creator::every_item() const +{ + switch( type ) { + case S_ITEM: + return { item::find_type( id ) }; + case S_ITEM_GROUP: { + Item_spawn_data *isd = item_controller->get_group( id ); + if( isd != nullptr ) { + return isd->every_item(); + } + return {}; + } + case S_NONE: + return {}; + } + assert( !"Unexpected type" ); + return {}; +} + void Single_item_creator::inherit_ammo_mag_chances( const int ammo, const int mag ) { if( ammo != 0 || mag != 0 ) { @@ -439,6 +459,16 @@ bool Item_group::has_item( const Item_tag &itemid ) const return false; } +std::set Item_group::every_item() const +{ + std::set result; + for( const auto &spawn_data : items ) { + std::set these_items = spawn_data->every_item(); + result.insert( these_items.begin(), these_items.end() ); + } + return result; +} + item_group::ItemList item_group::items_from( const Group_tag &group_id, const time_point &birthday ) { const auto group = item_controller->get_group( group_id ); @@ -481,6 +511,15 @@ bool item_group::group_contains_item( const Group_tag &group_id, const itype_id return group->has_item( type_id ); } +std::set item_group::every_possible_item_from( const Group_tag &group_id ) +{ + Item_spawn_data *group = item_controller->get_group( group_id ); + if( group == nullptr ) { + return {}; + } + return group->every_item(); +} + void item_group::load_item_group( JsonObject &jsobj, const Group_tag &group_id, const std::string &subtype ) { diff --git a/src/item_group.h b/src/item_group.h index d8383e0056c04..e19533c6f6ada 100644 --- a/src/item_group.h +++ b/src/item_group.h @@ -54,6 +54,10 @@ ItemList items_from( const Group_tag &group_id ); * Check whether a specific item group contains a specific item type. */ bool group_contains_item( const Group_tag &group_id, const Item_tag &type_id ); +/** + * Return every item type that can possibly be spawned by the item group + */ +std::set every_possible_item_from( const Group_tag &group_id ); /** * Check whether an item group of the given id exists. You may use this to either choose an * alternative group or check the json definitions for consistency (spawn data in json that @@ -128,6 +132,8 @@ class Item_spawn_data virtual bool remove_item( const Item_tag &itemid ) = 0; virtual bool has_item( const Item_tag &itemid ) const = 0; + virtual std::set every_item() const = 0; + /** probability, used by the parent object. */ int probability; }; @@ -226,6 +232,7 @@ class Single_item_creator : public Item_spawn_data void check_consistency() const override; bool remove_item( const Item_tag &itemid ) override; bool has_item( const Item_tag &itemid ) const override; + std::set every_item() const override; }; /** @@ -269,6 +276,7 @@ class Item_group : public Item_spawn_data void check_consistency() const override; bool remove_item( const Item_tag &itemid ) override; bool has_item( const Item_tag &itemid ) const override; + std::set every_item() const override; /** * These aren't directly used. Instead, the values (both with a default value of 0) "trickle down" diff --git a/src/item_search.cpp b/src/item_search.cpp index 36ffcc14821c2..346485f07496b 100644 --- a/src/item_search.cpp +++ b/src/item_search.cpp @@ -9,6 +9,7 @@ #include "material.h" #include "requirements.h" #include "string_id.h" +#include "type_id.h" std::pair get_both( const std::string &a ); diff --git a/src/item_search.h b/src/item_search.h index f19707cff5a80..e9556c3d99431 100644 --- a/src/item_search.h +++ b/src/item_search.h @@ -2,7 +2,7 @@ #ifndef ITEM_SEARCH_H #define ITEM_SEARCH_H -#include +#include #include #include #include diff --git a/src/iteminfo_query.h b/src/iteminfo_query.h index 43bc33b038036..376eb1b410237 100644 --- a/src/iteminfo_query.h +++ b/src/iteminfo_query.h @@ -2,7 +2,7 @@ #ifndef ITEMINFO_QUERY_H #define ITEMINFO_QUERY_H -#include +#include #include #include #include diff --git a/src/itype.h b/src/itype.h index a50a8b5d4223b..1b828e25c9d31 100644 --- a/src/itype.h +++ b/src/itype.h @@ -18,53 +18,21 @@ #include "iuse.h" // use_function #include "optional.h" #include "pldata.h" // add_type -#include "string_id.h" #include "translations.h" +#include "type_id.h" #include "units.h" // see item.h class item_category; -class gun_mode; - -using gun_mode_id = string_id; class Item_factory; -class emit; - -using emit_id = string_id; -class Skill; - -using skill_id = string_id; -struct bionic_data; - -using bionic_id = string_id; class player; class item; -class vitamin; -using vitamin_id = string_id; -class ma_technique; - -using matec_id = string_id; enum art_effect_active : int; enum art_charge : int; enum art_charge_req : int; enum art_effect_passive : int; -class material_type; - -using material_id = string_id; typedef std::string itype_id; -class ammunition_type; - -using ammotype = string_id; -class fault; - -using fault_id = string_id; -struct quality; - -using quality_id = string_id; -struct MonsterGroup; - -using mongroup_id = string_id; enum field_id : int; @@ -81,8 +49,11 @@ class gun_modifier_data */ gun_modifier_data( const std::string &n, const int q, const std::set &f ) : name_( n ), qty_( q ), flags_( f ) { } - /// @returns The translated name of the gun mode. std::string name() const { + return name_; + } + /// @returns The translated name of the gun mode. + std::string tname() const { return _( name_ ); } int qty() const { diff --git a/src/iuse.cpp b/src/iuse.cpp index 7d409371a6399..b6f86e944a4eb 100644 --- a/src/iuse.cpp +++ b/src/iuse.cpp @@ -1,6 +1,6 @@ #include "iuse.h" -#include +#include #include #include #include @@ -22,6 +22,7 @@ #include "cata_utility.h" #include "debug.h" #include "effect.h" // for weed_msg +#include "explosion.h" #include "event.h" #include "field.h" #include "fungal_effects.h" @@ -53,7 +54,6 @@ #include "speech.h" #include "string_formatter.h" #include "string_input_popup.h" -#include "submap.h" #include "text_snippets.h" #include "translations.h" #include "trap.h" @@ -76,7 +76,6 @@ #include "item_location.h" #include "itype.h" #include "monster.h" -#include "omdata.h" #include "optional.h" #include "pimpl.h" #include "player_activity.h" @@ -87,7 +86,7 @@ #include "string_id.h" #include "vpart_reference.h" #include "weather_gen.h" -#include "material.h" +#include "type_id.h" #define RADIO_PER_TURN 25 // how many characters per turn of radio @@ -2196,6 +2195,13 @@ int iuse::radio_on( player *p, item *it, bool t, const tripoint &pos ) message = messtream.str(); } sounds::ambient_sound( pos, 6, sounds::sound_t::speech, message ); + if( one_in( 10 ) ) { + sfx::play_variant_sound( "radio", "static", 100, 21, 100 ); + sfx::fade_audio_channel( 21, 100 ); + } else if( one_in( 10 ) ) { + sfx::play_ambient_variant_sound( "radio", "inaudible_chatter", 100, 21, 100 ); + sfx::fade_audio_channel( 21, 100 ); + } } else { // Activated int ch = 1; if( it->ammo_remaining() > 0 ) { @@ -2254,7 +2260,8 @@ int iuse::noise_emitter_on( player *p, item *it, bool t, const tripoint &pos ) { if( t ) { // Normal use //~ the sound of a noise emitter when turned on - sounds::ambient_sound( pos, 30, sounds::sound_t::alarm, _( "KXSHHHHRRCRKLKKK!" ) ); + sounds::sound( pos, 30, sounds::sound_t::alarm, _( "KXSHHHHRRCRKLKKK!" ), true, "tool", + "noise_emitter" ); } else { // Turning it off p->add_msg_if_player( _( "The infernal racket dies as the noise emitter turns off." ) ); it->convert( "noise_emitter" ).active = false; @@ -2468,7 +2475,7 @@ int iuse::crowbar( player *p, item *it, bool, const tripoint &pos ) } if( noisy ) { - sounds::sound( pnt, 12, sounds::sound_t::combat, _( "crunch!" ) ); + sounds::sound( pnt, 12, sounds::sound_t::combat, _( "crunch!" ), true, "tool", "crowbar" ); } if( type == t_manhole_cover ) { g->m.spawn_item( pnt, "manhole_cover" ); @@ -2476,7 +2483,8 @@ int iuse::crowbar( player *p, item *it, bool, const tripoint &pos ) if( type == t_door_locked_alarm ) { p->add_memorial_log( pgettext( "memorial_male", "Set off an alarm." ), pgettext( "memorial_female", "Set off an alarm." ) ); - sounds::sound( p->pos(), 40, sounds::sound_t::alarm, _( "an alarm sound!" ) ); + sounds::sound( p->pos(), 40, sounds::sound_t::alarm, _( "an alarm sound!" ), true, "environment", + "alarm" ); if( !g->events.queued( EVENT_WANTED ) ) { g->events.add( EVENT_WANTED, calendar::turn + 30_minutes, 0, p->global_sm_location() ); } @@ -2490,7 +2498,7 @@ int iuse::crowbar( player *p, item *it, bool, const tripoint &pos ) if( dice( 4, difficulty ) > dice( 2, p->get_skill_level( skill_mechanics ) ) + dice( 2, p->str_cur ) ) { p->add_msg_if_player( m_mixed, _( "You break the glass." ) ); - sounds::sound( pnt, 24, sounds::sound_t::combat, _( "glass breaking!" ) ); + sounds::sound( pnt, 24, sounds::sound_t::combat, _( "glass breaking!" ), true, "smash", "glass" ); g->m.ter_set( pnt, t_window_frame ); g->m.spawn_item( pnt, "sheet", 2 ); g->m.spawn_item( pnt, "stick" ); @@ -2649,7 +2657,6 @@ static digging_moves_and_byproducts dig_pit_moves_and_byproducts( player *p, ite // Modify the number of moves based on the help. // TODO: this block of code is all over the place and could probably be consolidated. - const std::vector helpers = g->u.get_crafting_helpers(); const int helpersize = g->u.get_num_crafting_helpers( 3 ); moves = moves * ( 1 - ( helpersize / 10 ) ); @@ -2671,8 +2678,11 @@ int iuse::dig( player *p, item *it, bool t, const tripoint & ) const tripoint dig_point = p->pos(); - const bool can_dig_here = g->m.has_flag( "DIGGABLE", dig_point ) && !g->m.has_furn( dig_point ) && - g->m.tr_at( dig_point ).is_null() && g->m.i_at( dig_point ).empty() && !g->m.veh_at( dig_point ); + const bool can_dig_here = g->m.has_flag( "DIGGABLE", dig_point ) && + !g->m.has_furn( dig_point ) && + g->m.tr_at( dig_point ).is_null() && + ( g->m.ter( dig_point ) == t_grave_new || g->m.i_at( dig_point ).empty() ) && + !g->m.veh_at( dig_point ); if( !can_dig_here ) { p->add_msg_if_player( @@ -2811,7 +2821,6 @@ int iuse::dig_channel( player *p, item *it, bool t, const tripoint & ) act.coords.emplace_back( deposit_point ); p->assign_activity( act ); - return it->type->charges_to_use(); } @@ -3208,6 +3217,49 @@ int iuse::pickaxe( player *p, item *it, bool, const tripoint & ) return 0; // handled when the activity finishes } +int iuse::burrow( player *p, item *it, bool, const tripoint &pos ) +{ + if( p->is_npc() ) { + // Long action + return 0; + } + + if( p->is_underwater() ) { + p->add_msg_if_player( m_info, _( "You can't do that while underwater." ) ); + return 0; + } + + tripoint pnt = pos; + if( pos == p->pos() ) { + const cata::optional pnt_ = choose_adjacent( _( "Burrow where?" ) ); + if( !pnt_ ) { + return 0; + } + pnt = *pnt_; + } + + if( !g->m.has_flag( "MINEABLE", pnt ) ) { + p->add_msg_if_player( m_info, _( "You can't burrow there." ) ); + return 0; + } + if( g->m.veh_at( pnt ) ) { + p->add_msg_if_player( _( "There's a vehicle in the way!" ) ); + return 0; + } + + int turns = 100; + if( g->m.move_cost( pnt ) == 2 ) { + // We're breaking up some flat surface like pavement, which is much easier + turns /= 2; + } + turns *= ( ( MAX_STAT + 3 ) - std::min( p->str_cur, MAX_STAT ) ) * MINUTES( 2 ); + p->assign_activity( activity_id( "ACT_BURROW" ), turns, -1, 0 ); + p->activity.placement = pnt; + p->add_msg_if_player( _( "You start tearing into the %1$s with your %2$s." ), + g->m.tername( pnt ), it->tname() ); + return 0; // handled when the activity finishes +} + int iuse::geiger( player *p, item *it, bool t, const tripoint &pos ) { if( t ) { // Every-turn use when it's on @@ -3217,8 +3269,10 @@ int iuse::geiger( player *p, item *it, bool t, const tripoint &pos ) } std::string description = rads > 50 ? _( "buzzing" ) : rads > 25 ? _( "rapid clicking" ) : _( "clicking" ); + std::string sound_var = rads > 50 ? _( "geiger_high" ) : + rads > 25 ? _( "geiger_medium" ) : _( "geiger_low" ); - sounds::sound( pos, 6, sounds::sound_t::alarm, description ); + sounds::sound( pos, 6, sounds::sound_t::alarm, description, true, "tool", sound_var ); if( !p->can_hear( pos, 6 ) ) { // can not hear it, but may have alarmed other creatures return it->type->charges_to_use(); @@ -3373,7 +3427,7 @@ int iuse::granade_act( player *, item *it, bool t, const tripoint &pos ) } if( t ) { // Simple timer effects // Vol 0 = only heard if you hold it - sounds::sound( pos, 0, sounds::sound_t::speech, _( "Merged!" ) ); + sounds::sound( pos, 0, sounds::sound_t::speech, _( "Merged!" ), true, "speech", it->typeId() ); } else if( it->charges > 0 ) { add_msg( m_info, _( "You've already pulled the %s's pin, try throwing it instead." ), it->tname() ); @@ -3387,8 +3441,8 @@ int iuse::granade_act( player *, item *it, bool t, const tripoint &pos ) }; switch( effect_roll ) { case 1: - sounds::sound( pos, 100, sounds::sound_t::speech, _( "BUGFIXES!" ) ); - g->draw_explosion( pos, explosion_radius, c_light_cyan ); + sounds::sound( pos, 100, sounds::sound_t::speech, _( "BUGFIXES!" ), true, "speech", it->typeId() ); + explosion_handler::draw_explosion( pos, explosion_radius, c_light_cyan ); for( const tripoint &dest : g->m.points_in_radius( pos, explosion_radius ) ) { monster *const mon = g->critter_at( dest, true ); if( mon && ( mon->type->in_species( INSECT ) || mon->is_hallucination() ) ) { @@ -3398,8 +3452,8 @@ int iuse::granade_act( player *, item *it, bool t, const tripoint &pos ) break; case 2: - sounds::sound( pos, 100, sounds::sound_t::speech, _( "BUFFS!" ) ); - g->draw_explosion( pos, explosion_radius, c_green ); + sounds::sound( pos, 100, sounds::sound_t::speech, _( "BUFFS!" ), true, "speech", it->typeId() ); + explosion_handler::draw_explosion( pos, explosion_radius, c_green ); for( const tripoint &dest : g->m.points_in_radius( pos, explosion_radius ) ) { if( monster *const mon_ptr = g->critter_at( dest ) ) { monster &critter = *mon_ptr; @@ -3436,8 +3490,8 @@ int iuse::granade_act( player *, item *it, bool t, const tripoint &pos ) break; case 3: - sounds::sound( pos, 100, sounds::sound_t::speech, _( "NERFS!" ) ); - g->draw_explosion( pos, explosion_radius, c_red ); + sounds::sound( pos, 100, sounds::sound_t::speech, _( "NERFS!" ), true, "speech", it->typeId() ); + explosion_handler::draw_explosion( pos, explosion_radius, c_red ); for( const tripoint &dest : g->m.points_in_radius( pos, explosion_radius ) ) { if( monster *const mon_ptr = g->critter_at( dest ) ) { monster &critter = *mon_ptr; @@ -3473,8 +3527,8 @@ int iuse::granade_act( player *, item *it, bool t, const tripoint &pos ) break; case 4: - sounds::sound( pos, 100, sounds::sound_t::speech, _( "REVERTS!" ) ); - g->draw_explosion( pos, explosion_radius, c_pink ); + sounds::sound( pos, 100, sounds::sound_t::speech, _( "REVERTS!" ), true, "speech", it->typeId() ); + explosion_handler::draw_explosion( pos, explosion_radius, c_pink ); for( const tripoint &dest : g->m.points_in_radius( pos, explosion_radius ) ) { if( monster *const mon_ptr = g->critter_at( dest ) ) { monster &critter = *mon_ptr; @@ -3490,8 +3544,8 @@ int iuse::granade_act( player *, item *it, bool t, const tripoint &pos ) } break; case 5: - sounds::sound( pos, 100, sounds::sound_t::speech, _( "BEES!" ) ); - g->draw_explosion( pos, explosion_radius, c_yellow ); + sounds::sound( pos, 100, sounds::sound_t::speech, _( "BEES!" ), true, "speech", it->typeId() ); + explosion_handler::draw_explosion( pos, explosion_radius, c_yellow ); for( const tripoint &dest : g->m.points_in_radius( pos, explosion_radius ) ) { if( one_in( 5 ) && !g->critter_at( dest ) ) { g->m.add_field( dest, fd_bees, rng( 1, 3 ) ); @@ -3538,7 +3592,7 @@ int iuse::grenade_inc_act( player *p, item *it, bool t, const tripoint &pos ) if( t ) { // Simple timer effects // Vol 0 = only heard if you hold it - sounds::sound( pos, 0, sounds::sound_t::alarm, _( "Tick!" ) ); + sounds::sound( pos, 0, sounds::sound_t::alarm, _( "Tick!" ), true, "misc", "bomb_ticking" ); } else if( it->charges > 0 ) { p->add_msg_if_player( m_info, _( "You've already released the handle, try throwing it instead." ) ); return 0; @@ -3551,7 +3605,7 @@ int iuse::grenade_inc_act( player *p, item *it, bool t, const tripoint &pos ) g->m.add_field( flame, fd_fire, rng( 0, 2 ) ); } } - g->explosion( pos, 8, 0.8, true ); + explosion_handler::explosion( pos, 8, 0.8, true ); for( const tripoint &dest : g->m.points_in_radius( pos, 2 ) ) { g->m.add_field( dest, fd_incendiary, 3 ); } @@ -3628,7 +3682,7 @@ int iuse::firecracker_pack_act( player *, item *it, bool, const tripoint &pos ) { time_duration timer = it->age(); if( timer < 2_turns ) { - sounds::sound( pos, 0, sounds::sound_t::alarm, _( "ssss..." ) ); + sounds::sound( pos, 0, sounds::sound_t::alarm, _( "ssss..." ), true, "misc", "lit_fuse" ); it->inc_damage(); } else if( it->charges > 0 ) { int ex = rng( 4, 6 ); @@ -3637,7 +3691,7 @@ int iuse::firecracker_pack_act( player *, item *it, bool, const tripoint &pos ) ex = it->charges; } for( i = 0; i < ex; i++ ) { - sounds::sound( pos, 20, sounds::sound_t::combat, _( "Bang!" ) ); + sounds::sound( pos, 20, sounds::sound_t::combat, _( "Bang!" ), "explosion", "small" ); } it->charges -= ex; } @@ -3670,12 +3724,12 @@ int iuse::firecracker_act( player *, item *it, bool t, const tripoint &pos ) return 0; } if( t ) { // Simple timer effects - sounds::sound( pos, 0, sounds::sound_t::alarm, _( "ssss..." ) ); + sounds::sound( pos, 0, sounds::sound_t::alarm, _( "ssss..." ), true, "misc", "lit_fuse" ); } else if( it->charges > 0 ) { add_msg( m_info, _( "You've already lit the %s, try throwing it instead." ), it->tname() ); return 0; } else { // When that timer runs down... - sounds::sound( pos, 20, sounds::sound_t::combat, _( "Bang!" ) ); + sounds::sound( pos, 20, sounds::sound_t::combat, _( "Bang!" ), true, "explosion", "small" ); } return 0; } @@ -4212,6 +4266,41 @@ int iuse::portable_game( player *p, item *it, bool, const tripoint & ) return it->type->charges_to_use(); } +int iuse::hand_crank( player *p, item *it, bool, const tripoint & ) +{ + if( p->is_npc() ) { + // Long action + return 0; + } + if( p->is_underwater() ) { + p->add_msg_if_player( m_info, _( "It's not waterproof enough to work underwater." ) ); + return 0; + } + if( p->get_fatigue() >= DEAD_TIRED ) { + p->add_msg_if_player( m_info, _( "You're too exhausted to keep cranking." ) ); + return 0; + } + item *magazine = it->magazine_current(); + if( magazine && magazine->has_flag( "RECHARGE" ) ) { + // 1600 minutes. It shouldn't ever run this long, but it's an upper bound. + // expectation is it runs until the player is too tired. + int time = 1600000; + if( it->ammo_capacity() > it->ammo_remaining() ) { + p->add_msg_if_player( string_format( _( "You start cranking the %s to charge its %s." ), + it->tname(), it->magazine_current()->tname() ) ) ; + p->assign_activity( activity_id( "ACT_HAND_CRANK" ), time, -1, p->get_item_position( it ), + "hand-cranking" ); + } else { + p->add_msg_if_player( string_format( + _( "You could use the %s to charge its %s, but it's already charged." ), it->tname(), + magazine->tname() ) ) ; + } + } else { + p->add_msg_if_player( m_info, _( "You need a rechargeable battery cell to charge." ) ); + } + return 0; +} + int iuse::vibe( player *p, item *it, bool, const tripoint & ) { if( p->is_npc() ) { @@ -4429,7 +4518,6 @@ static int chop_moves( player *p, item *it ) const int attr = it->has_flag( "POWERED" ) ? p->dex_cur : p->str_cur; int moves = MINUTES( 60 - attr ) / std::pow( 2, quality - 1 ) * 100; - const std::vector helpers = g->u.get_crafting_helpers(); const int helpersize = g->u.get_num_crafting_helpers( 3 ); moves = moves * ( 1 - ( helpersize / 10 ) ); return moves; @@ -4622,12 +4710,13 @@ int iuse::boltcutters( player *p, item *it, bool, const tripoint & ) if( g->m.ter( pnt ) == t_chaingate_l ) { p->moves -= 100; g->m.ter_set( pnt, t_chaingate_c ); - sounds::sound( pnt, 5, sounds::sound_t::combat, _( "Gachunk!" ) ); + sounds::sound( pnt, 5, sounds::sound_t::combat, _( "Gachunk!" ), true, "tool", "boltcutters" ); g->m.spawn_item( p->posx(), p->posy(), "scrap", 3 ); } else if( g->m.ter( pnt ) == t_chainfence ) { p->moves -= 500; g->m.ter_set( pnt, t_chainfence_posts ); - sounds::sound( pnt, 5, sounds::sound_t::combat, _( "Snick, snick, gachunk!" ) ); + sounds::sound( pnt, 5, sounds::sound_t::combat, _( "Snick, snick, gachunk!" ), true, "tool", + "boltcutters" ); g->m.spawn_item( pnt, "wire", 20 ); } else { add_msg( m_info, _( "You can't cut that." ) ); @@ -4700,7 +4789,8 @@ int iuse::artifact( player *p, item *it, bool, const tripoint & ) switch( used ) { case AEA_STORM: { - sounds::sound( p->pos(), 10, sounds::sound_t::combat, _( "Ka-BOOM!" ) ); + sounds::sound( p->pos(), 10, sounds::sound_t::combat, _( "Ka-BOOM!" ), true, "environment", + "thunder_near" ); int num_bolts = rng( 2, 4 ); for( int j = 0; j < num_bolts; j++ ) { int xdir = 0; @@ -4736,7 +4826,7 @@ int iuse::artifact( player *p, item *it, bool, const tripoint & ) case AEA_FIREBALL: { if( const cata::optional fireball = g->look_around() ) { - g->explosion( *fireball, 180, 0.5, true ); + explosion_handler::explosion( *fireball, 180, 0.5, true ); } } break; @@ -4788,7 +4878,8 @@ int iuse::artifact( player *p, item *it, bool, const tripoint & ) break; case AEA_PULSE: - sounds::sound( p->pos(), 30, sounds::sound_t::combat, _( "The earth shakes!" ) ); + sounds::sound( p->pos(), 30, sounds::sound_t::combat, _( "The earth shakes!" ), true, "misc", + "earthquake" ); for( const tripoint &pt : g->m.points_in_radius( p->pos(), 2 ) ) { g->m.bash( pt, 40 ); g->m.bash( pt, 40 ); // Multibash effect, so that doors &c will fall @@ -4928,13 +5019,13 @@ int iuse::artifact( player *p, item *it, bool, const tripoint & ) case AEA_NOISE: sounds::sound( p->pos(), 100, sounds::sound_t::combat, string_format( _( "a deafening boom from %s %s" ), - p->disp_name( true ), it->tname() ) ); + p->disp_name( true ), it->tname() ), true, "misc", "shockwave" ); break; case AEA_SCREAM: sounds::sound( p->pos(), 40, sounds::sound_t::alert, string_format( _( "a disturbing scream from %s %s" ), - p->disp_name( true ), it->tname() ) ); + p->disp_name( true ), it->tname() ), true, "shout", "scream" ); if( !p->is_deaf() ) { p->add_morale( MORALE_SCREAM, -10, 0, 30_minutes, 1_minutes ); } @@ -4947,7 +5038,7 @@ int iuse::artifact( player *p, item *it, bool, const tripoint & ) case AEA_FLASH: p->add_msg_if_player( _( "The %s flashes brightly!" ), it->tname() ); - g->flashbang( p->pos() ); + explosion_handler::flashbang( p->pos() ); break; case AEA_VOMIT: @@ -5011,10 +5102,10 @@ int iuse::artifact( player *p, item *it, bool, const tripoint & ) int iuse::spray_can( player *p, item *it, bool, const tripoint & ) { - return handle_ground_graffiti( *p, it, _( "Spray what?" ) ); + return handle_ground_graffiti( *p, it, _( "Spray what?" ), p->pos() ); } -int iuse::handle_ground_graffiti( player &p, item *it, const std::string &prefix ) +int iuse::handle_ground_graffiti( player &p, item *it, const std::string &prefix, tripoint pt ) { std::string message = string_input_popup() .title( prefix + " " + _( "(To delete, input one '.')" ) ) @@ -5024,26 +5115,38 @@ int iuse::handle_ground_graffiti( player &p, item *it, const std::string &prefix if( message.empty() ) { return 0; } else { - const auto where = p.pos(); + const auto where = pt != p.pos() ? pt : p.pos(); + bool grave = g->m.ter( where ) == t_grave_new; int move_cost; if( message == "." ) { if( g->m.has_graffiti_at( where ) ) { move_cost = 3 * g->m.graffiti_at( where ).length(); g->m.delete_graffiti( where ); - add_msg( _( "You manage to get rid of the message on the ground." ) ); + if( grave ) { + add_msg( _( "You blur the inscription on the grave." ) ); + } else { + add_msg( _( "You manage to get rid of the message on the ground." ) ); + } } else { add_msg( _( "There isn't anything to erase here." ) ); return 0; } } else { g->m.set_graffiti( where, message ); - add_msg( _( "You write a message on the ground." ) ); + if( grave ) { + add_msg( _( "You carve an inscription on the grave." ) ); + } else { + add_msg( _( "You write a message on the ground." ) ); + } move_cost = 2 * message.length(); } p.moves -= move_cost; } - - return it->type->charges_to_use(); + if( it != nullptr ) { + return it->type->charges_to_use(); + } else { + return 0; + } } /** @@ -5388,7 +5491,8 @@ int iuse::talking_doll( player *p, item *it, bool, const tripoint & ) const SpeechBubble speech = get_speech( it->typeId() ); - sounds::ambient_sound( p->pos(), speech.volume, sounds::sound_t::speech, speech.text ); + sounds::sound( p->pos(), speech.volume, sounds::sound_t::speech, speech.text, true, "speech", + it->typeId() ); // Sound code doesn't describe noises at the player position if( p->can_hear( p->pos(), speech.volume ) ) { @@ -5441,14 +5545,14 @@ int iuse::gun_repair( player *p, item *it, bool, const tripoint & ) const std::string startdurability = fix.durability_indicator( true ); std::string resultdurability; if( fix.damage() <= 0 ) { - sounds::sound( p->pos(), 6, sounds::sound_t::activity, "crunch" ); + sounds::sound( p->pos(), 6, sounds::sound_t::activity, "crunch", true, "tool", "repair_kit" ); p->moves -= 2000 * p->fine_detail_vision_mod(); p->practice( skill_mechanics, 10 ); fix.mod_damage( -itype::damage_scale ); p->add_msg_if_player( m_good, _( "You accurize your %s." ), fix.tname( 1, false ) ); } else if( fix.damage() > itype::damage_scale ) { - sounds::sound( p->pos(), 8, sounds::sound_t::activity, "crunch" ); + sounds::sound( p->pos(), 8, sounds::sound_t::activity, "crunch", true, "tool", "repair_kit" ); p->moves -= 1000 * p->fine_detail_vision_mod(); p->practice( skill_mechanics, 10 ); fix.mod_damage( -itype::damage_scale ); @@ -5457,7 +5561,7 @@ int iuse::gun_repair( player *p, item *it, bool, const tripoint & ) startdurability, resultdurability ); } else { - sounds::sound( p->pos(), 8, sounds::sound_t::activity, "crunch" ); + sounds::sound( p->pos(), 8, sounds::sound_t::activity, "crunch", true, "tool", "repair_kit" ); p->moves -= 500 * p->fine_detail_vision_mod(); p->practice( skill_mechanics, 10 ); fix.set_damage( 0 ); @@ -5606,7 +5710,8 @@ int iuse::misc_repair( player *p, item *it, bool, const tripoint & ) int iuse::bell( player *p, item *it, bool, const tripoint & ) { if( it->typeId() == "cow_bell" ) { - sounds::sound( p->pos(), 12, sounds::sound_t::music, _( "Clank! Clank!" ) ); + sounds::sound( p->pos(), 12, sounds::sound_t::music, _( "Clank! Clank!" ), true, "misc", + "cow_bell" ); if( !p->is_deaf() ) { const int cow_factor = 1 + ( p->mutation_category_level.find( "CATTLE" ) == p->mutation_category_level.end() ? @@ -5618,7 +5723,7 @@ int iuse::bell( player *p, item *it, bool, const tripoint & ) } } } else { - sounds::sound( p->pos(), 4, sounds::sound_t::music, _( "Ring! Ring!" ) ); + sounds::sound( p->pos(), 4, sounds::sound_t::music, _( "Ring! Ring!" ), true, "misc", "bell" ); } return it->type->charges_to_use(); } @@ -6342,7 +6447,8 @@ int iuse::camera( player *p, item *it, bool, const tripoint & ) trajectory.push_back( aim_point ); p->moves -= 50; - sounds::sound( p->pos(), 8, sounds::sound_t::activity, _( "Click." ) ); + sounds::sound( p->pos(), 8, sounds::sound_t::activity, _( "Click." ), true, "tool", + "camera_shutter" ); for( auto &i : trajectory ) { @@ -6665,7 +6771,7 @@ int iuse::ehandcuffs( player *p, item *it, bool t, const tripoint &pos ) if( it->charges == 0 ) { - sounds::sound( pos, 2, sounds::sound_t::combat, "Click." ); + sounds::sound( pos, 2, sounds::sound_t::combat, "Click.", true, "tools", "handcuffs" ); it->item_tags.erase( "NO_UNWIELD" ); it->active = false; @@ -6691,7 +6797,8 @@ int iuse::ehandcuffs( player *p, item *it, bool t, const tripoint &pos ) } if( calendar::once_every( 1_minutes ) ) { - sounds::sound( pos, 10, sounds::sound_t::alarm, _( "a police siren, whoop WHOOP." ) ); + sounds::sound( pos, 10, sounds::sound_t::alarm, _( "a police siren, whoop WHOOP." ), true, + "environment", "police_siren" ); } const int x = it->get_var( "HANDCUFFS_X", 0 ); @@ -6819,7 +6926,7 @@ int iuse::radiocaron( player *p, item *it, bool t, const tripoint &pos ) { if( t ) { //~Sound of a radio controlled car moving around - sounds::sound( pos, 6, sounds::sound_t::movement, _( "buzzz..." ) ); + sounds::sound( pos, 6, sounds::sound_t::movement, _( "buzzz..." ), true, "misc", "rc_car_drives" ); return it->type->charges_to_use(); } else if( !it->ammo_sufficient() ) { @@ -6852,7 +6959,7 @@ void sendRadioSignal( player &p, const std::string &signal ) item &it = p.inv.find_item( i ); if( it.has_flag( "RADIO_ACTIVATION" ) && it.has_flag( signal ) ) { - sounds::sound( p.pos(), 6, sounds::sound_t::alarm, _( "beep." ) ); + sounds::sound( p.pos(), 6, sounds::sound_t::alarm, _( "beep." ), true, "misc", "beep" ); if( it.has_flag( "RADIO_INVOKE_PROC" ) ) { // Invoke twice: first to transform, then later to proc @@ -7216,7 +7323,7 @@ int iuse::multicooker( player *p, item *it, bool t, const tripoint &pos ) it->erase_var( "COOKTIME" ); //~ sound of a multi-cooker finishing its cycle! - sounds::sound( pos, 8, sounds::sound_t::alarm, _( "ding!" ) ); + sounds::sound( pos, 8, sounds::sound_t::alarm, _( "ding!" ), true, "misc", "ding" ); return 0; } else { diff --git a/src/iuse.h b/src/iuse.h index 312e00f75f233..8071883c67c85 100644 --- a/src/iuse.h +++ b/src/iuse.h @@ -105,6 +105,7 @@ class iuse int e_combatsaw_on( player *, item *, bool, const tripoint & ); int jackhammer( player *, item *, bool, const tripoint & ); int pickaxe( player *, item *, bool, const tripoint & ); + int burrow( player *, item *, bool, const tripoint & ); int geiger( player *, item *, bool, const tripoint & ); int teleport( player *, item *, bool, const tripoint & ); int can_goo( player *, item *, bool, const tripoint & ); @@ -136,6 +137,7 @@ class iuse int gasmask( player *, item *, bool, const tripoint & ); int portable_game( player *, item *, bool, const tripoint & ); int vibe( player *, item *, bool, const tripoint & ); + int hand_crank( player *, item *, bool, const tripoint & ); int vortex( player *, item *, bool, const tripoint & ); int dog_whistle( player *, item *, bool, const tripoint & ); int blood_draw( player *, item *, bool, const tripoint & ); @@ -220,7 +222,7 @@ class iuse static void play_music( player &p, const tripoint &source, int volume, int max_morale ); // Helper for handling pesky wannabe-artists - static int handle_ground_graffiti( player &p, item *it, const std::string &prefix ); + static int handle_ground_graffiti( player &p, item *it, const std::string &prefix, tripoint pt ); }; diff --git a/src/iuse_actor.cpp b/src/iuse_actor.cpp index 2f231e54c1a82..8ab325e4ba478 100644 --- a/src/iuse_actor.cpp +++ b/src/iuse_actor.cpp @@ -1,7 +1,7 @@ #include "iuse_actor.h" -#include -#include +#include +#include #include #include #include @@ -26,6 +26,7 @@ #include "vpart_position.h" #include "effect.h" #include "event.h" +#include "explosion.h" #include "field.h" #include "game.h" #include "game_inventory.h" @@ -69,7 +70,6 @@ #include "player_activity.h" #include "recipe.h" #include "rng.h" -#include "character.h" class npc; @@ -211,9 +211,9 @@ long iuse_transform::use( player &p, item &it, bool t, const tripoint &pos ) con item *obj; if( container.empty() ) { obj = &it.convert( target ); - if( ammo_qty >= 0 || random_ammo_qty.size() > 0 ) { + if( ammo_qty >= 0 || !random_ammo_qty.empty() ) { long qty; - if( random_ammo_qty.size() > 0 ) { + if( !random_ammo_qty.empty() ) { const auto index = rng( 1, random_ammo_qty.size() - 1 ); qty = rng( random_ammo_qty[index - 1], random_ammo_qty[index] ); } else { @@ -406,7 +406,7 @@ long explosion_iuse::use( player &p, item &it, bool t, const tripoint &pos ) con if( t ) { if( sound_volume >= 0 ) { sounds::sound( pos, sound_volume, sounds::sound_t::alarm, - sound_msg.empty() ? _( "Tick." ) : _( sound_msg ) ); + sound_msg.empty() ? _( "Tick." ) : _( sound_msg ), true, "misc", "bomb_ticking" ); } return 0; } @@ -423,14 +423,14 @@ long explosion_iuse::use( player &p, item &it, bool t, const tripoint &pos ) con } if( explosion.power >= 0.0f ) { - g->explosion( pos, explosion ); + explosion_handler::explosion( pos, explosion ); } if( draw_explosion_radius >= 0 ) { - g->draw_explosion( pos, draw_explosion_radius, draw_explosion_color ); + explosion_handler::draw_explosion( pos, draw_explosion_radius, draw_explosion_color ); } if( do_flashbang ) { - g->flashbang( pos, flashbang_player_immune ); + explosion_handler::flashbang( pos, flashbang_player_immune ); } if( fields_radius >= 0 && fields_type != fd_null ) { std::vector gas_sources = points_for_gas_cloud( pos, fields_radius ); @@ -441,12 +441,12 @@ long explosion_iuse::use( player &p, item &it, bool t, const tripoint &pos ) con } if( scrambler_blast_radius >= 0 ) { for( const tripoint &dest : g->m.points_in_radius( pos, scrambler_blast_radius ) ) { - g->scrambler_blast( dest ); + explosion_handler::scrambler_blast( dest ); } } if( emp_blast_radius >= 0 ) { for( const tripoint &dest : g->m.points_in_radius( pos, emp_blast_radius ) ) { - g->emp_blast( dest ); + explosion_handler::emp_blast( dest ); } } return 1; @@ -967,7 +967,8 @@ long pick_lock_actor::use( player &p, item &it, bool, const tripoint & ) const p.add_msg_if_player( m_bad, _( "The lock stumps your efforts to pick it." ) ); } if( type == t_door_locked_alarm && ( door_roll + dice( 1, 30 ) ) > pick_roll ) { - sounds::sound( p.pos(), 40, sounds::sound_t::alarm, _( "an alarm sound!" ) ); + sounds::sound( p.pos(), 40, sounds::sound_t::alarm, _( "an alarm sound!" ), true, "environment", + "alarm" ); if( !g->events.queued( EVENT_WANTED ) ) { g->events.add( EVENT_WANTED, calendar::turn + 30_minutes, 0, p.global_sm_location() ); } @@ -1566,7 +1567,7 @@ long inscribe_actor::use( player &p, item &it, bool t, const tripoint & ) const } if( choice == 0 ) { - return iuse::handle_ground_graffiti( p, &it, string_format( _( "%s what?" ), _( verb ) ) ); + return iuse::handle_ground_graffiti( p, &it, string_format( _( "%s what?" ), _( verb ) ), p.pos() ); } int pos = g->inv_for_all( _( "Inscribe which item?" ) ); @@ -1948,6 +1949,8 @@ void manualnoise_actor::load( JsonObject &obj ) no_charges_message = obj.get_string( "no_charges_message" ); use_message = obj.get_string( "use_message" ); noise_message = obj.get_string( "noise_message", "hsss" ); + noise_id = obj.get_string( "noise_id", "misc" ); + noise_variant = obj.get_string( "noise_variant", "default" ); noise = obj.get_int( "noise", 0 ); moves = obj.get_int( "moves", 0 ); } @@ -1970,7 +1973,7 @@ long manualnoise_actor::use( player &p, item &it, bool t, const tripoint & ) con p.moves -= moves; if( noise > 0 ) { sounds::sound( p.pos(), noise, sounds::sound_t::activity, - noise_message.empty() ? _( "Hsss" ) : _( noise_message ) ); + noise_message.empty() ? _( "Hsss" ) : _( noise_message ), true, noise_id, noise_variant ); } p.add_msg_if_player( _( use_message ) ); } @@ -2090,7 +2093,14 @@ long musical_instrument_actor::use( player &p, item &it, bool t, const tripoint } } - sounds::ambient_sound( p.pos(), volume, sounds::sound_t::music, desc ); + if( morale_effect >= 0 ) { + sounds::sound( p.pos(), volume, sounds::sound_t::music, desc, true, "musical_instrument", + it.typeId() ); + } else { + sounds::sound( p.pos(), volume, sounds::sound_t::music, desc, true, "musical_instrument_bad", + it.typeId() ); + } + if( !p.has_effect( effect_music ) && p.can_hear( p.pos(), volume ) ) { // Sound code doesn't describe noises at the player position @@ -2729,12 +2739,15 @@ bool repair_item_actor::can_repair_target( player &pl, const item &fix, return false; } - if( fix.has_flag( "VARSIZE" ) && !fix.has_flag( "FIT" ) ) { + const bool can_be_refitted = fix.has_flag( "VARSIZE" ); + if( can_be_refitted && !fix.has_flag( "FIT" ) ) { return true; } + const bool resizing_matters = fix.get_encumber( pl ) != 0; const bool small = pl.has_trait( trait_SMALL2 ) || pl.has_trait( trait_SMALL_OK ); - if( small != fix.has_flag( "UNDERSIZE" ) ) { + const bool can_resize = small != fix.has_flag( "UNDERSIZE" ); + if( can_be_refitted && resizing_matters && can_resize ) { return true; } @@ -2811,17 +2824,33 @@ std::pair repair_item_actor::repair_chance( repair_item_actor::repair_type repair_item_actor::default_action( const item &fix, int current_skill_level ) const { - const bool small = g->u.has_trait( trait_id( "SMALL2" ) ) || - g->u.has_trait( trait_id( "SMALL_OK" ) ); if( fix.damage() > 0 ) { return RT_REPAIR; } - if( fix.has_flag( "VARSIZE" ) && - ( !fix.has_flag( "FIT" ) || small != fix.has_flag( "UNDERSIZE" ) ) ) { + const bool can_be_refitted = fix.has_flag( "VARSIZE" ); + const bool doesnt_fit = !fix.has_flag( "FIT" ); + if( doesnt_fit && can_be_refitted ) { return RT_REFIT; } + const bool smol = g->u.has_trait( trait_id( "SMALL2" ) ) || + g->u.has_trait( trait_id( "SMALL_OK" ) ); + + const bool is_undersized = fix.has_flag( "UNDERSIZE" ); + const bool is_oversized = fix.has_flag( "OVERSIZE" ); + const bool resizing_matters = fix.get_encumber( g->u ) != 0; + + const bool too_big_while_smol = smol && !is_undersized && !is_oversized; + if( too_big_while_smol && can_be_refitted && resizing_matters ) { + return RT_DOWNSIZING; + } + + const bool too_small_while_big = !smol && is_undersized && !is_oversized; + if( too_small_while_big && can_be_refitted && resizing_matters ) { + return RT_UPSIZING; + } + if( fix.damage() > fix.min_damage() ) { return RT_REINFORCE; } @@ -2925,22 +2954,11 @@ repair_item_actor::attempt_hint repair_item_actor::repair( player &pl, item &too if( action == RT_REFIT ) { if( roll == SUCCESS ) { - const bool small = g->u.has_trait( trait_id( "SMALL2" ) ) || - g->u.has_trait( trait_id( "SMALL_OK" ) ); if( !fix->has_flag( "FIT" ) ) { pl.add_msg_if_player( m_good, _( "You take your %s in, improving the fit." ), fix->tname() ); fix->item_tags.insert( "FIT" ); } - if( small && !fix->has_flag( "UNDERSIZE" ) ) { - pl.add_msg_if_player( m_good, _( "You resize the %s to accommodate your tiny build." ), - fix->tname() ); - fix->item_tags.insert( "UNDERSIZE" ); - } else if( !small && fix->has_flag( "UNDERSIZE" ) ) { - pl.add_msg_if_player( m_good, _( "You adjust the %s back to its normal size." ), - fix->tname() ); - fix->item_tags.erase( "UNDERSIZE" ); - } handle_components( pl, *fix, false, false ); return AS_SUCCESS; } @@ -2948,6 +2966,30 @@ repair_item_actor::attempt_hint repair_item_actor::repair( player &pl, item &too return AS_RETRY; } + if( action == RT_DOWNSIZING ) { + //We dont need to check for smallness or undersize because DOWNSIZING already guarantees that + if( roll == SUCCESS ) { + pl.add_msg_if_player( m_good, _( "You resize the %s to accommodate your tiny build." ), + fix->tname().c_str() ); + fix->item_tags.insert( "UNDERSIZE" ); + handle_components( pl, *fix, false, false ); + return AS_SUCCESS; + } + return AS_RETRY; + } + + if( action == RT_UPSIZING ) { + //We dont need to check for smallness or undersize because UPSIZING already guarantees that + if( roll == SUCCESS ) { + pl.add_msg_if_player( m_good, _( "You adjust the %s back to its normal size." ), + fix->tname().c_str() ); + fix->item_tags.erase( "UNDERSIZE" ); + handle_components( pl, *fix, false, false ); + return AS_SUCCESS; + } + return AS_RETRY; + } + if( action == RT_REINFORCE ) { if( fix->has_flag( "PRIMITIVE_RANGED_WEAPON" ) || !fix->reinforceable() ) { pl.add_msg_if_player( m_info, _( "You cannot improve your %s any more this way." ), @@ -2975,6 +3017,8 @@ const std::string &repair_item_actor::action_description( repair_item_actor::rep _( "Nothing" ), _( "Repairing" ), _( "Refitting" ), + _( "Downsizing" ), + _( "Upsizing" ), _( "Reinforcing" ), _( "Practicing" ) } @@ -3734,7 +3778,6 @@ long detach_gunmods_actor::use( player &p, item &it, bool, const tripoint & ) co if( prompt.ret >= 0 ) { item *gm = mods[ prompt.ret ]; - const auto mod_name = gm->tname(); p.gunmod_remove( it, *gm ); } else { p.add_msg_if_player( _( "Never mind." ) ); @@ -3874,7 +3917,7 @@ long mutagen_iv_actor::use( player &p, item &it, bool, const tripoint & ) const p.mod_pain( m_category.iv_pain ); /** @EFFECT_STR increases volume of painful shouting when using IV mutagen */ sounds::sound( p.pos(), m_category.iv_noise + p.str_cur, sounds::sound_t::alert, - m_category.iv_sound_message() ); + m_category.iv_sound_message(), true, m_category.iv_sound_id(), m_category.iv_sound_variant() ); } int mut_count = m_category.iv_min_mutations; diff --git a/src/iuse_actor.h b/src/iuse_actor.h index 382abfe8fd1b6..401749e2aeca4 100644 --- a/src/iuse_actor.h +++ b/src/iuse_actor.h @@ -2,7 +2,7 @@ #ifndef IUSE_ACTOR_H #define IUSE_ACTOR_H -#include +#include #include #include #include @@ -16,51 +16,24 @@ #include "iuse.h" #include "ret_val.h" #include "string_id.h" +#include "type_id.h" #include "units.h" #include "optional.h" -class vitamin; class item; class player; struct iteminfo; struct tripoint; -using vitamin_id = string_id; -struct vehicle_prototype; - -using vproto_id = string_id; enum field_id : int; enum hp_part : int; enum body_part : int; -struct mtype; - -using mtype_id = string_id; class JsonObject; -class Skill; - -using skill_id = string_id; -class effect_type; -using efftype_id = string_id; -class ammunition_type; - -using ammotype = string_id; using itype_id = std::string; -class material_type; - -using material_id = string_id; -class emit; - -using emit_id = string_id; -struct bionic_data; - -using bionic_id = string_id; struct furn_t; struct itype; class item_location; -struct quality; - -using quality_id = string_id; /** * Transform an item into a specific type. @@ -628,6 +601,8 @@ class manualnoise_actor : public iuse_actor std::string no_charges_message; std::string use_message; std::string noise_message; + std::string noise_id; + std::string noise_variant; int noise = 0; // Should work even with no volume, even if it seems impossible int moves = 0; @@ -811,6 +786,8 @@ class repair_item_actor : public iuse_actor RT_NOTHING = 0, RT_REPAIR, // Just repairing damage RT_REFIT, // Refitting + RT_DOWNSIZING, // When small, reduce clothing to small size + RT_UPSIZING, // When normal, increase clothing to normal size RT_REINFORCE, // Getting damage below 0 RT_PRACTICE, // Wanted to reinforce, but can't NUM_REPAIR_TYPES @@ -915,14 +892,9 @@ class heal_actor : public iuse_actor void info( const item &, std::vector & ) const override; }; -struct ter_t; -struct trap; - class place_trap_actor : public iuse_actor { public: - using trap_str_id = string_id; - using ter_str_id = string_id; struct data { data(); trap_str_id trap; diff --git a/src/iuse_software_snake.cpp b/src/iuse_software_snake.cpp index 3e158b1ffcf43..02b478d8ab3ce 100644 --- a/src/iuse_software_snake.cpp +++ b/src/iuse_software_snake.cpp @@ -1,6 +1,6 @@ #include "iuse_software_snake.h" -#include +#include #include #include #include diff --git a/src/iuse_software_sokoban.h b/src/iuse_software_sokoban.h index f6b36dc7cdd25..7f8b00b265c9a 100644 --- a/src/iuse_software_sokoban.h +++ b/src/iuse_software_sokoban.h @@ -2,7 +2,7 @@ #ifndef SOFTWARE_SOKOBAN_H #define SOFTWARE_SOKOBAN_H -#include +#include #include #include #include diff --git a/src/json.cpp b/src/json.cpp index 04412d453862b..51c8073a88f70 100644 --- a/src/json.cpp +++ b/src/json.cpp @@ -1,7 +1,7 @@ #include "json.h" -#include -#include +#include +#include #include // pow #include // strtoul #include // strcmp diff --git a/src/json.h b/src/json.h index 7c50a3d63cdec..3daefaecd209a 100644 --- a/src/json.h +++ b/src/json.h @@ -2,7 +2,7 @@ #ifndef JSON_H #define JSON_H -#include +#include #include #include #include diff --git a/src/lightmap.cpp b/src/lightmap.cpp index cc510b2e8f3d8..f766d92f1f6bc 100644 --- a/src/lightmap.cpp +++ b/src/lightmap.cpp @@ -1,8 +1,8 @@ #include "lightmap.h" // IWYU pragma: associated #include "shadowcasting.h" // IWYU pragma: associated -#include -#include +#include +#include #include #include #include @@ -29,12 +29,12 @@ #include "enums.h" #include "field.h" #include "item.h" -#include "itype.h" #include "line.h" #include "optional.h" #include "player.h" #include "string_formatter.h" #include "tileray.h" +#include "type_id.h" #define LIGHTMAP_CACHE_X MAPSIZE_X #define LIGHTMAP_CACHE_Y MAPSIZE_Y @@ -94,7 +94,7 @@ void map::build_transparency_cache( const int zlev ) &transparency_cache[0][0], MAPSIZE_X * MAPSIZE_Y, static_cast( LIGHT_TRANSPARENCY_OPEN_AIR ) ); - float sight_penalty = weather_data( g->weather ).sight_penalty; + const float sight_penalty = weather_data( g->weather ).sight_penalty; // Traverse the submaps in order for( int smx = 0; smx < my_MAPSIZE; ++smx ) { @@ -186,6 +186,86 @@ void map::apply_character_light( player &p ) } } +// This function raytraces starting at the upper limit of the simulated area descending +// toward the lower limit. Since it's sunlight, the rays are parallel. +// Each layer consults the next layer up to determine the intensity of the light that reaches it. +// Once this is complete, additional operations add more dynamic lighting. +void map::build_sunlight_cache( int zlev ) +{ + level_cache &map_cache = get_cache( zlev ); + auto &lm = map_cache.lm; + // Grab illumination at ground level. + const float outside_light_level = g->natural_light_level( 0 ); + const float inside_light_level = ( outside_light_level > LIGHT_SOURCE_BRIGHT ) ? + LIGHT_AMBIENT_LOW + 1.0 : LIGHT_AMBIENT_MINIMAL; + // Handling when z-levels are disabled is based on whether a tile is considered "outside". + if( !zlevels ) { + const auto &outside_cache = map_cache.outside_cache; + for( int x = 0; x < MAPSIZE_X; x++ ) { + for( int y = 0; y < MAPSIZE_Y; y++ ) { + if( outside_cache[x][y] ) { + lm[x][y].fill( outside_light_level ); + } else { + lm[x][y].fill( inside_light_level ); + } + } + } + return; + } + // If uppermost level, just apply weather illumination since there's no opportunity + // for light to be blocked. + if( zlev == OVERMAP_HEIGHT ) { + for( int x = 0; x < MAPSIZE_X; x++ ) { + for( int y = 0; y < MAPSIZE_Y; y++ ) { + lm[x][y].fill( outside_light_level ); + } + } + return; + } + + // Replace this with a calculated shift based on time of day and date. + // At first compress the angle such that it takes no more than one tile of shift per level. + // To exceed that, we'll have to handle casting light from the side instead of the top. + point offset( 0, 0 ); + const level_cache &prev_map_cache = get_cache_ref( zlev + 1 ); + const auto &prev_lm = prev_map_cache.lm; + const auto &prev_transparency_cache = prev_map_cache.transparency_cache; + const auto &prev_floor_cache = prev_map_cache.floor_cache; + const auto &outside_cache = map_cache.outside_cache; + const float sight_penalty = weather_data( g->weather ).sight_penalty; + for( int x = 0, prev_x = offset.x; x < MAPSIZE_X; x++, prev_x++ ) { + bool x_inbounds = true; + if( prev_x < 0 || prev_x >= MAPSIZE_X ) { + x_inbounds = false; + } + for( int y = 0, prev_y = offset.y; y < MAPSIZE_Y; y++, prev_y++ ) { + bool inbounds = true; + if( !x_inbounds || prev_y < 0 || prev_y >= MAPSIZE_Y ) { + inbounds = false; + } + four_quadrants prev_light( outside_light_level ); + float prev_transparency = static_cast( LIGHT_TRANSPARENCY_OPEN_AIR ); + if( inbounds ) { + prev_light = prev_lm[ prev_x ][ prev_y ]; + prev_transparency = prev_transparency_cache[ prev_x ][ prev_y ]; + // This is pretty gross, this cancels out the per-tile transparency effect + // derived from weather. + if( outside_cache[x][y] ) { + prev_transparency /= sight_penalty; + } + } + // The formula to apply transparency to the light rays doesn't handle full opacity, + // so handle that seperately. + if( prev_transparency > LIGHT_TRANSPARENCY_SOLID && + !prev_floor_cache[x][y] && prev_light.max() > 0.0 ) { + lm[x][y].fill( prev_light.max() * LIGHT_TRANSPARENCY_OPEN_AIR / prev_transparency ); + } else { + lm[x][y].fill( inside_light_level ); + } + } + } +} + void map::generate_lightmap( const int zlev ) { auto &map_cache = get_cache( zlev ); @@ -219,20 +299,12 @@ void map::generate_lightmap( const int zlev ) }; const float natural_light = g->natural_light_level( zlev ); - const float inside_light = ( natural_light > LIGHT_SOURCE_BRIGHT ) ? - LIGHT_AMBIENT_LOW + 1.0 : LIGHT_AMBIENT_MINIMAL; - // Apply sunlight, first light source so just assign - for( int sx = 0; sx < LIGHTMAP_CACHE_X; ++sx ) { - for( int sy = 0; sy < LIGHTMAP_CACHE_Y; ++sy ) { - // In bright light indoor light exists to some degree - if( !outside_cache[sx][sy] ) { - lm[sx][sy].fill( inside_light ); - } else { - lm[sx][sy].fill( natural_light ); - } - } + const int minz = zlevels ? -OVERMAP_DEPTH : zlev; + const int maxz = zlevels ? OVERMAP_HEIGHT : zlev; + // Iterate top to bottom because sunlight cache needs to construct in that order. + for( int z = maxz; z >= minz; z-- ) { + build_sunlight_cache( z ); } - apply_character_light( g->u ); for( npc &guy : g->all_npcs() ) { apply_character_light( guy ); diff --git a/src/lightmap.h b/src/lightmap.h index f435c7621c00e..a6459f61ded5f 100644 --- a/src/lightmap.h +++ b/src/lightmap.h @@ -2,7 +2,7 @@ #ifndef LIGHTMAP_H #define LIGHTMAP_H -#include +#include #define LIGHT_SOURCE_LOCAL 0.1f #define LIGHT_SOURCE_BRIGHT 10 diff --git a/src/lru_cache.cpp b/src/lru_cache.cpp index bd5e6c7c040c3..afd9087689a12 100644 --- a/src/lru_cache.cpp +++ b/src/lru_cache.cpp @@ -1,6 +1,6 @@ #include "lru_cache.h" -#include +#include #include #include "map_memory.h" diff --git a/src/magic.cpp b/src/magic.cpp new file mode 100644 index 0000000000000..c5e2d11331c4f --- /dev/null +++ b/src/magic.cpp @@ -0,0 +1,197 @@ +#include "magic.h" + +#include "calendar.h" +#include "color.h" +#include "damage.h" +#include "game.h" +#include "generic_factory.h" +#include "json.h" +#include "line.h" +#include "map.h" +#include "mapdata.h" +#include "messages.h" +#include "monster.h" +#include "mutation.h" +#include "npc.h" +#include "options.h" +#include "player.h" +#include "projectile.h" +#include "rng.h" +#include "translations.h" + +namespace +{ +const std::map target_map = { + { "ally", valid_target::target_ally }, + { "hostile", valid_target::target_hostile }, + { "self", valid_target::target_self }, + { "ground", valid_target::target_ground }, + { "none", valid_target::target_none } +}; +} +namespace io +{ +template<> +valid_target string_to_enum( const std::string &trigger ) +{ + return string_to_enum_look_up( target_map, trigger ); +} +} + +// LOADING +// spell_type + +namespace +{ +generic_factory spell_factory( "spell" ); +} + +template<> +const spell_type &string_id::obj() const +{ + return spell_factory.obj( *this ); +} + +template<> +bool string_id::is_valid() const +{ + return spell_factory.is_valid( *this ); +} + +void spell_type::load_spell( JsonObject &jo, const std::string &src ) +{ + spell_factory.load( jo, src ); +} + +energy_type energy_source_from_string( const std::string &str ) +{ + if( str == "MANA" ) { + return mana_energy; + } else if( str == "HP" ) { + return hp_energy; + } else if( str == "BIONIC" ) { + return bionic_energy; + } else if( str == "STAMINA" ) { + return stamina_energy; + } else if( str == "NONE" ) { + return none_energy; + } else { + debugmsg( _( "ERROR: Invalid energy string. Defaulting to NONE" ) ); + return none_energy; + } +} + +damage_type damage_type_from_string( const std::string &str ) +{ + if( str == "fire" ) { + return DT_HEAT; + } else if( str == "acid" ) { + return DT_ACID; + } else if( str == "bash" ) { + return DT_BASH; + } else if( str == "bio" ) { + return DT_BIOLOGICAL; + } else if( str == "cold" ) { + return DT_COLD; + } else if( str == "cut" ) { + return DT_CUT; + } else if( str == "electric" ) { + return DT_ELECTRIC; + } else if( str == "stab" ) { + return DT_STAB; + } else if( str == "none" || str == "NONE" ) { + return DT_TRUE; + } else { + debugmsg( _( "ERROR: Invalid damage type string. Defaulting to none" ) ); + return DT_TRUE; + } +} + +void spell_type::load( JsonObject &jo, const std::string & ) +{ + mandatory( jo, was_loaded, "id", id ); + mandatory( jo, was_loaded, "name", name, translated_string_reader ); + mandatory( jo, was_loaded, "description", description, translated_string_reader ); + mandatory( jo, was_loaded, "effect", effect ); + + const auto trigger_reader = enum_flags_reader { "valid_targets" }; + mandatory( jo, was_loaded, "valid_targets", valid_targets, trigger_reader ); + + optional( jo, was_loaded, "effect_str", effect_str, "" ); + + optional( jo, was_loaded, "min_damage", min_damage, 0 ); + optional( jo, was_loaded, "damage_increment", damage_increment, 0.0f ); + optional( jo, was_loaded, "max_damage", max_damage, 0 ); + + optional( jo, was_loaded, "min_range", min_range, 0 ); + optional( jo, was_loaded, "range_increment", range_increment, 0.0f ); + optional( jo, was_loaded, "max_range", max_range, 0 ); + + optional( jo, was_loaded, "min_aoe", min_aoe, 0 ); + optional( jo, was_loaded, "aoe_increment", aoe_increment, 0.0f ); + optional( jo, was_loaded, "max_aoe", max_aoe, 0 ); + + optional( jo, was_loaded, "min_dot", min_dot, 0 ); + optional( jo, was_loaded, "dot_increment", dot_increment, 0.0f ); + optional( jo, was_loaded, "max_dot", max_dot, 0 ); + + optional( jo, was_loaded, "min_duration", min_duration, 0 ); + optional( jo, was_loaded, "duration_increment", duration_increment, 0.0f ); + optional( jo, was_loaded, "max_duration", max_duration, 0 ); + + optional( jo, was_loaded, "min_pierce", min_pierce, 0 ); + optional( jo, was_loaded, "pierce_increment", pierce_increment, 0.0f ); + optional( jo, was_loaded, "max_pierce", max_pierce, 0 ); + + optional( jo, was_loaded, "base_energy_cost", base_energy_cost, 0 ); + std::string temp_string; + optional( jo, was_loaded, "spell_class", temp_string, "NONE" ); + spell_class = trait_id( temp_string ); + optional( jo, was_loaded, "energy_source", temp_string, "NONE" ); + energy_source = energy_source_from_string( temp_string ); + optional( jo, was_loaded, "damage_type", temp_string, "NONE" ); + dmg_type = damage_type_from_string( temp_string ); + optional( jo, was_loaded, "difficulty", difficulty, 0 ); + optional( jo, was_loaded, "max_level", max_level, 0 ); + optional( jo, was_loaded, "base_casting_time", base_casting_time, 0 ); + +} + +void spell_type::check_consistency() +{ + for( const spell_type &sp_t : get_all() ) { + if( sp_t.min_aoe > sp_t.max_aoe ) { + debugmsg( string_format( "ERROR: %s has higher min_aoe than max_aoe", sp_t.id.c_str() ) ); + } + if( abs( sp_t.min_damage ) > abs( sp_t.max_damage ) ) { + debugmsg( string_format( "ERROR: %s has higher min_damage than max_damage", sp_t.id.c_str() ) ); + } + if( sp_t.min_range > sp_t.max_range ) { + debugmsg( string_format( "ERROR: %s has higher min_range than max_range", sp_t.id.c_str() ) ); + } + if( sp_t.min_dot > sp_t.max_dot ) { + debugmsg( string_format( "ERROR: %s has higher min_dot than max_dot", sp_t.id.c_str() ) ); + } + if( sp_t.min_duration > sp_t.max_duration ) { + debugmsg( string_format( "ERROR: %s has higher min_dot_time than max_dot_time", sp_t.id.c_str() ) ); + } + if( sp_t.min_pierce > sp_t.max_pierce ) { + debugmsg( string_format( "ERROR: %s has higher min_pierce than max_pierce", sp_t.id.c_str() ) ); + } + } +} + +const std::vector &spell_type::get_all() +{ + return spell_factory.get_all(); +} + +void spell_type::reset_all() +{ + spell_factory.reset(); +} + +bool spell_type::is_valid() const +{ + return spell_factory.is_valid( this->id ); +} diff --git a/src/magic.h b/src/magic.h new file mode 100644 index 0000000000000..cf1530c1df5b3 --- /dev/null +++ b/src/magic.h @@ -0,0 +1,303 @@ +#pragma once +#ifndef MAGIC_H +#define MAGIC_H + +#include + +#include "damage.h" +#include "enum_bitset.h" +#include "type_id.h" + +struct mutation_branch; +struct tripoint; +struct dealt_damage_instance; +struct damage_instance; + +class player; +class JsonObject; +class JsonOut; +class JsonIn; +class time_duration; +class nc_color; + +enum energy_type { + hp_energy, + mana_energy, + stamina_energy, + bionic_energy, + none_energy +}; + +enum valid_target { + target_ally, + target_hostile, + target_self, + target_ground, + target_none, + _LAST +}; + +template<> +struct enum_traits { + static constexpr auto last = valid_target::_LAST; +}; + +class spell_type +{ + public: + spell_type() = default; + + bool was_loaded = false; + + spell_id id; + // spell name + std::string name; + // spell description + std::string description; + // spell effect string. used to look up spell function + std::string effect; + // extra information about spell effect. allows for combinations for effects + std::string effect_str; + + // minimum damage this spell can cause + int min_damage; + // amount of damage increase per spell level + float damage_increment; + // maximum damage this spell can cause + int max_damage; + + // minimum range of a spell + int min_range; + // amount of range increase per spell level + float range_increment; + // max range this spell can achieve + int max_range; + + // minimum area of effect of a spell (radius) + // 0 means the spell only affects the target + int min_aoe; + // amount of area of effect increase per spell level (radius) + float aoe_increment; + // max area of effect of a spell (radius) + int max_aoe; + + // damage over time deals damage per turn + + // minimum damage over time + int min_dot; + // increment per spell level + float dot_increment; + // max damage over time + int max_dot; + + // amount of time effect lasts + + // minimum time for effect in moves + int min_duration; + // increment per spell level in moves + // DoT is per turn, but increments can be smaller + int duration_increment; + // max time for effect in moves + int max_duration; + + // amount of damage that is piercing damage + // not added to damage stat + + // minimum pierce damage + int min_pierce; + // increment of pierce damage per spell level + float pierce_increment; + // max pierce damage + int max_pierce; + + // base energy cost of spell + int base_energy_cost; + + // spell is restricted to being cast by only this class + // if spell_class is empty, spell is unrestricted + trait_id spell_class; + + // the difficulty of casting a spell + int difficulty; + + // max level this spell can achieve + int max_level; + + // base amount of time to cast the spell in moves + int base_casting_time; + + // what energy do you use to cast this spell + energy_type energy_source; + + damage_type dmg_type; + + // list of valid targets enum + enum_bitset valid_targets; + + static void load_spell( JsonObject &jo, const std::string &src ); + void load( JsonObject &jo, const std::string & ); + /** + * All spells in the game. + */ + static const std::vector &get_all(); + static void check_consistency(); + static void reset_all(); + bool is_valid() const; +}; + +class spell +{ + private: + // basic spell data + const spell_type *type; + // what player is this spell associated with + const player *owner; + + // once you accumulate enough exp you level the spell + int experience; + // returns damage type for the spell + damage_type dmg_type() const; + // gets int from player + int modded_int() const; + // gets spellcraft level from player + int spellcraft_level() const; + + public: + spell() = default; + spell( const spell_type *type, player *owner ); + spell( spell_id sp, player *owner, int xp = 0 ); + + // how much exp you need for the spell to gain a level + int exp_to_next_level() const; + // progress to the next level, expressed as a percent + std::string exp_progress() const; + // how much xp you have total + int xp() const; + // gain some exp + void gain_exp( int nxp ); + // how much xp you get if you successfully cast the spell + int casting_exp() const; + // modifier for gaining exp + float exp_modifier() const; + // level up! + void gain_level(); + // is the spell at max level? + bool is_max_level() const; + + // how much damage does the spell do + int damage() const; + dealt_damage_instance get_dealt_damage_instance() const; + damage_instance get_damage_instance() const; + tripoint get_source() const; + // how big is the spell's radius + int aoe() const; + // distance spell can be cast + int range() const; + // how much energy does the spell cost + int energy_cost() const; + // how long does this spell's effect last + int duration() const; + time_duration duration_turns() const; + // how often does the spell fail + // based on difficulty, level of spell, spellcraft skill, intelligence + float spell_fail() const; + std::string colorized_fail_percent() const; + // how long does it take to cast the spell + int casting_time() const; + + // can the player cast this spell? + bool can_cast() const; + // can the player learn this spell? + bool can_learn() const; + // is this spell valid + bool is_valid() const; + + // get spell id (from type) + spell_id id() const; + // get spell effect string (from type) + std::string effect() const; + // get spell effect_str data + std::string effect_data() const; + // name of spell (translated) + std::string name() const; + // description of spell (translated) + std::string description() const; + // energy source as a string (translated) + std::string energy_string() const; + // energy cost returned as a string + std::string energy_cost_string() const; + // current energy the player has available as a string + std::string energy_cur_string() const; + // energy source enum + energy_type energy_source() const; + // the color that's representative of the damage type + nc_color damage_type_color() const; + // your level in this spell + int get_level() const; + // difficulty of the level + int get_difficulty() const; + + // heals the critter at the location, returns amount healed (player heals each body part) + int heal( const tripoint &target ) const; + + // is the target valid for this spell? + bool is_valid_target( const tripoint &p ) const; + bool is_valid_target( valid_target t ) const; +}; + +class known_magic +{ + private: + player *owner; + // list of spells known by player + std::map spellbook; + // the base mana a player would start with + int mana_base; + // current mana + int mana; + public: + known_magic(); + known_magic( player *p ); + void learn_spell( const std::string &sp, bool force = false ); + void learn_spell( spell_id sp, bool force = false ); + void learn_spell( const spell_type *sp, bool force = false ); + void forget_spell( const std::string &sp ); + void forget_spell( spell_id sp ); + // time in moves for the player to memorize the spell + int time_to_learn_spell( spell_id sp ) const; + int time_to_learn_spell( const std::string &str ) const; + bool can_learn_spell( spell_id sp ) const; + bool knows_spell( const std::string &sp ) const; + bool knows_spell( spell_id sp ) const; + // spells known by player + std::vector spells() const; + // gets the spell associated with the spell_id to be edited + spell &get_spell( spell_id sp ); + // how much mana is available to use to cast spells + int available_mana() const; + // max mana vailable + int max_mana() const; + void mod_mana( int add_mana ); + void set_mana( int new_mana ); + void update_mana( float turns ); + // does the player have enough energy to cast this spell? + // not specific to mana + bool has_enough_energy( spell &sp ) const; + + void serialize( JsonOut &json ) const; + void deserialize( JsonIn &jsin ); +}; + +namespace spell_effect +{ +void teleport( int min_distance, int max_distance ); +void pain_split(); // only does g->u +void shallow_pit( const tripoint &target ); +void target_attack( spell &sp, const tripoint &target ); +void projectile_attack( spell &sp, const tripoint &target ); +void cone_attack( spell &sp, const tripoint &target ); +void line_attack( spell &sp, const tripoint &target ); +void spawn_ethereal_item( spell &sp ); +} + +#endif diff --git a/src/main.cpp b/src/main.cpp index 66e2fcda3d60b..3d302b029580b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,9 +1,9 @@ /* Entry point and main loop for Cataclysm */ -#include -#include -#include +#include +#include +#include #include #include #include @@ -16,6 +16,7 @@ #include #include #include +#include #if defined(_WIN32) #include "platform_win.h" #else @@ -36,7 +37,7 @@ #include "rng.h" #include "translations.h" #include "input.h" -#include "worldfactory.h" +#include "type_id.h" #if defined(TILES) # if defined(_MSC_VER) && defined(USE_VCPKG) diff --git a/src/main_menu.cpp b/src/main_menu.cpp index e2d080f640138..090f5772b4002 100644 --- a/src/main_menu.cpp +++ b/src/main_menu.cpp @@ -645,6 +645,7 @@ bool main_menu::new_character_tab() vSubItems.push_back( pgettext( "Main Menu|New Game", "Play ow!" ) ); } std::vector> vNewGameHotkeys; + vNewGameHotkeys.reserve( vSubItems.size() ); for( const std::string &item : vSubItems ) { vNewGameHotkeys.push_back( get_hotkeys( item ) ); } diff --git a/src/main_menu.h b/src/main_menu.h index 9ba88d8d1ee4e..d4368d867b9ad 100644 --- a/src/main_menu.h +++ b/src/main_menu.h @@ -2,7 +2,7 @@ #ifndef MAIN_MENU_H #define MAIN_MENU_H -#include +#include #include #include diff --git a/src/map.cpp b/src/map.cpp index de985d67dfe8a..25e106146b248 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -1,6 +1,6 @@ #include "map.h" -#include +#include #include #include #include @@ -19,6 +19,7 @@ #include "clzones.h" #include "debug.h" #include "drawing_primitives.h" +#include "explosion.h" #include "event.h" #include "fragment_cloud.h" #include "fungal_effects.h" @@ -38,6 +39,7 @@ #include "messages.h" #include "mongroup.h" #include "monster.h" +#include "morale_types.h" #include "mtype.h" #include "npc.h" #include "options.h" @@ -72,13 +74,14 @@ #include "iuse.h" #include "map_memory.h" #include "math_defines.h" -#include "omdata.h" #include "optional.h" #include "player.h" #include "player_activity.h" #include "tileray.h" #include "weighted_list.h" -#include "material.h" +#include "enums.h" +#include "int_id.h" +#include "string_id.h" const mtype_id mon_zombie( "mon_zombie" ); @@ -1016,50 +1019,59 @@ vehicle *map::displace_vehicle( tripoint &p, const tripoint &dp ) // Need old coordinates to check for remote control const bool remote = veh->remote_controlled( g->u ); - // record every passenger inside - std::vector psg_parts = veh->boarded_parts(); - std::vector psgs; - for( auto &prt : psg_parts ) { - psgs.push_back( veh->get_passenger( prt ) ); - } + // record every passenger and pet inside + std::vector riders = veh->get_riders(); bool need_update = false; int z_change = 0; - // Move passengers - for( size_t i = 0; i < psg_parts.size(); i++ ) { - player *psg = psgs[i]; - const int prt = psg_parts[i]; - const tripoint part_pos = veh->global_part_pos3( prt ); - if( psg == nullptr ) { - debugmsg( "Empty passenger part %d pcoord=%d,%d,%d u=%d,%d,%d?", - prt, - part_pos.x, part_pos.y, part_pos.z, - g->u.posx(), g->u.posy(), g->u.posz() ); - veh->parts[prt].remove_flag( vehicle_part::passenger_flag ); - continue; - } + // Move passengers and pets + bool complete = false; + // loop until everyone has moved or for each passenger + for( size_t i = 0; !complete && i < riders.size(); i++ ) { + complete = true; + for( rider_data &r : riders ) { + if( r.moved ) { + continue; + } + const int prt = r.prt; + Creature *psg = r.psg; + const tripoint part_pos = veh->global_part_pos3( prt ); + if( psg == nullptr ) { + debugmsg( "Empty passenger for part #%d at %d,%d,%d player at %d,%d,%d?", + prt, part_pos.x, part_pos.y, part_pos.z, + g->u.posx(), g->u.posy(), g->u.posz() ); + veh->parts[prt].remove_flag( vehicle_part::passenger_flag ); + r.moved = true; + continue; + } - if( psg->pos() != part_pos ) { - add_msg( m_debug, "Passenger/part position mismatch: passenger %d,%d,%d, part %d %d,%d,%d", - g->u.posx(), g->u.posy(), g->u.posz(), - prt, - part_pos.x, part_pos.y, part_pos.z ); - } + if( psg->pos() != part_pos ) { + add_msg( m_debug, "Part/passenger position mismatch: part #%d at %d,%d,%d " + "passenger at %d,%d,%d", prt, part_pos.x, part_pos.y, part_pos.z, + psg->posx(), psg->posy(), psg->posz() ); + } - // Place passenger on the new part location - const vehicle_part &veh_part = veh->parts[prt]; - tripoint psgp( part_pos.x + dp.x + veh_part.precalc[1].x - veh_part.precalc[0].x, - part_pos.y + dp.y + veh_part.precalc[1].y - veh_part.precalc[0].y, - psg->posz() ); - if( psg == &g->u ) { - // If passenger is you, we need to update the map - psg->setpos( psgp ); - need_update = true; - z_change = dp.z; - } else { - // Player gets z position changed by g->vertical_move() - psgp.z += dp.z; - psg->setpos( psgp ); + // Place passenger on the new part location + const vehicle_part &veh_part = veh->parts[prt]; + tripoint psgp( part_pos.x + dp.x + veh_part.precalc[1].x - veh_part.precalc[0].x, + part_pos.y + dp.y + veh_part.precalc[1].y - veh_part.precalc[0].y, + psg->posz() ); + // someone is in the way so try again + if( g->critter_at( psgp ) ) { + complete = false; + continue; + } + if( psg == &g->u ) { + // If passenger is you, we need to update the map + psg->setpos( psgp ); + need_update = true; + z_change = dp.z; + } else { + // Player gets z position changed by g->vertical_move() + psgp.z += dp.z; + psg->setpos( psgp ); + } + r.moved = true; } } @@ -2656,9 +2668,9 @@ bool map::is_flammable( const tripoint &p ) void map::decay_fields_and_scent( const time_duration &amount ) { + // TODO: Make this happen on all z-levels + // Decay scent separately, so that later we can use field count to skip empty submaps - tripoint tmp; - tmp.z = abs_sub.z; // TODO: Make this happen on all z-levels g->scent.decay(); const time_duration amount_fire = amount / 3; // Decay fire by this much @@ -3094,7 +3106,7 @@ void map::bash_ter_furn( const tripoint &p, bash_params ¶ms ) if( impassable( p ) ) { if( !params.silent ) { sounds::sound( p, 18, sounds::sound_t::combat, _( "thump!" ), - false, "smash_thump", "smash_success" ); + false, "smash_fail", "default" ); } params.did_bash = true; @@ -3291,7 +3303,7 @@ void map::bash_ter_furn( const tripoint &p, bash_params ¶ms ) } if( bash->explosive > 0 ) { - g->explosion( p, bash->explosive, 0.8, false ); + explosion_handler::explosion( p, bash->explosive, 0.8, false ); } if( collapses ) { @@ -3498,7 +3510,8 @@ void map::shoot( const tripoint &p, projectile &proj, const bool hit_items ) const auto &ammo_effects = proj.proj_effects; if( has_flag( "ALARMED", p ) && !g->events.queued( EVENT_WANTED ) ) { - sounds::sound( p, 30, sounds::sound_t::alarm, _( "an alarm sound!" ) ); + sounds::sound( p, 30, sounds::sound_t::alarm, _( "an alarm sound!" ), true, "environment", + "alarm" ); const tripoint abs = ms_to_sm_copy( getabs( p ) ); g->events.add( EVENT_WANTED, calendar::turn + 30_minutes, 0, abs ); } @@ -3633,7 +3646,7 @@ void map::shoot( const tripoint &p, projectile &proj, const bool hit_items ) } else if( terrain == t_paper ) { dam -= rng( 4, 16 ); if( dam > 0 ) { - sounds::sound( p, 8, sounds::sound_t::combat, _( "rrrrip!" ) ); + sounds::sound( p, 8, sounds::sound_t::combat, _( "rrrrip!" ), true, "smash", "paper_torn" ); ter_set( p, t_dirt ); } if( inc ) { @@ -3643,7 +3656,7 @@ void map::shoot( const tripoint &p, projectile &proj, const bool hit_items ) if( hit_items || one_in( 3 ) ) { if( dam > 15 ) { if( inc ) { - g->explosion( p, 40, 0.8, true ); + explosion_handler::explosion( p, 40, 0.8, true ); } else { for( const tripoint &pt : points_in_radius( p, 2 ) ) { if( one_in( 3 ) && passable( pt ) ) { @@ -3654,7 +3667,7 @@ void map::shoot( const tripoint &p, projectile &proj, const bool hit_items ) } } - sounds::sound( p, 10, sounds::sound_t::combat, _( "smash!" ) ); + sounds::sound( p, 10, sounds::sound_t::combat, _( "smash!" ), true, "bullet_hit", "hit_metal" ); } ter_set( p, t_gas_pump_smashed ); } @@ -3662,7 +3675,7 @@ void map::shoot( const tripoint &p, projectile &proj, const bool hit_items ) } } else if( terrain == t_vat ) { if( dam >= 10 ) { - sounds::sound( p, 20, sounds::sound_t::combat, _( "ke-rash!" ) ); + sounds::sound( p, 20, sounds::sound_t::combat, _( "ke-rash!" ), true, "bullet_hit", "hit_metal" ); ter_set( p, t_floor ); } else { dam = 0; @@ -4478,14 +4491,14 @@ static bool item_is_in_activity( const item *it ) } static bool process_item( item_stack &items, std::list::iterator &n, const tripoint &location, - const bool activate, const int temp, const float insulation ) + const bool activate, const int temp, const float insulation, const temperature_flag flag ) { if( !item_is_in_activity( &*n ) ) { // make a temporary copy, remove the item (in advance) // and use that copy to process it item temp_item = *n; auto insertion_point = items.erase( n ); - if( !temp_item.process( nullptr, location, activate, temp, insulation ) ) { + if( !temp_item.process( nullptr, location, activate, temp, insulation, flag ) ) { // Not destroyed, must be inserted again. // If the item lost its active flag in processing, // it won't be re-added to the active list, tidy! @@ -4497,7 +4510,7 @@ static bool process_item( item_stack &items, std::list::iterator &n, const return false; } return true; - } else if( n->process( nullptr, location, activate, temp, insulation ) ) { + } else if( n->process( nullptr, location, activate, temp, insulation, flag ) ) { items.erase( n ); return true; } @@ -4506,9 +4519,9 @@ static bool process_item( item_stack &items, std::list::iterator &n, const static bool process_map_items( item_stack &items, std::list::iterator &n, const tripoint &location, const std::string &, const int temp, - const float insulation ) + const float insulation, const temperature_flag flag ) { - return process_item( items, n, location, false, temp, insulation ); + return process_item( items, n, location, false, temp, insulation, flag ); } static void process_vehicle_items( vehicle &cur_veh, int part ) @@ -4613,11 +4626,16 @@ void map::process_items_in_submap( submap ¤t_submap, const tripoint &gridp const tripoint map_location = tripoint( grid_offset + active_item.location, gridp.z ); // root cellars are special - const int loc_temp = g->m.ter( map_location ) == t_rootcellar ? - AVERAGE_ANNUAL_TEMPERATURE : - g->get_temperature( map_location ); + int loc_temp; + temperature_flag flag = temperature_flag::TEMP_NORMAL; + if( g->m.ter( map_location ) == t_rootcellar ) { + loc_temp = AVERAGE_ANNUAL_TEMPERATURE; + flag = temperature_flag::TEMP_ROOT_CELLAR; + } else { + loc_temp = g->get_temperature( map_location ); + } auto items = i_at( map_location ); - processor( items, active_item.item_iterator, map_location, signal, loc_temp, 1 ); + processor( items, active_item.item_iterator, map_location, signal, loc_temp, 1, flag ); } } @@ -4677,10 +4695,12 @@ void map::process_items_in_vehicle( vehicle &cur_veh, submap ¤t_submap, co auto items = cur_veh.get_items( static_cast( it->part_index() ) ); int it_temp = g->get_temperature( item_loc ); float it_insulation = 1.0; - if( item_iter->is_food() || item_iter->is_food_container() ) { + temperature_flag flag = temperature_flag::TEMP_NORMAL; + if( item_iter->has_temperature() || item_iter->is_food_container() ) { const vpart_info &pti = pt.info(); if( engine_heater_is_on ) { it_temp = std::max( it_temp, temperatures::normal ); + flag = temperature_flag::TEMP_HEATER; } // some vehicle parts provide insulation, default is 1 it_insulation = item::find_type( pti.item )->insulation_factor; @@ -4688,12 +4708,14 @@ void map::process_items_in_vehicle( vehicle &cur_veh, submap ¤t_submap, co if( pt.enabled && pti.has_flag( VPFLAG_FRIDGE ) ) { it_temp = std::min( it_temp, temperatures::fridge ); it_insulation = 1; // ignore fridge insulation if on + flag = temperature_flag::TEMP_FRIDGE; } else if( pt.enabled && pti.has_flag( VPFLAG_FREEZER ) ) { it_temp = std::min( it_temp, temperatures::freezer ); it_insulation = 1; // ignore freezer insulation if on + flag = temperature_flag::TEMP_FREEZER; } } - if( !processor( items, item_iter, item_loc, signal, it_temp, it_insulation ) ) { + if( !processor( items, item_iter, item_loc, signal, it_temp, it_insulation, flag ) ) { // If the item was NOT destroyed, we can skip the remainder, // which handles fallout from the vehicle being damaged. continue; @@ -5119,11 +5141,11 @@ std::list > map::get_rc_items( int x, int y, int z ) static bool trigger_radio_item( item_stack &items, std::list::iterator &n, const tripoint &pos, const std::string &signal, - const int, const float ) + const int, const float, const temperature_flag flag ) { bool trigger_item = false; if( n->has_flag( "RADIO_ACTIVATION" ) && n->has_flag( signal ) ) { - sounds::sound( pos, 6, sounds::sound_t::alarm, _( "beep." ) ); + sounds::sound( pos, 6, sounds::sound_t::alarm, _( "beep." ), true, "misc", "beep" ); if( n->has_flag( "RADIO_INVOKE_PROC" ) ) { // Invoke twice: first to transform, then later to proc // Can't use process_item here - invalidates our iterator @@ -5153,7 +5175,7 @@ static bool trigger_radio_item( item_stack &items, std::list::iterator &n, } } if( trigger_item ) { - return process_item( items, n, pos, true, 0, 1 ); + return process_item( items, n, pos, true, 0, 1, flag ); } return false; } @@ -5256,17 +5278,26 @@ void map::disarm_trap( const tripoint &p ) } if( roll >= diff ) { add_msg( _( "You disarm the trap!" ) ); + const int morale_buff = tr.get_avoidance() * 0.4 + tr.get_difficulty() + rng( 0, 4 ); + g->u.rem_morale( MORALE_FAILURE ); + g->u.add_morale( MORALE_ACCOMPLISHMENT, morale_buff, 40 ); tr.on_disarmed( *this, p ); if( diff > 1.25 * tSkillLevel ) { // failure might have set off trap g->u.practice( skill_traps, 1.5 * ( diff - tSkillLevel ) ); } } else if( roll >= diff * .8 ) { add_msg( _( "You fail to disarm the trap." ) ); + const int morale_debuff = -rng( 6, 18 ); + g->u.rem_morale( MORALE_ACCOMPLISHMENT ); + g->u.add_morale( MORALE_FAILURE, morale_debuff, -40 ); if( diff > 1.25 * tSkillLevel ) { g->u.practice( skill_traps, 1.5 * ( diff - tSkillLevel ) ); } } else { add_msg( m_bad, _( "You fail to disarm the trap, and you set it off!" ) ); + const int morale_debuff = -rng( 12, 24 ); + g->u.rem_morale( MORALE_ACCOMPLISHMENT ); + g->u.add_morale( MORALE_FAILURE, morale_debuff, -40 ); tr.trigger( p, &g->u ); if( diff - roll <= 6 ) { // Give xp for failing, but not if we failed terribly (in which diff --git a/src/map.h b/src/map.h index 681d28a093ceb..9088ed37a7299 100644 --- a/src/map.h +++ b/src/map.h @@ -2,8 +2,8 @@ #ifndef MAP_H #define MAP_H -#include -#include +#include +#include #include #include #include @@ -19,22 +19,22 @@ #include "calendar.h" #include "enums.h" #include "game_constants.h" -#include "int_id.h" #include "item.h" #include "item_stack.h" #include "lightmap.h" #include "shadowcasting.h" -#include "string_id.h" +#include "type_id.h" #include "units.h" #include "cata_utility.h" +struct furn_t; +struct ter_t; +template class string_id; + namespace catacurses { class window; } // namespace catacurses -class emit; - -using emit_id = string_id; class optional_vpart_position; class player; class monster; @@ -50,38 +50,22 @@ class submap; class item_location; class map_cursor; struct maptile; +struct mapgendata; class basecamp; class computer; class Character; class zone_data; struct trap; -struct oter_t; enum direction : unsigned; using itype_id = std::string; -using trap_id = int_id; -using oter_id = int_id; template class visitable; struct regional_settings; struct mongroup; -struct ter_t; - -using ter_id = int_id; -using ter_str_id = string_id; -struct furn_t; - -using furn_id = int_id; -using furn_str_id = string_id; -struct mtype; - -using mtype_id = string_id; struct projectile; struct veh_collision; class tileray; -class harvest_list; - -using harvest_id = string_id; class npc_template; class vpart_reference; @@ -97,15 +81,6 @@ struct wrapped_vehicle { typedef std::vector VehicleList; typedef std::string items_location; -struct vehicle_prototype; - -using vproto_id = string_id; -class VehicleGroup; - -using vgroup_id = string_id; -struct MonsterGroup; - -using mongroup_id = string_id; class map; enum ter_bitflags : int; @@ -1427,7 +1402,41 @@ class map const oter_id &t_above, const oter_id &t_below, const time_point &when, const float density, const int zlevel, const regional_settings *rsettings ); + void draw_office_tower( const oter_id &terrain_type, mapgendata &dat, const time_point &when, + const float density ); + void draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_point &when, + const float density ); + void draw_silo( const oter_id &terrain_type, mapgendata &dat, const time_point &when, + const float density ); + void draw_temple( const oter_id &terrain_type, mapgendata &dat, const time_point &when, + const float density ); + void draw_sewer( const oter_id &terrain_type, mapgendata &dat, const time_point &when, + const float density ); + void draw_mine( const oter_id &terrain_type, mapgendata &dat, const time_point &when, + const float density ); + void draw_spiral( const oter_id &terrain_type, mapgendata &dat, const time_point &when, + const float density ); + void draw_sarcophagus( const oter_id &terrain_type, mapgendata &dat, const time_point &when, + const float density ); + void draw_toxic_dump( const oter_id &terrain_type, mapgendata &dat, const time_point &when, + const float density ); + void draw_megastore( const oter_id &terrain_type, mapgendata &dat, const time_point &when, + const float density ); + void draw_fema( const oter_id &terrain_type, mapgendata &dat, const time_point &when, + const float density ); + void draw_anthill( const oter_id &terrain_type, mapgendata &dat, const time_point &when, + const float density ); + void draw_slimepit( const oter_id &terrain_type, mapgendata &dat, const time_point &when, + const float density ); + void draw_spider_pit( const oter_id &terrain_type, mapgendata &dat, const time_point &when, + const float density ); + void draw_triffid( const oter_id &terrain_type, mapgendata &dat, const time_point &when, + const float density ); + void draw_connections( const oter_id &terrain_type, mapgendata &dat, const time_point &when, + const float density ); + void build_transparency_cache( int zlev ); + void build_sunlight_cache( int zlev ); public: void build_outside_cache( int zlev ); void build_floor_cache( int zlev ); @@ -1565,7 +1574,7 @@ class map * solution in this instance. */ typedef bool ( *map_process_func )( item_stack &, std::list::iterator &, const tripoint &, - const std::string &, int, float ); + const std::string &, int, float, temperature_flag ); private: // Iterates over every item on the map, passing each item to the provided function. diff --git a/src/map_extras.cpp b/src/map_extras.cpp index b369f82a6a0c9..5a2a75e3a712a 100644 --- a/src/map_extras.cpp +++ b/src/map_extras.cpp @@ -1,7 +1,7 @@ #include "map_extras.h" -#include -#include +#include +#include #include #include #include @@ -38,26 +38,22 @@ #include "string_id.h" #include "translations.h" #include "vpart_reference.h" +#include "type_id.h" class npc_template; namespace MapExtras { +static const mongroup_id GROUP_NETHER( "GROUP_NETHER" ); static const mongroup_id GROUP_MAYBE_MIL( "GROUP_MAYBE_MIL" ); static const mongroup_id GROUP_FISH( "GROUP_FISH" ); static const mtype_id mon_zombie_tough( "mon_zombie_tough" ); -static const mtype_id mon_blank( "mon_blank" ); static const mtype_id mon_zombie_smoker( "mon_zombie_smoker" ); static const mtype_id mon_zombie_scientist( "mon_zombie_scientist" ); static const mtype_id mon_chickenbot( "mon_chickenbot" ); static const mtype_id mon_dispatch( "mon_dispatch" ); -static const mtype_id mon_gelatin( "mon_gelatin" ); -static const mtype_id mon_flaming_eye( "mon_flaming_eye" ); -static const mtype_id mon_gracke( "mon_gracke" ); -static const mtype_id mon_kreck( "mon_kreck" ); -static const mtype_id mon_mi_go( "mon_mi_go" ); static const mtype_id mon_tankbot( "mon_tankbot" ); static const mtype_id mon_turret( "mon_turret" ); static const mtype_id mon_turret_bmg( "mon_turret_bmg" ); @@ -260,15 +256,10 @@ void mx_military( map &m, const tripoint & ) } } - static const std::array monsters = { { - mon_gelatin, mon_mi_go, mon_kreck, mon_gracke, - } - }; int num_monsters = rng( 0, 3 ); for( int i = 0; i < num_monsters; i++ ) { - const mtype_id &type = random_entry( monsters ); int mx = rng( 1, SEEX * 2 - 2 ), my = rng( 1, SEEY * 2 - 2 ); - m.add_spawn( type, 1, mx, my ); + m.place_spawns( GROUP_NETHER, 1, mx, my, mx, my, 1, true ); } m.place_spawns( GROUP_MAYBE_MIL, 2, 0, 0, SEEX * 2 - 1, SEEY * 2 - 1, 0.1f ); //0.1 = 1-5 @@ -289,15 +280,10 @@ void mx_science( map &m, const tripoint & ) } } } - static const std::array monsters = { { - mon_gelatin, mon_mi_go, mon_kreck, mon_gracke - } - }; int num_monsters = rng( 0, 3 ); for( int i = 0; i < num_monsters; i++ ) { - const mtype_id &type = random_entry( monsters ); int mx = rng( 1, SEEX * 2 - 2 ), my = rng( 1, SEEY * 2 - 2 ); - m.add_spawn( type, 1, mx, my ); + m.place_spawns( GROUP_NETHER, 1, mx, my, mx, my, 1, true ); } m.place_items( "rare", 45, 0, 0, SEEX * 2 - 1, SEEY * 2 - 1, true, 0 ); } @@ -325,15 +311,10 @@ void mx_collegekids( map &m, const tripoint & ) } } } - static const std::array monsters = { { - mon_gelatin, mon_mi_go, mon_kreck, mon_gracke - } - }; int num_monsters = rng( 0, 3 ); for( int i = 0; i < num_monsters; i++ ) { - const mtype_id &type = random_entry( monsters ); int mx = rng( 1, SEEX * 2 - 2 ), my = rng( 1, SEEY * 2 - 2 ); - m.add_spawn( type, 1, mx, my ); + m.place_spawns( GROUP_NETHER, 1, mx, my, mx, my, 1, true ); } } @@ -626,15 +607,10 @@ void mx_drugdeal( map &m, const tripoint &abs_sub ) } } } - static const std::array monsters = { { - mon_gelatin, mon_mi_go, mon_kreck, mon_gracke - } - }; int num_monsters = rng( 0, 3 ); for( int i = 0; i < num_monsters; i++ ) { - const mtype_id &type = random_entry( monsters ); int mx = rng( 1, SEEX * 2 - 2 ), my = rng( 1, SEEY * 2 - 2 ); - m.add_spawn( type, 1, mx, my ); + m.place_spawns( GROUP_NETHER, 1, mx, my, mx, my, 1, true ); } } @@ -682,10 +658,6 @@ void mx_supplydrop( map &m, const tripoint &/*abs_sub*/ ) void mx_portal( map &m, const tripoint &abs_sub ) { - static const std::array monsters = { { - mon_gelatin, mon_flaming_eye, mon_kreck, mon_gracke, mon_blank - } - }; int x = rng( 1, SEEX * 2 - 2 ), y = rng( 1, SEEY * 2 - 2 ); for( int i = x - 1; i <= x + 1; i++ ) { for( int j = y - 1; j <= y + 1; j++ ) { @@ -695,10 +667,9 @@ void mx_portal( map &m, const tripoint &abs_sub ) mtrap_set( &m, x, y, tr_portal ); int num_monsters = rng( 0, 4 ); for( int i = 0; i < num_monsters; i++ ) { - const mtype_id &type = random_entry( monsters ); int mx = rng( 1, SEEX * 2 - 2 ), my = rng( 1, SEEY * 2 - 2 ); m.make_rubble( tripoint( mx, my, abs_sub.z ), f_rubble_rock, true ); - m.add_spawn( type, 1, mx, my ); + m.place_spawns( GROUP_NETHER, 1, mx, my, mx, my, 1, true ); } } @@ -829,10 +800,6 @@ void mx_fumarole( map &m, const tripoint &abs_sub ) void mx_portal_in( map &m, const tripoint &abs_sub ) { - static const std::array monsters = { { - mon_gelatin, mon_flaming_eye, mon_kreck, mon_gracke, mon_blank - } - }; int x = rng( 5, SEEX * 2 - 6 ), y = rng( 5, SEEY * 2 - 6 ); m.add_field( {x, y, abs_sub.z}, fd_fatigue, 3, 0_turns ); fungal_effects fe( *g, m ); @@ -841,7 +808,7 @@ void mx_portal_in( map &m, const tripoint &abs_sub ) if( rng( 1, 9 ) >= trig_dist( x, y, i, j ) ) { fe.marlossify( tripoint( i, j, abs_sub.z ) ); if( one_in( 15 ) ) { - m.add_spawn( random_entry( monsters ), 1, i, j ); + m.place_spawns( GROUP_NETHER, 1, i, j, i, j, 1, true ); } } } diff --git a/src/mapbuffer.cpp b/src/mapbuffer.cpp index d27d0ae6aaccf..53a18cc6ec2dc 100644 --- a/src/mapbuffer.cpp +++ b/src/mapbuffer.cpp @@ -32,6 +32,7 @@ #include "item.h" #include "string_id.h" #include "visitable.h" +#include "type_id.h" #define dbg(x) DebugLog((DebugLevel)(x),D_MAP) << __FILE__ << ":" << __LINE__ << ": " diff --git a/src/mapdata.cpp b/src/mapdata.cpp index d29c407397e5d..d16118e9fcfd4 100644 --- a/src/mapdata.cpp +++ b/src/mapdata.cpp @@ -18,9 +18,7 @@ #include "translations.h" #include "trap.h" #include "assign.h" -#include "game.h" #include "json.h" -#include "mtype.h" namespace { @@ -167,6 +165,7 @@ static const std::unordered_map ter_bitflags_map = { { "BLOCK_WIND", TFLAG_BLOCK_WIND }, // This tile will partially block the wind. { "FLAT", TFLAG_FLAT }, // This tile is flat. { "RAMP", TFLAG_RAMP }, // Can be used to move up a z-level + { "RAIL", TFLAG_RAIL }, // Rail tile (used heavily) } }; @@ -460,7 +459,7 @@ bool map_data_common_t::connects( int &ret ) const ter_id t_null, t_hole, // Real nothingness; makes you fall a z-level // Ground - t_dirt, t_sand, t_clay, t_dirtmound, t_pit_shallow, t_pit, t_grave, + t_dirt, t_sand, t_clay, t_dirtmound, t_pit_shallow, t_pit, t_grave, t_grave_new, t_pit_corpsed, t_pit_covered, t_pit_spiked, t_pit_spiked_covered, t_pit_glass, t_pit_glass_covered, t_rock_floor, t_grass, t_grass_long, t_grass_tall, t_grass_golf, t_grass_dead, t_grass_white, @@ -585,6 +584,7 @@ void set_ter_ids() t_clay = ter_id( "t_clay" ); t_dirtmound = ter_id( "t_dirtmound" ); t_grave = ter_id( "t_grave" ); + t_grave_new = ter_id( "t_grave_new" ); t_pit_shallow = ter_id( "t_pit_shallow" ); t_pit = ter_id( "t_pit" ); t_pit_corpsed = ter_id( "t_pit_corpsed" ); @@ -922,7 +922,7 @@ furn_id f_null, f_floor_canvas, f_tatami, f_kiln_empty, f_kiln_full, f_kiln_metal_empty, f_kiln_metal_full, - f_smoking_rack, f_smoking_rack_active, + f_smoking_rack, f_smoking_rack_active, f_metal_smoking_rack, f_metal_smoking_rack_active, f_water_mill, f_water_mill_active, f_wind_mill, f_wind_mill_active, f_robotic_arm, f_vending_reinforced, @@ -1029,6 +1029,8 @@ void set_furn_ids() f_kiln_metal_full = furn_id( "f_kiln_metal_full" ); f_smoking_rack = furn_id( "f_smoking_rack" ); f_smoking_rack_active = furn_id( "f_smoking_rack_active" ); + f_metal_smoking_rack = furn_id( "f_metal_smoking_rack" ); + f_metal_smoking_rack_active = furn_id( "f_metal_smoking_rack_active" ); f_water_mill = furn_id( "f_water_mill" ); f_water_mill_active = furn_id( "f_water_mill_active" ); f_wind_mill = furn_id( "f_wind_mill" ); diff --git a/src/mapdata.h b/src/mapdata.h index eab8aa2693892..ba845b0eeba28 100644 --- a/src/mapdata.h +++ b/src/mapdata.h @@ -2,7 +2,7 @@ #ifndef MAPDATA_H #define MAPDATA_H -#include +#include #include #include #include @@ -13,28 +13,19 @@ #include "int_id.h" #include "optional.h" #include "string_id.h" +#include "type_id.h" #include "units.h" class JsonObject; struct itype; -struct trap; struct ter_t; struct furn_t; -class harvest_list; class player; struct tripoint; using iexamine_function = void ( * )( player &, const tripoint & ); -using trap_id = int_id; -using trap_str_id = string_id; - -using ter_id = int_id; -using ter_str_id = string_id; -using furn_id = int_id; -using furn_str_id = string_id; using itype_id = std::string; -using harvest_id = string_id; struct map_bash_info { int str_min; // min str(*) required to bash @@ -188,6 +179,7 @@ enum ter_bitflags : int { TFLAG_HIDE_PLACE, TFLAG_BLOCK_WIND, TFLAG_FLAT, + TFLAG_RAIL, NUM_TERFLAGS }; @@ -376,7 +368,7 @@ t_basalt extern ter_id t_null, t_hole, // Real nothingness; makes you fall a z-level // Ground - t_dirt, t_sand, t_clay, t_dirtmound, t_pit_shallow, t_pit, t_grave, + t_dirt, t_sand, t_clay, t_dirtmound, t_pit_shallow, t_pit, t_grave, t_grave_new, t_pit_corpsed, t_pit_covered, t_pit_spiked, t_pit_spiked_covered, t_pit_glass, t_pit_glass_covered, t_rock_floor, t_grass, t_grass_long, t_grass_tall, t_grass_golf, t_grass_dead, t_grass_white, @@ -523,7 +515,7 @@ extern furn_id f_null, f_flower_marloss, f_tatami, f_kiln_empty, f_kiln_full, f_kiln_metal_empty, f_kiln_metal_full, - f_smoking_rack, f_smoking_rack_active, + f_smoking_rack, f_smoking_rack_active, f_metal_smoking_rack, f_metal_smoking_rack_active, f_water_mill, f_water_mill_active, f_wind_mill, f_wind_mill_active, f_robotic_arm, f_vending_reinforced, diff --git a/src/mapgen.cpp b/src/mapgen.cpp index 4335c92739127..34af3bae7ecb4 100644 --- a/src/mapgen.cpp +++ b/src/mapgen.cpp @@ -1,6 +1,6 @@ #include "mapgen.h" -#include +#include #include #include #include @@ -14,12 +14,14 @@ #include #include "ammo.h" +#include "clzones.h" #include "computer.h" #include "coordinate_conversions.h" #include "coordinates.h" #include "debug.h" #include "drawing_primitives.h" #include "enums.h" +#include "faction.h" #include "game.h" #include "item_group.h" #include "itype.h" @@ -60,64 +62,13 @@ #include "tileray.h" #include "weighted_list.h" #include "material.h" -#include "pldata.h" +#include "cata_utility.h" +#include "int_id.h" #define dbg(x) DebugLog((DebugLevel)(x),D_MAP_GEN) << __FILE__ << ":" << __LINE__ << ": " #define MON_RADIUS 3 -const mtype_id mon_biollante( "mon_biollante" ); -const mtype_id mon_blank( "mon_blank" ); -const mtype_id mon_blob( "mon_blob" ); -const mtype_id mon_boomer( "mon_boomer" ); -const mtype_id mon_breather( "mon_breather" ); -const mtype_id mon_breather_hub( "mon_breather_hub" ); -const mtype_id mon_broken_cyborg( "mon_broken_cyborg" ); -const mtype_id mon_chickenbot( "mon_chickenbot" ); -const mtype_id mon_crawler( "mon_crawler" ); -const mtype_id mon_creeper_hub( "mon_creeper_hub" ); -const mtype_id mon_dark_wyrm( "mon_dark_wyrm" ); -const mtype_id mon_dog_thing( "mon_dog_thing" ); -const mtype_id mon_eyebot( "mon_eyebot" ); -const mtype_id mon_flaming_eye( "mon_flaming_eye" ); -const mtype_id mon_flying_polyp( "mon_flying_polyp" ); -const mtype_id mon_fungaloid( "mon_fungaloid" ); -const mtype_id mon_fungal_fighter( "mon_fungal_fighter" ); -const mtype_id mon_gelatin( "mon_gelatin" ); -const mtype_id mon_gozu( "mon_gozu" ); -const mtype_id mon_gracke( "mon_gracke" ); -const mtype_id mon_hazmatbot( "mon_hazmatbot" ); -const mtype_id mon_hunting_horror( "mon_hunting_horror" ); -const mtype_id mon_kreck( "mon_kreck" ); -const mtype_id mon_mi_go( "mon_mi_go" ); -const mtype_id mon_secubot( "mon_secubot" ); -const mtype_id mon_sewer_snake( "mon_sewer_snake" ); -const mtype_id mon_shoggoth( "mon_shoggoth" ); -const mtype_id mon_spider_web( "mon_spider_web" ); -const mtype_id mon_tankbot( "mon_tankbot" ); -const mtype_id mon_triffid( "mon_triffid" ); -const mtype_id mon_triffid_heart( "mon_triffid_heart" ); -const mtype_id mon_turret( "mon_turret" ); -const mtype_id mon_turret_bmg( "mon_turret_bmg" ); -const mtype_id mon_turret_rifle( "mon_turret_rifle" ); -const mtype_id mon_turret_searchlight( "mon_turret_searchlight" ); -const mtype_id mon_yugg( "mon_yugg" ); -const mtype_id mon_zombie( "mon_zombie" ); -const mtype_id mon_zombie_bio_op( "mon_zombie_bio_op" ); -const mtype_id mon_zombie_brute( "mon_zombie_brute" ); -const mtype_id mon_zombie_child( "mon_zombie_child" ); -const mtype_id mon_zombie_cop( "mon_zombie_cop" ); -const mtype_id mon_zombie_dog( "mon_zombie_dog" ); -const mtype_id mon_zombie_electric( "mon_zombie_electric" ); -const mtype_id mon_zombie_flamer( "mon_zombie_flamer" ); -const mtype_id mon_zombie_grabber( "mon_zombie_grabber" ); -const mtype_id mon_zombie_scientist( "mon_zombie_scientist" ); -const mtype_id mon_zombie_shrieker( "mon_zombie_shrieker" ); -const mtype_id mon_zombie_smoker( "mon_zombie_smoker" ); -const mtype_id mon_zombie_soldier( "mon_zombie_soldier" ); -const mtype_id mon_zombie_spitter( "mon_zombie_spitter" ); -const mtype_id mon_zombie_tough( "mon_zombie_tough" ); - const mongroup_id GROUP_DARK_WYRM( "GROUP_DARK_WYRM" ); const mongroup_id GROUP_DOG_THING( "GROUP_DOG_THING" ); const mongroup_id GROUP_FUNGI_FUNGALOID( "GROUP_FUNGI_FUNGALOID" ); @@ -279,7 +230,6 @@ std::map> > oter_mapge std::map> > nested_mapgen; std::map> > update_mapgen; - /* * index to the above, adjusted to allow for rarity */ @@ -359,7 +309,8 @@ bool defer; JsonObject jsi; }; -void set_mapgen_defer( JsonObject jsi, std::string member, std::string message ) +void set_mapgen_defer( const JsonObject &jsi, const std::string &member, + const std::string &message ) { mapgen_defer::defer = true; mapgen_defer::jsi = jsi; @@ -530,18 +481,32 @@ size_t mapgen_function_json_base::calc_index( const size_t x, const size_t y ) c return y * mapgensize_y + x; } -bool mapgen_function_json_base::check_inbounds( const jmapgen_int &x, const jmapgen_int &y ) const +bool common_check_bounds( const jmapgen_int &x, const jmapgen_int &y, const int mapgensize_x, + const int mapgensize_y, JsonObject &jso ) { - const int min = 0; - const int max_x = mapgensize_x - 1; - const int max_y = mapgensize_y - 1; - if( x.val < min || x.val > max_x || x.valmax < min || x.valmax > max_x || - y.val < min || y.val > max_y || y.valmax < min || y.valmax > max_y ) { + if( x.val < 0 || x.val > mapgensize_x - 1 || y.val < 0 || y.val > mapgensize_y - 1 ) { + return false; + } + + if( x.valmax > mapgensize_x - 1 ) { + jso.throw_error( "coordinate range cannot cross grid boundaries", "x" ); return false; } + + if( y.valmax > mapgensize_y - 1 ) { + jso.throw_error( "coordinate range cannot cross grid boundaries", "y" ); + return false; + } + return true; } +bool mapgen_function_json_base::check_inbounds( const jmapgen_int &x, const jmapgen_int &y, + JsonObject &jso ) const +{ + return common_check_bounds( x, y, mapgensize_x, mapgensize_y, jso ); +} + mapgen_function_json_base::mapgen_function_json_base( const std::string &s ) : jdata( std::move( s ) ) , do_format( false ) @@ -635,13 +600,6 @@ void mapgen_function_json_base::setup_setmap( JsonArray &parray ) jmapgen_setmap_op tmpop; int setmap_optype = 0; - const auto inboundchk = [this]( const jmapgen_int & x, const jmapgen_int & y, JsonObject & jo ) { - if( !check_inbounds( x, y ) ) { - jo.throw_error( string_format( "Point must be between [0,0] and [%d,%d]", mapgensize_x, - mapgensize_y ) ); - } - }; - while( parray.has_more() ) { JsonObject pjo = parray.next_object(); if( pjo.read( "point", tmpval ) ) { @@ -673,11 +631,15 @@ void mapgen_function_json_base::setup_setmap( JsonArray &parray ) const jmapgen_int tmp_x( pjo, "x" ); const jmapgen_int tmp_y( pjo, "y" ); - inboundchk( tmp_x, tmp_y, pjo ); + if( !check_inbounds( tmp_x, tmp_y, pjo ) ) { + continue; + } if( setmap_optype != JMAPGEN_SETMAP_OPTYPE_POINT ) { tmp_x2 = jmapgen_int( pjo, "x2" ); tmp_y2 = jmapgen_int( pjo, "y2" ); - inboundchk( tmp_x2, tmp_y2, pjo ); + if( !check_inbounds( tmp_x2, tmp_y2, pjo ) ) { + continue; + } } if( tmpop == JMAPGEN_SETMAP_RADIATION ) { tmp_i = jmapgen_int( pjo, "amount" ); @@ -1597,8 +1559,17 @@ class jmapgen_sealed_item : public jmapgen_piece summary, chance ); return; } + std::string group_id = item_group_spawner->group_id; + for( const itype *type : item_group::every_possible_item_from( group_id ) ) { + if( !type->seed ) { + debugmsg( "%s (with flag PLANT) spawns item group %s which can " + "spawn item %s which is not a seed.", + summary, group_id, type->get_id() ); + return; + } + } - /// TODO: Somehow check that the item group always produces exactly one seed. + /// TODO: Somehow check that the item group always produces exactly one item. } } } @@ -1645,7 +1616,34 @@ class jmapgen_translate : public jmapgen_piece dat.m.translate( from, to ); } }; - +/** + * Place a zone + */ +class jmapgen_zone : public jmapgen_piece +{ + public: + zone_type_id zone_type; + faction_id faction; + std::string name = ""; + jmapgen_zone( JsonObject &jsi ) : jmapgen_piece() { + if( jsi.has_string( "faction" ) && jsi.has_string( "type" ) ) { + std::string fac_id = jsi.get_string( "faction" ); + faction = faction_id( fac_id ); + std::string zone_id = jsi.get_string( "type" ); + zone_type = zone_type_id( zone_id ); + if( jsi.has_string( "name" ) ) { + name = jsi.get_string( "name" ); + } + } + } + void apply( const mapgendata &dat, const jmapgen_int &x, const jmapgen_int &y, + const float /*mdensity*/, mission * /*miss*/ ) const override { + zone_manager &mgr = zone_manager::get_manager(); + const tripoint start = dat.m.getabs( tripoint( x.val, y.val, 0 ) ); + const tripoint end = dat.m.getabs( tripoint( x.valmax, y.valmax, 0 ) ); + mgr.add( name, zone_type, faction, false, true, start, end ); + } +}; static void load_weighted_entries( JsonObject &jsi, const std::string &json_key, weighted_int_list &list ) @@ -1762,22 +1760,7 @@ jmapgen_objects::jmapgen_objects( int offset_x, int offset_y, size_t mapsize_x, bool jmapgen_objects::check_bounds( const jmapgen_place place, JsonObject &jso ) { - if( place.x.val < 0 || place.x.val > static_cast( mapgensize_x ) - 1 || - place.y.val < 0 || place.y.val > static_cast( mapgensize_y ) - 1 ) { - return false; - } - - if( static_cast( place.x.valmax ) > mapgensize_x - 1 ) { - jso.throw_error( "coordinate range cannot cross grid boundaries", "x" ); - return false; - } - - if( static_cast( place.y.valmax ) > mapgensize_y - 1 ) { - jso.throw_error( "coordinate range cannot cross grid boundaries", "y" ); - return false; - } - - return true; + return common_check_bounds( place.x, place.y, mapgensize_x, mapgensize_y, jso ); } void jmapgen_objects::add( const jmapgen_place &place, std::shared_ptr piece ) @@ -2148,6 +2131,7 @@ mapgen_palette mapgen_palette::load_internal( JsonObject &jo, const std::string new_pal.load_place_mapings( jo, "liquids", format_placings ); new_pal.load_place_mapings( jo, "graffiti", format_placings ); new_pal.load_place_mapings( jo, "translate", format_placings ); + new_pal.load_place_mapings( jo, "zones", format_placings ); return new_pal; } @@ -2326,6 +2310,7 @@ bool mapgen_function_json_base::setup_common( JsonObject jo ) objects.load_objects( jo, "place_nested" ); objects.load_objects( jo, "place_graffiti" ); objects.load_objects( jo, "translate_ter" ); + objects.load_objects( jo, "place_zones" ); if( !mapgen_defer::defer ) { is_ready = true; // skip setup attempts from any additional pointers @@ -2544,7 +2529,6 @@ bool jmapgen_setmap::has_vehicle_collision( const mapgendata &dat, int offset_x, return false; } - void mapgen_function_json_base::formatted_set_incredibly_simple( map &m, int offset_x, int offset_y ) const { @@ -2666,63 +2650,18 @@ bool jmapgen_objects::has_vehicle_collision( const mapgendata &dat, int offset_x } ///////////// -// TODO: clean up variable shadowing in this function -// unfortunately, due to how absurdly long the function is (over 8000 lines!), it'll be hard to -// track down what is and isn't supposed to be carried around between bits of code. -// I suggest that we break the function down into smaller parts - void map::draw_map( const oter_id &terrain_type, const oter_id &t_north, const oter_id &t_east, const oter_id &t_south, const oter_id &t_west, const oter_id &t_neast, const oter_id &t_seast, const oter_id &t_swest, const oter_id &t_nwest, const oter_id &t_above, const oter_id &t_below, const time_point &when, const float density, const int zlevel, const regional_settings *rsettings ) { - - // Big old switch statement with a case for each overmap terrain type. - // Many of these can be copied from another type, then rotated; for instance, - // "house_east" is identical to "house_north", just rotated 90 degrees to - // the right. The rotate(int) function is at the bottom of this file. - - // Below comment is outdated - // TODO: Update comment - // The place_items() function takes a item group ident type, - // an "odds" int giving the chance for a single item to be - // placed, four ints (x1, y1, x2, y2) corresponding to the upper left corner - // and lower right corner of a square where the items are placed, a boolean - // that indicates whether items may spawn on grass & dirt, and finally an - // integer that indicates on which turn the items were created. This final - // integer should be 0, unless the items are "fresh-grown" like wild fruit. - - //these variables are used in regular house generation. Placed here by Whales - int rn = 0; - int lw = 0; - int rw = 0; - int mw = 0; - int tw = 0; - int bw = 0; - - int x = 0; - int y = 0; - - // To distinguish between types of labs - bool ice_lab = true; - bool central_lab = false; - bool tower_lab = false; - - std::array t_nesw = {{ t_north, t_east, t_south, t_west, t_neast, t_seast, t_swest, t_nwest }}; - std::array nesw_fac = {{ 0, 0, 0, 0, 0, 0, 0, 0 }}; - int &n_fac = nesw_fac[0]; - int &e_fac = nesw_fac[1]; - int &s_fac = nesw_fac[2]; - int &w_fac = nesw_fac[3]; - mapgendata dat( t_north, t_east, t_south, t_west, t_neast, t_seast, t_swest, t_nwest, t_above, t_below, zlevel, *rsettings, *this ); - computer *tmpcomp = nullptr; - bool terrain_type_found = true; const std::string function_key = terrain_type->get_mapgen_id(); + bool found = true; const auto fmapit = oter_mapgen.find( function_key ); if( fmapit != oter_mapgen.end() && !fmapit->second.empty() ) { // int fidx = rng(0, fmapit->second.size() - 1); // simple unweighted list @@ -2734,48 +2673,131 @@ void map::draw_map( const oter_id &terrain_type, const oter_id &t_north, const o //add_msg("draw_map: %s (%s): %d/%d roll %d/%d den %.4f", terrain_type.c_str(), function_key.c_str(), fidx+1, fmapit->second.size(), roll, rlast, density ); fmapit->second[fidx]->generate( this, terrain_type, dat, when, density ); - // TODO: make these json or mappable functions - } else if( terrain_type == "office_tower_1_entrance" ) { + } else { + if( is_ot_type( "megastore", terrain_type ) ) { + draw_megastore( terrain_type, dat, when, density ); + } else if( is_ot_type( "slimepit", terrain_type ) || + is_ot_type( "slime_pit", terrain_type ) ) { + draw_slimepit( terrain_type, dat, when, density ); + } else if( is_ot_type( "haz_sar", terrain_type ) ) { + draw_sarcophagus( terrain_type, dat, when, density ); + } else if( is_ot_type( "triffid", terrain_type ) ) { + draw_triffid( terrain_type, dat, when, density ); + } else if( is_ot_type( "office", terrain_type ) ) { + draw_office_tower( terrain_type, dat, when, density ); + } else if( is_ot_type( "sewage", terrain_type ) ) { + draw_sewer( terrain_type, dat, when, density ); + } else if( is_ot_type( "spider", terrain_type ) ) { + draw_spider_pit( terrain_type, dat, when, density ); + } else if( is_ot_type( "spiral", terrain_type ) ) { + draw_spiral( terrain_type, dat, when, density ); + } else if( is_ot_type( "temple", terrain_type ) ) { + draw_temple( terrain_type, dat, when, density ); + } else if( is_ot_type( "toxic", terrain_type ) ) { + draw_toxic_dump( terrain_type, dat, when, density ); + } else if( is_ot_type( "fema", terrain_type ) ) { + draw_fema( terrain_type, dat, when, density ); + } else if( is_ot_type( "mine", terrain_type ) ) { + draw_mine( terrain_type, dat, when, density ); + } else if( is_ot_type( "silo", terrain_type ) ) { + draw_silo( terrain_type, dat, when, density ); + } else if( is_ot_subtype( "anthill", terrain_type ) ) { + draw_anthill( terrain_type, dat, when, density ); + } else if( is_ot_subtype( "lab", terrain_type ) ) { + draw_lab( terrain_type, dat, when, density ); + } else { + found = false; + } + } + + if( !found ) { + // not one of the hardcoded ones! + // load from JSON??? + debugmsg( "Error: tried to generate map for omtype %s, \"%s\" (id_mapgen %s)", + terrain_type.id().c_str(), terrain_type->get_name(), function_key.c_str() ); + fill_background( this, t_floor ); + } + + draw_connections( terrain_type, dat, when, density ); +} + +const int SOUTH_EDGE = 2 * SEEY - 1; +const int EAST_EDGE = 2 * SEEX - 1; + +void map::draw_office_tower( const oter_id &terrain_type, mapgendata &dat, + const time_point &/*when*/, const float density ) +{ + const auto place_office_chairs = [&]() { + int num_chairs = rng( 0, 6 ); + for( int i = 0; i < num_chairs; i++ ) { + add_vehicle( vproto_id( "swivel_chair" ), rng( 6, 16 ), rng( 6, 16 ), + 0, -1, -1, false ); + } + }; + const auto ter_key = mapf::ter_bind( "E > < R # X G C , _ r V H 6 x % ^ . - | " + "t + = D w T S e o h c d l s", t_elevator, t_stairs_down, + t_stairs_up, t_railing, t_rock, t_door_metal_locked, + t_door_glass_c, t_floor, t_pavement_y, t_pavement, + t_floor, t_wall_glass, t_wall_glass, t_console, + t_console_broken, t_shrub, t_floor, t_floor, t_wall, + t_wall, t_floor, t_door_c, t_door_locked, + t_door_locked_alarm, t_window, t_floor, t_floor, t_floor, + t_floor, t_floor, t_floor, t_floor, t_floor, t_sidewalk ); + const auto fur_key = mapf::furn_bind( "E > < R # X G C , _ r V H 6 x % ^ . - | " + "t + = D w T S e o h c d l s", f_null, f_null, f_null, + f_null, f_null, f_null, f_null, f_crate_c, f_null, + f_null, f_rack, f_null, f_null, f_null, f_null, f_null, + f_indoor_plant, f_null, f_null, f_null, f_table, f_null, + f_null, f_null, f_null, f_toilet, f_sink, f_fridge, + f_bookcase, f_chair, f_counter, f_desk, f_locker, + f_null ); + const auto b_ter_key = mapf::ter_bind( "E s > < R # X G C , . r V H 6 x % ^ _ - | " + "t + = D w T S e o h c d l", t_elevator, t_rock, + t_stairs_down, t_stairs_up, t_railing, t_floor, + t_door_metal_locked, t_door_glass_c, t_floor, + t_pavement_y, t_pavement, t_floor, t_wall_glass, + t_wall_glass, t_console, t_console_broken, t_shrub, + t_floor, t_floor, t_wall, t_wall, t_floor, t_door_c, + t_door_locked, t_door_locked_alarm, t_window, t_floor, + t_sidewalk, t_floor, t_floor, t_floor, t_floor, + t_floor, t_floor ); + const auto b_fur_key = mapf::furn_bind( "E s > < R # X G C , . r V H 6 x % ^ _ - | " + "t + = D w T S e o h c d l", f_null, f_null, f_null, + f_null, f_null, f_bench, f_null, f_null, f_crate_c, + f_null, f_null, f_rack, f_null, f_null, f_null, + f_null, f_null, f_indoor_plant, f_null, f_null, + f_null, f_table, f_null, f_null, f_null, f_null, + f_toilet, f_null, f_fridge, f_bookcase, f_chair, + f_counter, f_desk, f_locker ); + + if( terrain_type == "office_tower_1_entrance" ) { dat.fill_groundcover(); mapf::formatted_set_simple( this, 0, 0, - "\ -ss%|....+...|...|EEED...\n\ -ss%|----|...|...|EEx|...\n\ -ss%Vcdc^|...|-+-|---|...\n\ -ss%Vch..+...............\n\ -ss%V....|...............\n\ -ss%|----|-|-+--ccc--|...\n\ -ss%|..C..C|.....h..r|-+-\n\ -sss=......+..h.....r|...\n\ -ss%|r..CC.|.ddd....r|T.S\n\ -ss%|------|---------|---\n\ -ss%|####################\n\ -ss%|#|------||------|###\n\ -ss%|#|......||......|###\n\ -ss%|||......||......|###\n\ -ss%||x......||......||##\n\ -ss%|||......||......x|##\n\ -ss%|#|......||......||##\n\ -ss%|#|......||......|###\n\ -ss%|#|XXXXXX||XXXXXX|###\n\ -ss%|-|__,,__||__,,__|---\n\ -ss%% x_,,,,_ __,,__ %%\n\ -ss __,,__ _,,,,_ \n\ -ssssss__,,__ss__,,__ssss\n\ -ssssss______ss______ssss\n", - mapf::ter_bind( "E > < R # X G C , _ r V H 6 x % ^ . - | t + = D w T S e o h c d l s", t_elevator, - t_stairs_down, t_stairs_up, t_railing, t_rock, t_door_metal_locked, t_door_glass_c, t_floor, - t_pavement_y, t_pavement, t_floor, t_wall_glass, t_wall_glass, t_console, t_console_broken, - t_shrub, t_floor, t_floor, t_wall, t_wall, t_floor, t_door_c, t_door_locked, - t_door_locked_alarm, t_window, t_floor, t_floor, t_floor, t_floor, t_floor, t_floor, t_floor, - t_floor, t_sidewalk ), - mapf::furn_bind( "E > < R # X G C , _ r V H 6 x % ^ . - | t + = D w T S e o h c d l s", f_null, - f_null, f_null, f_null, f_null, f_null, f_null, f_crate_c, - f_null, f_null, f_rack, f_null, f_null, f_null, f_null, - f_null, f_indoor_plant, f_null, f_null, f_null, f_table, f_null, f_null, f_null, - f_null, f_toilet, f_sink, f_fridge, f_bookcase, f_chair, f_counter, f_desk, f_locker, - f_null ) ); + "ss%|....+...|...|EEED...\n" + "ss%|----|...|...|EEx|...\n" + "ss%Vcdc^|...|-+-|---|...\n" + "ss%Vch..+...............\n" + "ss%V....|...............\n" + "ss%|----|-|-+--ccc--|...\n" + "ss%|..C..C|.....h..r|-+-\n" + "sss=......+..h.....r|...\n" + "ss%|r..CC.|.ddd....r|T.S\n" + "ss%|------|---------|---\n" + "ss%|####################\n" + "ss%|#|------||------|###\n" + "ss%|#|......||......|###\n" + "ss%|||......||......|###\n" + "ss%||x......||......||##\n" + "ss%|||......||......x|##\n" + "ss%|#|......||......||##\n" + "ss%|#|......||......|###\n" + "ss%|#|XXXXXX||XXXXXX|###\n" + "ss%|-|__,,__||__,,__|---\n" + "ss%% x_,,,,_ __,,__ %%\n" + "ss __,,__ _,,,,_ \n" + "ssssss__,,__ss__,,__ssss\n" + "ssssss______ss______ssss\n", ter_key, fur_key ); place_items( "office", 75, 4, 2, 6, 2, false, 0 ); place_items( "office", 75, 19, 6, 19, 6, false, 0 ); place_items( "office", 75, 12, 8, 14, 8, false, 0 ); @@ -2786,67 +2808,49 @@ ssssss______ss______ssss\n", place_spawns( GROUP_PLAIN, 2, 15, 1, 22, 7, 0.15 ); place_spawns( GROUP_ZOMBIE_COP, 2, 10, 10, 14, 10, 0.1 ); } - { - int num_chairs = rng( 0, 6 ); - for( int i = 0; i < num_chairs; i++ ) { - add_vehicle( vproto_id( "swivel_chair" ), rng( 6, 16 ), rng( 6, 16 ), 0, -1, -1, false ); - } - } - if( t_north == "office_tower_1" && t_west == "office_tower_1" ) { + place_office_chairs(); + + if( dat.north() == "office_tower_1" && dat.west() == "office_tower_1" ) { rotate( 3 ); - } else if( t_north == "office_tower_1" && t_east == "office_tower_1" ) { + } else if( dat.north() == "office_tower_1" && dat.east() == "office_tower_1" ) { rotate( 0 ); - } else if( t_south == "office_tower_1" && t_east == "office_tower_1" ) { + } else if( dat.south() == "office_tower_1" && dat.east() == "office_tower_1" ) { rotate( 1 ); - } else if( t_west == "office_tower_1" && t_south == "office_tower_1" ) { + } else if( dat.west() == "office_tower_1" && dat.south() == "office_tower_1" ) { rotate( 2 ); } - } else if( terrain_type == "office_tower_1" ) { - // Init to grass & dirt; dat.fill_groundcover(); - if( ( t_south == "office_tower_1_entrance" && t_east == "office_tower_1" ) || - ( t_north == "office_tower_1" && t_east == "office_tower_1_entrance" ) || - ( t_west == "office_tower_1" && t_north == "office_tower_1_entrance" ) || - ( t_south == "office_tower_1" && t_west == "office_tower_1_entrance" ) ) { + if( ( dat.south() == "office_tower_1_entrance" && dat.east() == "office_tower_1" ) || + ( dat.north() == "office_tower_1" && dat.east() == "office_tower_1_entrance" ) || + ( dat.west() == "office_tower_1" && dat.north() == "office_tower_1_entrance" ) || + ( dat.south() == "office_tower_1" && dat.west() == "office_tower_1_entrance" ) ) { mapf::formatted_set_simple( this, 0, 0, - "\ -ssssssssssssssssssssssss\n\ -ssssssssssssssssssssssss\n\ -ss \n\ -ss%%%%%%%%%%%%%%%%%%%%%%\n\ -ss%|-HH-|-HH-|-HH-|HH|--\n\ -ss%Vdcxl|dxdl|lddx|..|.S\n\ -ss%Vdh..|dh..|..hd|..+..\n\ -ss%|-..-|-..-|-..-|..|--\n\ -ss%V.................|.T\n\ -ss%V.................|..\n\ -ss%|-..-|-..-|-..-|..|--\n\ -ss%V.h..|..hd|..hd|..|..\n\ -ss%Vdxdl|^dxd|.xdd|..G..\n\ -ss%|----|----|----|..G..\n\ -ss%|llll|..htth......|..\n\ -ss%V.................|..\n\ -ss%V.ddd..........|+-|..\n\ -ss%|..hd|.hh.ceocc|.l|..\n\ -ss%|----|---------|--|..\n\ -ss%Vcdcl|...............\n\ -ss%V.h..+...............\n\ -ss%V...^|...|---|---|...\n\ -ss%|----|...|.R>|EEE|...\n\ -ss%|rrrr|...|.R.|EEED...\n", - mapf::ter_bind( "E > R # X G C , _ r V H 6 x % ^ . - | t + = D w T S e o h c d l s", t_elevator, - t_stairs_down, t_railing, t_rock, t_door_metal_locked, t_door_glass_c, t_floor, t_pavement_y, - t_pavement, t_floor, t_wall_glass, t_wall_glass, t_console, t_console_broken, t_shrub, t_floor, - t_floor, t_wall, t_wall, t_floor, t_door_c, t_door_locked, t_door_locked_alarm, t_window, - t_floor, t_floor, t_floor, t_floor, t_floor, t_floor, t_floor, t_floor, t_sidewalk ), - mapf::furn_bind( "E > R # X G C , _ r V H 6 x % ^ . - | t + = D w T S e o h c d l s", f_null, - f_null, f_null, f_null, f_null, f_null, f_crate_c, f_null, - f_null, f_rack, f_null, f_null, f_null, f_null, f_null, - f_indoor_plant, f_null, f_null, f_null, f_table, f_null, f_null, f_null, - f_null, f_toilet, f_sink, f_fridge, f_bookcase, f_chair, f_counter, f_desk, f_locker, - f_null ) ); + " ssssssssssssssssssssssss\n" + "ssssssssssssssssssssssss\n" + "ss \n" + "ss%%%%%%%%%%%%%%%%%%%%%%\n" + "ss%|-HH-|-HH-|-HH-|HH|--\n" + "ss%Vdcxl|dxdl|lddx|..|.S\n" + "ss%Vdh..|dh..|..hd|..+..\n" + "ss%|-..-|-..-|-..-|..|--\n" + "ss%V.................|.T\n" + "ss%V.................|..\n" + "ss%|-..-|-..-|-..-|..|--\n" + "ss%V.h..|..hd|..hd|..|..\n" + "ss%Vdxdl|^dxd|.xdd|..G..\n" + "ss%|----|----|----|..G..\n" + "ss%|llll|..htth......|..\n" + "ss%V.................|..\n" + "ss%V.ddd..........|+-|..\n" + "ss%|..hd|.hh.ceocc|.l|..\n" + "ss%|----|---------|--|..\n" + "ss%Vcdcl|...............\n" + "ss%V.h..+...............\n" + "ss%V...^|...|---|---|...\n" + "ss%|----|...|.R>|EEE|...\n" + "ss%|rrrr|...|.R.|EEED...\n", ter_key, fur_key ); if( density > 1 ) { place_spawns( GROUP_ZOMBIE, 2, 0, 0, 2, 8, density ); } else { @@ -2864,65 +2868,46 @@ ss%|rrrr|...|.R.|EEED...\n", place_items( "cubical_office", 75, 4, 5, 5, 5, false, 0 ); place_items( "cubical_office", 75, 11, 5, 12, 5, false, 0 ); place_items( "cubical_office", 75, 14, 5, 16, 5, false, 0 ); - { - int num_chairs = rng( 0, 6 ); - for( int i = 0; i < num_chairs; i++ ) { - add_vehicle( vproto_id( "swivel_chair" ), rng( 6, 16 ), rng( 6, 16 ), 0, -1, -1, false ); - } - } - if( t_west == "office_tower_1_entrance" ) { + place_office_chairs(); + + if( dat.west() == "office_tower_1_entrance" ) { rotate( 1 ); } - if( t_north == "office_tower_1_entrance" ) { + if( dat.north() == "office_tower_1_entrance" ) { rotate( 2 ); } - if( t_east == "office_tower_1_entrance" ) { + if( dat.east() == "office_tower_1_entrance" ) { rotate( 3 ); } - } - - else if( ( t_west == "office_tower_1_entrance" && t_north == "office_tower_1" ) || - ( t_north == "office_tower_1_entrance" && t_east == "office_tower_1" ) || - ( t_west == "office_tower_1" && t_south == "office_tower_1_entrance" ) || - ( t_south == "office_tower_1" && t_east == "office_tower_1_entrance" ) ) { + } else if( ( dat.west() == "office_tower_1_entrance" && dat.north() == "office_tower_1" ) || + ( dat.north() == "office_tower_1_entrance" && dat.east() == "office_tower_1" ) || + ( dat.west() == "office_tower_1" && dat.south() == "office_tower_1_entrance" ) || + ( dat.south() == "office_tower_1" && dat.east() == "office_tower_1_entrance" ) ) { mapf::formatted_set_simple( this, 0, 0, - "\ -...DEEE|...|..|-----|%ss\n\ -...|EEE|...|..|^...lV%ss\n\ -...|---|-+-|......hdV%ss\n\ -...........G..|..dddV%ss\n\ -...........G..|-----|%ss\n\ -.......|---|..|...ddV%ss\n\ -|+-|...|...+......hdV%ss\n\ -|.l|...|rr.|.^|l...dV%ss\n\ -|--|...|---|--|-----|%ss\n\ -|...........c.......V%ss\n\ -|.......cxh.c.#####.Vsss\n\ -|.......ccccc.......Gsss\n\ -|...................Gsss\n\ -|...................Vsss\n\ -|#..................Gsss\n\ -|#..................Gsss\n\ -|#..................Vsss\n\ -|#............#####.V%ss\n\ -|...................|%ss\n\ ---HHHHHGGHHGGHHHHH--|%ss\n\ -%%%%% ssssssss %%%%%%%ss\n\ - ssssssss ss\n\ -ssssssssssssssssssssssss\n\ -ssssssssssssssssssssssss\n", - mapf::ter_bind( "E > < R # X G C , _ r V H 6 x % ^ . - | t + = D w T S e o h c d l s", t_elevator, - t_stairs_down, t_stairs_up, t_railing, t_floor, t_door_metal_locked, t_door_glass_c, t_floor, - t_pavement_y, t_pavement, t_floor, t_wall_glass, t_wall_glass, t_console, t_console_broken, - t_shrub, t_floor, t_floor, t_wall, t_wall, t_floor, t_door_c, t_door_locked, - t_door_locked_alarm, t_window, t_floor, t_floor, t_floor, t_floor, t_floor, t_floor, t_floor, - t_floor, t_sidewalk ), - mapf::furn_bind( "E > < R # X G C , _ r V H 6 x % ^ . - | t + = D w T S e o h c d l s", f_null, - f_null, f_null, f_null, f_bench, f_null, f_null, f_crate_c, - f_null, f_null, f_rack, f_null, f_null, f_null, f_null, - f_null, f_indoor_plant, f_null, f_null, f_null, f_table, f_null, f_null, f_null, - f_null, f_toilet, f_sink, f_fridge, f_bookcase, f_chair, f_counter, f_desk, f_locker, - f_null ) ); + "...DEEE|...|..|-----|%ss\n" + "...|EEE|...|..|^...lV%ss\n" + "...|---|-+-|......hdV%ss\n" + "...........G..|..dddV%ss\n" + "...........G..|-----|%ss\n" + ".......|---|..|...ddV%ss\n" + "|+-|...|...+......hdV%ss\n" + "|.l|...|rr.|.^|l...dV%ss\n" + "|--|...|---|--|-----|%ss\n" + "|...........c.......V%ss\n" + "|.......cxh.c.#####.Vsss\n" + "|.......ccccc.......Gsss\n" + "|...................Gsss\n" + "|...................Vsss\n" + "|#..................Gsss\n" + "|#..................Gsss\n" + "|#..................Vsss\n" + "|#............#####.V%ss\n" + "|...................|%ss\n" + "--HHHHHGGHHGGHHHHH--|%ss\n" + "%%%%% ssssssss %%%%%%%ss\n" + " ssssssss ss\n" + "ssssssssssssssssssssssss\n" + "ssssssssssssssssssssssss\n", ter_key, fur_key ); place_items( "office", 75, 19, 1, 19, 3, false, 0 ); place_items( "office", 75, 17, 3, 18, 3, false, 0 ); place_items( "office", 90, 8, 7, 9, 7, false, 0 ); @@ -2934,61 +2919,43 @@ ssssssssssssssssssssssss\n", place_spawns( GROUP_PLAIN, 1, 10, 10, 14, 10, 0.15 ); place_spawns( GROUP_ZOMBIE_COP, 2, 10, 10, 14, 10, 0.1 ); } - { - int num_chairs = rng( 0, 6 ); - for( int i = 0; i < num_chairs; i++ ) { - add_vehicle( vproto_id( "swivel_chair" ), rng( 6, 16 ), rng( 6, 16 ), 0, -1, -1, false ); - } - } - if( t_north == "office_tower_1_entrance" ) { + place_office_chairs(); + + if( dat.north() == "office_tower_1_entrance" ) { rotate( 1 ); } - if( t_east == "office_tower_1_entrance" ) { + if( dat.east() == "office_tower_1_entrance" ) { rotate( 2 ); } - if( t_south == "office_tower_1_entrance" ) { + if( dat.south() == "office_tower_1_entrance" ) { rotate( 3 ); } - } - - else { + } else { mapf::formatted_set_simple( this, 0, 0, - "\ -ssssssssssssssssssssssss\n\ -ssssssssssssssssssssssss\n\ - ss\n\ -%%%%%%%%%%%%%%%%%%%%%%ss\n\ ---|---|--HHHH-HHHH--|%ss\n\ -.T|..l|............^|%ss\n\ -..|-+-|...hhhhhhh...V%ss\n\ ---|...G...ttttttt...V%ss\n\ -.S|...G...ttttttt...V%ss\n\ -..+...|...hhhhhhh...V%ss\n\ ---|...|.............|%ss\n\ -..|...|-------------|%ss\n\ -..G....|l.......dxd^|%ss\n\ -..G....G...h....dh..V%ss\n\ -..|....|............V%ss\n\ -..|....|------|llccc|%ss\n\ -..|...........|-----|%ss\n\ -..|...........|...ddV%ss\n\ -..|----|---|......hdV%ss\n\ -.......+...|..|l...dV%ss\n\ -.......|rrr|..|-----|%ss\n\ -...|---|---|..|l.dddV%ss\n\ -...|xEE|.R>|......hdV%ss\n\ -...DEEE|.R.|..|.....V%ss\n", - mapf::ter_bind( "E > R # X G C , _ r V H 6 x % ^ . - | t + = D w T S e o h c d l s", t_elevator, - t_stairs_down, t_railing, t_rock, t_door_metal_locked, t_door_glass_c, t_floor, t_pavement_y, - t_pavement, t_floor, t_wall_glass, t_wall_glass, t_console, t_console_broken, t_shrub, t_floor, - t_floor, t_wall, t_wall, t_floor, t_door_c, t_door_locked, t_door_locked_alarm, t_window, - t_floor, t_floor, t_floor, t_floor, t_floor, t_floor, t_floor, t_floor, t_sidewalk ), - mapf::furn_bind( "E > R # X G C , _ r V H 6 x % ^ . - | t + = D w T S e o h c d l s", f_null, - f_null, f_null, f_null, f_null, f_null, f_crate_c, f_null, - f_null, f_rack, f_null, f_null, f_null, f_null, f_null, - f_indoor_plant, f_null, f_null, f_null, f_table, f_null, f_null, f_null, - f_null, f_toilet, f_sink, f_fridge, f_bookcase, f_chair, f_counter, f_desk, f_locker, - f_null ) ); + "ssssssssssssssssssssssss\n" + "ssssssssssssssssssssssss\n" + " ss\n" + "%%%%%%%%%%%%%%%%%%%%%%ss\n" + "--|---|--HHHH-HHHH--|%ss\n" + ".T|..l|............^|%ss\n" + "..|-+-|...hhhhhhh...V%ss\n" + "--|...G...ttttttt...V%ss\n" + ".S|...G...ttttttt...V%ss\n" + "..+...|...hhhhhhh...V%ss\n" + "--|...|.............|%ss\n" + "..|...|-------------|%ss\n" + "..G....|l.......dxd^|%ss\n" + "..G....G...h....dh..V%ss\n" + "..|....|............V%ss\n" + "..|....|------|llccc|%ss\n" + "..|...........|-----|%ss\n" + "..|...........|...ddV%ss\n" + "..|----|---|......hdV%ss\n" + ".......+...|..|l...dV%ss\n" + ".......|rrr|..|-----|%ss\n" + "...|---|---|..|l.dddV%ss\n" + "...|xEE|.R>|......hdV%ss\n" + "...DEEE|.R.|..|.....V%ss\n", ter_key, fur_key ); spawn_item( 18, 15, "record_accounting" ); place_items( "cleaning", 75, 3, 5, 5, 5, false, 0 ); place_items( "office", 75, 10, 7, 16, 8, false, 0 ); @@ -3003,128 +2970,95 @@ ssssssssssssssssssssssss\n\ } else { place_spawns( GROUP_PLAIN, 1, 0, 0, 9, 15, 0.1 ); } - { - int num_chairs = rng( 0, 6 ); - for( int i = 0; i < num_chairs; i++ ) { - add_vehicle( vproto_id( "swivel_chair" ), rng( 6, 16 ), rng( 6, 16 ), 0, -1, -1, false ); - } - } - if( t_west == "office_tower_1" && t_north == "office_tower_1" ) { + place_office_chairs(); + + if( dat.west() == "office_tower_1" && dat.north() == "office_tower_1" ) { rotate( 1 ); - } else if( t_east == "office_tower_1" && t_north == "office_tower_1" ) { + } else if( dat.east() == "office_tower_1" && dat.north() == "office_tower_1" ) { rotate( 2 ); - } else if( t_east == "office_tower_1" && t_south == "office_tower_1" ) { + } else if( dat.east() == "office_tower_1" && dat.south() == "office_tower_1" ) { rotate( 3 ); } } - } else if( terrain_type == "office_tower_b_entrance" ) { - dat.fill_groundcover(); mapf::formatted_set_simple( this, 0, 0, - "\ -sss|........|...|EEED___\n\ -sss|........|...|EEx|___\n\ -sss|........|-+-|---|HHG\n\ -sss|....................\n\ -sss|....................\n\ -sss|....................\n\ -sss|....................\n\ -sss|....,,......,,......\n\ -sss|...,,,,.....,,......\n\ -sss|....,,.....,,,,..xS.\n\ -sss|....,,......,,...SS.\n\ -sss|-|XXXXXX||XXXXXX|---\n\ -sss|s|EEEEEE||EEEEEE|sss\n\ -sss|||EEEEEE||EEEEEE|sss\n\ -sss||xEEEEEE||EEEEEE||ss\n\ -sss|||EEEEEE||EEEEEEx|ss\n\ -sss|s|EEEEEE||EEEEEE||ss\n\ -sss|s|EEEEEE||EEEEEE|sss\n\ -sss|s|------||------|sss\n\ -sss|--------------------\n\ -ssssssssssssssssssssssss\n\ -ssssssssssssssssssssssss\n\ -ssssssssssssssssssssssss\n\ -ssssssssssssssssssssssss\n", - mapf::ter_bind( "E s > < R # X G C , . r V H 6 x % ^ _ - | t + = D w T S e o h c d l", - t_elevator, t_rock, t_stairs_down, t_stairs_up, t_railing, t_floor, t_door_metal_locked, - t_door_glass_c, t_floor, t_pavement_y, t_pavement, t_floor, t_wall_glass, t_wall_glass, - t_console, t_console_broken, t_shrub, t_floor, t_floor, t_wall, t_wall, t_floor, - t_door_c, t_door_locked, t_door_locked_alarm, t_window, t_floor, t_sidewalk, t_floor, t_floor, - t_floor, t_floor, t_floor, t_floor ), - mapf::furn_bind( "E s > < R # X G C , . r V H 6 x % ^ _ - | t + = D w T S e o h c d l", f_null, - f_null, f_null, f_null, f_null, f_bench, f_null, f_null, - f_crate_c, f_null, f_null, f_rack, f_null, f_null, f_null, f_null, - f_null, f_indoor_plant, f_null, f_null, f_null, f_table, f_null, f_null, f_null, - f_null, f_toilet, f_null, f_fridge, f_bookcase, f_chair, f_counter, f_desk, f_locker ) ); + "sss|........|...|EEED___\n" + "sss|........|...|EEx|___\n" + "sss|........|-+-|---|HHG\n" + "sss|....................\n" + "sss|....................\n" + "sss|....................\n" + "sss|....................\n" + "sss|....,,......,,......\n" + "sss|...,,,,.....,,......\n" + "sss|....,,.....,,,,..xS.\n" + "sss|....,,......,,...SS.\n" + "sss|-|XXXXXX||XXXXXX|---\n" + "sss|s|EEEEEE||EEEEEE|sss\n" + "sss|||EEEEEE||EEEEEE|sss\n" + "sss||xEEEEEE||EEEEEE||ss\n" + "sss|||EEEEEE||EEEEEEx|ss\n" + "sss|s|EEEEEE||EEEEEE||ss\n" + "sss|s|EEEEEE||EEEEEE|sss\n" + "sss|s|------||------|sss\n" + "sss|--------------------\n" + "ssssssssssssssssssssssss\n" + "ssssssssssssssssssssssss\n" + "ssssssssssssssssssssssss\n" + "ssssssssssssssssssssssss\n", ter_key, fur_key ); if( density > 1 ) { - place_spawns( GROUP_ZOMBIE, 2, 0, 0, SEEX * 2 - 1, SEEX * 2 - 1, density ); + place_spawns( GROUP_ZOMBIE, 2, 0, 0, EAST_EDGE, SOUTH_EDGE, density ); } else { - place_spawns( GROUP_PLAIN, 1, 0, 0, SEEX * 2 - 1, SEEX * 2 - 1, 0.1 ); + place_spawns( GROUP_PLAIN, 1, 0, 0, EAST_EDGE, SOUTH_EDGE, 0.1 ); } - if( t_north == "office_tower_b" && t_west == "office_tower_b" ) { + if( dat.north() == "office_tower_b" && dat.west() == "office_tower_b" ) { rotate( 3 ); - } else if( t_north == "office_tower_b" && t_east == "office_tower_b" ) { + } else if( dat.north() == "office_tower_b" && dat.east() == "office_tower_b" ) { rotate( 0 ); - } else if( t_south == "office_tower_b" && t_east == "office_tower_b" ) { + } else if( dat.south() == "office_tower_b" && dat.east() == "office_tower_b" ) { rotate( 1 ); - } else if( t_west == "office_tower_b" && t_south == "office_tower_b" ) { + } else if( dat.west() == "office_tower_b" && dat.south() == "office_tower_b" ) { rotate( 2 ); } - } else if( terrain_type == "office_tower_b" ) { - // Init to grass & dirt; dat.fill_groundcover(); - if( ( t_south == "office_tower_b_entrance" && t_east == "office_tower_b" ) || - ( t_north == "office_tower_b" && t_east == "office_tower_b_entrance" ) || - ( t_west == "office_tower_b" && t_north == "office_tower_b_entrance" ) || - ( t_south == "office_tower_b" && t_west == "office_tower_b_entrance" ) ) { + if( ( dat.south() == "office_tower_b_entrance" && dat.east() == "office_tower_b" ) || + ( dat.north() == "office_tower_b" && dat.east() == "office_tower_b_entrance" ) || + ( dat.west() == "office_tower_b" && dat.north() == "office_tower_b_entrance" ) || + ( dat.south() == "office_tower_b" && dat.west() == "office_tower_b_entrance" ) ) { mapf::formatted_set_simple( this, 0, 0, - "\ -ssssssssssssssssssssssss\n\ -ssssssssssssssssssssssss\n\ -sss|--------------------\n\ -sss|,.....,.....,.....,S\n\ -sss|,.....,.....,.....,S\n\ -sss|,.....,.....,.....,S\n\ -sss|,.....,.....,.....,S\n\ -sss|,.....,.....,.....,S\n\ -sss|,.....,.....,.....,S\n\ -sss|....................\n\ -sss|....................\n\ -sss|....................\n\ -sss|....................\n\ -sss|....................\n\ -sss|....................\n\ -sss|...,,...,....,....,S\n\ -sss|..,,,,..,....,....,S\n\ -sss|...,,...,....,....,S\n\ -sss|...,,...,....,....,S\n\ -sss|........,....,....,S\n\ -sss|........,....,....,S\n\ -sss|........|---|---|HHG\n\ -sss|........|.R<|EEE|___\n\ -sss|........|.R.|EEED___\n", - mapf::ter_bind( "E s < R # X G C , . r V H 6 x % ^ _ - | t + = D w T S e o h c d l", t_elevator, - t_rock, t_stairs_up, t_railing, t_floor, t_door_metal_locked, t_door_glass_c, t_floor, - t_pavement_y, t_pavement, t_floor, t_wall_glass, t_wall_glass, t_console, t_console_broken, - t_shrub, t_floor, t_floor, t_wall, t_wall, t_floor, t_door_c, t_door_locked, - t_door_locked_alarm, t_window, t_floor, t_sidewalk, t_floor, t_floor, t_floor, t_floor, - t_floor, - t_floor ), - mapf::furn_bind( "E s < R # X G C , . r V H 6 x % ^ _ - | t + = D w T S e o h c d l", f_null, - f_null, f_null, f_null, f_bench, f_null, f_null, f_crate_c, f_null, - f_null, f_rack, f_null, f_null, f_null, f_null, f_null, - f_indoor_plant, f_null, f_null, f_null, f_table, f_null, f_null, f_null, - f_null, f_toilet, f_null, f_fridge, f_bookcase, f_chair, f_counter, f_desk, f_locker ) ); + "ssssssssssssssssssssssss\n" + "ssssssssssssssssssssssss\n" + "sss|--------------------\n" + "sss|,.....,.....,.....,S\n" + "sss|,.....,.....,.....,S\n" + "sss|,.....,.....,.....,S\n" + "sss|,.....,.....,.....,S\n" + "sss|,.....,.....,.....,S\n" + "sss|,.....,.....,.....,S\n" + "sss|....................\n" + "sss|....................\n" + "sss|....................\n" + "sss|....................\n" + "sss|....................\n" + "sss|....................\n" + "sss|...,,...,....,....,S\n" + "sss|..,,,,..,....,....,S\n" + "sss|...,,...,....,....,S\n" + "sss|...,,...,....,....,S\n" + "sss|........,....,....,S\n" + "sss|........,....,....,S\n" + "sss|........|---|---|HHG\n" + "sss|........|.R<|EEE|___\n" + "sss|........|.R.|EEED___\n", b_ter_key, b_fur_key ); if( density > 1 ) { - place_spawns( GROUP_ZOMBIE, 2, 0, 0, SEEX * 2 - 1, SEEX * 2 - 1, density ); + place_spawns( GROUP_ZOMBIE, 2, 0, 0, EAST_EDGE, SOUTH_EDGE, density ); } else { - place_spawns( GROUP_PLAIN, 1, 0, 0, SEEX * 2 - 1, SEEX * 2 - 1, 0.1 ); + place_spawns( GROUP_PLAIN, 1, 0, 0, EAST_EDGE, SOUTH_EDGE, 0.1 ); } - if( t_west == "office_tower_b_entrance" ) { + if( dat.west() == "office_tower_b_entrance" ) { rotate( 1 ); if( x_in_y( 1, 5 ) ) { add_vehicle( vproto_id( "car" ), 17, 7, 180 ); @@ -3139,7 +3073,7 @@ sss|........|.R.|EEED___\n", add_vehicle( vproto_id( "pickup" ), 17, 19, 180 ); } } - } else if( t_north == "office_tower_b_entrance" ) { + } else if( dat.north() == "office_tower_b_entrance" ) { rotate( 2 ); if( x_in_y( 1, 5 ) ) { add_vehicle( vproto_id( "car" ), 10, 17, 270 ); @@ -3154,7 +3088,7 @@ sss|........|.R.|EEED___\n", add_vehicle( vproto_id( "pickup" ), 16, 17, 270 ); } } - } else if( t_east == "office_tower_b_entrance" ) { + } else if( dat.east() == "office_tower_b_entrance" ) { rotate( 3 ); if( x_in_y( 1, 5 ) ) { add_vehicle( vproto_id( "car" ), 6, 4, 0 ); @@ -3177,56 +3111,41 @@ sss|........|.R.|EEED___\n", add_vehicle( vproto_id( "motorcycle" ), 19, 6, 90 ); } } - } - - else if( ( t_west == "office_tower_b_entrance" && t_north == "office_tower_b" ) || - ( t_north == "office_tower_b_entrance" && t_east == "office_tower_b" ) || - ( t_west == "office_tower_b" && t_south == "office_tower_b_entrance" ) || - ( t_south == "office_tower_b" && t_east == "office_tower_b_entrance" ) ) { + } else if( ( dat.west() == "office_tower_b_entrance" && dat.north() == "office_tower_b" ) || + ( dat.north() == "office_tower_b_entrance" && dat.east() == "office_tower_b" ) || + ( dat.west() == "office_tower_b" && dat.south() == "office_tower_b_entrance" ) || + ( dat.south() == "office_tower_b" && dat.east() == "office_tower_b_entrance" ) ) { mapf::formatted_set_simple( this, 0, 0, - "\ -___DEEE|...|...,,...|sss\n\ -___|EEE|...|..,,,,..|sss\n\ -GHH|---|-+-|...,,...|sss\n\ -....................|sss\n\ -....................|sss\n\ -....................|sss\n\ -....................|sss\n\ -....................|sss\n\ -....................|sss\n\ -....................|sss\n\ -....................|sss\n\ -|...................|sss\n\ -|...................|sss\n\ -|,.....,.....,.....,|sss\n\ -|,.....,.....,.....,|sss\n\ -|,.....,.....,.....,|sss\n\ -|,.....,.....,.....,|sss\n\ -|,.....,.....,.....,|sss\n\ -|,.....,.....,.....,|sss\n\ -|-------------------|sss\n\ -ssssssssssssssssssssssss\n\ -ssssssssssssssssssssssss\n\ -ssssssssssssssssssssssss\n\ -ssssssssssssssssssssssss\n", - mapf::ter_bind( "E s > < R # X G C , . r V H 6 x % ^ _ - | t + = D w T S e o h c d l S", - t_elevator, t_rock, t_stairs_down, t_stairs_up, t_railing, t_floor, t_door_metal_locked, - t_door_glass_c, t_floor, t_pavement_y, t_pavement, t_floor, t_wall_glass, t_wall_glass, - t_console, t_console_broken, t_shrub, t_floor, t_floor, t_wall, t_wall, t_floor, - t_door_c, t_door_locked, t_door_locked_alarm, t_window, t_floor, t_floor, t_floor, t_floor, - t_floor, t_floor, t_floor, t_floor, t_sidewalk ), - mapf::furn_bind( "E s > < R # X G C , . r V H 6 x % ^ _ - | t + = D w T S e o h c d l S", f_null, - f_null, f_null, f_null, f_null, f_bench, f_null, f_null, - f_crate_c, f_null, f_null, f_rack, f_null, f_null, f_null, f_null, - f_null, f_indoor_plant, f_null, f_null, f_null, f_table, f_null, f_null, f_null, - f_null, f_toilet, f_sink, f_fridge, f_bookcase, f_chair, f_counter, f_desk, f_locker, - f_null ) ); + "___DEEE|...|...,,...|sss\n" + "___|EEE|...|..,,,,..|sss\n" + "GHH|---|-+-|...,,...|sss\n" + "....................|sss\n" + "....................|sss\n" + "....................|sss\n" + "....................|sss\n" + "....................|sss\n" + "....................|sss\n" + "....................|sss\n" + "....................|sss\n" + "|...................|sss\n" + "|...................|sss\n" + "|,.....,.....,.....,|sss\n" + "|,.....,.....,.....,|sss\n" + "|,.....,.....,.....,|sss\n" + "|,.....,.....,.....,|sss\n" + "|,.....,.....,.....,|sss\n" + "|,.....,.....,.....,|sss\n" + "|-------------------|sss\n" + "ssssssssssssssssssssssss\n" + "ssssssssssssssssssssssss\n" + "ssssssssssssssssssssssss\n" + "ssssssssssssssssssssssss\n", b_ter_key, b_fur_key ); if( density > 1 ) { - place_spawns( GROUP_ZOMBIE, 2, 0, 0, SEEX * 2 - 1, SEEX * 2 - 1, density ); + place_spawns( GROUP_ZOMBIE, 2, 0, 0, EAST_EDGE, SOUTH_EDGE, density ); } else { - place_spawns( GROUP_PLAIN, 1, 0, 0, SEEX * 2 - 1, SEEX * 2 - 1, 0.1 ); + place_spawns( GROUP_PLAIN, 1, 0, 0, EAST_EDGE, SOUTH_EDGE, 0.1 ); } - if( t_north == "office_tower_b_entrance" ) { + if( dat.north() == "office_tower_b_entrance" ) { rotate( 1 ); if( x_in_y( 1, 5 ) ) { add_vehicle( vproto_id( "car" ), 8, 15, 0 ); @@ -3237,7 +3156,7 @@ ssssssssssssssssssssssss\n", if( x_in_y( 1, 3 ) ) { add_vehicle( vproto_id( "beetle" ), 7, 3, 0 ); } - } else if( t_east == "office_tower_b_entrance" ) { + } else if( dat.east() == "office_tower_b_entrance" ) { rotate( 2 ); if( x_in_y( 1, 5 ) ) { if( one_in( 3 ) ) { @@ -3252,7 +3171,7 @@ ssssssssssssssssssssssss\n", if( x_in_y( 1, 3 ) ) { add_vehicle( vproto_id( "beetle" ), 20, 7, 90 ); } - } else if( t_south == "office_tower_b_entrance" ) { + } else if( dat.south() == "office_tower_b_entrance" ) { rotate( 3 ); if( x_in_y( 1, 5 ) ) { add_vehicle( vproto_id( "pickup" ), 16, 7, 0 ); @@ -3274,53 +3193,38 @@ ssssssssssssssssssssssss\n", add_vehicle( vproto_id( "beetle" ), 4, 16, 270 ); } } - } - - else { + } else { mapf::formatted_set_simple( this, 0, 0, - "\ -ssssssssssssssssssssssss\n\ -ssssssssssssssssssssssss\n\ ---------------------|sss\n\ -S,.....,.....,.....,|sss\n\ -S,.....,.....,.....,|sss\n\ -S,.....,.....,.....,|sss\n\ -S,.....,.....,.....,|sss\n\ -S,.....,.....,.....,|sss\n\ -S,.....,.....,.....,|sss\n\ -....................|sss\n\ -....................|sss\n\ -....................|sss\n\ -....................|sss\n\ -....................|sss\n\ -....................|sss\n\ -S,....,....,........|sss\n\ -S,....,....,........|sss\n\ -S,....,....,........|sss\n\ -S,....,....,........|sss\n\ -S,....,....,........|sss\n\ -S,....,....,........|sss\n\ -GHH|---|---|........|sss\n\ -___|xEE|.R<|........|sss\n\ -___DEEE|.R.|...,,...|sss\n", - mapf::ter_bind( "E s < R # X G C , . r V H 6 x % ^ _ - | t + = D w T S e o h c d l", t_elevator, - t_rock, t_stairs_up, t_railing, t_floor, t_door_metal_locked, t_door_glass_c, t_floor, - t_pavement_y, t_pavement, t_floor, t_wall_glass, t_wall_glass, t_console, t_console_broken, - t_shrub, t_floor, t_floor, t_wall, t_wall, t_floor, t_door_c, t_door_locked, - t_door_locked_alarm, t_window, t_floor, t_sidewalk, t_floor, t_floor, t_floor, t_floor, - t_floor, - t_floor ), - mapf::furn_bind( "E s < R # X G C , . r V H 6 x % ^ _ - | t + = D w T S e o h c d l", f_null, - f_null, f_null, f_null, f_bench, f_null, f_null, f_crate_c, f_null, - f_null, f_rack, f_null, f_null, f_null, f_null, f_null, - f_indoor_plant, f_null, f_null, f_null, f_table, f_null, f_null, f_null, - f_null, f_toilet, f_null, f_fridge, f_bookcase, f_chair, f_counter, f_desk, f_locker ) ); + "ssssssssssssssssssssssss\n" + "ssssssssssssssssssssssss\n" + "--------------------|sss\n" + "S,.....,.....,.....,|sss\n" + "S,.....,.....,.....,|sss\n" + "S,.....,.....,.....,|sss\n" + "S,.....,.....,.....,|sss\n" + "S,.....,.....,.....,|sss\n" + "S,.....,.....,.....,|sss\n" + "....................|sss\n" + "....................|sss\n" + "....................|sss\n" + "....................|sss\n" + "....................|sss\n" + "....................|sss\n" + "S,....,....,........|sss\n" + "S,....,....,........|sss\n" + "S,....,....,........|sss\n" + "S,....,....,........|sss\n" + "S,....,....,........|sss\n" + "S,....,....,........|sss\n" + "GHH|---|---|........|sss\n" + "___|xEE|.R<|........|sss\n" + "___DEEE|.R.|...,,...|sss\n", b_ter_key, b_fur_key ); if( density > 1 ) { - place_spawns( GROUP_ZOMBIE, 2, 0, 0, SEEX * 2 - 1, SEEX * 2 - 1, density ); + place_spawns( GROUP_ZOMBIE, 2, 0, 0, EAST_EDGE, SOUTH_EDGE, density ); } else { - place_spawns( GROUP_PLAIN, 1, 0, 0, SEEX * 2 - 1, SEEX * 2 - 1, 0.1 ); + place_spawns( GROUP_PLAIN, 1, 0, 0, EAST_EDGE, SOUTH_EDGE, 0.1 ); } - if( t_west == "office_tower_b" && t_north == "office_tower_b" ) { + if( dat.west() == "office_tower_b" && dat.north() == "office_tower_b" ) { rotate( 1 ); if( x_in_y( 1, 5 ) ) { if( one_in( 3 ) ) { @@ -3335,7 +3239,7 @@ ___DEEE|.R.|...,,...|sss\n", if( x_in_y( 1, 3 ) ) { add_vehicle( vproto_id( "car" ), 17, 17, 180 ); } - } else if( t_east == "office_tower_b" && t_north == "office_tower_b" ) { + } else if( dat.east() == "office_tower_b" && dat.north() == "office_tower_b" ) { rotate( 2 ); if( x_in_y( 1, 5 ) ) { if( one_in( 3 ) ) { @@ -3350,7 +3254,7 @@ ___DEEE|.R.|...,,...|sss\n", if( x_in_y( 1, 3 ) ) { add_vehicle( vproto_id( "fire_truck" ), 18, 17, 270 ); } - } else if( t_east == "office_tower_b" && t_south == "office_tower_b" ) { + } else if( dat.east() == "office_tower_b" && dat.south() == "office_tower_b" ) { rotate( 3 ); if( x_in_y( 1, 5 ) ) { add_vehicle( vproto_id( "cube_van_cheap" ), 6, 6, 0 ); @@ -3377,27 +3281,39 @@ ___DEEE|.R.|...,,...|sss\n", } } } - } else if( terrain_type == "lab" || - terrain_type == "lab_stairs" || - terrain_type == "lab_core" || - terrain_type == "ants_lab" || - terrain_type == "ants_lab_stairs" || - terrain_type == "ice_lab" || - terrain_type == "ice_lab_stairs" || - terrain_type == "ice_lab_core" || - terrain_type == "central_lab" || - terrain_type == "central_lab_stairs" || - terrain_type == "central_lab_core" || - terrain_type == "tower_lab" || - terrain_type == "tower_lab_stairs" ) { + } +} + +void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_point &when, + const float density ) +{ + // To distinguish between types of labs + bool ice_lab = true; + bool central_lab = false; + bool tower_lab = false; + + int x = 0; + int y = 0; + + int lw = 0; + int rw = 0; + int tw = 0; + int bw = 0; + + if( terrain_type == "lab" || terrain_type == "lab_stairs" || terrain_type == "lab_core" || + terrain_type == "ants_lab" || terrain_type == "ants_lab_stairs" || + terrain_type == "ice_lab" || terrain_type == "ice_lab_stairs" || + terrain_type == "ice_lab_core" || + terrain_type == "central_lab" || terrain_type == "central_lab_stairs" || + terrain_type == "central_lab_core" || + terrain_type == "tower_lab" || terrain_type == "tower_lab_stairs" ) { ice_lab = is_ot_type( "ice_lab", terrain_type ); central_lab = is_ot_type( "central_lab", terrain_type ); tower_lab = is_ot_type( "tower_lab", terrain_type ); if( ice_lab ) { - int temperature = -20 + 30 * ( zlevel ); - + int temperature = -20 + 30 * ( dat.zlevel ); set_temperature( x, y, temperature ); set_temperature( x + SEEX, y, temperature ); set_temperature( x, y + SEEY, temperature ); @@ -3409,19 +3325,19 @@ ___DEEE|.R.|...,,...|sss\n", rw = 0; bw = 0; lw = 0; - if( is_ot_type( "sewer", t_north ) && connects_to( t_north, 2 ) ) { - tw = SEEY * 2; + if( is_ot_type( "sewer", dat.north() ) && connects_to( dat.north(), 2 ) ) { + tw = SOUTH_EDGE + 1; } - if( is_ot_type( "sewer", t_east ) && connects_to( t_east, 3 ) ) { - rw = SEEX * 2; + if( is_ot_type( "sewer", dat.east() ) && connects_to( dat.east(), 3 ) ) { + rw = EAST_EDGE + 1; } - if( is_ot_type( "sewer", t_south ) && connects_to( t_south, 0 ) ) { - bw = SEEY * 2; + if( is_ot_type( "sewer", dat.south() ) && connects_to( dat.south(), 0 ) ) { + bw = SOUTH_EDGE + 1; } - if( is_ot_type( "sewer", t_west ) && connects_to( t_west, 1 ) ) { - lw = SEEX * 2; + if( is_ot_type( "sewer", dat.west() ) && connects_to( dat.west(), 1 ) ) { + lw = EAST_EDGE + 1; } - if( zlevel == 0 ) { // We're on ground level + if( dat.zlevel == 0 ) { // We're on ground level for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( i <= 1 || i >= SEEX * 2 - 2 || @@ -3445,27 +3361,27 @@ ___DEEE|.R.|...,,...|sss\n", ter_set( SEEX + 1, SEEY - 1, t_door_metal_c ); ter_set( SEEX - 1, SEEY * 2 - 3, t_stairs_down ); ter_set( SEEX, SEEY * 2 - 3, t_stairs_down ); - science_room( this, 2, 2, SEEX - 3, SEEY * 2 - 3, zlevel, 1 ); - science_room( this, SEEX + 2, 2, SEEX * 2 - 3, SEEY * 2 - 3, zlevel, 3 ); + science_room( this, 2, 2, SEEX - 3, SEEY * 2 - 3, dat.zlevel, 1 ); + science_room( this, SEEX + 2, 2, SEEX * 2 - 3, SEEY * 2 - 3, dat.zlevel, 3 ); place_spawns( GROUP_TURRET_SMG, 1, SEEX, 5, SEEY, 5, 1, true ); - if( is_ot_type( "road", t_east ) ) { + if( is_ot_type( "road", dat.east() ) ) { rotate( 1 ); - } else if( is_ot_type( "road", t_south ) ) { + } else if( is_ot_type( "road", dat.south() ) ) { rotate( 2 ); - } else if( is_ot_type( "road", t_west ) ) { + } else if( is_ot_type( "road", dat.west() ) ) { rotate( 3 ); } } else if( tw != 0 || rw != 0 || lw != 0 || bw != 0 ) { // Sewers! for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { ter_set( i, j, t_thconc_floor ); - if( ( ( i < lw || i > SEEX * 2 - 1 - rw ) && j > SEEY - 3 && j < SEEY + 2 ) || - ( ( j < tw || j > SEEY * 2 - 1 - bw ) && i > SEEX - 3 && i < SEEX + 2 ) ) { + if( ( ( i < lw || i > EAST_EDGE - rw ) && j > SEEY - 3 && j < SEEY + 2 ) || + ( ( j < tw || j > SOUTH_EDGE - bw ) && i > SEEX - 3 && i < SEEX + 2 ) ) { ter_set( i, j, t_sewage ); } - if( ( i == 0 && is_ot_subtype( "lab", t_east ) ) || i == SEEX * 2 - 1 ) { + if( ( i == 0 && is_ot_subtype( "lab", dat.east() ) ) || i == EAST_EDGE ) { if( ter( i, j ) == t_sewage ) { ter_set( i, j, t_bars ); } else if( j == SEEY - 1 || j == SEEY ) { @@ -3473,7 +3389,7 @@ ___DEEE|.R.|...,,...|sss\n", } else { ter_set( i, j, t_concrete_wall ); } - } else if( ( j == 0 && is_ot_subtype( "lab", t_north ) ) || j == SEEY * 2 - 1 ) { + } else if( ( j == 0 && is_ot_subtype( "lab", dat.north() ) ) || j == SOUTH_EDGE ) { if( ter( i, j ) == t_sewage ) { ter_set( i, j, t_bars ); } else if( i == SEEX - 1 || i == SEEX ) { @@ -3486,10 +3402,10 @@ ___DEEE|.R.|...,,...|sss\n", } } else { // We're below ground, and no sewers // Set up the boundaries of walls (connect to adjacent lab squares) - tw = is_ot_subtype( "lab", t_north ) ? 0 : 2; - rw = is_ot_subtype( "lab", t_east ) ? 1 : 2; - bw = is_ot_subtype( "lab", t_south ) ? 1 : 2; - lw = is_ot_subtype( "lab", t_west ) ? 0 : 2; + tw = is_ot_subtype( "lab", dat.north() ) ? 0 : 2; + rw = is_ot_subtype( "lab", dat.east() ) ? 1 : 2; + bw = is_ot_subtype( "lab", dat.south() ) ? 1 : 2; + lw = is_ot_subtype( "lab", dat.west() ) ? 0 : 2; int boarders = 0; if( tw == 0 ) { @@ -3544,7 +3460,7 @@ ___DEEE|.R.|...,,...|sss\n", } else { debugmsg( "Error: Tried to generate 1-sided lab but no lab_1side json exists." ); } - maybe_insert_stairs( t_above, t_stairs_up ); + maybe_insert_stairs( dat.above(), t_stairs_up ); maybe_insert_stairs( terrain_type, t_stairs_down ); } else { const std::string function_key = "lab_4side"; @@ -3562,16 +3478,21 @@ ___DEEE|.R.|...,,...|sss\n", const int fidx = weightit->second.lower_bound( roll )->second; fmapit->second[fidx]->generate( this, terrain_type, dat, when, density ); - // If the map template hasn't handled borders, handle them in code. Rotated maps cannot handle - // borders and have to be caught in code. We determine if a border isn't handled by checking - // the east-facing border space where the door normally is -- it should be a wall or door. + // If the map template hasn't handled borders, handle them in code. + // Rotated maps cannot handle borders and have to be caught in code. + // We determine if a border isn't handled by checking the east-facing + // border space where the door normally is -- it should be a wall or door. tripoint east_border( 23, 11, abs_sub.z ); - if( !has_flag_ter( "WALL", east_border ) && !has_flag_ter( "DOOR", east_border ) ) { - // TODO: create a ter_reset function that does ter_set, furn_set, and i_clear? + if( !has_flag_ter( "WALL", east_border ) && + !has_flag_ter( "DOOR", east_border ) ) { + // TODO: create a ter_reset function that does ter_set, + // furn_set, and i_clear? ter_id lw_type = tower_lab ? t_reinforced_glass : t_concrete_wall; ter_id tw_type = tower_lab ? t_reinforced_glass : t_concrete_wall; - ter_id rw_type = tower_lab && rw == 2 ? t_reinforced_glass : t_concrete_wall; - ter_id bw_type = tower_lab && bw == 2 ? t_reinforced_glass : t_concrete_wall; + ter_id rw_type = tower_lab && rw == 2 ? t_reinforced_glass : + t_concrete_wall; + ter_id bw_type = tower_lab && bw == 2 ? t_reinforced_glass : + t_concrete_wall; for( int i = 0; i < SEEX * 2; i++ ) { ter_set( 23, i, rw_type ); furn_set( 23, i, f_null ); @@ -3602,7 +3523,7 @@ ___DEEE|.R.|...,,...|sss\n", } } - maybe_insert_stairs( t_above, t_stairs_up ); + maybe_insert_stairs( dat.above(), t_stairs_up ); maybe_insert_stairs( terrain_type, t_stairs_down ); } else { // then weighted roll was in the hardcoded section use_hardcoded_4side_map = true; @@ -3615,61 +3536,68 @@ ___DEEE|.R.|...,,...|sss\n", case 1: // Cross shaped for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { - if( ( i < lw || i > SEEX * 2 - 1 - rw ) || - ( ( j < SEEY - 1 || j > SEEY ) && ( i == SEEX - 2 || i == SEEX + 1 ) ) ) { + if( ( i < lw || i > EAST_EDGE - rw ) || + ( ( j < SEEY - 1 || j > SEEY ) && + ( i == SEEX - 2 || i == SEEX + 1 ) ) ) { ter_set( i, j, t_concrete_wall ); - } else if( ( j < tw || j > SEEY * 2 - 1 - bw ) || - ( ( i < SEEX - 1 || i > SEEX ) && ( j == SEEY - 2 || j == SEEY + 1 ) ) ) { + } else if( ( j < tw || j > SOUTH_EDGE - bw ) || + ( ( i < SEEX - 1 || i > SEEX ) && + ( j == SEEY - 2 || j == SEEY + 1 ) ) ) { ter_set( i, j, t_concrete_wall ); } else { ter_set( i, j, t_thconc_floor ); } } } - if( is_ot_subtype( "stairs", t_above ) ) { - ter_set( rng( SEEX - 1, SEEX ), rng( SEEY - 1, SEEY ), t_stairs_up ); + if( is_ot_subtype( "stairs", dat.above() ) ) { + ter_set( rng( SEEX - 1, SEEX ), rng( SEEY - 1, SEEY ), + t_stairs_up ); } // Top left if( one_in( 2 ) ) { ter_set( SEEX - 2, int( SEEY / 2 ), t_door_glass_frosted_c ); - science_room( this, lw, tw, SEEX - 3, SEEY - 3, zlevel, 1 ); + science_room( this, lw, tw, SEEX - 3, SEEY - 3, dat.zlevel, 1 ); } else { ter_set( int( SEEX / 2 ), SEEY - 2, t_door_glass_frosted_c ); - science_room( this, lw, tw, SEEX - 3, SEEY - 3, zlevel, 2 ); + science_room( this, lw, tw, SEEX - 3, SEEY - 3, dat.zlevel, 2 ); } // Top right if( one_in( 2 ) ) { ter_set( SEEX + 1, int( SEEY / 2 ), t_door_glass_frosted_c ); - science_room( this, SEEX + 2, tw, SEEX * 2 - 1 - rw, SEEY - 3, zlevel, 3 ); + science_room( this, SEEX + 2, tw, EAST_EDGE - rw, SEEY - 3, + dat.zlevel, 3 ); } else { ter_set( SEEX + int( SEEX / 2 ), SEEY - 2, t_door_glass_frosted_c ); - science_room( this, SEEX + 2, tw, SEEX * 2 - 1 - rw, SEEY - 3, zlevel, 2 ); + science_room( this, SEEX + 2, tw, EAST_EDGE - rw, SEEY - 3, + dat.zlevel, 2 ); } // Bottom left if( one_in( 2 ) ) { ter_set( int( SEEX / 2 ), SEEY + 1, t_door_glass_frosted_c ); - science_room( this, lw, SEEY + 2, SEEX - 3, SEEY * 2 - 1 - bw, zlevel, 0 ); + science_room( this, lw, SEEY + 2, SEEX - 3, SOUTH_EDGE - bw, + dat.zlevel, 0 ); } else { ter_set( SEEX - 2, SEEY + int( SEEY / 2 ), t_door_glass_frosted_c ); - science_room( this, lw, SEEY + 2, SEEX - 3, SEEY * 2 - 1 - bw, zlevel, 1 ); + science_room( this, lw, SEEY + 2, SEEX - 3, SOUTH_EDGE - bw, + dat.zlevel, 1 ); } // Bottom right if( one_in( 2 ) ) { ter_set( SEEX + int( SEEX / 2 ), SEEY + 1, t_door_glass_frosted_c ); - science_room( this, SEEX + 2, SEEY + 2, SEEX * 2 - 1 - rw, SEEY * 2 - 1 - bw, - zlevel, 0 ); + science_room( this, SEEX + 2, SEEY + 2, EAST_EDGE - rw, + SOUTH_EDGE - bw, dat.zlevel, 0 ); } else { ter_set( SEEX + 1, SEEY + int( SEEY / 2 ), t_door_glass_frosted_c ); - science_room( this, SEEX + 2, SEEY + 2, SEEX * 2 - 1 - rw, SEEY * 2 - 1 - bw, - zlevel, 3 ); + science_room( this, SEEX + 2, SEEY + 2, EAST_EDGE - rw, + SOUTH_EDGE - bw, dat.zlevel, 3 ); } if( rw == 1 ) { - ter_set( SEEX * 2 - 1, SEEY - 1, t_door_metal_c ); - ter_set( SEEX * 2 - 1, SEEY, t_door_metal_c ); + ter_set( EAST_EDGE, SEEY - 1, t_door_metal_c ); + ter_set( EAST_EDGE, SEEY, t_door_metal_c ); } if( bw == 1 ) { - ter_set( SEEX - 1, SEEY * 2 - 1, t_door_metal_c ); - ter_set( SEEX, SEEY * 2 - 1, t_door_metal_c ); + ter_set( SEEX - 1, SOUTH_EDGE, t_door_metal_c ); + ter_set( SEEX, SOUTH_EDGE, t_door_metal_c ); } if( is_ot_subtype( "stairs", terrain_type ) ) { // Stairs going down std::vector stair_points; @@ -3714,16 +3642,18 @@ ___DEEE|.R.|...,,...|sss\n", case 2: // tic-tac-toe # layout for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { - if( i < lw || i > SEEX * 2 - 1 - rw || i == SEEX - 4 || i == SEEX + 3 ) { + if( i < lw || i > EAST_EDGE - rw || i == SEEX - 4 || + i == SEEX + 3 ) { ter_set( i, j, t_concrete_wall ); - } else if( j < tw || j > SEEY * 2 - 1 - bw || j == SEEY - 4 || j == SEEY + 3 ) { + } else if( j < tw || j > SOUTH_EDGE - bw || j == SEEY - 4 || + j == SEEY + 3 ) { ter_set( i, j, t_concrete_wall ); } else { ter_set( i, j, t_thconc_floor ); } } } - if( is_ot_subtype( "stairs", t_above ) ) { + if( is_ot_subtype( "stairs", dat.above() ) ) { ter_set( SEEX - 1, SEEY - 1, t_stairs_up ); ter_set( SEEX, SEEY - 1, t_stairs_up ); ter_set( SEEX - 1, SEEY, t_stairs_up ); @@ -3741,52 +3671,58 @@ ___DEEE|.R.|...,,...|sss\n", ter_set( SEEX + int( SEEX / 2 ), SEEY + 3, t_door_glass_frosted_c ); ter_set( SEEX - 4, SEEY + int( SEEY / 2 ), t_door_glass_frosted_c ); ter_set( SEEX + 3, SEEY + int( SEEY / 2 ), t_door_glass_frosted_c ); - science_room( this, lw, tw, SEEX - 5, SEEY - 5, zlevel, rng( 1, 2 ) ); - science_room( this, SEEX - 3, tw, SEEX + 2, SEEY - 5, zlevel, 2 ); - science_room( this, SEEX + 4, tw, SEEX * 2 - 1 - rw, SEEY - 5, zlevel, rng( 2, 3 ) ); - science_room( this, lw, SEEY - 3, SEEX - 5, SEEY + 2, zlevel, 1 ); - science_room( this, SEEX + 4, SEEY - 3, SEEX * 2 - 1 - rw, SEEY + 2, zlevel, 3 ); - science_room( this, lw, SEEY + 4, SEEX - 5, SEEY * 2 - 1 - bw, zlevel, rng( 0, 1 ) ); - science_room( this, SEEX - 3, SEEY + 4, SEEX + 2, SEEY * 2 - 1 - bw, zlevel, 0 ); - science_room( this, SEEX + 4, SEEX + 4, SEEX * 2 - 1 - rw, SEEY * 2 - 1 - bw, - zlevel, 3 * rng( 0, 1 ) ); + science_room( this, lw, tw, SEEX - 5, SEEY - 5, dat.zlevel, + rng( 1, 2 ) ); + science_room( this, SEEX - 3, tw, SEEX + 2, SEEY - 5, dat.zlevel, 2 ); + science_room( this, SEEX + 4, tw, EAST_EDGE - rw, SEEY - 5, + dat.zlevel, rng( 2, 3 ) ); + science_room( this, lw, SEEY - 3, SEEX - 5, SEEY + 2, dat.zlevel, 1 ); + science_room( this, SEEX + 4, SEEY - 3, EAST_EDGE - rw, SEEY + 2, + dat.zlevel, 3 ); + science_room( this, lw, SEEY + 4, SEEX - 5, SOUTH_EDGE - bw, + dat.zlevel, rng( 0, 1 ) ); + science_room( this, SEEX - 3, SEEY + 4, SEEX + 2, SOUTH_EDGE - bw, + dat.zlevel, 0 ); + science_room( this, SEEX + 4, SEEX + 4, EAST_EDGE - rw, + SOUTH_EDGE - bw, dat.zlevel, 3 * rng( 0, 1 ) ); if( rw == 1 ) { - ter_set( SEEX * 2 - 1, SEEY - 1, t_door_metal_c ); - ter_set( SEEX * 2 - 1, SEEY, t_door_metal_c ); + ter_set( EAST_EDGE, SEEY - 1, t_door_metal_c ); + ter_set( EAST_EDGE, SEEY, t_door_metal_c ); } if( bw == 1 ) { - ter_set( SEEX - 1, SEEY * 2 - 1, t_door_metal_c ); - ter_set( SEEX, SEEY * 2 - 1, t_door_metal_c ); + ter_set( SEEX - 1, SOUTH_EDGE, t_door_metal_c ); + ter_set( SEEX, SOUTH_EDGE, t_door_metal_c ); } if( is_ot_subtype( "stairs", terrain_type ) ) { - ter_set( SEEX - 3 + 5 * rng( 0, 1 ), SEEY - 3 + 5 * rng( 0, 1 ), t_stairs_down ); + ter_set( SEEX - 3 + 5 * rng( 0, 1 ), SEEY - 3 + 5 * rng( 0, 1 ), + t_stairs_down ); } break; case 3: // Big room for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { - if( i < lw || i >= SEEX * 2 - 1 - rw ) { + if( i < lw || i >= EAST_EDGE - rw ) { ter_set( i, j, t_concrete_wall ); - } else if( j < tw || j >= SEEY * 2 - 1 - bw ) { + } else if( j < tw || j >= SOUTH_EDGE - bw ) { ter_set( i, j, t_concrete_wall ); } else { ter_set( i, j, t_thconc_floor ); } } } - science_room( this, lw, tw, SEEX * 2 - 1 - rw, SEEY * 2 - 1 - bw, - zlevel, rng( 0, 3 ) ); + science_room( this, lw, tw, EAST_EDGE - rw, SOUTH_EDGE - bw, + dat.zlevel, rng( 0, 3 ) ); if( rw == 1 ) { - ter_set( SEEX * 2 - 1, SEEY - 1, t_door_metal_c ); - ter_set( SEEX * 2 - 1, SEEY, t_door_metal_c ); + ter_set( EAST_EDGE, SEEY - 1, t_door_metal_c ); + ter_set( EAST_EDGE, SEEY, t_door_metal_c ); } if( bw == 1 ) { - ter_set( SEEX - 1, SEEY * 2 - 1, t_door_metal_c ); - ter_set( SEEX, SEEY * 2 - 1, t_door_metal_c ); + ter_set( SEEX - 1, SOUTH_EDGE, t_door_metal_c ); + ter_set( SEEX, SOUTH_EDGE, t_door_metal_c ); } - maybe_insert_stairs( t_above, t_stairs_up ); + maybe_insert_stairs( dat.above(), t_stairs_up ); maybe_insert_stairs( terrain_type, t_stairs_down ); break; } @@ -3829,17 +3765,18 @@ ___DEEE|.R.|...,,...|sss\n", } // Slimes pretty much wreck up the place, too, but only underground - tw = ( t_north == "slimepit" ? SEEY : 0 ); - rw = ( t_east == "slimepit" ? SEEX + 1 : 0 ); - bw = ( t_south == "slimepit" ? SEEY + 1 : 0 ); - lw = ( t_west == "slimepit" ? SEEX : 0 ); + tw = ( dat.north() == "slimepit" ? SEEY : 0 ); + rw = ( dat.east() == "slimepit" ? SEEX + 1 : 0 ); + bw = ( dat.south() == "slimepit" ? SEEY + 1 : 0 ); + lw = ( dat.west() == "slimepit" ? SEEX : 0 ); if( tw != 0 || rw != 0 || bw != 0 || lw != 0 ) { for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { - if( ( ( j <= tw || i >= rw ) && i >= j && ( SEEX * 2 - 1 - i ) <= j ) || - ( ( j >= bw || i <= lw ) && i <= j && ( SEEY * 2 - 1 - j ) <= i ) ) { + if( ( ( j <= tw || i >= rw ) && i >= j && ( EAST_EDGE - i ) <= j ) || + ( ( j >= bw || i <= lw ) && i <= j && ( SOUTH_EDGE - j ) <= i ) ) { if( one_in( 5 ) ) { - make_rubble( tripoint( i, j, abs_sub.z ), f_rubble_rock, true, t_slime ); + make_rubble( tripoint( i, j, abs_sub.z ), f_rubble_rock, true, + t_slime ); } else if( !one_in( 5 ) ) { ter_set( i, j, t_slime ); } @@ -3853,7 +3790,8 @@ ___DEEE|.R.|...,,...|sss\n", if( central_lab ) { light_odds = 1; } else if( one_in( 2 ) ) { - // Create a spread of densities, from all possible lights on, to 1/3, ... to ~1 per segment. + // Create a spread of densities, from all possible lights on, to 1/3, ... + // to ~1 per segment. light_odds = pow( rng( 1, 12 ), 1.6 ); } if( light_odds > 0 ) { @@ -3869,7 +3807,7 @@ ___DEEE|.R.|...,,...|sss\n", } if( tower_lab ) { - place_spawns( GROUP_LAB, 1, 0, 0, SEEX * 2 - 1, SEEX * 2 - 1, abs_sub.z * 0.02f ); + place_spawns( GROUP_LAB, 1, 0, 0, EAST_EDGE, EAST_EDGE, abs_sub.z * 0.02f ); } // Lab special effects. @@ -3877,16 +3815,19 @@ ___DEEE|.R.|...,,...|sss\n", switch( rng( 1, 7 ) ) { // full flooding/sewage case 1: { - if( is_ot_subtype( "stairs", terrain_type ) || is_ot_subtype( "ice", terrain_type ) ) { + if( is_ot_subtype( "stairs", terrain_type ) || + is_ot_subtype( "ice", terrain_type ) ) { // don't flood if stairs because the floor below will not be flooded. - // don't flood if ice lab because there's no mechanic for freezing liquid floors. + // don't flood if ice lab because there's no mechanic for freezing + // liquid floors. break; } auto fluid_type = one_in( 3 ) ? t_sewage : t_water_sh; - for( int i = 0; i < SEEX * 2 - 1; i++ ) { - for( int j = 0; j < SEEY * 2 - 1; j++ ) { + for( int i = 0; i < EAST_EDGE; i++ ) { + for( int j = 0; j < SOUTH_EDGE; j++ ) { // We spare some terrain to make it look better visually. - if( !one_in( 10 ) && ( t_thconc_floor == ter( i, j ) || t_strconc_floor == ter( i, j ) || + if( !one_in( 10 ) && ( t_thconc_floor == ter( i, j ) || + t_strconc_floor == ter( i, j ) || t_thconc_floor_olight == ter( i, j ) ) ) { ter_set( i, j, fluid_type ); } else if( has_flag_ter( "DOOR", i, j ) && !one_in( 3 ) ) { @@ -3901,9 +3842,11 @@ ___DEEE|.R.|...,,...|sss\n", } // minor flooding/sewage case 2: { - if( is_ot_subtype( "stairs", terrain_type ) || is_ot_subtype( "ice", terrain_type ) ) { + if( is_ot_subtype( "stairs", terrain_type ) || + is_ot_subtype( "ice", terrain_type ) ) { // don't flood if stairs because the floor below will not be flooded. - // don't flood if ice lab because there's no mechanic for freezing liquid floors. + // don't flood if ice lab because there's no mechanic for freezing + // liquid floors. break; } auto fluid_type = one_in( 3 ) ? t_sewage : t_water_sh; @@ -3928,7 +3871,8 @@ ___DEEE|.R.|...,,...|sss\n", bool is_toxic = one_in( 3 ); for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { - if( one_in( 200 ) && ( t_thconc_floor == ter( i, j ) || t_strconc_floor == ter( i, j ) ) ) { + if( one_in( 200 ) && ( t_thconc_floor == ter( i, j ) || + t_strconc_floor == ter( i, j ) ) ) { if( is_toxic ) { add_field( {i, j, abs_sub.z}, fd_gas_vent, 1 ); } else { @@ -3968,7 +3912,8 @@ ___DEEE|.R.|...,,...|sss\n", case 6: { tripoint center( rng( 6, SEEX * 2 - 7 ), rng( 6, SEEY * 2 - 7 ), abs_sub.z ); if( has_flag_ter( "WALL", center.x, center.y ) ) { - break; // just skip it, we don't want to risk embedding radiation out of sight. + // just skip it, we don't want to risk embedding radiation out of sight. + break; } draw_rough_circle( [this]( int x, int y ) { set_radiation( x, y, 10 ); @@ -3992,8 +3937,10 @@ ___DEEE|.R.|...,,...|sss\n", ter_set( x, y, t_thconc_floor ); }, center.x, center.y, 1 ); - place_spawns( GROUP_HAZMATBOT, 1, center.x - 1, center.y, center.x - 1, center.y, 1, true ); - place_spawns( GROUP_HAZMATBOT, 2, center.x - 1, center.y, center.x - 1, center.y, 1, true ); + place_spawns( GROUP_HAZMATBOT, 1, center.x - 1, center.y, + center.x - 1, center.y, 1, true ); + place_spawns( GROUP_HAZMATBOT, 2, center.x - 1, center.y, + center.x - 1, center.y, 1, true ); // damaged mininuke/plut thrown past edge of rubble so the player can see it. int marker_x = center.x - 2 + 4 * rng( 0, 1 ); @@ -4004,14 +3951,15 @@ ___DEEE|.R.|...,,...|sss\n", } else { item newliquid( "plut_slurry_dense", calendar::time_of_cataclysm ); newliquid.charges = 1; - add_item_or_charges( tripoint( marker_x, marker_y, get_abs_sub().z ), newliquid ); + add_item_or_charges( tripoint( marker_x, marker_y, get_abs_sub().z ), + newliquid ); } break; } // portal with fungal invasion case 7: { - for( int i = 0; i < SEEX * 2 - 1; i++ ) { - for( int j = 0; j < SEEY * 2 - 1; j++ ) { + for( int i = 0; i < EAST_EDGE; i++ ) { + for( int j = 0; j < SOUTH_EDGE; j++ ) { // Create a mostly spread fungal area throughout entire lab. if( !one_in( 5 ) && ( has_flag( "FLAT", i, j ) ) ) { ter_set( i, j, t_fungus_floor_in ); @@ -4048,36 +3996,32 @@ ___DEEE|.R.|...,,...|sss\n", ter_set( center.x, center.y, t_fungus_floor_in ); furn_set( center.x, center.y, f_null ); trap_set( center, tr_portal ); - place_spawns( GROUP_FUNGI_FUNGALOID, 1, center.x - 2, center.y - 2, center.x + 2, center.y + 2, 1, - true ); + place_spawns( GROUP_FUNGI_FUNGALOID, 1, center.x - 2, center.y - 2, + center.x + 2, center.y + 2, 1, true ); break; } } } - - } else if( terrain_type == "lab_finale" || - terrain_type == "ice_lab_finale" || - terrain_type == "central_lab_finale" || - terrain_type == "tower_lab_finale" ) { + } else if( terrain_type == "lab_finale" || terrain_type == "ice_lab_finale" || + terrain_type == "central_lab_finale" || terrain_type == "tower_lab_finale" ) { ice_lab = is_ot_type( "ice_lab", terrain_type ); central_lab = is_ot_type( "central_lab", terrain_type ); tower_lab = is_ot_type( "tower_lab", terrain_type ); if( ice_lab ) { - int temperature = -20 + 30 * zlevel; - + int temperature = -20 + 30 * dat.zlevel; set_temperature( x, y, temperature ); set_temperature( x + SEEX, y, temperature ); set_temperature( x, y + SEEY, temperature ); set_temperature( x + SEEX, y + SEEY, temperature ); } - tw = is_ot_subtype( "lab", t_north ) ? 0 : 2; - rw = is_ot_subtype( "lab", t_east ) ? 1 : 2; - bw = is_ot_subtype( "lab", t_south ) ? 1 : 2; - lw = is_ot_subtype( "lab", t_west ) ? 0 : 2; + tw = is_ot_subtype( "lab", dat.north() ) ? 0 : 2; + rw = is_ot_subtype( "lab", dat.east() ) ? 1 : 2; + bw = is_ot_subtype( "lab", dat.south() ) ? 1 : 2; + lw = is_ot_subtype( "lab", dat.west() ) ? 0 : 2; const std::string function_key = "lab_finale_1level"; const auto fmapit = oter_mapgen.find( function_key ); @@ -4094,9 +4038,10 @@ ___DEEE|.R.|...,,...|sss\n", const int fidx = weightit->second.lower_bound( roll )->second; fmapit->second[fidx]->generate( this, terrain_type, dat, when, density ); - // If the map template hasn't handled borders, handle them in code. Rotated maps cannot handle - // borders and have to be caught in code. We determine if a border isn't handled by checking - // the east-facing border space where the door normally is -- it should be a wall or door. + // If the map template hasn't handled borders, handle them in code. + // Rotated maps cannot handle borders and have to be caught in code. + // We determine if a border isn't handled by checking the east-facing + // border space where the door normally is -- it should be a wall or door. tripoint east_border( 23, 11, abs_sub.z ); if( !has_flag_ter( "WALL", east_border ) && !has_flag_ter( "DOOR", east_border ) ) { // TODO: create a ter_reset function that does ter_set, furn_set, and i_clear? @@ -4144,9 +4089,9 @@ ___DEEE|.R.|...,,...|sss\n", // Start by setting up a large, empty room. for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { - if( i < lw || i > SEEX * 2 - 1 - rw ) { + if( i < lw || i > EAST_EDGE - rw ) { ter_set( i, j, t_concrete_wall ); - } else if( j < tw || j > SEEY * 2 - 1 - bw ) { + } else if( j < tw || j > SOUTH_EDGE - bw ) { ter_set( i, j, t_concrete_wall ); } else { ter_set( i, j, t_thconc_floor ); @@ -4154,26 +4099,28 @@ ___DEEE|.R.|...,,...|sss\n", } } if( rw == 1 ) { - ter_set( SEEX * 2 - 1, SEEY - 1, t_door_metal_c ); - ter_set( SEEX * 2 - 1, SEEY, t_door_metal_c ); + ter_set( EAST_EDGE, SEEY - 1, t_door_metal_c ); + ter_set( EAST_EDGE, SEEY, t_door_metal_c ); } if( bw == 1 ) { - ter_set( SEEX - 1, SEEY * 2 - 1, t_door_metal_c ); - ter_set( SEEX, SEEY * 2 - 1, t_door_metal_c ); + ter_set( SEEX - 1, SOUTH_EDGE, t_door_metal_c ); + ter_set( SEEX, SOUTH_EDGE, t_door_metal_c ); } int loot_variant; //only used for weapons testing variant. + computer *tmpcomp = nullptr; switch( rng( 1, 5 ) ) { - // Weapons testing - twice as common because it has 4 variants. case 1: case 2: loot_variant = rng( 1, 100 ); //The variants have a 67/22/7/4 split. place_spawns( GROUP_ROBOT_SECUBOT, 1, 6, 6, 6, 6, 1, true ); - place_spawns( GROUP_ROBOT_SECUBOT, 1, SEEX * 2 - 7, 6, SEEX * 2 - 7, 6, 1, true ); - place_spawns( GROUP_ROBOT_SECUBOT, 1, 6, SEEY * 2 - 7, 6, SEEY * 2 - 7, 1, true ); - place_spawns( GROUP_ROBOT_SECUBOT, 1, SEEX * 2 - 7, SEEY * 2 - 7, SEEX * 2 - 7, SEEY * 2 - 7, 1, - true ); + place_spawns( GROUP_ROBOT_SECUBOT, 1, SEEX * 2 - 7, 6, + SEEX * 2 - 7, 6, 1, true ); + place_spawns( GROUP_ROBOT_SECUBOT, 1, 6, SEEY * 2 - 7, + 6, SEEY * 2 - 7, 1, true ); + place_spawns( GROUP_ROBOT_SECUBOT, 1, SEEX * 2 - 7, SEEY * 2 - 7, + SEEX * 2 - 7, SEEY * 2 - 7, 1, true ); spawn_item( SEEX - 4, SEEY - 2, "id_science" ); if( loot_variant <= 96 ) { mtrap_set( this, SEEX - 3, SEEY - 3, tr_dissector ); @@ -4197,14 +4144,14 @@ ___DEEE|.R.|...,,...|sss\n", spawn_item( SEEX - 1, SEEY, "laser_rifle", dice( 1, 0 ) ); spawn_item( SEEX, SEEY, "ftk93" ); spawn_item( SEEX - 1, SEEY, "recipe_atomic_battery" ); - spawn_item( SEEX, SEEY - 1, "solar_panel_v3" ); //quantum solar panel, 6 panels in one! + spawn_item( SEEX, SEEY - 1, "solar_panel_v3" ); } else if( loot_variant > 67 && loot_variant < 89 ) { spawn_item( SEEX - 1, SEEY - 1, "mininuke", dice( 3, 6 ) ); spawn_item( SEEX, SEEY - 1, "mininuke", dice( 3, 6 ) ); spawn_item( SEEX - 1, SEEY, "mininuke", dice( 3, 6 ) ); spawn_item( SEEX, SEEY, "mininuke", dice( 3, 6 ) ); spawn_item( SEEX, SEEY, "recipe_atomic_battery" ); - spawn_item( SEEX, SEEY, "solar_panel_v3" ); //quantum solar panel, 6 panels in one! + spawn_item( SEEX, SEEY, "solar_panel_v3" ); } else { // loot_variant between 90 and 96. spawn_item( SEEX - 1, SEEY - 1, "rm13_armor" ); spawn_item( SEEX, SEEY - 1, "plut_cell" ); @@ -4225,26 +4172,23 @@ ___DEEE|.R.|...,,...|sss\n", furn_set( SEEX - 1, SEEY, f_rack ); furn_set( SEEX, SEEY, f_rack ); furn_set( SEEX + 1, SEEY, f_rack ); - line( this, t_reinforced_door_glass_c, SEEX - 2, SEEY - 2, SEEX + 1, SEEY - 2 ); - line( this, t_reinforced_door_glass_c, SEEX - 2, SEEY + 1, SEEX + 1, SEEY + 1 ); + line( this, t_reinforced_door_glass_c, SEEX - 2, SEEY - 2, + SEEX + 1, SEEY - 2 ); + line( this, t_reinforced_door_glass_c, SEEX - 2, SEEY + 1, + SEEX + 1, SEEY + 1 ); line( this, t_reinforced_glass, SEEX - 3, SEEY - 2, SEEX - 3, SEEY + 1 ); line( this, t_reinforced_glass, SEEX + 2, SEEY - 2, SEEX + 2, SEEY + 1 ); - place_items( "ammo_rare", 96, SEEX - 2, SEEY - 1, SEEX + 1, SEEY - 1, false, 0 ); + place_items( "ammo_rare", 96, SEEX - 2, SEEY - 1, + SEEX + 1, SEEY - 1, false, 0 ); place_items( "guns_rare", 96, SEEX - 2, SEEY, SEEX + 1, SEEY, false, 0 ); - spawn_item( SEEX + 1, SEEY, "solar_panel_v3" ); //quantum solar panel, 6 panels in one! + spawn_item( SEEX + 1, SEEY, "solar_panel_v3" ); } break; - // Netherworld access case 3: { bool monsters_end = false; if( !one_in( 4 ) ) { // Trapped netherworld monsters monsters_end = true; - static const std::array nethercreatures = { { - mon_flying_polyp, mon_hunting_horror, mon_mi_go, mon_yugg, mon_gelatin, - mon_flaming_eye, mon_kreck, mon_gracke, mon_blank, mon_gozu, mon_shoggoth, - } - }; tw = rng( SEEY + 3, SEEY + 5 ); bw = tw + 4; lw = rng( SEEX - 6, SEEX - 2 ); @@ -4262,14 +4206,15 @@ ___DEEE|.R.|...,,...|sss\n", } else if( j == tw + 2 ) { ter_set( i, j, t_concrete_wall ); } else { // Empty space holds monsters! - place_spawns( GROUP_NETHER, 1, i, j, i, j, true ); + place_spawns( GROUP_NETHER, 1, i, j, i, j, 1, true ); } } } } spawn_item( SEEX - 1, 8, "id_science" ); - tmpcomp = add_computer( tripoint( SEEX, 8, abs_sub.z ), _( "Sub-prime contact console" ), 7 ); + tmpcomp = add_computer( tripoint( SEEX, 8, abs_sub.z ), + _( "Sub-prime contact console" ), 7 ); if( monsters_end ) { //only add these options when there are monsters. tmpcomp->add_option( _( "Terminate Specimens" ), COMPACT_TERMINATE, 2 ); tmpcomp->add_option( _( "Release Specimens" ), COMPACT_RELEASE, 3 ); @@ -4288,10 +4233,12 @@ ___DEEE|.R.|...,,...|sss\n", // Bionics case 4: { place_spawns( GROUP_ROBOT_SECUBOT, 1, 6, 6, 6, 6, 1, true ); - place_spawns( GROUP_ROBOT_SECUBOT, 1, SEEX * 2 - 7, 6, SEEX * 2 - 7, 6, 1, true ); - place_spawns( GROUP_ROBOT_SECUBOT, 1, 6, SEEY * 2 - 7, 6, SEEY * 2 - 7, 1, true ); - place_spawns( GROUP_ROBOT_SECUBOT, 1, SEEX * 2 - 7, SEEY * 2 - 7, SEEX * 2 - 7, SEEY * 2 - 7, 1, - true ); + place_spawns( GROUP_ROBOT_SECUBOT, 1, SEEX * 2 - 7, 6, + SEEX * 2 - 7, 6, 1, true ); + place_spawns( GROUP_ROBOT_SECUBOT, 1, 6, SEEY * 2 - 7, + 6, SEEY * 2 - 7, 1, true ); + place_spawns( GROUP_ROBOT_SECUBOT, 1, SEEX * 2 - 7, SEEY * 2 - 7, + SEEX * 2 - 7, SEEY * 2 - 7, 1, true ); mtrap_set( this, SEEX - 2, SEEY - 2, tr_dissector ); mtrap_set( this, SEEX + 1, SEEY - 2, tr_dissector ); mtrap_set( this, SEEX - 2, SEEY + 1, tr_dissector ); @@ -4299,7 +4246,8 @@ ___DEEE|.R.|...,,...|sss\n", square_furn( this, f_counter, SEEX - 1, SEEY - 1, SEEX, SEEY ); int item_count = 0; while( item_count < 5 ) { - item_count += place_items( "bionics", 75, SEEX - 1, SEEY - 1, SEEX, SEEY, false, 0 ).size(); + item_count += place_items( "bionics", 75, SEEX - 1, SEEY - 1, + SEEX, SEEY, false, 0 ).size(); } line( this, t_reinforced_glass, SEEX - 2, SEEY - 2, SEEX + 1, SEEY - 2 ); line( this, t_reinforced_glass, SEEX - 2, SEEY + 1, SEEX + 1, SEEY + 1 ); @@ -4307,7 +4255,8 @@ ___DEEE|.R.|...,,...|sss\n", line( this, t_reinforced_glass, SEEX + 1, SEEY - 1, SEEX + 1, SEEY ); spawn_item( SEEX - 4, SEEY - 3, "id_science" ); ter_set( SEEX - 3, SEEY - 3, t_console ); - tmpcomp = add_computer( tripoint( SEEX - 3, SEEY - 3, abs_sub.z ), _( "Bionic access" ), 3 ); + tmpcomp = add_computer( tripoint( SEEX - 3, SEEY - 3, abs_sub.z ), + _( "Bionic access" ), 3 ); tmpcomp->add_option( _( "Manifest" ), COMPACT_LIST_BIONICS, 0 ); tmpcomp->add_option( _( "Open Chambers" ), COMPACT_RELEASE, 5 ); tmpcomp->add_failure( COMPFAIL_MANHACKS ); @@ -4318,10 +4267,12 @@ ___DEEE|.R.|...,,...|sss\n", // CVD Forge case 5: place_spawns( GROUP_ROBOT_SECUBOT, 1, 6, 6, 6, 6, 1, true ); - place_spawns( GROUP_ROBOT_SECUBOT, 1, SEEX * 2 - 7, 6, SEEX * 2 - 7, 6, 1, true ); - place_spawns( GROUP_ROBOT_SECUBOT, 1, 6, SEEY * 2 - 7, 6, SEEY * 2 - 7, 1, true ); - place_spawns( GROUP_ROBOT_SECUBOT, 1, SEEX * 2 - 7, SEEY * 2 - 7, SEEX * 2 - 7, SEEY * 2 - 7, 1, - true ); + place_spawns( GROUP_ROBOT_SECUBOT, 1, SEEX * 2 - 7, 6, + SEEX * 2 - 7, 6, 1, true ); + place_spawns( GROUP_ROBOT_SECUBOT, 1, 6, SEEY * 2 - 7, + 6, SEEY * 2 - 7, 1, true ); + place_spawns( GROUP_ROBOT_SECUBOT, 1, SEEX * 2 - 7, SEEY * 2 - 7, + SEEX * 2 - 7, SEEY * 2 - 7, 1, true ); line( this, t_cvdbody, SEEX - 2, SEEY - 2, SEEX - 2, SEEY + 1 ); line( this, t_cvdbody, SEEX - 1, SEEY - 2, SEEX - 1, SEEY + 1 ); line( this, t_cvdbody, SEEX, SEEY - 1, SEEX, SEEY + 1 ); @@ -4330,7 +4281,6 @@ ___DEEE|.R.|...,,...|sss\n", spawn_item( SEEX, SEEY - 3, "id_science" ); break; } - } // end use_hardcoded_lab_finale // Handle stairs in the unlikely case they are needed. @@ -4338,16 +4288,17 @@ ___DEEE|.R.|...,,...|sss\n", const auto maybe_insert_stairs = [this]( const oter_id & terrain, const ter_id & t_stair_type ) { if( is_ot_subtype( "stairs", terrain ) ) { const auto predicate = [this]( const tripoint & p ) { - return ter( p ) == t_thconc_floor && furn( p ) == f_null && tr_at( p ).is_null(); + return ter( p ) == t_thconc_floor && furn( p ) == f_null && + tr_at( p ).is_null(); }; - const auto range = points_in_rectangle( { 0, 0, abs_sub.z }, { SEEX * 2 - 2, SEEY * 2 - 2, abs_sub.z } ); - + const auto range = points_in_rectangle( { 0, 0, abs_sub.z }, + { SEEX * 2 - 2, SEEY * 2 - 2, abs_sub.z } ); if( const auto p = random_point( range, predicate ) ) { ter_set( *p, t_stair_type ); } } }; - maybe_insert_stairs( t_above, t_stairs_up ); + maybe_insert_stairs( dat.above(), t_stairs_up ); maybe_insert_stairs( terrain_type, t_stairs_down ); int light_odds = 0; @@ -4355,7 +4306,6 @@ ___DEEE|.R.|...,,...|sss\n", if( central_lab ) { light_odds = 1; } else if( one_in( 2 ) ) { - // Create a spread of densities, from all possible lights on, to 1/3, ... to ~1 per segment. light_odds = pow( rng( 1, 12 ), 1.6 ); } if( light_odds > 0 ) { @@ -4369,10 +4319,19 @@ ___DEEE|.R.|...,,...|sss\n", } } } + } +} - } else if( terrain_type == "silo" ) { +void map::draw_silo( const oter_id &terrain_type, mapgendata &dat, const time_point &/*when*/, + const float /*density*/ ) +{ + int lw = 0; + int mw = 0; + int tw = 0; + computer *tmpcomp = nullptr; - if( zlevel == 0 ) { // We're on ground level + if( terrain_type == "silo" ) { + if( dat.zlevel == 0 ) { // We're on ground level for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( trig_dist( i, j, SEEX, SEEY ) <= 6 ) { @@ -4413,7 +4372,6 @@ ___DEEE|.R.|...,,...|sss\n", ter_set( lw + 2, tw + 1, t_wall_metal ); ter_set( mw, tw + 1, t_door_metal_locked ); ter_set( mw, tw + 2, t_card_military ); - } else { // We are NOT above ground. for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { @@ -4433,9 +4391,7 @@ ___DEEE|.R.|...,,...|sss\n", } silo_rooms( this ); } - } else if( terrain_type == "silo_finale" ) { - for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( i == 5 ) { @@ -4458,24 +4414,28 @@ ___DEEE|.R.|...,,...|sss\n", tmpcomp->add_failure( COMPFAIL_SECUBOTS ); tmpcomp->add_failure( COMPFAIL_DAMAGE ); - } else if( terrain_type == "temple" || - terrain_type == "temple_stairs" ) { + } +} - if( zlevel == 0 ) { // Ground floor +void map::draw_temple( const oter_id &terrain_type, mapgendata &dat, const time_point &/*when*/, + const float /*density*/ ) +{ + if( terrain_type == "temple" || terrain_type == "temple_stairs" ) { + if( dat.zlevel == 0 ) { // Ground floor // TODO: More varieties? fill_background( this, t_dirt ); square( this, t_grate, SEEX - 1, SEEY - 1, SEEX, SEEX ); ter_set( SEEX + 1, SEEY + 1, t_pedestal_temple ); } else { // Underground! Shit's about to get interesting! // Start with all rock floor - square( this, t_rock_floor, 0, 0, SEEX * 2 - 1, SEEY * 2 - 1 ); + square( this, t_rock_floor, 0, 0, EAST_EDGE, SOUTH_EDGE ); // We always start at the south and go north. // We use (y / 2 + z) % 4 to guarantee that rooms don't repeat. - switch( 1 + abs( abs_sub.y / 2 + zlevel + 4 ) % 4 ) { // TODO: More varieties! + switch( 1 + abs( abs_sub.y / 2 + dat.zlevel + 4 ) % 4 ) { // TODO: More varieties! case 1: // Flame bursts - square( this, t_rock, 0, 0, SEEX - 1, SEEY * 2 - 1 ); - square( this, t_rock, SEEX + 2, 0, SEEX * 2 - 1, SEEY * 2 - 1 ); + square( this, t_rock, 0, 0, SEEX - 1, SOUTH_EDGE ); + square( this, t_rock, SEEX + 2, 0, EAST_EDGE, SOUTH_EDGE ); for( int i = 2; i < SEEY * 2 - 4; i++ ) { add_field( {SEEX, i, abs_sub.z}, fd_fire_vent, rng( 1, 3 ) ); add_field( {SEEX + 1, i, abs_sub.z}, fd_fire_vent, rng( 1, 3 ) ); @@ -4496,8 +4456,8 @@ ___DEEE|.R.|...,,...|sss\n", square( this, t_water_dp, SEEX * 2 - 5, SEEY * 2 - 5, SEEX * 2 - 4, SEEY * 2 - 4 ); - square( this, t_rock, 0, SEEY * 2 - 2, SEEX - 1, SEEY * 2 - 1 ); - square( this, t_rock, SEEX + 2, SEEY * 2 - 2, SEEX * 2 - 1, SEEY * 2 - 1 ); + square( this, t_rock, 0, SEEY * 2 - 2, SEEX - 1, SOUTH_EDGE ); + square( this, t_rock, SEEX + 2, SEEY * 2 - 2, EAST_EDGE, SOUTH_EDGE ); line( this, t_grate, SEEX, 1, SEEX + 1, 1 ); // To drain the water mtrap_set( this, SEEX, SEEY * 2 - 2, tr_temple_flood ); mtrap_set( this, SEEX + 1, SEEY * 2 - 2, tr_temple_flood ); @@ -4512,7 +4472,7 @@ ___DEEE|.R.|...,,...|sss\n", case 3: { // Flipping walls puzzle line( this, t_rock, 0, 0, SEEX - 1, 0 ); - line( this, t_rock, SEEX + 2, 0, SEEX * 2 - 1, 0 ); + line( this, t_rock, SEEX + 2, 0, EAST_EDGE, 0 ); line( this, t_rock, SEEX - 1, 1, SEEX - 1, 6 ); line( this, t_bars, SEEX + 2, 1, SEEX + 2, 6 ); ter_set( 14, 1, t_switch_rg ); @@ -4597,12 +4557,12 @@ ___DEEE|.R.|...,,...|sss\n", break; case 4: { // Toggling walls maze - square( this, t_rock, 0, 0, SEEX - 1, 1 ); - square( this, t_rock, 0, SEEY * 2 - 2, SEEX - 1, SEEY * 2 - 1 ); - square( this, t_rock, 0, 2, SEEX - 4, SEEY * 2 - 3 ); - square( this, t_rock, SEEX + 2, 0, SEEX * 2 - 1, 1 ); - square( this, t_rock, SEEX + 2, SEEY * 2 - 2, SEEX * 2 - 1, SEEY * 2 - 1 ); - square( this, t_rock, SEEX + 5, 2, SEEX * 2 - 1, SEEY * 2 - 3 ); + square( this, t_rock, 0, 0, SEEX - 1, 1 ); + square( this, t_rock, 0, SEEY * 2 - 2, SEEX - 1, SOUTH_EDGE ); + square( this, t_rock, 0, 2, SEEX - 4, SEEY * 2 - 3 ); + square( this, t_rock, SEEX + 2, 0, EAST_EDGE, 1 ); + square( this, t_rock, SEEX + 2, SEEY * 2 - 2, EAST_EDGE, SOUTH_EDGE ); + square( this, t_rock, SEEX + 5, 2, EAST_EDGE, SEEY * 2 - 3 ); int x = rng( SEEX - 1, SEEX + 2 ), y = 2; std::vector path; // Path, from end to start while( x < SEEX - 1 || x > SEEX + 2 || y < SEEY * 2 - 2 ) { @@ -4670,25 +4630,30 @@ ___DEEE|.R.|...,,...|sss\n", if( terrain_type == "temple_stairs" ) { line( this, t_stairs_down, SEEX, 0, SEEX + 1, 0 ); } - // Stairs at the south if t_above has stairs down. - if( t_above == "temple_stairs" ) { - line( this, t_stairs_up, SEEX, SEEY * 2 - 1, SEEX + 1, SEEY * 2 - 1 ); + // Stairs at the south if dat.above() has stairs down. + if( dat.above() == "temple_stairs" ) { + line( this, t_stairs_up, SEEX, SOUTH_EDGE, SEEX + 1, SOUTH_EDGE ); } } // Done with underground-only stuff - } else if( terrain_type == "temple_finale" ) { - fill_background( this, t_rock ); square( this, t_rock_floor, SEEX - 1, 1, SEEX + 2, 4 ); - square( this, t_rock_floor, SEEX, 5, SEEX + 1, SEEY * 2 - 1 ); - line( this, t_stairs_up, SEEX, SEEY * 2 - 1, SEEX + 1, SEEY * 2 - 1 ); + square( this, t_rock_floor, SEEX, 5, SEEX + 1, SOUTH_EDGE ); + line( this, t_stairs_up, SEEX, SOUTH_EDGE, SEEX + 1, SOUTH_EDGE ); spawn_artifact( tripoint( rng( SEEX, SEEX + 1 ), rng( 2, 3 ), abs_sub.z ) ); spawn_artifact( tripoint( rng( SEEX, SEEX + 1 ), rng( 2, 3 ), abs_sub.z ) ); return; - } else if( terrain_type == "sewage_treatment" ) { + } +} + +void map::draw_sewer( const oter_id &terrain_type, mapgendata &dat, const time_point &/*when*/, + const float /*density*/ ) +{ + computer *tmpcomp = nullptr; + if( terrain_type == "sewage_treatment" ) { fill_background( this, t_floor ); // Set all to floor line( this, t_wall, 0, 0, 23, 0 ); // Top wall line( this, t_window, 1, 0, 6, 0 ); // Its windows @@ -4839,7 +4804,7 @@ ___DEEE|.R.|...,,...|sss\n", } // Next, determine how the tanks interconnect. - rn = rng( 1, 4 ); // Which of the 4 possible connections is missing? + int rn = rng( 1, 4 ); // Which of the 4 possible connections is missing? if( rn != 1 ) { line( this, t_sewage, 14, 4, 14, 5 ); line( this, t_bridge, 15, 4, 15, 5 ); @@ -4912,54 +4877,51 @@ ___DEEE|.R.|...,,...|sss\n", } } else if( terrain_type == "sewage_treatment_under" ) { - fill_background( this, t_floor ); - - if( t_north == "sewage_treatment_under" || t_north == "sewage_treatment_hub" || - ( is_ot_type( "sewer", t_north ) && connects_to( t_north, 2 ) ) ) { - if( t_north == "sewage_treatment_under" || - t_north == "sewage_treatment_hub" ) { + if( dat.north() == "sewage_treatment_under" || dat.north() == "sewage_treatment_hub" || + ( is_ot_type( "sewer", dat.north() ) && connects_to( dat.north(), 2 ) ) ) { + if( dat.north() == "sewage_treatment_under" || dat.north() == "sewage_treatment_hub" ) { line( this, t_wall, 0, 0, 23, 0 ); ter_set( 3, 0, t_door_c ); } - n_fac = 1; + dat.n_fac = 1; square( this, t_sewage, 10, 0, 13, 13 ); } - - if( t_east == "sewage_treatment_under" || - t_east == "sewage_treatment_hub" || - ( is_ot_type( "sewer", t_east ) && connects_to( t_east, 3 ) ) ) { - e_fac = 1; + if( dat.east() == "sewage_treatment_under" || dat.east() == "sewage_treatment_hub" || + ( is_ot_type( "sewer", dat.east() ) && connects_to( dat.east(), 3 ) ) ) { + dat.e_fac = 1; square( this, t_sewage, 10, 10, 23, 13 ); } - - if( t_south == "sewage_treatment_under" || - t_south == "sewage_treatment_hub" || - ( is_ot_type( "sewer", t_south ) && connects_to( t_south, 0 ) ) ) { - s_fac = 1; + if( dat.south() == "sewage_treatment_under" || dat.south() == "sewage_treatment_hub" || + ( is_ot_type( "sewer", dat.south() ) && connects_to( dat.south(), 0 ) ) ) { + dat.s_fac = 1; square( this, t_sewage, 10, 10, 13, 23 ); } - - if( t_west == "sewage_treatment_under" || - t_west == "sewage_treatment_hub" || - ( is_ot_type( "sewer", t_west ) && connects_to( t_west, 1 ) ) ) { - if( t_west == "sewage_treatment_under" || - t_west == "sewage_treatment_hub" ) { + if( dat.west() == "sewage_treatment_under" || dat.west() == "sewage_treatment_hub" || + ( is_ot_type( "sewer", dat.west() ) && connects_to( dat.west(), 1 ) ) ) { + if( dat.west() == "sewage_treatment_under" || + dat.west() == "sewage_treatment_hub" ) { line( this, t_wall, 0, 1, 0, 23 ); ter_set( 0, 20, t_door_c ); } - w_fac = 1; + dat.w_fac = 1; square( this, t_sewage, 0, 10, 13, 13 ); } + } +} - } else if( terrain_type == "mine_entrance" ) { - +void map::draw_mine( const oter_id &terrain_type, mapgendata &dat, const time_point &/*when*/, + const float /*density*/ ) +{ + if( terrain_type == "mine_entrance" ) { dat.fill_groundcover(); int tries = 0; bool build_shaft = true; do { - int x1 = rng( 1, SEEX * 2 - 10 ), y1 = rng( 1, SEEY * 2 - 10 ); - int x2 = x1 + rng( 4, 9 ), y2 = y1 + rng( 4, 9 ); + int x1 = rng( 1, 2 * SEEX - 10 ); + int y1 = rng( 1, 2 * SEEY - 10 ); + int x2 = x1 + rng( 4, 9 ); + int y2 = y1 + rng( 4, 9 ); if( build_shaft ) { build_mine_room( this, room_mine_shaft, x1, y1, x2, y2, dat ); build_shaft = false; @@ -4979,51 +4941,47 @@ ___DEEE|.R.|...,,...|sss\n", } } } while( tries < 5 ); - int ladderx = rng( 0, SEEX * 2 - 1 ), laddery = rng( 0, SEEY * 2 - 1 ); + int ladderx = rng( 0, EAST_EDGE ), laddery = rng( 0, SOUTH_EDGE ); while( !dat.is_groundcover( ter( ladderx, laddery ) ) ) { - ladderx = rng( 0, SEEX * 2 - 1 ); - laddery = rng( 0, SEEY * 2 - 1 ); + ladderx = rng( 0, EAST_EDGE ); + laddery = rng( 0, SOUTH_EDGE ); } ter_set( ladderx, laddery, t_manhole_cover ); - } else if( terrain_type == "mine_shaft" ) { // Not intended to actually be inhabited! - fill_background( this, t_rock ); square( this, t_hole, SEEX - 3, SEEY - 3, SEEX + 2, SEEY + 2 ); line( this, t_grate, SEEX - 3, SEEY - 4, SEEX + 2, SEEY - 4 ); ter_set( SEEX - 3, SEEY - 5, t_ladder_up ); ter_set( SEEX + 2, SEEY - 5, t_ladder_down ); rotate( rng( 0, 3 ) ); - } else if( terrain_type == "mine" || terrain_type == "mine_down" ) { - - if( is_ot_type( "mine", t_north ) ) { - n_fac = ( one_in( 10 ) ? 0 : -2 ); + if( is_ot_type( "mine", dat.north() ) ) { + dat.n_fac = ( one_in( 10 ) ? 0 : -2 ); } else { - n_fac = 4; + dat.n_fac = 4; } - if( is_ot_type( "mine", t_east ) ) { - e_fac = ( one_in( 10 ) ? 0 : -2 ); + if( is_ot_type( "mine", dat.east() ) ) { + dat.e_fac = ( one_in( 10 ) ? 0 : -2 ); } else { - e_fac = 4; + dat.e_fac = 4; } - if( is_ot_type( "mine", t_south ) ) { - s_fac = ( one_in( 10 ) ? 0 : -2 ); + if( is_ot_type( "mine", dat.south() ) ) { + dat.s_fac = ( one_in( 10 ) ? 0 : -2 ); } else { - s_fac = 4; + dat.s_fac = 4; } - if( is_ot_type( "mine", t_west ) ) { - w_fac = ( one_in( 10 ) ? 0 : -2 ); + if( is_ot_type( "mine", dat.west() ) ) { + dat.w_fac = ( one_in( 10 ) ? 0 : -2 ); } else { - w_fac = 4; + dat.w_fac = 4; } for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { - if( i >= w_fac + rng( 0, 2 ) && i <= SEEX * 2 - 1 - e_fac - rng( 0, 2 ) && - j >= n_fac + rng( 0, 2 ) && j <= SEEY * 2 - 1 - s_fac - rng( 0, 2 ) && + if( i >= dat.w_fac + rng( 0, 2 ) && i <= EAST_EDGE - dat.e_fac - rng( 0, 2 ) && + j >= dat.n_fac + rng( 0, 2 ) && j <= SOUTH_EDGE - dat.s_fac - rng( 0, 2 ) && i + j >= 4 && ( SEEX * 2 - i ) + ( SEEY * 2 - j ) >= 6 ) { ter_set( i, j, t_rock_floor ); } else { @@ -5032,7 +4990,7 @@ ___DEEE|.R.|...,,...|sss\n", } } - if( t_above == "mine_shaft" ) { // We need the entrance room + if( dat.above() == "mine_shaft" ) { // We need the entrance room square( this, t_floor, 10, 10, 15, 15 ); line( this, t_wall, 9, 9, 16, 9 ); line( this, t_wall, 9, 16, 16, 16 ); @@ -5063,8 +5021,10 @@ ___DEEE|.R.|...,,...|sss\n", break; case 2: { // Lava - int x1 = rng( 6, SEEX ), y1 = rng( 6, SEEY ), - x2 = rng( SEEX + 1, SEEX * 2 - 7 ), y2 = rng( SEEY + 1, SEEY * 2 - 7 ); + int x1 = rng( 6, SEEX ); + int y1 = rng( 6, SEEY ); + int x2 = rng( SEEX + 1, SEEX * 2 - 7 ); + int y2 = rng( SEEY + 1, SEEY * 2 - 7 ); int num = rng( 2, 4 ); for( int i = 0; i < num; i++ ) { int lx1 = x1 + rng( -1, 1 ), lx2 = x2 + rng( -1, 1 ), @@ -5105,16 +5065,16 @@ ___DEEE|.R.|...,,...|sss\n", int num_worms = rng( 1, 5 ); for( int i = 0; i < num_worms; i++ ) { std::vector sides; - if( n_fac == 6 ) { + if( dat.n_fac == 6 ) { sides.push_back( NORTH ); } - if( e_fac == 6 ) { + if( dat.e_fac == 6 ) { sides.push_back( EAST ); } - if( s_fac == 6 ) { + if( dat.s_fac == 6 ) { sides.push_back( SOUTH ); } - if( w_fac == 6 ) { + if( dat.w_fac == 6 ) { sides.push_back( WEST ); } if( sides.empty() ) { @@ -5160,19 +5120,18 @@ ___DEEE|.R.|...,,...|sss\n", break; } } - if( terrain_type == "mine_down" ) { // Don't forget to build a slope down! std::vector open; - if( n_fac == 4 ) { + if( dat.n_fac == 4 ) { open.push_back( NORTH ); } - if( e_fac == 4 ) { + if( dat.e_fac == 4 ) { open.push_back( EAST ); } - if( s_fac == 4 ) { + if( dat.s_fac == 4 ) { open.push_back( SOUTH ); } - if( w_fac == 4 ) { + if( dat.w_fac == 4 ) { open.push_back( WEST ); } @@ -5199,7 +5158,6 @@ ___DEEE|.R.|...,,...|sss\n", square( this, t_rock_floor, p.x, p.y, p.x + 5, p.y + 5 ); } square( this, t_slope_down, p.x + 1, p.y + 1, p.x + 2, p.y + 2 ); - } else { // We can build against a wall switch( random_entry( open ) ) { case NORTH: @@ -5224,18 +5182,18 @@ ___DEEE|.R.|...,,...|sss\n", } } // Done building a slope down - if( t_above == "mine_down" ) { // Don't forget to build a slope up! + if( dat.above() == "mine_down" ) { // Don't forget to build a slope up! std::vector open; - if( n_fac == 6 && ter( SEEX, 6 ) != t_slope_down ) { + if( dat.n_fac == 6 && ter( SEEX, 6 ) != t_slope_down ) { open.push_back( NORTH ); } - if( e_fac == 6 && ter( SEEX * 2 - 7, SEEY ) != t_slope_down ) { + if( dat.e_fac == 6 && ter( SEEX * 2 - 7, SEEY ) != t_slope_down ) { open.push_back( EAST ); } - if( s_fac == 6 && ter( SEEX, SEEY * 2 - 7 ) != t_slope_down ) { + if( dat.s_fac == 6 && ter( SEEX, SEEY * 2 - 7 ) != t_slope_down ) { open.push_back( SOUTH ); } - if( w_fac == 6 && ter( 6, SEEY ) != t_slope_down ) { + if( dat.w_fac == 6 && ter( 6, SEEY ) != t_slope_down ) { open.push_back( WEST ); } @@ -5282,9 +5240,7 @@ ___DEEE|.R.|...,,...|sss\n", } } } // Done building a slope up - } else if( terrain_type == "mine_finale" ) { - // Set up the basic chamber for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { @@ -5298,37 +5254,39 @@ ___DEEE|.R.|...,,...|sss\n", } std::vector face; // Which walls are solid, and can be a facing? // Now draw the entrance(s) - if( t_north == "mine" ) { + if( dat.north() == "mine" ) { square( this, t_rock_floor, SEEX, 0, SEEX + 1, 3 ); } else { face.push_back( NORTH ); } - if( t_east == "mine" ) { - square( this, t_rock_floor, SEEX * 2 - 4, SEEY, SEEX * 2 - 1, SEEY + 1 ); + if( dat.east() == "mine" ) { + square( this, t_rock_floor, SEEX * 2 - 4, SEEY, EAST_EDGE, SEEY + 1 ); } else { face.push_back( EAST ); } - if( t_south == "mine" ) { - square( this, t_rock_floor, SEEX, SEEY * 2 - 4, SEEX + 1, SEEY * 2 - 1 ); + if( dat.south() == "mine" ) { + square( this, t_rock_floor, SEEX, SEEY * 2 - 4, SEEX + 1, SOUTH_EDGE ); } else { face.push_back( SOUTH ); } - if( t_west == "mine" ) { + if( dat.west() == "mine" ) { square( this, t_rock_floor, 0, SEEY, 3, SEEY + 1 ); } else { face.push_back( WEST ); } // Now, pick and generate a type of finale! + int rn = 0; if( face.empty() ) { rn = rng( 1, 3 ); // Amigara fault is not valid } else { rn = rng( 1, 4 ); } + computer *tmpcomp = nullptr; switch( rn ) { case 1: { // Wyrms int x = rng( SEEX, SEEX + 1 ), y = rng( SEEY, SEEY + 1 ); @@ -5371,19 +5329,19 @@ ___DEEE|.R.|...,,...|sss\n", // Construct the fault on the appropriate face switch( random_entry( face ) ) { case NORTH: - square( this, t_rock, 0, 0, SEEX * 2 - 1, 4 ); + square( this, t_rock, 0, 0, EAST_EDGE, 4 ); line( this, t_fault, 4, 4, SEEX * 2 - 5, 4 ); break; case EAST: - square( this, t_rock, SEEX * 2 - 5, 0, SEEY * 2 - 1, SEEX * 2 - 1 ); + square( this, t_rock, SEEX * 2 - 5, 0, SOUTH_EDGE, EAST_EDGE ); line( this, t_fault, SEEX * 2 - 5, 4, SEEX * 2 - 5, SEEY * 2 - 5 ); break; case SOUTH: - square( this, t_rock, 0, SEEY * 2 - 5, SEEX * 2 - 1, SEEY * 2 - 1 ); + square( this, t_rock, 0, SEEY * 2 - 5, EAST_EDGE, SOUTH_EDGE ); line( this, t_fault, 4, SEEY * 2 - 5, SEEX * 2 - 5, SEEY * 2 - 5 ); break; case WEST: - square( this, t_rock, 0, 0, 4, SEEY * 2 - 1 ); + square( this, t_rock, 0, 0, 4, SOUTH_EDGE ); line( this, t_fault, 4, 4, 4, SEEY * 2 - 5 ); break; default: @@ -5399,8 +5357,13 @@ ___DEEE|.R.|...,,...|sss\n", break; } - } else if( terrain_type == "spiral_hub" ) { + } +} +void map::draw_spiral( const oter_id &terrain_type, mapgendata &/*dat*/, const time_point &/*when*/, + const float /*density*/ ) +{ + if( terrain_type == "spiral_hub" ) { fill_background( this, t_rock_floor ); line( this, t_rock, 23, 0, 23, 23 ); line( this, t_rock, 2, 23, 23, 23 ); @@ -5419,9 +5382,7 @@ ___DEEE|.R.|...,,...|sss\n", line( this, t_rock, 10, 11, 10, 13 ); square( this, t_slope_up, 11, 11, 12, 12 ); rotate( rng( 0, 3 ) ); - } else if( terrain_type == "spiral" ) { - fill_background( this, t_rock_floor ); const int num_spiral = rng( 1, 4 ); std::list offsets; @@ -5452,9 +5413,13 @@ ___DEEE|.R.|...,,...|sss\n", ter_set( orx + 2, ory + 3, t_rock_floor ); place_items( "spiral", 60, orx + 2, ory + 3, orx + 2, ory + 3, false, 0 ); } + } +} - } else if( terrain_type == "toxic_dump" ) { - +void map::draw_toxic_dump( const oter_id &terrain_type, mapgendata &/*dat*/, + const time_point &/*when*/, const float /*density*/ ) +{ + if( terrain_type == "toxic_dump" ) { fill_background( this, t_dirt ); for( int n = 0; n < 6; n++ ) { int poolx = rng( 4, SEEX * 2 - 5 ), pooly = rng( 4, SEEY * 2 - 5 ); @@ -5480,49 +5445,74 @@ ___DEEE|.R.|...,,...|sss\n", ter_set( buildx, buildy + 4, t_door_locked ); rotate( rng( 0, 3 ) ); + } +} - } else if( terrain_type == "haz_sar_entrance" ) { +void map::draw_sarcophagus( const oter_id &terrain_type, mapgendata &dat, + const time_point &/*when*/, const float /*density*/ ) +{ + computer *tmpcomp = nullptr; + const auto ter_key = mapf::ter_bind( "R 1 & V C G 5 % Q E , _ r X f F V H 6 x $ ^ . - | " + "# t + = D w T S e o h c d l s !", t_elevator_control_off, + t_sewage_pipe, t_sewage_pump, t_vat, t_floor, t_grate, + t_wall_glass, t_wall_glass, t_sewage, t_elevator, + t_pavement_y, t_pavement, t_floor, t_door_metal_locked, + t_chainfence, t_chainfence, t_wall_glass, t_wall_glass, + t_console, t_console_broken, t_shrub, t_floor, t_floor, + t_wall, t_wall, t_rock, t_floor, t_door_c, + t_door_locked_alarm, t_door_locked, t_window, t_floor, + t_floor, t_floor, t_floor, t_floor, t_floor, t_floor, + t_floor, t_sidewalk, t_thconc_floor ); + const auto fur_key = mapf::furn_bind( "R 1 & V C G 5 % Q E , _ r X f F V H 6 x $ ^ . - | " + "# t + = D w T S e o h c d l s !", f_null, f_null, + f_null, f_null, f_crate_c, f_null, f_null, f_null, + f_null, f_null, f_null, f_null, f_rack, f_null, f_null, + f_null, f_null, f_null, f_null, f_null, f_null, + f_indoor_plant, f_null, f_null, f_null, f_null, f_table, + f_null, f_null, f_null, f_null, f_toilet, f_sink, + f_fridge, f_bookcase, f_chair, f_counter, f_desk, + f_locker, f_null, f_null ); + const auto b_ter_key = mapf::ter_bind( "= + E & 6 H V c h d r M _ $ | - # . , l S T", + t_door_metal_c, t_door_metal_o, t_elevator, + t_elevator_control_off, t_console, t_reinforced_glass, + t_reinforced_glass, t_floor, t_floor, t_floor, t_floor, + t_gates_control_concrete, t_sewage, t_door_metal_locked, + t_concrete_wall, t_concrete_wall, t_rock, t_rock_floor, + t_metal_floor, t_floor, t_floor, t_floor ); + const auto b_fur_key = mapf::furn_bind( "= + E & 6 H V c h d r M _ $ | - # . , l S T", f_null, + f_null, f_null, f_null, f_null, f_null, f_null, + f_counter, f_chair, f_desk, f_rack, f_null, f_null, + f_null, f_null, f_null, f_null, f_null, f_null, + f_locker, f_sink, f_toilet ); + if( terrain_type == "haz_sar_entrance" ) { // Init to grass & dirt; dat.fill_groundcover(); mapf::formatted_set_simple( this, 0, 0, - "\ - f |_________%..S| |.\n\ - f |!!!!!!!!!|..r| |.\n\ - f |!!!!!!!!!|..r| |.\n\ - f |l!!!!!!!!=..r| |c\n\ - f |l!!!!!!!!|..S| |w\n\ - f |l!!!!!!!!%..r|sss\n\ - f |!!!!!!!!!%..r|sss\n\ - f |!!!!!!!!!%..r|ss_\n\ - f |!!!!!!!!!|x..|ss_\n\ - f |-XXXXXXX-|-D-|ss_\n\ - f s_______ssssssss_\n\ - f s_______ssssssss_\n\ - f s________________\n\ - f s________________\n\ - f s________________\n\ - f ssss________________\n\ - f ssss_______ssssssss_\n\ - fF|-D-|XXXXXXX- s_\n\ - wxh.D_______f s_\n\ - wcdcw_______f ss\n\ - |www|_______fFFFFFFFF\n\ - _______ \n\ - _______ \n\ - _______ \n", - mapf::ter_bind( "1 & V C G 5 % Q E , _ r X f F 6 x $ ^ . - | # t + = D w T S e o h c d l s !", - t_sewage_pipe, t_sewage_pump, t_vat, t_floor, t_grate, t_wall_glass, t_wall_glass, t_sewage, - t_elevator, t_pavement_y, t_pavement, t_floor, t_door_metal_locked, t_chainfence, t_chainfence, - t_console, t_console_broken, t_shrub, t_floor, t_floor, t_wall, t_wall, t_rock, t_floor, - t_door_c, t_door_metal_c, t_door_locked, t_window, t_floor, t_floor, t_floor, t_floor, t_floor, - t_floor, t_floor, t_floor, t_sidewalk, t_thconc_floor ), - mapf::furn_bind( "1 & V C G 5 % Q E , _ r X f F 6 x $ ^ . - | # t + = D w T S e o h c d l s !", - f_null, f_null, f_null, f_crate_c, f_null, f_null, f_null, f_null, - f_null, f_null, f_null, f_rack, f_null, f_null, f_null, - f_null, f_null, f_null, f_indoor_plant, f_null, f_null, f_null, f_null, f_table, - f_null, f_null, f_null, f_null, f_toilet, f_sink, f_fridge, f_bookcase, f_chair, - f_counter, f_desk, f_locker, f_null, f_null ) ); + " f |_________%..S| |.\n" + " f |!!!!!!!!!|..r| |.\n" + " f |!!!!!!!!!|..r| |.\n" + " f |l!!!!!!!!=..r| |c\n" + " f |l!!!!!!!!|..S| |w\n" + " f |l!!!!!!!!%..r|sss\n" + " f |!!!!!!!!!%..r|sss\n" + " f |!!!!!!!!!%..r|ss_\n" + " f |!!!!!!!!!|x..|ss_\n" + " f |-XXXXXXX-|-D-|ss_\n" + " f s_______ssssssss_\n" + " f s_______ssssssss_\n" + " f s________________\n" + " f s________________\n" + " f s________________\n" + " f ssss________________\n" + " f ssss_______ssssssss_\n" + " fF|-D-|XXXXXXX- s_\n" + " wxh.D_______f s_\n" + " wcdcw_______f ss\n" + " |www|_______fFFFFFFFF\n" + " _______ \n" + " _______ \n" + " _______ \n", ter_key, fur_key ); spawn_item( 19, 3, "cleansuit" ); place_items( "office", 80, 4, 19, 6, 19, false, 0 ); place_items( "cleaning", 90, 7, 3, 7, 5, false, 0 ); @@ -5535,60 +5525,47 @@ ___DEEE|.R.|...,,...|sss\n", adjust_radiation( x, y, rng( 10, 30 ) ); } } - if( t_north == "haz_sar" && t_west == "haz_sar" ) { + if( dat.north() == "haz_sar" && dat.west() == "haz_sar" ) { rotate( 3 ); - } else if( t_north == "haz_sar" && t_east == "haz_sar" ) { + } else if( dat.north() == "haz_sar" && dat.east() == "haz_sar" ) { rotate( 0 ); - } else if( t_south == "haz_sar" && t_east == "haz_sar" ) { + } else if( dat.south() == "haz_sar" && dat.east() == "haz_sar" ) { rotate( 1 ); - } else if( t_west == "haz_sar" && t_south == "haz_sar" ) { + } else if( dat.west() == "haz_sar" && dat.south() == "haz_sar" ) { rotate( 2 ); } - } else if( terrain_type == "haz_sar" ) { - dat.fill_groundcover(); - if( ( t_south == "haz_sar_entrance" && t_east == "haz_sar" ) || ( t_north == "haz_sar" && - t_east == "haz_sar_entrance" ) || ( t_west == "haz_sar" && t_north == "haz_sar_entrance" ) || - ( t_south == "haz_sar" && t_west == "haz_sar_entrance" ) ) { + if( ( dat.south() == "haz_sar_entrance" && dat.east() == "haz_sar" ) || + ( dat.north() == "haz_sar" && + dat.east() == "haz_sar_entrance" ) || ( dat.west() == "haz_sar" && + dat.north() == "haz_sar_entrance" ) || + ( dat.south() == "haz_sar" && dat.west() == "haz_sar_entrance" ) ) { mapf::formatted_set_simple( this, 0, 0, - "\ - \n\ - fFFFFFFFFFFFFFFFFFFFFFF\n\ - f \n\ - f \n\ - f #################\n\ - f ##################\n\ - f ##...llrr..........\n\ - f ##..!!!!!!!!!.......\n\ - f ##..!!!!!!!!!&&&1111\n\ - f ##..!!!!!!!!x&&&....\n\ - f ##..!!!!!!!!!!!!....\n\ - f ##r.!!!!!!!!!!!!....\n\ - f ##r.!!!!!!!!!!!!....\n\ - f ##r.!!!!!!!!!!!!....\n\ - f ##r.!!!!!!!!!!!!..CC\n\ - f ##..!!!!!!!!!!!...CC\n\ - f ##..!!!!!!!!!!....C.\n\ - f ##..!!!!!!!!!.......\n\ - f ##..!!!!!!!!........\n\ - f ###.!!!!!!!x##.#####\n\ - f ####XXXXXXX###+#####\n\ - f ##!!!!!!!!x|x.r| \n\ - f |!!!!!!!!!%..r| |-\n\ - f |!!!!!!!!!%..r| |^\n", - mapf::ter_bind( "1 & V C G 5 % Q E , _ r X f F 6 x $ ^ . - | # t + = D w T S e o h c d l s !", - t_sewage_pipe, t_sewage_pump, t_vat, t_floor, t_grate, t_wall_glass, t_wall_glass, t_sewage, - t_elevator, t_pavement_y, t_pavement, t_floor, t_door_metal_locked, t_chainfence, t_chainfence, - t_console, t_console_broken, t_shrub, t_floor, t_floor, t_wall, t_wall, t_rock, t_floor, - t_door_c, t_door_metal_c, t_door_locked, t_window, t_floor, t_floor, t_floor, t_floor, t_floor, - t_floor, t_floor, t_floor, t_sidewalk, t_thconc_floor ), - mapf::furn_bind( "1 & V C G 5 % Q E , _ r X f F 6 x $ ^ . - | # t + = D w T S e o h c d l s !", - f_null, f_null, f_null, f_crate_c, f_null, f_null, f_null, f_null, - f_null, f_null, f_null, f_rack, f_null, f_null, f_null, - f_null, f_null, f_null, f_indoor_plant, f_null, f_null, f_null, f_null, f_table, - f_null, f_null, f_null, f_null, f_toilet, f_sink, f_fridge, f_bookcase, f_chair, - f_counter, f_desk, f_locker, f_null, f_null ) ); + " \n" + " fFFFFFFFFFFFFFFFFFFFFFF\n" + " f \n" + " f \n" + " f #################\n" + " f ##################\n" + " f ##...llrr..........\n" + " f ##..!!!!!!!!!.......\n" + " f ##..!!!!!!!!!&&&1111\n" + " f ##..!!!!!!!!x&&&....\n" + " f ##..!!!!!!!!!!!!....\n" + " f ##r.!!!!!!!!!!!!....\n" + " f ##r.!!!!!!!!!!!!....\n" + " f ##r.!!!!!!!!!!!!....\n" + " f ##r.!!!!!!!!!!!!..CC\n" + " f ##..!!!!!!!!!!!...CC\n" + " f ##..!!!!!!!!!!....C.\n" + " f ##..!!!!!!!!!.......\n" + " f ##..!!!!!!!!........\n" + " f ###.!!!!!!!x##.#####\n" + " f ####XXXXXXX###+#####\n" + " f ##!!!!!!!!x|x.r| \n" + " f |!!!!!!!!!%..r| |-\n" + " f |!!!!!!!!!%..r| |^\n", ter_key, fur_key ); spawn_item( 19, 22, "cleansuit" ); place_items( "cleaning", 85, 6, 11, 6, 14, false, 0 ); place_items( "tools_common", 85, 10, 6, 13, 6, false, 0 ); @@ -5601,17 +5578,17 @@ ___DEEE|.R.|...,,...|sss\n", adjust_radiation( x, y, rng( 10, 30 ) ); } } - if( t_west == "haz_sar_entrance" ) { + if( dat.west() == "haz_sar_entrance" ) { rotate( 1 ); if( x_in_y( 1, 4 ) ) { add_vehicle( vproto_id( "military_cargo_truck" ), 10, 11, 0 ); } - } else if( t_north == "haz_sar_entrance" ) { + } else if( dat.north() == "haz_sar_entrance" ) { rotate( 2 ); if( x_in_y( 1, 4 ) ) { add_vehicle( vproto_id( "military_cargo_truck" ), 12, 10, 90 ); } - } else if( t_east == "haz_sar_entrance" ) { + } else if( dat.east() == "haz_sar_entrance" ) { rotate( 3 ); if( x_in_y( 1, 4 ) ) { add_vehicle( vproto_id( "military_cargo_truck" ), 13, 12, 180 ); @@ -5620,50 +5597,35 @@ ___DEEE|.R.|...,,...|sss\n", add_vehicle( vproto_id( "military_cargo_truck" ), 11, 13, 270 ); } - } - - else if( ( t_west == "haz_sar_entrance" && t_north == "haz_sar" ) || - ( t_north == "haz_sar_entrance" && - t_east == "haz_sar" ) || ( t_west == "haz_sar" && t_south == "haz_sar_entrance" ) || - ( t_south == "haz_sar" && t_east == "haz_sar_entrance" ) ) { + } else if( ( dat.west() == "haz_sar_entrance" && dat.north() == "haz_sar" ) || + ( dat.north() == "haz_sar_entrance" && dat.east() == "haz_sar" ) || + ( dat.west() == "haz_sar" && dat.south() == "haz_sar_entrance" ) || + ( dat.south() == "haz_sar" && dat.east() == "haz_sar_entrance" ) ) { mapf::formatted_set_simple( this, 0, 0, - "\ -......|-+-|-+|...h..w f \n\ -.c....|.............w f \n\ -hd....+....ch.....hdw f \n\ -cc....|....cdd...ddd| f \n\ -ww-www|w+w-www--www-| f \n\ -ssssssssssssssssssss f \n\ -ssssssssssssssssssss f \n\ -___,____,____,____ss f \n\ -___,____,____,____ss f \n\ -___,____,____,____ss f \n\ -___,____,____,____ss f \n\ -___,____,____,____ss f \n\ -__________________ss f \n\ -__________________ss f \n\ -__________________ss f \n\ -__________________ss f \n\ -________,_________ss f \n\ -________,_________ss f \n\ -________,_________ss f \n\ -ssssssssssssssssssss f \n\ -FFFFFFFFFFFFFFFFFFFFFFf \n\ - \n\ - \n\ - \n", - mapf::ter_bind( "1 & V C G 5 % Q E , _ r X f F V H 6 x $ ^ . - | # t + = D w T S e o h c d l s", - t_sewage_pipe, t_sewage_pump, t_vat, t_floor, t_grate, t_wall_glass, t_wall_glass, t_sewage, - t_elevator, t_pavement_y, t_pavement, t_floor, t_door_metal_locked, t_chainfence, t_chainfence, - t_wall_glass, t_wall_glass, t_console, t_console_broken, t_shrub, t_floor, t_floor, - t_wall, t_wall, t_rock, t_floor, t_door_c, t_door_locked_alarm, t_door_locked, t_window, - t_floor, t_floor, t_floor, t_floor, t_floor, t_floor, t_floor, t_floor, t_sidewalk ), - mapf::furn_bind( "1 & V C G 5 % Q E , _ r X f F V H 6 x $ ^ . - | # t + = D w T S e o h c d l s", - f_null, f_null, f_null, f_crate_c, f_null, f_null, f_null, f_null, - f_null, f_null, f_null, f_rack, f_null, f_null, f_null, - f_null, f_null, f_null, f_null, f_null, f_indoor_plant, f_null, - f_null, f_null, f_null, f_table, f_null, f_null, f_null, f_null, - f_toilet, f_sink, f_fridge, f_bookcase, f_chair, f_counter, f_desk, f_locker, f_null ) ); + "......|-+-|-+|...h..w f \n" + ".c....|.............w f \n" + "hd....+....ch.....hdw f \n" + "cc....|....cdd...ddd| f \n" + "ww-www|w+w-www--www-| f \n" + "ssssssssssssssssssss f \n" + "ssssssssssssssssssss f \n" + "___,____,____,____ss f \n" + "___,____,____,____ss f \n" + "___,____,____,____ss f \n" + "___,____,____,____ss f \n" + "___,____,____,____ss f \n" + "__________________ss f \n" + "__________________ss f \n" + "__________________ss f \n" + "__________________ss f \n" + "________,_________ss f \n" + "________,_________ss f \n" + "________,_________ss f \n" + "ssssssssssssssssssss f \n" + "FFFFFFFFFFFFFFFFFFFFFFf \n" + " \n" + " \n" + " \n", ter_key, fur_key ); spawn_item( 1, 2, "id_military" ); place_items( "office", 85, 1, 1, 1, 3, false, 0 ); place_items( "office", 85, 11, 3, 13, 3, false, 0 ); @@ -5674,56 +5636,41 @@ FFFFFFFFFFFFFFFFFFFFFFf \n\ adjust_radiation( x, y, rng( 10, 30 ) ); } } - if( t_north == "haz_sar_entrance" ) { + if( dat.north() == "haz_sar_entrance" ) { rotate( 1 ); } - if( t_east == "haz_sar_entrance" ) { + if( dat.east() == "haz_sar_entrance" ) { rotate( 2 ); } - if( t_south == "haz_sar_entrance" ) { + if( dat.south() == "haz_sar_entrance" ) { rotate( 3 ); } - } - - else { + } else { mapf::formatted_set_simple( this, 0, 0, - "\ - \n\ -FFFFFFFFFFFFFFFFFFFFFFf \n\ - f \n\ - f \n\ -################ f \n\ -################# f \n\ -.V.V.V..........## f \n\ -.......|G|.......## f \n\ -11111111111111...## f \n\ -.......|G|.%515%.## f \n\ -...........%QQQ%.## f \n\ -..CC......x%QQQ%.## f \n\ -.CCC.......%QQQ%.## f \n\ -...........%QQQ%.## f \n\ -.....|.R|..%515%.## f \n\ -......EE|....1...## f \n\ -......EE|....&...## f \n\ -.....---|.......## f \n\ -...............## f \n\ -################ f \n\ -############### f \n\ - f \n\ -------|---|--|---www| f \n\ -.x6x..|S.T|l.|^.ddd.| f \n", - mapf::ter_bind( "R 1 & V C G 5 % Q E , _ r X f F 6 x $ ^ . - | # t + = D w T S e o h c d l s", - t_elevator_control_off, t_sewage_pipe, t_sewage_pump, t_vat, t_floor, t_grate, t_wall_glass, - t_wall_glass, t_sewage, t_elevator, t_pavement_y, t_pavement, t_floor, t_door_metal_locked, - t_chainfence, t_chainfence, t_console, t_console_broken, t_shrub, t_floor, t_floor, - t_wall, t_wall, t_rock, t_floor, t_door_c, t_door_locked_alarm, t_door_locked, t_window, - t_floor, t_floor, t_floor, t_floor, t_floor, t_floor, t_floor, t_floor, t_sidewalk ), - mapf::furn_bind( "R 1 & V C G 5 % Q E , _ r X f F 6 x $ ^ . - | # t + = D w T S e o h c d l s", - f_null, f_null, f_null, f_null, f_crate_c, f_null, f_null, - f_null, f_null, f_null, f_null, f_null, f_rack, f_null, - f_null, f_null, f_null, f_null, f_null, f_indoor_plant, f_null, - f_null, f_null, f_null, f_table, f_null, f_null, f_null, f_null, - f_toilet, f_sink, f_fridge, f_bookcase, f_chair, f_counter, f_desk, f_locker, f_null ) ); + " \n" + "FFFFFFFFFFFFFFFFFFFFFFf \n" + " f \n" + " f \n" + "################ f \n" + "################# f \n" + ".V.V.V..........## f \n" + ".......|G|.......## f \n" + "11111111111111...## f \n" + ".......|G|.%515%.## f \n" + "...........%QQQ%.## f \n" + "..CC......x%QQQ%.## f \n" + ".CCC.......%QQQ%.## f \n" + "...........%QQQ%.## f \n" + ".....|.R|..%515%.## f \n" + "......EE|....1...## f \n" + "......EE|....&...## f \n" + ".....---|.......## f \n" + "...............## f \n" + "################ f \n" + "############### f \n" + " f \n" + "------|---|--|---www| f \n" + ".x6x..|S.T|l.|^.ddd.| f \n", ter_key, fur_key ); place_items( "office", 85, 16, 23, 18, 23, false, 0 ); place_items( "cleaning", 85, 11, 23, 12, 23, false, 0 ); place_items( "robots", 90, 2, 11, 3, 11, false, 0 ); @@ -5749,55 +5696,44 @@ FFFFFFFFFFFFFFFFFFFFFFf \n\ tmpcomp->add_option( _( "COMMAND: REACTIVATE ELEVATOR" ), COMPACT_SRCF_ELEVATOR, 0 ); tmpcomp->add_option( _( "COMMAND: SEAL SRCF [4423]" ), COMPACT_SRCF_SEAL, 5 ); tmpcomp->add_failure( COMPFAIL_ALARM ); - if( t_west == "haz_sar" && t_north == "haz_sar" ) { + if( dat.west() == "haz_sar" && dat.north() == "haz_sar" ) { rotate( 1 ); } - if( t_east == "haz_sar" && t_north == "haz_sar" ) { + if( dat.east() == "haz_sar" && dat.north() == "haz_sar" ) { rotate( 2 ); } - if( t_east == "haz_sar" && t_south == "haz_sar" ) { + if( dat.east() == "haz_sar" && dat.south() == "haz_sar" ) { rotate( 3 ); } } - } else if( terrain_type == "haz_sar_entrance_b1" ) { - // Init to grass & dirt; dat.fill_groundcover(); mapf::formatted_set_simple( this, 0, 0, - "\ -#############...........\n\ -#############...........\n\ -|---------|#............\n\ -|_________|M............\n\ -|_________$.............\n\ -|_________$.............\n\ -|_________$.............\n\ -|_________$.............\n\ -|_________$.............\n\ -|_________|.............\n\ -|---------|#............\n\ -############............\n\ -###########.............\n\ -###########M......####..\n\ -#########|--$$$$$--|####\n\ -####|----|_________|----\n\ -####|___________________\n\ -####|___________________\n\ -####|___________________\n\ -####|___________________\n\ -####|___________________\n\ -####|___________________\n\ -####|___________________\n\ -####|-------------------\n", - mapf::ter_bind( "= + E & 6 H V c h d r M _ $ | - # . , l S T", t_door_metal_c, t_door_metal_o, - t_elevator, t_elevator_control_off, t_console, t_reinforced_glass, t_reinforced_glass, t_floor, - t_floor, t_floor, t_floor, t_gates_control_concrete, t_sewage, t_door_metal_locked, t_concrete_wall, - t_concrete_wall, t_rock, t_rock_floor, t_metal_floor, t_floor, t_floor, t_floor ), - mapf::furn_bind( "= + E & 6 H V c h d r M _ $ | - # . , l S T", f_null, f_null, - f_null, f_null, f_null, f_null, f_null, - f_counter, f_chair, f_desk, f_rack, f_null, f_null, f_null, - f_null, f_null, f_null, f_null, f_null, f_locker, f_sink, f_toilet ) ); + "#############...........\n" + "#############...........\n" + "|---------|#............\n" + "|_________|M............\n" + "|_________$.............\n" + "|_________$.............\n" + "|_________$.............\n" + "|_________$.............\n" + "|_________$.............\n" + "|_________|.............\n" + "|---------|#............\n" + "############............\n" + "###########.............\n" + "###########M......####..\n" + "#########|--$$$$$--|####\n" + "####|----|_________|----\n" + "####|___________________\n" + "####|___________________\n" + "####|___________________\n" + "####|___________________\n" + "####|___________________\n" + "####|___________________\n" + "####|___________________\n" + "####|-------------------\n", b_ter_key, b_fur_key ); for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( this->ter( i, j ) == t_rock_floor ) { @@ -5808,7 +5744,7 @@ FFFFFFFFFFFFFFFFFFFFFFf \n\ place_spawns( GROUP_PLAIN, 80, i, j, i, j, 1, true ); } if( this->ter( i, j ) != t_metal_floor ) { - adjust_radiation( x, y, rng( 10, 70 ) ); + adjust_radiation( i, j, rng( 10, 70 ) ); } if( this->ter( i, j ) == t_sewage ) { if( one_in( 2 ) ) { @@ -5829,57 +5765,47 @@ FFFFFFFFFFFFFFFFFFFFFFf \n\ } } } - if( t_north == "haz_sar_b1" && t_west == "haz_sar_b1" ) { + if( dat.north() == "haz_sar_b1" && dat.west() == "haz_sar_b1" ) { rotate( 3 ); - } else if( t_north == "haz_sar_b1" && t_east == "haz_sar_b1" ) { + } else if( dat.north() == "haz_sar_b1" && dat.east() == "haz_sar_b1" ) { rotate( 0 ); - } else if( t_south == "haz_sar_b1" && t_east == "haz_sar_b1" ) { + } else if( dat.south() == "haz_sar_b1" && dat.east() == "haz_sar_b1" ) { rotate( 1 ); - } else if( t_west == "haz_sar_b1" && t_south == "haz_sar_b1" ) { + } else if( dat.west() == "haz_sar_b1" && dat.south() == "haz_sar_b1" ) { rotate( 2 ); } - } else if( terrain_type == "haz_sar_b1" ) { - dat.fill_groundcover(); - if( ( t_south == "haz_sar_entrance_b1" && t_east == "haz_sar_b1" ) || ( t_north == "haz_sar_b1" && - t_east == "haz_sar_entrance_b1" ) || ( t_west == "haz_sar_b1" && - t_north == "haz_sar_entrance_b1" ) || - ( t_south == "haz_sar_b1" && t_west == "haz_sar_entrance_b1" ) ) { + if( ( dat.south() == "haz_sar_entrance_b1" && dat.east() == "haz_sar_b1" ) || + ( dat.north() == "haz_sar_b1" && + dat.east() == "haz_sar_entrance_b1" ) || ( dat.west() == "haz_sar_b1" && + dat.north() == "haz_sar_entrance_b1" ) || + ( dat.south() == "haz_sar_b1" && dat.west() == "haz_sar_entrance_b1" ) ) { mapf::formatted_set_simple( this, 0, 0, - "\ -########################\n\ -####################.##.\n\ -####|----------|###.....\n\ -####|__________|M.......\n\ -####|__________$........\n\ -####|__________$........\n\ -####|__________$........\n\ -####|__________$........\n\ -####|__________$........\n\ -####|__________|........\n\ -####|----------|........\n\ -###############.........\n\ -##############..........\n\ -#############...........\n\ -############...........#\n\ -|---------|#.........###\n\ -|_________|M.........###\n\ -|_________$..........|--\n\ -|_________$..........|r,\n\ -|_________$..........|r,\n\ -|_________$..........|r,\n\ -|_________$..........|,,\n\ -|_________|..........|,,\n\ -|---------|#.........|-$\n", - mapf::ter_bind( "= + E & 6 H V c h d r M _ $ | - # . , l S T", t_door_metal_c, t_door_metal_o, - t_elevator, t_elevator_control_off, t_console, t_reinforced_glass, t_reinforced_glass, t_floor, - t_floor, t_floor, t_floor, t_gates_control_concrete, t_sewage, t_door_metal_locked, t_concrete_wall, - t_concrete_wall, t_rock, t_rock_floor, t_metal_floor, t_floor, t_floor, t_floor ), - mapf::furn_bind( "= + E & 6 H V c h d r M _ $ | - # . , l S T", f_null, f_null, - f_null, f_null, f_null, f_null, f_null, - f_counter, f_chair, f_desk, f_rack, f_null, f_null, f_null, - f_null, f_null, f_null, f_null, f_null, f_locker, f_sink, f_toilet ) ); + "########################\n" + "####################.##.\n" + "####|----------|###.....\n" + "####|__________|M.......\n" + "####|__________$........\n" + "####|__________$........\n" + "####|__________$........\n" + "####|__________$........\n" + "####|__________$........\n" + "####|__________|........\n" + "####|----------|........\n" + "###############.........\n" + "##############..........\n" + "#############...........\n" + "############...........#\n" + "|---------|#.........###\n" + "|_________|M.........###\n" + "|_________$..........|--\n" + "|_________$..........|r,\n" + "|_________$..........|r,\n" + "|_________$..........|r,\n" + "|_________$..........|,,\n" + "|_________|..........|,,\n" + "|---------|#.........|-$\n", b_ter_key, b_fur_key ); for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( this->furn( i, j ) == f_rack ) { @@ -5894,7 +5820,7 @@ FFFFFFFFFFFFFFFFFFFFFFf \n\ } } if( this->ter( i, j ) != t_metal_floor ) { - adjust_radiation( x, y, rng( 10, 70 ) ); + adjust_radiation( i, j, rng( 10, 70 ) ); } if( this->ter( i, j ) == t_sewage ) { if( one_in( 2 ) ) { @@ -5915,53 +5841,42 @@ FFFFFFFFFFFFFFFFFFFFFFf \n\ } } } - if( t_west == "haz_sar_entrance_b1" ) { + if( dat.west() == "haz_sar_entrance_b1" ) { rotate( 1 ); - } else if( t_north == "haz_sar_entrance_b1" ) { + } else if( dat.north() == "haz_sar_entrance_b1" ) { rotate( 2 ); - } else if( t_east == "haz_sar_entrance_b1" ) { + } else if( dat.east() == "haz_sar_entrance_b1" ) { rotate( 3 ); } - } - - else if( ( t_west == "haz_sar_entrance_b1" && t_north == "haz_sar_b1" ) || - ( t_north == "haz_sar_entrance_b1" && t_east == "haz_sar_b1" ) || ( t_west == "haz_sar_b1" && - t_south == "haz_sar_entrance_b1" ) || - ( t_south == "haz_sar_b1" && t_east == "haz_sar_entrance_b1" ) ) { + } else if( ( dat.west() == "haz_sar_entrance_b1" && dat.north() == "haz_sar_b1" ) || + ( dat.north() == "haz_sar_entrance_b1" && dat.east() == "haz_sar_b1" ) || + ( dat.west() == "haz_sar_b1" && dat.south() == "haz_sar_entrance_b1" ) || + ( dat.south() == "haz_sar_b1" && dat.east() == "haz_sar_entrance_b1" ) ) { mapf::formatted_set_simple( this, 0, 0, - "\ -....M..|,,,,|........###\n\ -.......|-HH=|.........##\n\ -.....................###\n\ -......................##\n\ -.......................#\n\ -......................##\n\ -.......................#\n\ -......................##\n\ -......................##\n\ -.......................#\n\ -.....................###\n\ -....................####\n\ -..................######\n\ -###....M.........#######\n\ -#####|--$$$$$--|########\n\ -|----|_________|----|###\n\ -|___________________|###\n\ -|___________________|###\n\ -|___________________|###\n\ -|___________________|###\n\ -|___________________|###\n\ -|___________________|###\n\ -|___________________|###\n\ -|-------------------|###\n", - mapf::ter_bind( "= + E & 6 H V c h d r M _ $ | - # . , l S T", t_door_metal_c, t_door_metal_o, - t_elevator, t_elevator_control_off, t_console, t_reinforced_glass, t_reinforced_glass, t_floor, - t_floor, t_floor, t_floor, t_gates_control_concrete, t_sewage, t_door_metal_locked, t_concrete_wall, - t_concrete_wall, t_rock, t_rock_floor, t_metal_floor, t_floor, t_floor, t_floor ), - mapf::furn_bind( "= + E & 6 H V c h d r M _ $ | - # . , l S T", f_null, f_null, - f_null, f_null, f_null, f_null, f_null, - f_counter, f_chair, f_desk, f_rack, f_null, f_null, f_null, - f_null, f_null, f_null, f_null, f_null, f_locker, f_sink, f_toilet ) ); + "....M..|,,,,|........###\n" + ".......|-HH=|.........##\n" + ".....................###\n" + "......................##\n" + ".......................#\n" + "......................##\n" + ".......................#\n" + "......................##\n" + "......................##\n" + ".......................#\n" + ".....................###\n" + "....................####\n" + "..................######\n" + "###....M.........#######\n" + "#####|--$$$$$--|########\n" + "|----|_________|----|###\n" + "|___________________|###\n" + "|___________________|###\n" + "|___________________|###\n" + "|___________________|###\n" + "|___________________|###\n" + "|___________________|###\n" + "|___________________|###\n" + "|-------------------|###\n", b_ter_key, b_fur_key ); for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( this->ter( i, j ) == t_rock_floor ) { @@ -5972,7 +5887,7 @@ FFFFFFFFFFFFFFFFFFFFFFf \n\ place_spawns( GROUP_PLAIN, 80, i, j, i, j, 1, true ); } if( this->ter( i, j ) != t_metal_floor ) { - adjust_radiation( x, y, rng( 10, 70 ) ); + adjust_radiation( i, j, rng( 10, 70 ) ); } if( this->ter( i, j ) == t_sewage ) { if( one_in( 2 ) ) { @@ -5993,52 +5908,41 @@ FFFFFFFFFFFFFFFFFFFFFFf \n\ } } } - if( t_north == "haz_sar_entrance_b1" ) { + if( dat.north() == "haz_sar_entrance_b1" ) { rotate( 1 ); } - if( t_east == "haz_sar_entrance_b1" ) { + if( dat.east() == "haz_sar_entrance_b1" ) { rotate( 2 ); } - if( t_south == "haz_sar_entrance_b1" ) { + if( dat.south() == "haz_sar_entrance_b1" ) { rotate( 3 ); } - } - - else { + } else { mapf::formatted_set_simple( this, 0, 0, - "\ -########################\n\ -.#######################\n\ -...#..#|----------|#####\n\ -.......|__________|#####\n\ -.......$__________|#####\n\ -.......$__________|#####\n\ -.......$__________|#####\n\ -.......$__________|#####\n\ -.......$__________|#####\n\ -......M|__________|#####\n\ -......#|----------|#####\n\ -.....###################\n\ -....####|---|----|######\n\ -###.##|-|,,,|,S,T|######\n\ -#|-=-||&|,,,+,,,,|######\n\ -#|,,l|EE+,,,|----|-|####\n\ -#|,,l|EE+,,,|ddd,,l|####\n\ --|-$-|--|,,,V,h,,,l|####\n\ -,,,,,|,,=,,,V,,,,,,|####\n\ -,,,,,|rr|,,,V,,,,c,|####\n\ -,,,,,|--|,,,|,,,hc,|####\n\ -,,,,,+,,,,,,+,,c6c,|####\n\ -,,,,M|,,,,,,|r,,,,,|####\n\ -$$$$-|-|=HH-|-HHHH-|####\n", - mapf::ter_bind( "= + E & 6 H V c h d r M _ $ | - # . , l S T", t_door_metal_c, t_door_metal_o, - t_elevator, t_elevator_control_off, t_console, t_reinforced_glass, t_reinforced_glass, t_floor, - t_floor, t_floor, t_floor, t_gates_control_concrete, t_sewage, t_door_metal_locked, t_concrete_wall, - t_concrete_wall, t_rock, t_rock_floor, t_metal_floor, t_floor, t_floor, t_floor ), - mapf::furn_bind( "= + E & 6 H V c h d r M _ $ | - # . , l S T", f_null, f_null, - f_null, f_null, f_null, f_null, f_null, - f_counter, f_chair, f_desk, f_rack, f_null, f_null, f_null, - f_null, f_null, f_null, f_null, f_null, f_locker, f_sink, f_toilet ) ); + "########################\n" + ".#######################\n" + "...#..#|----------|#####\n" + ".......|__________|#####\n" + ".......$__________|#####\n" + ".......$__________|#####\n" + ".......$__________|#####\n" + ".......$__________|#####\n" + ".......$__________|#####\n" + "......M|__________|#####\n" + "......#|----------|#####\n" + ".....###################\n" + "....####|---|----|######\n" + "###.##|-|,,,|,S,T|######\n" + "#|-=-||&|,,,+,,,,|######\n" + "#|,,l|EE+,,,|----|-|####\n" + "#|,,l|EE+,,,|ddd,,l|####\n" + "-|-$-|--|,,,V,h,,,l|####\n" + ",,,,,|,,=,,,V,,,,,,|####\n" + ",,,,,|rr|,,,V,,,,c,|####\n" + ",,,,,|--|,,,|,,,hc,|####\n" + ",,,,,+,,,,,,+,,c6c,|####\n" + ",,,,M|,,,,,,|r,,,,,|####\n" + "$$$$-|-|=HH-|-HHHH-|####\n", b_ter_key, b_fur_key ); spawn_item( 3, 16, "sarcophagus_access_code" ); for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { @@ -6059,7 +5963,7 @@ FFFFFFFFFFFFFFFFFFFFFFf \n\ place_spawns( GROUP_PLAIN, 80, i, j, i, j, 1, true ); } if( this->ter( i, j ) != t_metal_floor ) { - adjust_radiation( x, y, rng( 10, 70 ) ); + adjust_radiation( i, j, rng( 10, 70 ) ); } if( this->ter( i, j ) == t_sewage ) { if( one_in( 2 ) ) { @@ -6080,669 +5984,669 @@ FFFFFFFFFFFFFFFFFFFFFFf \n\ } } } - tmpcomp = add_computer( tripoint( 16, 21, abs_sub.z ), _( "SRCF Security Terminal" ), 0 ); + tmpcomp = add_computer( tripoint( 16, 21, abs_sub.z ), + _( "SRCF Security Terminal" ), 0 ); tmpcomp->add_option( _( "Security Reminder [1055]" ), COMPACT_SR1_MESS, 0 ); tmpcomp->add_option( _( "Security Reminder [1056]" ), COMPACT_SR2_MESS, 0 ); tmpcomp->add_option( _( "Security Reminder [1057]" ), COMPACT_SR3_MESS, 0 ); //tmpcomp->add_option(_("Security Reminder [1058]"), COMPACT_SR4_MESS, 0); limited to 9 computer options tmpcomp->add_option( _( "EPA: Report All Potential Containment Breaches [3873643]" ), COMPACT_SRCF_1_MESS, 2 ); - tmpcomp->add_option( _( "SRCF: Internal Memo, EPA [2918024]" ), COMPACT_SRCF_2_MESS, 2 ); - tmpcomp->add_option( _( "CDC: Internal Memo, Standby [2918115]" ), COMPACT_SRCF_3_MESS, 2 ); + tmpcomp->add_option( _( "SRCF: Internal Memo, EPA [2918024]" ), + COMPACT_SRCF_2_MESS, 2 ); + tmpcomp->add_option( _( "CDC: Internal Memo, Standby [2918115]" ), + COMPACT_SRCF_3_MESS, 2 ); tmpcomp->add_option( _( "USARMY: SEAL SRCF [987167]" ), COMPACT_SRCF_SEAL_ORDER, 4 ); tmpcomp->add_option( _( "COMMAND: REACTIVATE ELEVATOR" ), COMPACT_SRCF_ELEVATOR, 0 ); tmpcomp->add_failure( COMPFAIL_ALARM ); - if( t_west == "haz_sar_b1" && t_north == "haz_sar_b1" ) { + if( dat.west() == "haz_sar_b1" && dat.north() == "haz_sar_b1" ) { rotate( 1 ); } - if( t_east == "haz_sar_b1" && t_north == "haz_sar_b1" ) { + if( dat.east() == "haz_sar_b1" && dat.north() == "haz_sar_b1" ) { rotate( 2 ); } - if( t_east == "haz_sar_b1" && t_south == "haz_sar_b1" ) { + if( dat.east() == "haz_sar_b1" && dat.south() == "haz_sar_b1" ) { rotate( 3 ); } } + } +} - } else { - terrain_type_found = false; - } - - // MSVC can't handle a single "if/else if" with this many clauses. Hack to - // break the clause in two so MSVC compiles work, until this file is refactored. - // "please, shoot me now" - refactorer - if( !terrain_type_found ) { - if( terrain_type == "megastore_entrance" ) { - - fill_background( this, t_floor ); - // Construct facing north; below, we'll rotate to face road - line( this, t_wall_glass, 0, 0, SEEX * 2 - 1, 0 ); - ter_set( SEEX, 0, t_door_glass_c ); - ter_set( SEEX + 1, 0, t_door_glass_c ); - //Vending - std::vector vset; - int vnum = rng( 2, 6 ); - for( int a = 0; a < 21; a++ ) { - vset.push_back( a ); - } - std::shuffle( vset.begin(), vset.end(), rng_get_engine() ); - for( int a = 0; a < vnum; a++ ) { - if( vset[a] < 12 ) { - if( one_in( 2 ) ) { - place_vending( vset[a], 1, "vending_food" ); - } else { - place_vending( vset[a], 1, "vending_drink" ); - } +void map::draw_megastore( const oter_id &terrain_type, mapgendata &dat, const time_point &/*when*/, + const float /*density*/ ) +{ + if( terrain_type == "megastore_entrance" ) { + fill_background( this, t_floor ); + // Construct facing north; below, we'll rotate to face road + line( this, t_wall_glass, 0, 0, EAST_EDGE, 0 ); + ter_set( SEEX, 0, t_door_glass_c ); + ter_set( SEEX + 1, 0, t_door_glass_c ); + //Vending + std::vector vset; + vset.reserve( 21 ); + int vnum = rng( 2, 6 ); + for( int a = 0; a < 21; a++ ) { + vset.push_back( a ); + } + std::shuffle( vset.begin(), vset.end(), rng_get_engine() ); + for( int a = 0; a < vnum; a++ ) { + if( vset[a] < 12 ) { + if( one_in( 2 ) ) { + place_vending( vset[a], 1, "vending_food" ); } else { - if( one_in( 2 ) ) { - place_vending( vset[a] + 2, 1, "vending_food" ); - } else { - place_vending( vset[a] + 2, 1, "vending_drink" ); - } + place_vending( vset[a], 1, "vending_drink" ); + } + } else { + if( one_in( 2 ) ) { + place_vending( vset[a] + 2, 1, "vending_food" ); + } else { + place_vending( vset[a] + 2, 1, "vending_drink" ); } } - vset.clear(); - // Long checkout lanes - for( int x = 2; x <= 18; x += 4 ) { - line_furn( this, f_counter, x, 4, x, 14 ); - line_furn( this, f_rack, x + 3, 4, x + 3, 14 ); - place_items( "snacks", 80, x + 3, 4, x + 3, 14, false, 0 ); - place_items( "magazines", 70, x + 3, 4, x + 3, 14, false, 0 ); - } - if( const auto p = random_point( *this, [this]( const tripoint & n ) { - return ter( n ) == t_floor; - } ) ) { - place_spawns( GROUP_PLAIN, 1, p->x, p->y, p->x, p->y, 1, true ); - } - // Finally, figure out where the road is; construct our entrance facing that. - std::vector faces_road; - if( is_ot_type( "road", t_east ) || is_ot_type( "bridge", t_east ) ) { - rotate( 1 ); - } - if( is_ot_type( "road", t_south ) || is_ot_type( "bridge", t_south ) ) { - rotate( 2 ); - } - if( is_ot_type( "road", t_west ) || is_ot_type( "bridge", t_west ) ) { - rotate( 3 ); - } - - } else if( terrain_type == "megastore" ) { - - square( this, t_floor, 0, 0, SEEX * 2 - 1, SEEY * 2 - 1 ); - - // Randomly pick contents - switch( rng( 1, 5 ) ) { - case 1: { // Groceries - bool fridge = false; - for( int x = rng( 2, 3 ); x < SEEX * 2 - 1; x += 3 ) { - for( int y = 2; y <= SEEY; y += SEEY - 2 ) { + } + vset.clear(); + // Long checkout lanes + for( int x = 2; x <= 18; x += 4 ) { + line_furn( this, f_counter, x, 4, x, 14 ); + line_furn( this, f_rack, x + 3, 4, x + 3, 14 ); + place_items( "snacks", 80, x + 3, 4, x + 3, 14, false, 0 ); + place_items( "magazines", 70, x + 3, 4, x + 3, 14, false, 0 ); + } + if( const auto p = random_point( *this, [this]( const tripoint & n ) { + return ter( n ) == t_floor; + } ) ) { + place_spawns( GROUP_PLAIN, 1, p->x, p->y, p->x, p->y, 1, true ); + } + // Finally, figure out where the road is; construct our entrance facing that. + std::vector faces_road; + if( is_ot_type( "road", dat.east() ) || is_ot_type( "bridge", dat.east() ) ) { + rotate( 1 ); + } + if( is_ot_type( "road", dat.south() ) || is_ot_type( "bridge", dat.south() ) ) { + rotate( 2 ); + } + if( is_ot_type( "road", dat.west() ) || is_ot_type( "bridge", dat.west() ) ) { + rotate( 3 ); + } + } else if( terrain_type == "megastore" ) { + square( this, t_floor, 0, 0, EAST_EDGE, SOUTH_EDGE ); + // Randomly pick contents + switch( rng( 1, 5 ) ) { + case 1: { // Groceries + bool fridge = false; + for( int x = rng( 2, 3 ); x < EAST_EDGE; x += 3 ) { + for( int y = 2; y <= SEEY; y += SEEY - 2 ) { + if( one_in( 3 ) ) { + fridge = !fridge; + } + if( fridge ) { + line_furn( this, f_glass_fridge, x, y, x, y + SEEY - 4 ); if( one_in( 3 ) ) { - fridge = !fridge; + place_items( "fridgesnacks", 80, x, y, x, y + SEEY - 4, false, 0 ); + } else { + place_items( "fridge", 70, x, y, x, y + SEEY - 4, false, 0 ); } - if( fridge ) { - line_furn( this, f_glass_fridge, x, y, x, y + SEEY - 4 ); - if( one_in( 3 ) ) { - place_items( "fridgesnacks", 80, x, y, x, y + SEEY - 4, false, 0 ); - } else { - place_items( "fridge", 70, x, y, x, y + SEEY - 4, false, 0 ); - } + } else { + line_furn( this, f_rack, x, y, x, y + SEEY - 4 ); + if( one_in( 3 ) ) { + place_items( "cannedfood", 78, x, y, x, y + SEEY - 4, false, 0 ); + } else if( one_in( 2 ) ) { + place_items( "pasta", 82, x, y, x, y + SEEY - 4, false, 0 ); + } else if( one_in( 2 ) ) { + place_items( "produce", 65, x, y, x, y + SEEY - 4, false, 0 ); } else { - line_furn( this, f_rack, x, y, x, y + SEEY - 4 ); - if( one_in( 3 ) ) { - place_items( "cannedfood", 78, x, y, x, y + SEEY - 4, false, 0 ); - } else if( one_in( 2 ) ) { - place_items( "pasta", 82, x, y, x, y + SEEY - 4, false, 0 ); - } else if( one_in( 2 ) ) { - place_items( "produce", 65, x, y, x, y + SEEY - 4, false, 0 ); - } else { - place_items( "snacks", 72, x, y, x, y + SEEY - 4, false, 0 ); - } + place_items( "snacks", 72, x, y, x, y + SEEY - 4, false, 0 ); } } } } + } + break; + case 2: // Hardware + for( int x = 2; x <= 22; x += 4 ) { + line_furn( this, f_rack, x, 4, x, SEEY * 2 - 5 ); + if( one_in( 3 ) ) { + place_items( "tools_carpentry", 70, x, 4, x, SEEY * 2 - 5, false, 0 ); + } else if( one_in( 2 ) ) { + place_items( "tools_construction", 70, x, 4, x, SEEY * 2 - 5, false, 0 ); + } else if( one_in( 3 ) ) { + place_items( "hardware", 70, x, 4, x, SEEY * 2 - 5, false, 0 ); + } else { + place_items( "mischw", 70, x, 4, x, SEEY * 2 - 5, false, 0 ); + } + } break; - case 2: // Hardware - for( int x = 2; x <= 22; x += 4 ) { - line_furn( this, f_rack, x, 4, x, SEEY * 2 - 5 ); - if( one_in( 3 ) ) { - place_items( "tools_carpentry", 70, x, 4, x, SEEY * 2 - 5, false, 0 ); + case 3: // Clothing + for( int x = 2; x < SEEX * 2; x += 6 ) { + for( int y = 3; y <= 9; y += 6 ) { + square_furn( this, f_rack, x, y, x + 1, y + 1 ); + if( one_in( 2 ) ) { + place_items( "shirts", 75, x, y, x + 1, y + 1, false, 0 ); } else if( one_in( 2 ) ) { - place_items( "tools_construction", 70, x, 4, x, SEEY * 2 - 5, false, 0 ); - } else if( one_in( 3 ) ) { - place_items( "hardware", 70, x, 4, x, SEEY * 2 - 5, false, 0 ); + place_items( "pants", 72, x, y, x + 1, y + 1, false, 0 ); + } else if( one_in( 2 ) ) { + place_items( "jackets", 65, x, y, x + 1, y + 1, false, 0 ); } else { - place_items( "mischw", 70, x, 4, x, SEEY * 2 - 5, false, 0 ); + place_items( "winter", 62, x, y, x + 1, y + 1, false, 0 ); } } - break; - case 3: // Clothing - for( int x = 2; x < SEEX * 2; x += 6 ) { - for( int y = 3; y <= 9; y += 6 ) { - square_furn( this, f_rack, x, y, x + 1, y + 1 ); - if( one_in( 2 ) ) { - place_items( "shirts", 75, x, y, x + 1, y + 1, false, 0 ); - } else if( one_in( 2 ) ) { - place_items( "pants", 72, x, y, x + 1, y + 1, false, 0 ); - } else if( one_in( 2 ) ) { - place_items( "jackets", 65, x, y, x + 1, y + 1, false, 0 ); - } else { - place_items( "winter", 62, x, y, x + 1, y + 1, false, 0 ); - } - } + } + for( int y = 13; y <= SEEY * 2 - 2; y += 3 ) { + line_furn( this, f_rack, 2, y, SEEX * 2 - 3, y ); + if( one_in( 3 ) ) { + place_items( "shirts", 75, 2, y, SEEX * 2 - 3, y, false, 0 ); + } else if( one_in( 2 ) ) { + place_items( "shoes", 75, 2, y, SEEX * 2 - 3, y, false, 0 ); + } else if( one_in( 2 ) ) { + place_items( "bags", 75, 2, y, SEEX * 2 - 3, y, false, 0 ); + } else { + place_items( "allclothes", 75, 2, y, SEEX * 2 - 3, y, false, 0 ); } - for( int y = 13; y <= SEEY * 2 - 2; y += 3 ) { - line_furn( this, f_rack, 2, y, SEEX * 2 - 3, y ); + } + break; + case 4: // Cleaning and soft drugs and novels and junk + for( int x = rng( 2, 3 ); x < EAST_EDGE; x += 3 ) { + for( int y = 2; y <= SEEY; y += SEEY - 2 ) { + line_furn( this, f_rack, x, y, x, y + SEEY - 4 ); if( one_in( 3 ) ) { - place_items( "shirts", 75, 2, y, SEEX * 2 - 3, y, false, 0 ); + place_items( "cleaning", 78, x, y, x, y + SEEY - 4, false, 0 ); } else if( one_in( 2 ) ) { - place_items( "shoes", 75, 2, y, SEEX * 2 - 3, y, false, 0 ); - } else if( one_in( 2 ) ) { - place_items( "bags", 75, 2, y, SEEX * 2 - 3, y, false, 0 ); + place_items( "softdrugs", 72, x, y, x, y + SEEY - 4, false, 0 ); } else { - place_items( "allclothes", 75, 2, y, SEEX * 2 - 3, y, false, 0 ); + place_items( "novels", 84, x, y, x, y + SEEY - 4, false, 0 ); } } - break; - case 4: // Cleaning and soft drugs and novels and junk - for( int x = rng( 2, 3 ); x < SEEX * 2 - 1; x += 3 ) { - for( int y = 2; y <= SEEY; y += SEEY - 2 ) { - line_furn( this, f_rack, x, y, x, y + SEEY - 4 ); - if( one_in( 3 ) ) { - place_items( "cleaning", 78, x, y, x, y + SEEY - 4, false, 0 ); - } else if( one_in( 2 ) ) { - place_items( "softdrugs", 72, x, y, x, y + SEEY - 4, false, 0 ); - } else { - place_items( "novels", 84, x, y, x, y + SEEY - 4, false, 0 ); - } - } - } - break; - case 5: // Sporting goods - for( int x = rng( 2, 3 ); x < SEEX * 2 - 1; x += 3 ) { - for( int y = 2; y <= SEEY; y += SEEY - 2 ) { - line_furn( this, f_rack, x, y, x, y + SEEY - 4 ); - if( one_in( 2 ) ) { - place_items( "sports", 72, x, y, x, y + SEEY - 4, false, 0 ); - } else if( one_in( 10 ) ) { - place_items( "guns_rifle_common", 20, x, y, x, y + SEEY - 4, false, 0 ); - } else { - place_items( "camping", 68, x, y, x, y + SEEY - 4, false, 0 ); - } + } + break; + case 5: // Sporting goods + for( int x = rng( 2, 3 ); x < EAST_EDGE; x += 3 ) { + for( int y = 2; y <= SEEY; y += SEEY - 2 ) { + line_furn( this, f_rack, x, y, x, y + SEEY - 4 ); + if( one_in( 2 ) ) { + place_items( "sports", 72, x, y, x, y + SEEY - 4, false, 0 ); + } else if( one_in( 10 ) ) { + place_items( "guns_rifle_common", 20, x, y, x, y + SEEY - 4, false, 0 ); + } else { + place_items( "camping", 68, x, y, x, y + SEEY - 4, false, 0 ); } } - break; - } - - // Add some spawns - for( int i = 0; i < 15; i++ ) { - int x = rng( 0, SEEX * 2 - 1 ), y = rng( 0, SEEY * 2 - 1 ); - if( ter( x, y ) == t_floor ) { - place_spawns( GROUP_PLAIN, 1, x, y, x, y, 1, true ); } - } - // Rotate randomly... - rotate( rng( 0, 3 ) ); - // ... then place walls as needed. - if( t_north != "megastore_entrance" && t_north != "megastore" ) { - line( this, t_wall, 0, 0, SEEX * 2 - 1, 0 ); - } - if( t_east != "megastore_entrance" && t_east != "megastore" ) { - line( this, t_wall, SEEX * 2 - 1, 0, SEEX * 2 - 1, SEEY * 2 - 1 ); - } - if( t_south != "megastore_entrance" && t_south != "megastore" ) { - line( this, t_wall, 0, SEEY * 2 - 1, SEEX * 2 - 1, SEEY * 2 - 1 ); - } - if( t_west != "megastore_entrance" && t_west != "megastore" ) { - line( this, t_wall, 0, 0, 0, SEEY * 2 - 1 ); - } + break; + } - } else if( terrain_type == "fema_entrance" ) { + // Add some spawns + for( int i = 0; i < 15; i++ ) { + int x = rng( 0, EAST_EDGE ), y = rng( 0, SOUTH_EDGE ); + if( ter( x, y ) == t_floor ) { + place_spawns( GROUP_PLAIN, 1, x, y, x, y, 1, true ); + } + } + // Rotate randomly... + rotate( rng( 0, 3 ) ); + // ... then place walls as needed. + if( dat.north() != "megastore_entrance" && dat.north() != "megastore" ) { + line( this, t_wall, 0, 0, EAST_EDGE, 0 ); + } + if( dat.east() != "megastore_entrance" && dat.east() != "megastore" ) { + line( this, t_wall, EAST_EDGE, 0, EAST_EDGE, SOUTH_EDGE ); + } + if( dat.south() != "megastore_entrance" && dat.south() != "megastore" ) { + line( this, t_wall, 0, SOUTH_EDGE, EAST_EDGE, SOUTH_EDGE ); + } + if( dat.west() != "megastore_entrance" && dat.west() != "megastore" ) { + line( this, t_wall, 0, 0, 0, SOUTH_EDGE ); + } + } +} - fill_background( this, t_dirt ); - // Left wall +void map::draw_fema( const oter_id &terrain_type, mapgendata &dat, const time_point &/*when*/, + const float /*density*/ ) +{ + if( terrain_type == "fema_entrance" ) { + fill_background( this, t_dirt ); + // Left wall + line( this, t_chainfence, 0, 23, 23, 23 ); + line( this, t_chaingate_l, 10, 23, 14, 23 ); + line( this, t_chainfence, 0, 0, 0, 23 ); + line( this, t_chainfence, 23, 0, 23, 23 ); + line( this, t_fence_barbed, 1, 4, 9, 12 ); + line( this, t_fence_barbed, 1, 5, 8, 12 ); + line( this, t_fence_barbed, 22, 4, 15, 12 ); + line( this, t_fence_barbed, 22, 5, 16, 12 ); + square( this, t_wall_wood, 2, 13, 9, 21 ); + square( this, t_floor, 3, 14, 8, 20 ); + line( this, t_reinforced_glass, 5, 13, 6, 13 ); + line( this, t_reinforced_glass, 5, 21, 6, 21 ); + line( this, t_reinforced_glass, 9, 15, 9, 18 ); + line( this, t_door_c, 9, 16, 9, 17 ); + line_furn( this, f_locker, 3, 16, 3, 18 ); + line_furn( this, f_chair, 5, 16, 5, 18 ); + line_furn( this, f_desk, 6, 16, 6, 18 ); + line_furn( this, f_chair, 7, 16, 7, 18 ); + place_items( "office", 80, 3, 16, 3, 18, false, 0 ); + place_items( "office", 80, 6, 16, 6, 18, false, 0 ); + place_spawns( GROUP_MIL_WEAK, 1, 3, 15, 4, 17, 0.2 ); + + // Rotate to face the road + if( is_ot_type( "road", dat.east() ) || is_ot_type( "bridge", dat.east() ) ) { + rotate( 1 ); + } + if( is_ot_type( "road", dat.south() ) || is_ot_type( "bridge", dat.south() ) ) { + rotate( 2 ); + } + if( is_ot_type( "road", dat.west() ) || is_ot_type( "bridge", dat.west() ) ) { + rotate( 3 ); + } + } else if( terrain_type == "fema" ) { + fill_background( this, t_dirt ); + // check all sides for non fema/fema entrance, place fence on those sides + if( dat.north() != "fema" && dat.north() != "fema_entrance" ) { + line( this, t_chainfence, 0, 0, 23, 0 ); + } + if( dat.south() != "fema" && dat.south() != "fema_entrance" ) { line( this, t_chainfence, 0, 23, 23, 23 ); - line( this, t_chaingate_l, 10, 23, 14, 23 ); - line( this, t_chainfence, 0, 0, 0, 23 ); - line( this, t_chainfence, 23, 0, 23, 23 ); - line( this, t_fence_barbed, 1, 4, 9, 12 ); - line( this, t_fence_barbed, 1, 5, 8, 12 ); - line( this, t_fence_barbed, 22, 4, 15, 12 ); - line( this, t_fence_barbed, 22, 5, 16, 12 ); - square( this, t_wall_wood, 2, 13, 9, 21 ); - square( this, t_floor, 3, 14, 8, 20 ); - line( this, t_reinforced_glass, 5, 13, 6, 13 ); - line( this, t_reinforced_glass, 5, 21, 6, 21 ); - line( this, t_reinforced_glass, 9, 15, 9, 18 ); - line( this, t_door_c, 9, 16, 9, 17 ); - line_furn( this, f_locker, 3, 16, 3, 18 ); - line_furn( this, f_chair, 5, 16, 5, 18 ); - line_furn( this, f_desk, 6, 16, 6, 18 ); - line_furn( this, f_chair, 7, 16, 7, 18 ); - place_items( "office", 80, 3, 16, 3, 18, false, 0 ); - place_items( "office", 80, 6, 16, 6, 18, false, 0 ); + } + if( dat.west() != "fema" && dat.west() != "fema_entrance" ) { + line( this, t_chainfence, 0, 0, 0, 23 ); + } + if( dat.east() != "fema" && dat.east() != "fema_entrance" ) { + line( this, t_chainfence, 23, 0, 23, 23 ); + } + if( dat.west() == "fema" && dat.east() == "fema" && dat.south() != "fema" ) { + //lab bottom side + square( this, t_dirt, 1, 1, 22, 22 ); + square( this, t_floor, 4, 4, 19, 19 ); + line( this, t_concrete_wall, 4, 4, 19, 4 ); + line( this, t_concrete_wall, 4, 19, 19, 19 ); + line( this, t_concrete_wall, 4, 5, 4, 18 ); + line( this, t_concrete_wall, 19, 5, 19, 18 ); + line( this, t_door_metal_c, 11, 4, 12, 4 ); + line_furn( this, f_glass_fridge, 6, 5, 9, 5 ); + line_furn( this, f_glass_fridge, 14, 5, 17, 5 ); + square( this, t_grate, 6, 8, 8, 9 ); + line_furn( this, f_table, 7, 8, 7, 9 ); + square( this, t_grate, 6, 12, 8, 13 ); + line_furn( this, f_table, 7, 12, 7, 13 ); + square( this, t_grate, 6, 16, 8, 17 ); + line_furn( this, f_table, 7, 16, 7, 17 ); + line_furn( this, f_counter, 10, 8, 10, 17 ); + line_furn( this, f_chair, 14, 8, 14, 10 ); + line_furn( this, f_chair, 17, 8, 17, 10 ); + square( this, t_console_broken, 15, 8, 16, 10 ); + line_furn( this, f_desk, 15, 11, 16, 11 ); + line_furn( this, f_chair, 15, 12, 16, 12 ); + line( this, t_reinforced_glass, 13, 14, 18, 14 ); + line( this, t_reinforced_glass, 13, 14, 13, 18 ); + ter_set( 15, 14, t_door_metal_locked ); + place_items( "dissection", 90, 10, 8, 10, 17, false, 0 ); + place_items( "hospital_lab", 70, 5, 5, 18, 18, false, 0 ); + place_items( "harddrugs", 50, 6, 5, 9, 5, false, 0 ); + place_items( "harddrugs", 50, 14, 5, 17, 5, false, 0 ); + place_items( "hospital_samples", 50, 6, 5, 9, 5, false, 0 ); + place_items( "hospital_samples", 50, 14, 5, 17, 5, false, 0 ); + place_spawns( GROUP_LAB_FEMA, 1, 11, 12, 16, 17, 0.1 ); + } else if( dat.west() == "fema_entrance" ) { + square( this, t_dirt, 1, 1, 22, 22 ); //Supply tent + line_furn( this, f_canvas_wall, 4, 4, 19, 4 ); + line_furn( this, f_canvas_wall, 4, 4, 4, 19 ); + line_furn( this, f_canvas_wall, 19, 19, 19, 4 ); + line_furn( this, f_canvas_wall, 19, 19, 4, 19 ); + square_furn( this, f_fema_groundsheet, 5, 5, 8, 18 ); + square_furn( this, f_fema_groundsheet, 10, 5, 13, 5 ); + square_furn( this, f_fema_groundsheet, 10, 18, 13, 18 ); + square_furn( this, f_fema_groundsheet, 15, 5, 18, 7 ); + square_furn( this, f_fema_groundsheet, 15, 16, 18, 18 ); + square_furn( this, f_fema_groundsheet, 16, 10, 17, 14 ); + square_furn( this, f_fema_groundsheet, 9, 7, 14, 16 ); + line_furn( this, f_canvas_door, 11, 4, 12, 4 ); + line_furn( this, f_canvas_door, 11, 19, 12, 19 ); + square_furn( this, f_crate_c, 5, 6, 7, 7 ); + square_furn( this, f_crate_c, 5, 11, 7, 12 ); + square_furn( this, f_crate_c, 5, 16, 7, 17 ); + line( this, t_chainfence, 9, 6, 14, 6 ); + line( this, t_chainfence, 9, 17, 14, 17 ); + ter_set( 9, 5, t_chaingate_c ); + ter_set( 14, 18, t_chaingate_c ); + ter_set( 14, 5, t_chainfence ); + ter_set( 9, 18, t_chainfence ); + furn_set( 12, 17, f_counter ); + furn_set( 11, 6, f_counter ); + line_furn( this, f_chair, 10, 10, 13, 10 ); + square_furn( this, f_desk, 10, 11, 13, 12 ); + line_furn( this, f_chair, 10, 13, 13, 13 ); + line( this, t_chainfence, 15, 8, 18, 8 ); + line( this, t_chainfence, 15, 15, 18, 15 ); + line( this, t_chainfence, 15, 9, 15, 14 ); + line( this, t_chaingate_c, 15, 11, 15, 12 ); + line_furn( this, f_locker, 18, 9, 18, 14 ); + place_items( "allclothes", 90, 5, 6, 7, 7, false, 0 ); + place_items( "softdrugs", 90, 5, 11, 7, 12, false, 0 ); + place_items( "hardware", 90, 5, 16, 7, 17, false, 0 ); + if( one_in( 3 ) ) { + place_items( "guns_rifle_milspec", 90, 18, 9, 18, 14, false, 0, 100, 100 ); + } + place_items( "office", 80, 10, 11, 13, 12, false, 0 ); place_spawns( GROUP_MIL_WEAK, 1, 3, 15, 4, 17, 0.2 ); - - // Rotate to face the road - if( is_ot_type( "road", t_east ) || is_ot_type( "bridge", t_east ) ) { - rotate( 1 ); - } - if( is_ot_type( "road", t_south ) || is_ot_type( "bridge", t_south ) ) { - rotate( 2 ); - } - if( is_ot_type( "road", t_west ) || is_ot_type( "bridge", t_west ) ) { - rotate( 3 ); + } else { + switch( rng( 1, 5 ) ) { + case 1: + case 2: + case 3: + square( this, t_dirt, 1, 1, 22, 22 ); + square_furn( this, f_canvas_wall, 4, 4, 19, 19 ); //Lodging + square_furn( this, f_fema_groundsheet, 5, 5, 18, 18 ); + line_furn( this, f_canvas_door, 11, 4, 12, 4 ); + line_furn( this, f_canvas_door, 11, 19, 12, 19 ); + line_furn( this, f_makeshift_bed, 6, 6, 6, 17 ); + line_furn( this, f_makeshift_bed, 8, 6, 8, 17 ); + line_furn( this, f_makeshift_bed, 10, 6, 10, 17 ); + line_furn( this, f_makeshift_bed, 13, 6, 13, 17 ); + line_furn( this, f_makeshift_bed, 15, 6, 15, 17 ); + line_furn( this, f_makeshift_bed, 17, 6, 17, 17 ); + line_furn( this, f_fema_groundsheet, 6, 8, 17, 8 ); + line_furn( this, f_fema_groundsheet, 6, 8, 17, 8 ); + square_furn( this, f_fema_groundsheet, 6, 11, 17, 12 ); + line_furn( this, f_fema_groundsheet, 6, 15, 17, 15 ); + line_furn( this, f_crate_o, 6, 7, 17, 7 ); + line_furn( this, f_crate_o, 6, 10, 17, 10 ); + line_furn( this, f_crate_o, 6, 14, 17, 14 ); + line_furn( this, f_crate_o, 6, 17, 17, 17 ); + line_furn( this, f_fema_groundsheet, 7, 5, 7, 18 ); + line_furn( this, f_fema_groundsheet, 9, 5, 9, 18 ); + square_furn( this, f_fema_groundsheet, 11, 5, 12, 18 ); + line_furn( this, f_fema_groundsheet, 14, 5, 14, 18 ); + line_furn( this, f_fema_groundsheet, 16, 5, 16, 18 ); + place_items( "livingroom", 80, 5, 5, 18, 18, false, 0 ); + place_spawns( GROUP_PLAIN, 1, 11, 12, 13, 14, 0.1 ); + break; + case 4: + square( this, t_dirt, 1, 1, 22, 22 ); + square_furn( this, f_canvas_wall, 4, 4, 19, 19 ); //Mess hall/tent + square_furn( this, f_fema_groundsheet, 5, 5, 18, 18 ); + line_furn( this, f_canvas_door, 11, 4, 12, 4 ); + line_furn( this, f_canvas_door, 11, 19, 12, 19 ); + line_furn( this, f_crate_c, 5, 5, 5, 6 ); + square_furn( this, f_counter, 6, 6, 10, 8 ); + square( this, t_rock_floor, 6, 5, 9, 7 ); + furn_set( 7, 6, f_woodstove ); + line_furn( this, f_bench, 13, 6, 17, 6 ); + line_furn( this, f_table, 13, 7, 17, 7 ); + line_furn( this, f_bench, 13, 8, 17, 8 ); + + line_furn( this, f_bench, 13, 11, 17, 11 ); + line_furn( this, f_table, 13, 12, 17, 12 ); + line_furn( this, f_bench, 13, 13, 17, 13 ); + + line_furn( this, f_bench, 13, 15, 17, 15 ); + line_furn( this, f_table, 13, 16, 17, 16 ); + line_furn( this, f_bench, 13, 17, 17, 17 ); + + line_furn( this, f_bench, 6, 11, 10, 11 ); + line_furn( this, f_table, 6, 12, 10, 12 ); + line_furn( this, f_bench, 6, 13, 10, 13 ); + + line_furn( this, f_bench, 6, 15, 10, 15 ); + line_furn( this, f_table, 6, 16, 10, 16 ); + line_furn( this, f_bench, 6, 17, 10, 17 ); + + place_items( "mil_food_nodrugs", 80, 5, 5, 5, 6, false, 0 ); + place_items( "snacks", 80, 5, 5, 18, 18, false, 0 ); + place_items( "kitchen", 70, 6, 5, 10, 8, false, 0 ); + place_items( "dining", 80, 13, 7, 17, 7, false, 0 ); + place_items( "dining", 80, 13, 12, 17, 12, false, 0 ); + place_items( "dining", 80, 13, 16, 17, 16, false, 0 ); + place_items( "dining", 80, 6, 12, 10, 12, false, 0 ); + place_items( "dining", 80, 6, 16, 10, 16, false, 0 ); + place_spawns( GROUP_PLAIN, 1, 11, 12, 13, 14, 0.1 ); + break; + case 5: + square( this, t_dirt, 1, 1, 22, 22 ); + square( this, t_fence_barbed, 4, 4, 19, 19 ); + square( this, t_dirt, 5, 5, 18, 18 ); + square( this, t_pit_corpsed, 6, 6, 17, 17 ); + place_spawns( GROUP_PLAIN, 1, 11, 12, 13, 14, 0.5 ); + break; } + } + } +} - } else if( terrain_type == "fema" ) { - - fill_background( this, t_dirt ); - // check all sides for non fema/fema entrance, place fence on those sides - if( t_north != "fema" && t_north != "fema_entrance" ) { - line( this, t_chainfence, 0, 0, 23, 0 ); - } - if( t_south != "fema" && t_south != "fema_entrance" ) { - line( this, t_chainfence, 0, 23, 23, 23 ); - } - if( t_west != "fema" && t_west != "fema_entrance" ) { - line( this, t_chainfence, 0, 0, 0, 23 ); - } - if( t_east != "fema" && t_east != "fema_entrance" ) { - line( this, t_chainfence, 23, 0, 23, 23 ); - } - if( t_west == "fema" && t_east == "fema" && t_south != "fema" ) { - //lab bottom side - square( this, t_dirt, 1, 1, 22, 22 ); - square( this, t_floor, 4, 4, 19, 19 ); - line( this, t_concrete_wall, 4, 4, 19, 4 ); - line( this, t_concrete_wall, 4, 19, 19, 19 ); - line( this, t_concrete_wall, 4, 5, 4, 18 ); - line( this, t_concrete_wall, 19, 5, 19, 18 ); - line( this, t_door_metal_c, 11, 4, 12, 4 ); - line_furn( this, f_glass_fridge, 6, 5, 9, 5 ); - line_furn( this, f_glass_fridge, 14, 5, 17, 5 ); - square( this, t_grate, 6, 8, 8, 9 ); - line_furn( this, f_table, 7, 8, 7, 9 ); - square( this, t_grate, 6, 12, 8, 13 ); - line_furn( this, f_table, 7, 12, 7, 13 ); - square( this, t_grate, 6, 16, 8, 17 ); - line_furn( this, f_table, 7, 16, 7, 17 ); - line_furn( this, f_counter, 10, 8, 10, 17 ); - line_furn( this, f_chair, 14, 8, 14, 10 ); - line_furn( this, f_chair, 17, 8, 17, 10 ); - square( this, t_console_broken, 15, 8, 16, 10 ); - line_furn( this, f_desk, 15, 11, 16, 11 ); - line_furn( this, f_chair, 15, 12, 16, 12 ); - line( this, t_reinforced_glass, 13, 14, 18, 14 ); - line( this, t_reinforced_glass, 13, 14, 13, 18 ); - ter_set( 15, 14, t_door_metal_locked ); - place_items( "dissection", 90, 10, 8, 10, 17, false, 0 ); - place_items( "hospital_lab", 70, 5, 5, 18, 18, false, 0 ); - place_items( "harddrugs", 50, 6, 5, 9, 5, false, 0 ); - place_items( "harddrugs", 50, 14, 5, 17, 5, false, 0 ); - place_items( "hospital_samples", 50, 6, 5, 9, 5, false, 0 ); - place_items( "hospital_samples", 50, 14, 5, 17, 5, false, 0 ); - place_spawns( GROUP_LAB_FEMA, 1, 11, 12, 16, 17, 0.1 ); - } else if( t_west == "fema_entrance" ) { - square( this, t_dirt, 1, 1, 22, 22 ); //Supply tent - line_furn( this, f_canvas_wall, 4, 4, 19, 4 ); - line_furn( this, f_canvas_wall, 4, 4, 4, 19 ); - line_furn( this, f_canvas_wall, 19, 19, 19, 4 ); - line_furn( this, f_canvas_wall, 19, 19, 4, 19 ); - square_furn( this, f_fema_groundsheet, 5, 5, 8, 18 ); - square_furn( this, f_fema_groundsheet, 10, 5, 13, 5 ); - square_furn( this, f_fema_groundsheet, 10, 18, 13, 18 ); - square_furn( this, f_fema_groundsheet, 15, 5, 18, 7 ); - square_furn( this, f_fema_groundsheet, 15, 16, 18, 18 ); - square_furn( this, f_fema_groundsheet, 16, 10, 17, 14 ); - square_furn( this, f_fema_groundsheet, 9, 7, 14, 16 ); - line_furn( this, f_canvas_door, 11, 4, 12, 4 ); - line_furn( this, f_canvas_door, 11, 19, 12, 19 ); - square_furn( this, f_crate_c, 5, 6, 7, 7 ); - square_furn( this, f_crate_c, 5, 11, 7, 12 ); - square_furn( this, f_crate_c, 5, 16, 7, 17 ); - line( this, t_chainfence, 9, 6, 14, 6 ); - line( this, t_chainfence, 9, 17, 14, 17 ); - ter_set( 9, 5, t_chaingate_c ); - ter_set( 14, 18, t_chaingate_c ); - ter_set( 14, 5, t_chainfence ); - ter_set( 9, 18, t_chainfence ); - furn_set( 12, 17, f_counter ); - furn_set( 11, 6, f_counter ); - line_furn( this, f_chair, 10, 10, 13, 10 ); - square_furn( this, f_desk, 10, 11, 13, 12 ); - line_furn( this, f_chair, 10, 13, 13, 13 ); - line( this, t_chainfence, 15, 8, 18, 8 ); - line( this, t_chainfence, 15, 15, 18, 15 ); - line( this, t_chainfence, 15, 9, 15, 14 ); - line( this, t_chaingate_c, 15, 11, 15, 12 ); - line_furn( this, f_locker, 18, 9, 18, 14 ); - place_items( "allclothes", 90, 5, 6, 7, 7, false, 0 ); - place_items( "softdrugs", 90, 5, 11, 7, 12, false, 0 ); - place_items( "hardware", 90, 5, 16, 7, 17, false, 0 ); - if( one_in( 3 ) ) { - place_items( "guns_rifle_milspec", 90, 18, 9, 18, 14, false, 0, 100, 100 ); - } - place_items( "office", 80, 10, 11, 13, 12, false, 0 ); - place_spawns( GROUP_MIL_WEAK, 1, 3, 15, 4, 17, 0.2 ); - } else { - switch( rng( 1, 5 ) ) { - case 1: - case 2: - case 3: - square( this, t_dirt, 1, 1, 22, 22 ); - square_furn( this, f_canvas_wall, 4, 4, 19, 19 ); //Lodging - square_furn( this, f_fema_groundsheet, 5, 5, 18, 18 ); - line_furn( this, f_canvas_door, 11, 4, 12, 4 ); - line_furn( this, f_canvas_door, 11, 19, 12, 19 ); - line_furn( this, f_makeshift_bed, 6, 6, 6, 17 ); - line_furn( this, f_makeshift_bed, 8, 6, 8, 17 ); - line_furn( this, f_makeshift_bed, 10, 6, 10, 17 ); - line_furn( this, f_makeshift_bed, 13, 6, 13, 17 ); - line_furn( this, f_makeshift_bed, 15, 6, 15, 17 ); - line_furn( this, f_makeshift_bed, 17, 6, 17, 17 ); - line_furn( this, f_fema_groundsheet, 6, 8, 17, 8 ); - line_furn( this, f_fema_groundsheet, 6, 8, 17, 8 ); - square_furn( this, f_fema_groundsheet, 6, 11, 17, 12 ); - line_furn( this, f_fema_groundsheet, 6, 15, 17, 15 ); - line_furn( this, f_crate_o, 6, 7, 17, 7 ); - line_furn( this, f_crate_o, 6, 10, 17, 10 ); - line_furn( this, f_crate_o, 6, 14, 17, 14 ); - line_furn( this, f_crate_o, 6, 17, 17, 17 ); - line_furn( this, f_fema_groundsheet, 7, 5, 7, 18 ); - line_furn( this, f_fema_groundsheet, 9, 5, 9, 18 ); - square_furn( this, f_fema_groundsheet, 11, 5, 12, 18 ); - line_furn( this, f_fema_groundsheet, 14, 5, 14, 18 ); - line_furn( this, f_fema_groundsheet, 16, 5, 16, 18 ); - place_items( "livingroom", 80, 5, 5, 18, 18, false, 0 ); - place_spawns( GROUP_PLAIN, 1, 11, 12, 13, 14, 0.1 ); - break; - case 4: - square( this, t_dirt, 1, 1, 22, 22 ); - square_furn( this, f_canvas_wall, 4, 4, 19, 19 ); //Mess hall/tent - square_furn( this, f_fema_groundsheet, 5, 5, 18, 18 ); - line_furn( this, f_canvas_door, 11, 4, 12, 4 ); - line_furn( this, f_canvas_door, 11, 19, 12, 19 ); - line_furn( this, f_crate_c, 5, 5, 5, 6 ); - square_furn( this, f_counter, 6, 6, 10, 8 ); - square( this, t_rock_floor, 6, 5, 9, 7 ); - furn_set( 7, 6, f_woodstove ); - line_furn( this, f_bench, 13, 6, 17, 6 ); - line_furn( this, f_table, 13, 7, 17, 7 ); - line_furn( this, f_bench, 13, 8, 17, 8 ); - - line_furn( this, f_bench, 13, 11, 17, 11 ); - line_furn( this, f_table, 13, 12, 17, 12 ); - line_furn( this, f_bench, 13, 13, 17, 13 ); - - line_furn( this, f_bench, 13, 15, 17, 15 ); - line_furn( this, f_table, 13, 16, 17, 16 ); - line_furn( this, f_bench, 13, 17, 17, 17 ); - - line_furn( this, f_bench, 6, 11, 10, 11 ); - line_furn( this, f_table, 6, 12, 10, 12 ); - line_furn( this, f_bench, 6, 13, 10, 13 ); - - line_furn( this, f_bench, 6, 15, 10, 15 ); - line_furn( this, f_table, 6, 16, 10, 16 ); - line_furn( this, f_bench, 6, 17, 10, 17 ); - - place_items( "mil_food_nodrugs", 80, 5, 5, 5, 6, false, 0 ); - place_items( "snacks", 80, 5, 5, 18, 18, false, 0 ); - place_items( "kitchen", 70, 6, 5, 10, 8, false, 0 ); - place_items( "dining", 80, 13, 7, 17, 7, false, 0 ); - place_items( "dining", 80, 13, 12, 17, 12, false, 0 ); - place_items( "dining", 80, 13, 16, 17, 16, false, 0 ); - place_items( "dining", 80, 6, 12, 10, 12, false, 0 ); - place_items( "dining", 80, 6, 16, 10, 16, false, 0 ); - place_spawns( GROUP_PLAIN, 1, 11, 12, 13, 14, 0.1 ); - break; - case 5: - square( this, t_dirt, 1, 1, 22, 22 ); - square( this, t_fence_barbed, 4, 4, 19, 19 ); - square( this, t_dirt, 5, 5, 18, 18 ); - square( this, t_pit_corpsed, 6, 6, 17, 17 ); - place_spawns( GROUP_PLAIN, 1, 11, 12, 13, 14, 0.5 ); - break; +void map::draw_spider_pit( const oter_id &terrain_type, mapgendata &/*dat*/, + const time_point &/*when*/, const float /*density*/ ) +{ + if( terrain_type == "spider_pit_under" ) { + for( int i = 0; i < SEEX * 2; i++ ) { + for( int j = 0; j < SEEY * 2; j++ ) { + if( ( i >= 3 && i <= SEEX * 2 - 4 && j >= 3 && j <= SEEY * 2 - 4 ) || + one_in( 4 ) ) { + ter_set( i, j, t_rock_floor ); + if( !one_in( 3 ) ) { + add_field( {i, j, abs_sub.z}, fd_web, rng( 1, 3 ) ); + } + } else { + ter_set( i, j, t_rock ); } } + } + ter_set( rng( 3, SEEX * 2 - 4 ), rng( 3, SEEY * 2 - 4 ), t_slope_up ); + place_items( "spider", 85, 0, 0, EAST_EDGE, SOUTH_EDGE, false, 0 ); + } +} - } else if( terrain_type == "spider_pit_under" ) { - - for( int i = 0; i < SEEX * 2; i++ ) { - for( int j = 0; j < SEEY * 2; j++ ) { - if( ( i >= 3 && i <= SEEX * 2 - 4 && j >= 3 && j <= SEEY * 2 - 4 ) || - one_in( 4 ) ) { - ter_set( i, j, t_rock_floor ); - if( !one_in( 3 ) ) { - add_field( {x, y, abs_sub.z}, fd_web, rng( 1, 3 ) ); - } - } else { - ter_set( i, j, t_rock ); - } +void map::draw_anthill( const oter_id &terrain_type, mapgendata &dat, const time_point &/*when*/, + const float /*density*/ ) +{ + if( terrain_type == "anthill" || terrain_type == "acid_anthill" ) { + for( int i = 0; i < SEEX * 2; i++ ) { + for( int j = 0; j < SEEY * 2; j++ ) { + if( i < 8 || j < 8 || i > SEEX * 2 - 9 || j > SEEY * 2 - 9 ) { + ter_set( i, j, dat.groundcover() ); + } else if( ( i == 11 || i == 12 ) && ( j == 11 || j == 12 ) ) { + ter_set( i, j, t_slope_down ); + } else { + ter_set( i, j, t_dirtmound ); } } - ter_set( rng( 3, SEEX * 2 - 4 ), rng( 3, SEEY * 2 - 4 ), t_slope_up ); - place_items( "spider", 85, 0, 0, SEEX * 2 - 1, SEEY * 2 - 1, false, 0 ); - - } else if( terrain_type == "anthill" || terrain_type == "acid_anthill" ) { + } + } +} - for( int i = 0; i < SEEX * 2; i++ ) { - for( int j = 0; j < SEEY * 2; j++ ) { - if( i < 8 || j < 8 || i > SEEX * 2 - 9 || j > SEEY * 2 - 9 ) { - ter_set( i, j, dat.groundcover() ); - } else if( ( i == 11 || i == 12 ) && ( j == 11 || j == 12 ) ) { - ter_set( i, j, t_slope_down ); - } else { - ter_set( i, j, t_dirtmound ); - } +void map::draw_slimepit( const oter_id &terrain_type, mapgendata &dat, const time_point &/*when*/, + const float /*density*/ ) +{ + if( is_ot_type( "slimepit", terrain_type ) ) { + for( int i = 0; i < SEEX * 2; i++ ) { + for( int j = 0; j < SEEY * 2; j++ ) { + if( !one_in( 10 ) && ( j < dat.n_fac * SEEX || + i < dat.w_fac * SEEX || + j > SEEY * 2 - dat.s_fac * SEEY || + i > SEEX * 2 - dat.e_fac * SEEX ) ) { + ter_set( i, j, ( !one_in( 10 ) ? t_slime : t_rock_floor ) ); + } else if( rng( 0, SEEX ) > abs( i - SEEX ) && rng( 0, SEEY ) > abs( j - SEEY ) ) { + ter_set( i, j, t_slime ); + } else if( dat.zlevel == 0 ) { + ter_set( i, j, t_dirt ); + } else { + ter_set( i, j, t_rock_floor ); } } - - } else if( is_ot_type( "slimepit", terrain_type ) ) { - - for( int i = 0; i < 4; i++ ) { - nesw_fac[i] = ( t_nesw[i] == "slimepit" || t_nesw[i] == "slimepit_down" ? 1 : 0 ); + } + if( terrain_type == "slimepit_down" ) { + ter_set( rng( 3, SEEX * 2 - 4 ), rng( 3, SEEY * 2 - 4 ), t_slope_down ); + } + if( dat.above() == "slimepit_down" ) { + switch( rng( 1, 4 ) ) { + case 1: + ter_set( rng( 0, 2 ), rng( 0, 2 ), t_slope_up ); + break; + case 2: + ter_set( rng( 0, 2 ), SEEY * 2 - rng( 1, 3 ), t_slope_up ); + break; + case 3: + ter_set( SEEX * 2 - rng( 1, 3 ), rng( 0, 2 ), t_slope_up ); + break; + case 4: + ter_set( SEEX * 2 - rng( 1, 3 ), SEEY * 2 - rng( 1, 3 ), t_slope_up ); } + } + place_spawns( GROUP_BLOB, 1, SEEX, SEEY, SEEX, SEEY, 0.15 ); + place_items( "sewer", 40, 0, 0, EAST_EDGE, SOUTH_EDGE, true, 0 ); + } +} - for( int i = 0; i < SEEX * 2; i++ ) { - for( int j = 0; j < SEEY * 2; j++ ) { - if( !one_in( 10 ) && ( j < n_fac * SEEX || i < w_fac * SEEX || - j > SEEY * 2 - s_fac * SEEY || i > SEEX * 2 - e_fac * SEEX ) ) { - ter_set( i, j, ( !one_in( 10 ) ? t_slime : t_rock_floor ) ); - } else if( rng( 0, SEEX ) > abs( i - SEEX ) && rng( 0, SEEY ) > abs( j - SEEY ) ) { - ter_set( i, j, t_slime ); - } else if( zlevel == 0 ) { - ter_set( i, j, t_dirt ); - } else { - ter_set( i, j, t_rock_floor ); +void map::draw_triffid( const oter_id &terrain_type, mapgendata &/*dat*/, + const time_point &/*when*/, const float /*density*/ ) +{ + if( terrain_type == "triffid_roots" ) { + fill_background( this, t_root_wall ); + int node = 0; + int step = 0; + bool node_built[16]; + bool done = false; + for( auto &elem : node_built ) { + elem = false; + } + do { + node_built[node] = true; + step++; + int nodex = 1 + 6 * ( node % 4 ), nodey = 1 + 6 * static_cast( node / 4 ); + // Clear a 4x4 dirt square + square( this, t_dirt, nodex, nodey, nodex + 3, nodey + 3 ); + // Spawn a monster in there + if( step > 2 ) { // First couple of chambers are safe + int monrng = rng( 1, 25 ); + int spawnx = nodex + rng( 0, 3 ), spawny = nodey + rng( 0, 3 ); + if( monrng <= 24 ) { + place_spawns( GROUP_TRIFFID_OUTER, 1, nodex, nodey, + nodex + 3, nodey + 3, 1, true ); + } else { + for( int webx = nodex; webx <= nodex + 3; webx++ ) { + for( int weby = nodey; weby <= nodey + 3; weby++ ) { + add_field( {webx, weby, abs_sub.z}, fd_web, rng( 1, 3 ) ); + } } + place_spawns( GROUP_SPIDER, 1, spawnx, spawny, spawnx, spawny, 1, true ); } } - - if( terrain_type == "slimepit_down" ) { - ter_set( rng( 3, SEEX * 2 - 4 ), rng( 3, SEEY * 2 - 4 ), t_slope_down ); + // TODO: Non-monster hazards? + // Next, pick a cell to move to + std::vector move; + if( node % 4 > 0 && !node_built[node - 1] ) { + move.push_back( WEST ); + } + if( node % 4 < 3 && !node_built[node + 1] ) { + move.push_back( EAST ); + } + if( static_cast( node / 4 ) > 0 && !node_built[node - 4] ) { + move.push_back( NORTH ); + } + if( static_cast( node / 4 ) < 3 && !node_built[node + 4] ) { + move.push_back( SOUTH ); } - if( t_above == "slimepit_down" ) { - switch( rng( 1, 4 ) ) { - case 1: - ter_set( rng( 0, 2 ), rng( 0, 2 ), t_slope_up ); + if( move.empty() ) { // Nowhere to go! + square( this, t_slope_down, nodex + 1, nodey + 1, nodex + 2, nodey + 2 ); + done = true; + } else { + switch( random_entry( move ) ) { + case NORTH: + square( this, t_dirt, nodex + 1, nodey - 2, nodex + 2, nodey - 1 ); + node -= 4; break; - case 2: - ter_set( rng( 0, 2 ), SEEY * 2 - rng( 1, 3 ), t_slope_up ); + case EAST: + square( this, t_dirt, nodex + 4, nodey + 1, nodex + 5, nodey + 2 ); + node++; + break; + case SOUTH: + square( this, t_dirt, nodex + 1, nodey + 4, nodex + 2, nodey + 5 ); + node += 4; break; - case 3: - ter_set( SEEX * 2 - rng( 1, 3 ), rng( 0, 2 ), t_slope_up ); + case WEST: + square( this, t_dirt, nodex - 2, nodey + 1, nodex - 1, nodey + 2 ); + node--; + break; + default: break; - case 4: - ter_set( SEEX * 2 - rng( 1, 3 ), SEEY * 2 - rng( 1, 3 ), t_slope_up ); } } - place_spawns( GROUP_BLOB, 1, SEEX, SEEY, SEEX, SEEY, 0.15 ); - place_items( "sewer", 40, 0, 0, SEEX * 2 - 1, SEEY * 2 - 1, true, 0 ); - - } else if( terrain_type == "triffid_roots" ) { + } while( !done ); + square( this, t_slope_up, 2, 2, 3, 3 ); + rotate( rng( 0, 3 ) ); + } else if( terrain_type == "triffid_finale" ) { + fill_background( this, t_root_wall ); + square( this, t_dirt, 1, 1, 4, 4 ); + square( this, t_dirt, 19, 19, 22, 22 ); + // Drunken walk until we reach the heart (lower right, [19, 19]) + // Chance increases by 1 each turn, and gives the % chance of forcing a move + // to the right or down. + int chance = 0; + int x = 4; + int y = 4; + do { + ter_set( x, y, t_dirt ); - fill_background( this, t_root_wall ); - int node = 0; - int step = 0; - bool node_built[16]; - bool done = false; - for( auto &elem : node_built ) { - elem = false; + if( chance >= 10 && one_in( 10 ) ) { // Add a spawn + place_spawns( GROUP_TRIFFID, 1, x, y, x, y, 1, true ); } - do { - node_built[node] = true; - step++; - int nodex = 1 + 6 * ( node % 4 ), nodey = 1 + 6 * static_cast( node / 4 ); - // Clear a 4x4 dirt square - square( this, t_dirt, nodex, nodey, nodex + 3, nodey + 3 ); - // Spawn a monster in there - if( step > 2 ) { // First couple of chambers are safe - int monrng = rng( 1, 25 ); - int spawnx = nodex + rng( 0, 3 ), spawny = nodey + rng( 0, 3 ); - if( monrng <= 24 ) { - place_spawns( GROUP_TRIFFID_OUTER, 1, nodex, nodey, nodex + 3, nodey + 3, 1, true ); - } else { - for( int webx = nodex; webx <= nodex + 3; webx++ ) { - for( int weby = nodey; weby <= nodey + 3; weby++ ) { - add_field( {webx, weby, abs_sub.z}, fd_web, rng( 1, 3 ) ); - } - } - place_spawns( GROUP_SPIDER, 1, spawnx, spawny, spawnx, spawny, 1, true ); - } - } - // TODO: Non-monster hazards? - // Next, pick a cell to move to - std::vector move; - if( node % 4 > 0 && !node_built[node - 1] ) { - move.push_back( WEST ); - } - if( node % 4 < 3 && !node_built[node + 1] ) { - move.push_back( EAST ); - } - if( static_cast( node / 4 ) > 0 && !node_built[node - 4] ) { - move.push_back( NORTH ); - } - if( static_cast( node / 4 ) < 3 && !node_built[node + 4] ) { - move.push_back( SOUTH ); - } - if( move.empty() ) { // Nowhere to go! - square( this, t_slope_down, nodex + 1, nodey + 1, nodex + 2, nodey + 2 ); - done = true; + if( rng( 0, 99 ) < chance ) { // Force movement down or to the right + if( x >= 19 ) { + y++; + } else if( y >= 19 ) { + x++; } else { - switch( random_entry( move ) ) { - case NORTH: - square( this, t_dirt, nodex + 1, nodey - 2, nodex + 2, nodey - 1 ); - node -= 4; - break; - case EAST: - square( this, t_dirt, nodex + 4, nodey + 1, nodex + 5, nodey + 2 ); - node++; - break; - case SOUTH: - square( this, t_dirt, nodex + 1, nodey + 4, nodex + 2, nodey + 5 ); - node += 4; - break; - case WEST: - square( this, t_dirt, nodex - 2, nodey + 1, nodex - 1, nodey + 2 ); - node--; - break; - default: - break; - } - } - } while( !done ); - square( this, t_slope_up, 2, 2, 3, 3 ); - rotate( rng( 0, 3 ) ); - - } else if( terrain_type == "triffid_finale" ) { - - fill_background( this, t_root_wall ); - square( this, t_dirt, 1, 1, 4, 4 ); - square( this, t_dirt, 19, 19, 22, 22 ); - // Drunken walk until we reach the heart (lower right, [19, 19]) - // Chance increases by 1 each turn, and gives the % chance of forcing a move - // to the right or down. - int chance = 0; - int x = 4; - int y = 4; - do { - ter_set( x, y, t_dirt ); - - if( chance >= 10 && one_in( 10 ) ) { // Add a spawn - place_spawns( GROUP_TRIFFID, 1, x, y, x, y, 1, true ); - } - - if( rng( 0, 99 ) < chance ) { // Force movement down or to the right - if( x >= 19 ) { - y++; - } else if( y >= 19 ) { + if( one_in( 2 ) ) { x++; } else { - if( one_in( 2 ) ) { - x++; - } else { - y++; - } + y++; } - } else { - chance++; // Increase chance of forced movement down/right - // Weigh movement towards directions with lots of existing walls - int chance_west = 0; - int chance_east = 0; - int chance_north = 0; - int chance_south = 0; - for( int dist = 1; dist <= 5; dist++ ) { - if( ter( x - dist, y ) == t_root_wall ) { - chance_west++; - } - if( ter( x + dist, y ) == t_root_wall ) { - chance_east++; - } - if( ter( x, y - dist ) == t_root_wall ) { - chance_north++; - } - if( ter( x, y + dist ) == t_root_wall ) { - chance_south++; - } + } + } else { + chance++; // Increase chance of forced movement down/right + // Weigh movement towards directions with lots of existing walls + int chance_west = 0; + int chance_east = 0; + int chance_north = 0; + int chance_south = 0; + for( int dist = 1; dist <= 5; dist++ ) { + if( ter( x - dist, y ) == t_root_wall ) { + chance_west++; } - int roll = rng( 0, chance_west + chance_east + chance_north + chance_south ); - if( roll < chance_west && x > 0 ) { - x--; - } else if( roll < chance_west + chance_east && x < 23 ) { - x++; - } else if( roll < chance_west + chance_east + chance_north && y > 0 ) { - y--; - } else if( y < 23 ) { - y++; + if( ter( x + dist, y ) == t_root_wall ) { + chance_east++; } - } // Done with drunken walk - } while( x < 19 || y < 19 ); - square( this, t_slope_up, 1, 1, 2, 2 ); - place_spawns( GROUP_TRIFFID_HEART, 1, 21, 21, 21, 21, 1, true ); - - } else { - // not one of the hardcoded ones! - // load from JSON??? - debugmsg( "Error: tried to generate map for omtype %s, \"%s\" (id_mapgen %s)", - terrain_type.id().c_str(), terrain_type->get_name(), function_key.c_str() ); - fill_background( this, t_floor ); + if( ter( x, y - dist ) == t_root_wall ) { + chance_north++; + } + if( ter( x, y + dist ) == t_root_wall ) { + chance_south++; + } + } + int roll = rng( 0, chance_west + chance_east + chance_north + chance_south ); + if( roll < chance_west && x > 0 ) { + x--; + } else if( roll < chance_west + chance_east && x < EAST_EDGE ) { + x++; + } else if( roll < chance_west + chance_east + chance_north && y > 0 ) { + y--; + } else if( y < SOUTH_EDGE ) { + y++; + } + } // Done with drunken walk + } while( x < 19 || y < 19 ); + square( this, t_slope_up, 1, 1, 2, 2 ); + place_spawns( GROUP_TRIFFID_HEART, 1, 21, 21, 21, 21, 1, true ); - } } - // THE END OF THE HUGE IF ELIF ELIF ELIF ELI FLIE FLIE FLIE FEL OMFG - - // WTF it is still going?... - // omg why are there two braces I'm so dizzy with vertigo - - // Now, fix sewers and subways so that they interconnect. +} +void map::draw_connections( const oter_id &terrain_type, mapgendata &dat, + const time_point &/*when*/, const float /*density*/ ) +{ if( is_ot_type( "subway", terrain_type ) ) { // FUUUUU it's IF ELIF ELIF ELIF's mini-me =[ - if( is_ot_type( "sewer", t_north ) && + if( is_ot_type( "sewer", dat.north() ) && !connects_to( terrain_type, 0 ) ) { - if( connects_to( t_north, 2 ) ) { + if( connects_to( dat.north(), 2 ) ) { for( int i = SEEX - 2; i < SEEX + 2; i++ ) { for( int j = 0; j < SEEY; j++ ) { ter_set( i, j, t_sewage ); @@ -6757,9 +6661,9 @@ FFFFFFFFFFFFFFFFFFFFFFf \n\ ter_set( SEEX - 1, 3, t_door_metal_c ); } } - if( is_ot_type( "sewer", t_east ) && + if( is_ot_type( "sewer", dat.east() ) && !connects_to( terrain_type, 1 ) ) { - if( connects_to( t_east, 3 ) ) { + if( connects_to( dat.east(), 3 ) ) { for( int i = SEEX; i < SEEX * 2; i++ ) { for( int j = SEEY - 2; j < SEEY + 2; j++ ) { ter_set( i, j, t_sewage ); @@ -6774,9 +6678,9 @@ FFFFFFFFFFFFFFFFFFFFFFf \n\ ter_set( SEEX * 2 - 4, SEEY - 1, t_door_metal_c ); } } - if( is_ot_type( "sewer", t_south ) && + if( is_ot_type( "sewer", dat.south() ) && !connects_to( terrain_type, 2 ) ) { - if( connects_to( t_south, 0 ) ) { + if( connects_to( dat.south(), 0 ) ) { for( int i = SEEX - 2; i < SEEX + 2; i++ ) { for( int j = SEEY; j < SEEY * 2; j++ ) { ter_set( i, j, t_sewage ); @@ -6791,9 +6695,9 @@ FFFFFFFFFFFFFFFFFFFFFFf \n\ ter_set( SEEX - 1, SEEY * 2 - 4, t_door_metal_c ); } } - if( is_ot_type( "sewer", t_west ) && + if( is_ot_type( "sewer", dat.west() ) && !connects_to( terrain_type, 3 ) ) { - if( connects_to( t_west, 1 ) ) { + if( connects_to( dat.west(), 1 ) ) { for( int i = 0; i < SEEX; i++ ) { for( int j = SEEY - 2; j < SEEY + 2; j++ ) { ter_set( i, j, t_sewage ); @@ -6809,10 +6713,10 @@ FFFFFFFFFFFFFFFFFFFFFFf \n\ } } } else if( is_ot_type( "sewer", terrain_type ) ) { - if( t_above == "road_nesw_manhole" ) { + if( dat.above() == "road_nesw_manhole" ) { ter_set( rng( SEEX - 2, SEEX + 1 ), rng( SEEY - 2, SEEY + 1 ), t_ladder_up ); } - if( is_ot_type( "subway", t_north ) && + if( is_ot_type( "subway", dat.north() ) && !connects_to( terrain_type, 0 ) ) { for( int j = 0; j < SEEY - 3; j++ ) { ter_set( SEEX, j, t_rock_floor ); @@ -6821,7 +6725,7 @@ FFFFFFFFFFFFFFFFFFFFFFf \n\ ter_set( SEEX, SEEY - 3, t_door_metal_c ); ter_set( SEEX - 1, SEEY - 3, t_door_metal_c ); } - if( is_ot_type( "subway", t_east ) && + if( is_ot_type( "subway", dat.east() ) && !connects_to( terrain_type, 1 ) ) { for( int i = SEEX + 3; i < SEEX * 2; i++ ) { ter_set( i, SEEY, t_rock_floor ); @@ -6830,7 +6734,7 @@ FFFFFFFFFFFFFFFFFFFFFFf \n\ ter_set( SEEX + 2, SEEY, t_door_metal_c ); ter_set( SEEX + 2, SEEY - 1, t_door_metal_c ); } - if( is_ot_type( "subway", t_south ) && + if( is_ot_type( "subway", dat.south() ) && !connects_to( terrain_type, 2 ) ) { for( int j = SEEY + 3; j < SEEY * 2; j++ ) { ter_set( SEEX, j, t_rock_floor ); @@ -6839,7 +6743,7 @@ FFFFFFFFFFFFFFFFFFFFFFf \n\ ter_set( SEEX, SEEY + 2, t_door_metal_c ); ter_set( SEEX - 1, SEEY + 2, t_door_metal_c ); } - if( is_ot_type( "subway", t_west ) && + if( is_ot_type( "subway", dat.west() ) && !connects_to( terrain_type, 3 ) ) { for( int i = 0; i < SEEX - 3; i++ ) { ter_set( i, SEEY, t_rock_floor ); @@ -6849,7 +6753,7 @@ FFFFFFFFFFFFFFFFFFFFFFf \n\ ter_set( SEEX - 3, SEEY - 1, t_door_metal_c ); } } else if( is_ot_type( "ants", terrain_type ) ) { - if( t_above == "anthill" ) { + if( dat.above() == "anthill" ) { if( const auto p = random_point( *this, [this]( const tripoint & n ) { return ter( n ) == t_rock_floor; } ) ) { @@ -6862,7 +6766,7 @@ FFFFFFFFFFFFFFFFFFFFFFf \n\ if( terrain_type->has_flag( has_sidewalk ) ) { for( int dir = 4; dir < 8; dir++ ) { // NE SE SW NW bool n_roads_nesw[4] = {}; - int n_num_dirs = terrain_type_to_nesw_array( oter_id( t_nesw[dir] ), n_roads_nesw ); + int n_num_dirs = terrain_type_to_nesw_array( oter_id( dat.t_nesw[dir] ), n_roads_nesw ); // only handle diagonal neighbors if( n_num_dirs == 2 && n_roads_nesw[( ( dir - 4 ) + 3 ) % 4] && @@ -6874,8 +6778,7 @@ FFFFFFFFFFFFFFFFFFFFFFf \n\ for( int x = SEEX * 2 - 4; x < SEEX * 2; x++ ) { if( x - y > SEEX * 2 - 4 ) { // TODO: more discriminating conditions - if( ter( x, y ) == t_grass || - ter( x, y ) == t_dirt || + if( ter( x, y ) == t_grass || ter( x, y ) == t_dirt || ter( x, y ) == t_shrub ) { ter_set( x, y, t_sidewalk ); } @@ -7126,7 +7029,8 @@ vehicle *map::add_vehicle( const vproto_id &type, const tripoint &p, const int d return nullptr; } if( !inbounds( p ) ) { - debugmsg( "Out of bounds add_vehicle t=%s d=%d p=%d,%d,%d", type.c_str(), dir, p.x, p.y, p.z ); + dbg( D_WARNING ) << string_format( "Out of bounds add_vehicle t=%s d=%d p=%d,%d,%d", type.c_str(), + dir, p.x, p.y, p.z ); return nullptr; } @@ -7377,6 +7281,10 @@ void map::rotate( int turns ) } } } + + // rotate zones + zone_manager &mgr = zone_manager::get_manager(); + mgr.rotate_zones( *this, turns ); } // Hideous function, I admit... @@ -8366,7 +8274,6 @@ void add_corpse( map *m, int x, int y ) m->add_corpse( tripoint( x, y, m->get_abs_sub().z ) ); } - //////////////////// mapgen update update_mapgen_function_json::update_mapgen_function_json( const std::string &s ) : mapgen_function_json_base( s ) diff --git a/src/mapgen.h b/src/mapgen.h index 9c7c33bd8f613..aab2411204530 100644 --- a/src/mapgen.h +++ b/src/mapgen.h @@ -2,27 +2,18 @@ #ifndef MAPGEN_H #define MAPGEN_H -#include +#include #include #include #include #include #include -#include "int_id.h" #include "mapgen_functions.h" #include "regional_settings.h" +#include "type_id.h" class time_point; -struct ter_t; - -using ter_id = int_id; -struct furn_t; - -using furn_id = int_id; -struct oter_t; - -using oter_id = int_id; struct point; class JsonArray; class JsonObject; @@ -290,7 +281,7 @@ struct jmapgen_objects { class mapgen_function_json_base { public: - bool check_inbounds( const jmapgen_int &x, const jmapgen_int &y ) const; + bool check_inbounds( const jmapgen_int &x, const jmapgen_int &y, JsonObject &jso ) const; size_t calc_index( size_t x, size_t y ) const; private: diff --git a/src/mapgen_functions.cpp b/src/mapgen_functions.cpp index ad1df6897ac59..a7f85cb82abc4 100644 --- a/src/mapgen_functions.cpp +++ b/src/mapgen_functions.cpp @@ -1,7 +1,7 @@ #include "mapgen_functions.h" -#include -#include +#include +#include #include #include #include @@ -32,7 +32,7 @@ #include "regional_settings.h" #include "rng.h" #include "string_id.h" -#include "mongroup.h" +#include "int_id.h" class npc_template; @@ -46,16 +46,12 @@ const mtype_id mon_beekeeper( "mon_beekeeper" ); const mtype_id mon_fungaloid_queen( "mon_fungaloid_queen" ); const mtype_id mon_fungaloid_seeder( "mon_fungaloid_seeder" ); const mtype_id mon_fungaloid_tower( "mon_fungaloid_tower" ); -const mtype_id mon_jabberwock( "mon_jabberwock" ); const mtype_id mon_rat_king( "mon_rat_king" ); const mtype_id mon_sewer_rat( "mon_sewer_rat" ); -const mtype_id mon_shia( "mon_shia" ); -const mtype_id mon_spider_web( "mon_spider_web" ); const mtype_id mon_spider_widow_giant( "mon_spider_widow_giant" ); const mtype_id mon_spider_cellar_giant( "mon_spider_cellar_giant" ); const mtype_id mon_wasp( "mon_wasp" ); const mtype_id mon_zombie_jackson( "mon_zombie_jackson" ); -const mtype_id mon_zombie( "mon_zombie" ); mapgendata::mapgendata( oter_id north, oter_id east, oter_id south, oter_id west, oter_id northeast, oter_id southeast, oter_id southwest, oter_id northwest, @@ -1244,68 +1240,72 @@ void mapgen_subway( map *m, oter_id terrain_type, mapgendata dat, const time_poi switch( num_dirs ) { case 4: // 4-way intersection - mapf::formatted_set_simple( m, 0, 0, "\ -.DD^^DD^.######.^DD^^DD.\n\ -DD^^DD^..######..^DD^^DD\n\ -D^^DD^....####....^DD^^D\n\ -^^DD^..............^DD^^\n\ -^DD^................^DD^\n\ -DD^..................^DD\n\ -D^....................^D\n\ -........................\n\ -........................\n\ -##........####........##\n\ -###......######......###\n\ -###......######......###\n\ -###......######......###\n\ -###......######......###\n\ -##........####........##\n\ -........................\n\ -........................\n\ -D^....................^D\n\ -DD^..................^DD\n\ -^DD^................^DD^\n\ -^^DD^..............^DD^^\n\ -D^^DD^....####....^DD^^D\n\ -DD^^DD^..######..^DD^^DD\n\ -.DD^^DD^.######.^DD^^DD.", - mapf::ter_bind( ". # ^ D", + mapf::formatted_set_simple( m, 0, 0, + "..^/D^^/D^....^D/^^D/^..\n" + ".^/DX^/DX......XD/^XD/^.\n" + "^/D^X/D^X......X^D/X^D/^\n" + "/D^^XD^.X......X.^DX^^D/\n" + "DXXDDXXXXXXXXXXXXXXDDXXD\n" + "^^/DX^^^X^^^^^^X^^^XD/^^\n" + "^/D^X^^^X^^^^^^X^^^X^D/^\n" + "/D^^X^^^X^^^^^^X^^^X^^D/\n" + "DXXXXXXXXXXXXXXXXXXXXXXD\n" + "^^^^X^^^X^^^^^^X^^^X^^^^\n" + "...^X^^^X^....^X^^^X^...\n" + "...^X^^^X^....^X^^^X^...\n" + "...^X^^^X^....^X^^^X^...\n" + "...^X^^^X^....^X^^^X^...\n" + "^^^^X^^^X^^^^^^X^^^X^^^^\n" + "DXXXXXXXXXXXXXXXXXXXXXXD\n" + "/D^^X^^^X^^^^^^X^^^X^^D/\n" + "^/D^X^^^X^^^^^^X^^^X^D/^\n" + "^^/DX^^^X^^^^^^X^^^XD/^^\n" + "DXXDDXXXXXXXXXXXXXXDDDDD\n" + "/D^^XD^.X......X.^DX^^D/\n" + "^/D^X/D^X......X^D/X^D/^\n" + ".^/DX^/DX......XD/^XD/^.\n" + "..^/D^^/D^....^D/^^D/^..", + mapf::ter_bind( ". # ^ / D X", t_rock_floor, t_rock, t_railroad_rubble, - t_railroad_track_d ), - mapf::furn_bind( ". # ^ D", + t_railroad_tie_d, + t_railroad_track_d, + t_railroad_track ), + mapf::furn_bind( ". # ^ / D X", + f_null, + f_null, f_null, f_null, f_null, f_null ) ); break; case 3: // tee - mapf::formatted_set_simple( m, 0, 0, "\ -.DD^^DD^.######.^DD^^DD.\n\ -DD^^DD^..######..^DD^^DD\n\ -D^^DD^....####....^DD^^D\n\ -^^DD^..............^DD^^\n\ -^DD^................^DD^\n\ -DD^..................^DD\n\ -D^....................^D\n\ -........................\n\ -........................\n\ -##........####........##\n\ -###......######......###\n\ -###......######......###\n\ -###......######......###\n\ -###......######......###\n\ -##........####........##\n\ -........................\n\ -^|^^|^^|^^|^^|^^|^^|^^|^\n\ -XxXXxXXxXXxXXxXXxXXxXXxX\n\ -^|^^|^^|^^|^^|^^|^^|^^|^\n\ -^|^^|^^|^^|^^|^^|^^|^^|^\n\ -^|^^|^^|^^|^^|^^|^^|^^|^\n\ -XxXXxXXxXXxXXxXXxXXxXXxX\n\ -^|^^|^^|^^|^^|^^|^^|^^|^\n\ -........................", + mapf::formatted_set_simple( m, 0, 0, + "..^/D^^/D^....^D/^^D/^..\n" + ".^/D^^/D^......^D/^^D/^.\n" + "^/D^^/D^........^D/^^D/^\n" + "/D^^/D^..........^D/^^D/\n" + "DXXDDXXXXXXXXXXXXXXDDXXD\n" + "^^/D^^^^^^^^^^^^^^^^D/^^\n" + "^/D^^^^^^^^^^^^^^^^^^D/^\n" + "/D^^^^^^^^^^^^^^^^^^^^D/\n" + "DXXXXXXXXXXXXXXXXXXXXXXD\n" + "........................\n" + "........................\n" + "........................\n" + "........................\n" + "........................\n" + "^|^^|^^|^^|^^|^^|^^|^^|^\n" + "XxXXxXXxXXxXXxXXxXXxXXxX\n" + "^|^^|^^|^^|^^|^^|^^|^^|^\n" + "^|^^|^^|^^|^^|^^|^^|^^|^\n" + "^|^^|^^|^^|^^|^^|^^|^^|^\n" + "XxXXxXXxXXxXXxXXxXXxXXxX\n" + "^|^^|^^|^^|^^|^^|^^|^^|^\n" + "........................\n" + "........................\n" + "........................", mapf::ter_bind( ". # ^ | X x / D", t_rock_floor, t_rock, @@ -1327,31 +1327,31 @@ XxXXxXXxXXxXXxXXxXXxXXxX\n\ break; case 2: // straight or diagonal if( diag ) { // diagonal subway get drawn differently from all other types - mapf::formatted_set_simple( m, 0, 0, "\ -.^DD^^DD^.####..^DD^^DD^\n\ -#.^DD^^DD^.......^DD^^DD\n\ -##.^DD^^DD^.......^DD^^D\n\ -###.^DD^^DD^.......^DD^^\n\ -####.^DD^^DD^.......^DD^\n\ -#####.^DD^^DD^.......^DD\n\ -######.^DD^^DD^.......^D\n\ -#######.^DD^^DD^.......^\n\ -########.^DD^^DD^.......\n\ -#########.^DD^^DD^......\n\ -##########.^DD^^DD^....#\n\ -###########.^DD^^DD^...#\n\ -############.^DD^^DD^..#\n\ -#############.^DD^^DD^.#\n\ -##############.^DD^^DD^.\n\ -###############.^DD^^DD^\n\ -################.^DD^^DD\n\ -#################.^DD^^D\n\ -##################.^DD^^\n\ -###################.^DD^\n\ -####################.^DD\n\ -#####################.^D\n\ -######################.^\n\ -#######################.", + mapf::formatted_set_simple( m, 0, 0, + "...^DD^^DD^...^DD^^DD^..\n" + "....^DD^^DD^...^DD^^DD^.\n" + ".....^DD^^DD^...^DD^^DD^\n" + "......^DD^^DD^...^DD^^DD\n" + ".......^DD^^DD^...^DD^^D\n" + "#.......^DD^^DD^...^DD^^\n" + "##.......^DD^^DD^...^DD^\n" + "###.......^DD^^DD^...^DD\n" + "####.......^DD^^DD^...^D\n" + "#####.......^DD^^DD^...^\n" + "######.......^DD^^DD^...\n" + "#######.......^DD^^DD^..\n" + "########.......^DD^^DD^.\n" + "#########.......^DD^^DD^\n" + "##########.......^DD^^DD\n" + "###########.......^DD^^D\n" + "############.......^DD^^\n" + "#############.......^DD^\n" + "##############.......^DD\n" + "###############.......^D\n" + "################.......^\n" + "#################.......\n" + "##################......\n" + "###################.....", mapf::ter_bind( ". # ^ D", t_rock_floor, t_rock, @@ -1363,31 +1363,31 @@ XxXXxXXxXXxXXxXXxXXxXXxX\n\ f_null, f_null ) ); } else { // normal subway drawing - mapf::formatted_set_simple( m, 0, 0, "\ -.^X^^^X^.######.^X^^^X^.\n\ -.-x---x-.######.-x---x-.\n\ -.^X^^^X^..####..^X^^^X^.\n\ -.^X^^^X^........^X^^^X^.\n\ -.-x---x-........-x---x-.\n\ -.^X^^^X^........^X^^^X^.\n\ -.^X^^^X^........^X^^^X^.\n\ -.-x---x-........-x---x-.\n\ -.^X^^^X^........^X^^^X^.\n\ -.^X^^^X^..####..^X^^^X^.\n\ -.-x---x-.######.-x---x-.\n\ -.^X^^^X^.######.^X^^^X^.\n\ -.^X^^^X^.######.^X^^^X^.\n\ -.-x---x-.######.-x---x-.\n\ -.^X^^^X^..####..^X^^^X^.\n\ -.^X^^^X^........^X^^^X^.\n\ -.-x---x-........-x---x-.\n\ -.^X^^^X^........^X^^^X^.\n\ -.^X^^^X^........^X^^^X^.\n\ -.-x---x-........-x---x-.\n\ -.^X^^^X^........^X^^^X^.\n\ -.^X^^^X^..####..^X^^^X^.\n\ -.-x---x-.######.-x---x-.\n\ -.^X^^^X^.######.^X^^^X^.", + mapf::formatted_set_simple( m, 0, 0, + "...^X^^^X^....^X^^^X^...\n" + "...-x---x-....-x---x-...\n" + "...^X^^^X^....^X^^^X^...\n" + "...^X^^^X^....^X^^^X^...\n" + "...-x---x-....-x---x-...\n" + "...^X^^^X^....^X^^^X^...\n" + "...^X^^^X^....^X^^^X^...\n" + "...-x---x-....-x---x-...\n" + "...^X^^^X^....^X^^^X^...\n" + "...^X^^^X^....^X^^^X^...\n" + "...-x---x-....-x---x-...\n" + "...^X^^^X^....^X^^^X^...\n" + "...^X^^^X^....^X^^^X^...\n" + "...-x---x-....-x---x-...\n" + "...^X^^^X^....^X^^^X^...\n" + "...^X^^^X^....^X^^^X^...\n" + "...-x---x-....-x---x-...\n" + "...^X^^^X^....^X^^^X^...\n" + "...^X^^^X^....^X^^^X^...\n" + "...-x---x-....-x---x-...\n" + "...^X^^^X^....^X^^^X^...\n" + "...^X^^^X^....^X^^^X^...\n" + "...-x---x-....-x---x-...\n" + "...^X^^^X^....^X^^^X^...", mapf::ter_bind( ". # ^ - X x", t_rock_floor, t_rock, @@ -1405,39 +1405,45 @@ XxXXxXXxXXxXXxXXxXXxXXxX\n\ } break; case 1: // dead end - mapf::formatted_set_simple( m, 0, 0, "\ -.^X^^^X^.######.^X^^^X^.\n\ -.-x---x-.######.-x---x-.\n\ -.^X^^^X^..####..^X^^^X^.\n\ -.^X^^^X^........^X^^^X^.\n\ -.-x---x-........-x---x-.\n\ -.^X^^^X^........^X^^^X^.\n\ -.^X^^^X^........^X^^^X^.\n\ -.-x---x-........-x---x-.\n\ -.^X^^^X^........^X^^^X^.\n\ -.^X^^^X^..####..^X^^^X^.\n\ -.-x---x-.######.-x---x-.\n\ -.^X^^^X^.######.^X^^^X^.\n\ -.........######.........\n\ -.........######.........\n\ -.........######.........\n\ -#.......########.......#\n\ -########################\n\ -########################\n\ -########################\n\ -########################\n\ -########################\n\ -########################\n\ -########################\n\ -########################", - mapf::ter_bind( ". # ^ - X x", + mapf::formatted_set_simple( m, 0, 0, + "...^X^^^X^..../D^^/D^...\n" + "...-x---x-.../DX^/DX^...\n" + "...^X^^^X^../D^X/D^X^...\n" + "...^X^^^X^./D.^XD^^X^...\n" + "...^X^^^X^/D../D^^^X^...\n" + "...^X^^^X/D../DX^^^X^...\n" + "...^X^^^XD../D^X^^^X^...\n" + "...^X^^/D^./D.-x---x-...\n" + "...^X^/DX^/D..^X^^^X^...\n" + "...^X/D^X/D...^X^^^X^...\n" + "...^XD^^XD....-x---x-...\n" + "...^D^^^D^....^X^^^X^...\n" + "...^X^^^X^....^X^^^X^...\n" + "...-x---x-....-x---x-...\n" + "...^X^^^X^....^X^^^X^...\n" + "...^X^^^X^....^X^^^X^...\n" + "...-x---x-....-x---x-...\n" + "...^X^^^X^....^X^^^X^...\n" + "...^X^^^X^....^X^^^X^...\n" + "...^S^^^S^....^S^^^S^...\n" + "...^^^^^^^....^^^^^^^...\n" + "#......................#\n" + "##....................##\n" + "########################", + mapf::ter_bind( ". # S ^ - / D X x", t_rock_floor, t_rock, + t_buffer_stop, t_railroad_rubble, t_railroad_tie, + t_railroad_tie_d, + t_railroad_track_d, t_railroad_track, t_railroad_track_on_tie ), - mapf::furn_bind( ". # ^ - X x", + mapf::furn_bind( ". # S ^ - / D X x", + f_null, + f_null, + f_null, f_null, f_null, f_null, @@ -2440,10 +2446,12 @@ void mapgen_generic_house( map *m, oter_id terrain_type, mapgendata dat, const t int x = 0; int y = 0; lw = rng( 0, 4 ); // West external wall + // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores) mw = lw + rng( 7, 10 ); // Middle wall between bedroom & kitchen/bath rw = SEEX * 2 - rng( 1, 5 ); // East external wall tw = rng( 1, 6 ); // North external wall bw = SEEX * 2 - rng( 2, 5 ); // South external wall + // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores) cw = tw + rng( 4, 7 ); // Middle wall between living room & kitchen/bed actual_house_height = bw - rng( 4, 6 ); //reserving some space for backyard. Actual south external wall. diff --git a/src/mapgen_functions.h b/src/mapgen_functions.h index ebddffd5e1bd0..ba5fb9143635d 100644 --- a/src/mapgen_functions.h +++ b/src/mapgen_functions.h @@ -6,24 +6,13 @@ #include #include "enums.h" -#include "int_id.h" +#include "type_id.h" #include "weighted_list.h" class time_point; -struct ter_t; - -using ter_id = int_id; -struct furn_t; - -using furn_id = int_id; -struct trap; - -using trap_id = int_id; struct regional_settings; class map; -struct oter_t; -using oter_id = int_id; enum field_id : int; class mission; diff --git a/src/mapgenformat.cpp b/src/mapgenformat.cpp index ead8801e85a23..c1e307267e325 100644 --- a/src/mapgenformat.cpp +++ b/src/mapgenformat.cpp @@ -1,12 +1,11 @@ #include "mapgenformat.h" -#include +#include #include #include #include "map.h" #include "mapdata.h" -#include "game.h" namespace mapf { @@ -41,7 +40,7 @@ void formatted_set_simple( map *m, const int startx, const int starty, const cha } template -format_effect::format_effect( std::string chars, std::vector dets ) +format_effect::format_effect( const std::string &chars, std::vector dets ) : characters( chars ), determiners( dets ) { characters.erase( std::remove_if( characters.begin(), characters.end(), isspace ), diff --git a/src/mapgenformat.h b/src/mapgenformat.h index 925b1ce9945cf..5a088b39e816c 100644 --- a/src/mapgenformat.h +++ b/src/mapgenformat.h @@ -2,19 +2,13 @@ #ifndef MAPGENFORMAT_H #define MAPGENFORMAT_H -#include +#include #include #include #include -#include "int_id.h" +#include "type_id.h" -struct ter_t; - -using ter_id = int_id; -struct furn_t; - -using furn_id = int_id; class map; namespace mapf @@ -44,7 +38,7 @@ class format_effect std::vector determiners; public: - format_effect( std::string chars, + format_effect( const std::string &chars, std::vector dets ); ID translate( char c ) const; diff --git a/src/martialarts.cpp b/src/martialarts.cpp index 6e8c95e663c80..979d73b5b8b4a 100644 --- a/src/martialarts.cpp +++ b/src/martialarts.cpp @@ -22,7 +22,6 @@ #include "string_formatter.h" #include "translations.h" #include "color.h" -#include "creature.h" #include "cursesdef.h" #include "item.h" #include "pimpl.h" @@ -199,6 +198,7 @@ void martialart::load( JsonObject &jo, const std::string & ) mandatory( jo, was_loaded, "name", name ); mandatory( jo, was_loaded, "description", description ); + mandatory( jo, was_loaded, "initiate", initiate ); optional( jo, was_loaded, "static_buffs", static_buffs, ma_buff_reader{} ); optional( jo, was_loaded, "onmove_buffs", onmove_buffs, ma_buff_reader{} ); @@ -661,6 +661,15 @@ bool martialart::weapon_valid( const item &it ) const return !strictly_unarmed && it.has_flag( "UNARMED_WEAPON" ); } +std::string martialart::get_initiate_player_message() const +{ + return initiate[0]; +} + +std::string martialart::get_initiate_npc_message() const +{ + return initiate[1]; +} // Player stuff // technique diff --git a/src/martialarts.h b/src/martialarts.h index c942c1a0bf346..93a733c397193 100644 --- a/src/martialarts.h +++ b/src/martialarts.h @@ -2,7 +2,7 @@ #ifndef MARTIALARTS_H #define MARTIALARTS_H -#include +#include #include #include #include @@ -11,6 +11,7 @@ #include "bonuses.h" #include "calendar.h" #include "string_id.h" +#include "type_id.h" #include "ui.h" #include "input.h" @@ -20,21 +21,6 @@ class effect; class player; class item; struct itype; -class martialart; - -using matype_id = string_id; -class ma_buff; - -using mabuff_id = string_id; -class ma_technique; - -using matec_id = string_id; -class effect_type; - -using efftype_id = string_id; -class Skill; - -using skill_id = string_id; matype_id martial_art_learned_from( const itype & ); @@ -223,11 +209,16 @@ class martialart bool has_weapon( const std::string &item ) const; // Is this weapon OK with this art? bool weapon_valid( const item &u ) const; + // Getter for player style change message + std::string get_initiate_player_message() const; + // Getter for NPC style change message + std::string get_initiate_npc_message() const; matype_id id; bool was_loaded = false; std::string name; std::string description; + std::vector initiate; int arm_block; int leg_block; bool arm_block_with_bio_armor_arms; diff --git a/src/material.cpp b/src/material.cpp index 3cbf8a79561cd..3aac239c4c988 100644 --- a/src/material.cpp +++ b/src/material.cpp @@ -13,7 +13,6 @@ #include "item.h" #include "json.h" #include "translations.h" -#include "itype.h" #include "player.h" namespace @@ -76,6 +75,7 @@ void material_type::load( JsonObject &jsobj, const std::string & ) assign( jsobj, "salvaged_into", _salvaged_into ); optional( jsobj, was_loaded, "repaired_with", _repaired_with, "null" ); optional( jsobj, was_loaded, "edible", _edible, false ); + optional( jsobj, was_loaded, "rotting", _rotting, false ); optional( jsobj, was_loaded, "soft", _soft, false ); optional( jsobj, was_loaded, "reinforces", _reinforces, false ); @@ -270,6 +270,11 @@ bool material_type::edible() const return _edible; } +bool material_type::rotting() const +{ + return _rotting; +} + bool material_type::soft() const { return _soft; @@ -324,9 +329,21 @@ material_list materials::get_compactable() { material_list all = get_all(); material_list compactable; - std::copy_if( all.begin(), all.end(), std::back_inserter( compactable ), []( material_type mt ) { + std::copy_if( all.begin(), all.end(), + std::back_inserter( compactable ), []( const material_type & mt ) { return !mt.compacts_into().empty(); } ); return compactable; } +std::set materials::get_rotting() +{ + material_list all = get_all(); + std::set rotting; + for( const material_type &m : all ) { + if( m.rotting() ) { + rotting.emplace( m.ident() ); + } + } + return rotting; +} diff --git a/src/material.h b/src/material.h index 5dd8f1a88b9f9..b2da4cc76ad00 100644 --- a/src/material.h +++ b/src/material.h @@ -2,9 +2,10 @@ #ifndef MATERIAL_H #define MATERIAL_H -#include +#include #include #include +#include #include #include #include @@ -13,16 +14,14 @@ #include "game_constants.h" #include "optional.h" #include "string_id.h" +#include "type_id.h" -enum damage_type : int; class material_type; -using material_id = string_id; +enum damage_type : int; using itype_id = std::string; class JsonObject; -class vitamin; -using vitamin_id = string_id; using mat_burn_products = std::vector>; using mat_compacts_into = std::vector; using material_list = std::vector; @@ -50,6 +49,7 @@ class material_type float _latent_heat = 334; int _freeze_point = 32; // Farenheit bool _edible = false; + bool _rotting = false; bool _soft = false; bool _reinforces = false; @@ -101,6 +101,7 @@ class material_type int freeze_point() const; int density() const; bool edible() const; + bool rotting() const; bool soft() const; bool reinforces() const; @@ -124,6 +125,7 @@ void reset(); material_list get_all(); material_list get_compactable(); +std::set get_rotting(); } diff --git a/src/mattack_actors.cpp b/src/mattack_actors.cpp index bb563b64d875f..24e74a691347c 100644 --- a/src/mattack_actors.cpp +++ b/src/mattack_actors.cpp @@ -1,13 +1,12 @@ #include "mattack_actors.h" -#include +#include #include #include #include "game.h" #include "generic_factory.h" #include "gun_mode.h" -#include "itype.h" #include "line.h" #include "map.h" #include "map_iterator.h" @@ -22,7 +21,6 @@ #include "item.h" #include "json.h" #include "player.h" -#include "pldata.h" #include "rng.h" #include "material.h" diff --git a/src/mattack_actors.h b/src/mattack_actors.h index fd07486982f39..25a18ef2d26e4 100644 --- a/src/mattack_actors.h +++ b/src/mattack_actors.h @@ -2,7 +2,7 @@ #ifndef MATTACK_ACTORS_H #define MATTACK_ACTORS_H -#include +#include #include #include #include @@ -11,17 +11,14 @@ #include "damage.h" #include "mattack_common.h" #include "mtype.h" -#include "string_id.h" +#include "type_id.h" #include "weighted_list.h" #include "bodypart.h" class JsonObject; class monster; -class gun_mode; class Creature; -using gun_mode_id = string_id; - class leap_actor : public mattack_actor { public: diff --git a/src/melee.cpp b/src/melee.cpp index afc8e2374fcb2..2994810f8f31f 100644 --- a/src/melee.cpp +++ b/src/melee.cpp @@ -1,6 +1,6 @@ #include "melee.h" -#include +#include #include #include #include @@ -49,6 +49,7 @@ #include "units.h" #include "weighted_list.h" #include "material.h" +#include "type_id.h" static const bionic_id bio_cqb( "bio_cqb" ); @@ -468,7 +469,7 @@ void player::melee_attack( Creature &t, bool allow_special, const matec_id &forc // Make a rather quiet sound, to alert any nearby monsters if( !is_quiet() ) { // check martial arts silence - sounds::sound( pos(), 8, sounds::sound_t::combat, "whack!" ); + sounds::sound( pos(), 8, sounds::sound_t::combat, "whack!" ); //sound generated later } std::string material = "flesh"; if( t.is_monster() ) { @@ -1603,7 +1604,8 @@ std::string player::melee_special_effects( Creature &t, damage_instance &d, item weap.tname() ); } - sounds::sound( pos(), 16, sounds::sound_t::combat, "Crack!" ); + sounds::sound( pos(), 16, sounds::sound_t::combat, "Crack!", true, "smash_success", + "smash_glass_contents" ); // Dump its contents on the ground for( auto &elem : weap.contents ) { g->m.add_item_or_charges( pos(), elem ); @@ -1960,7 +1962,7 @@ double player::weapon_value( const item &weap, long ammo ) const // A small bonus for guns you can also use to hit stuff with (bayonets etc.) const double my_val = more + ( less / 2.0 ); - add_msg( m_debug, "%s (%ld ammo) sum value: %.1f", weap.tname(), ammo, my_val ); + add_msg( m_debug, "%s (%ld ammo) sum value: %.1f", weap.type->get_id(), ammo, my_val ); return my_val; } @@ -2008,7 +2010,7 @@ double player::melee_value( const item &weap ) const my_value *= 1.0f + 0.5f * ( sqrtf( reach ) - 1.0f ); } - add_msg( m_debug, "%s as melee: %.1f", weap.tname(), my_value ); + add_msg( m_debug, "%s as melee: %.1f", weap.type->get_id(), my_value ); return std::max( 0.0, my_value ); } diff --git a/src/messages.h b/src/messages.h index 4000f5c857bc1..3b21b86954a6c 100644 --- a/src/messages.h +++ b/src/messages.h @@ -2,7 +2,7 @@ #ifndef MESSAGES_H #define MESSAGES_H -#include +#include #include #include #include diff --git a/src/mission.cpp b/src/mission.cpp index 692ac92d80b6d..b7d6027ba06d2 100644 --- a/src/mission.cpp +++ b/src/mission.cpp @@ -77,6 +77,7 @@ mission *mission::find( int id ) std::vector mission::get_all_active() { std::vector ret; + ret.reserve( world_missions.size() ); for( auto &pr : world_missions ) { ret.push_back( &pr.second ); } @@ -111,6 +112,7 @@ std::vector mission::to_ptr_vector( const std::vector &vec ) std::vector mission::to_uid_vector( const std::vector &vec ) { std::vector result; + result.reserve( vec.size() ); for( auto &miss : vec ) { result.push_back( miss->uid ); } diff --git a/src/mission.h b/src/mission.h index 67527e429ba64..841c2a688a8fa 100644 --- a/src/mission.h +++ b/src/mission.h @@ -16,28 +16,24 @@ #include "item_group.h" #include "string_id.h" #include "mtype.h" +#include "type_id.h" +#include "game_constants.h" +#include "omdata.h" +#include "optional.h" class player; class mission; class Creature; -class npc_class; class JsonObject; class JsonArray; class JsonIn; class JsonOut; -struct mission_type; class overmapbuffer; -struct oter_type_t; -struct species_type; class item; +class npc; enum npc_mission : int; -using npc_class_id = string_id; -using mission_type_id = string_id; -using species_id = string_id; -using mtype_id = string_id; - namespace debug_menu { class mission_debug; @@ -133,13 +129,17 @@ struct mission_start { static void reveal_lab_train_depot( mission * ); // Find lab train depot }; -struct mission_end { // These functions are run when a mission ends - static void standard( mission * ) {} // Nothing special happens - static void deposit_box( mission * ); // random valuable reward +// These functions are run when a mission ends +struct mission_end { + // Nothing special happens + static void standard( mission * ) {} + // random valuable reward + static void deposit_box( mission * ); }; struct mission_fail { - static void standard( mission * ) {} // Nothing special happens + // Nothing special happens + static void standard( mission * ) {} }; struct mission_target_params { @@ -184,19 +184,26 @@ bool set_update_mapgen( JsonObject &jo, std::vector> &funcs ); }; - struct mission_type { - mission_type_id id = mission_type_id( "MISSION_NULL" ); // Matches it to a mission_type_id above + // Matches it to a mission_type_id above + mission_type_id id = mission_type_id( "MISSION_NULL" ); bool was_loaded = false; - std::string name = "Bugged mission type"; // The name the mission is given in menus - mission_goal goal; // The basic goal type - int difficulty = 0; // Difficulty; TODO: come up with a scale - int value = 0; // Value; determines rewards and such - time_duration deadline_low = 0_turns; // Low and high deadlines + // The name the mission is given in menus + std::string name = "Bugged mission type"; + // The basic goal type + mission_goal goal; + // Difficulty; TODO: come up with a scale + int difficulty = 0; + // Value; determines rewards and such + int value = 0; + // Low and high deadlines + time_duration deadline_low = 0_turns; time_duration deadline_high = 0_turns; - bool urgent = false; // If true, the NPC will press this mission! + // If true, the NPC will press this mission! + bool urgent = false; - std::vector origins; // Points of origin + // Points of origin + std::vector origins; itype_id item_id = "null"; Group_tag group_id = "null"; itype_id container_id = "null"; @@ -266,34 +273,54 @@ class mission failure }; private: - friend struct mission_type; // so mission_type::create is simpler - friend struct mission_start; // so it can initialize some properties + // So mission_type::create is simpler + friend struct mission_type; + // So it can initialize some properties + friend struct mission_start; friend class debug_menu::mission_debug; const mission_type *type; - std::string description;// Basic descriptive text + // Basic descriptive text + std::string description; mission_status status; - unsigned long value; // Cash/Favor value of completing this - npc_favor reward; // If there's a special reward for completing it - int uid; // Unique ID number, used for referencing elsewhere + // Cash/Favor value of completing this + unsigned long value; + // If there's a special reward for completing it + npc_favor reward; + // Unique ID number, used for referencing elsewhere + int uid; // Marked on the player's map. (INT_MIN, INT_MIN) for none, // global overmap terrain coordinates. tripoint target; - itype_id item_id; // Item that needs to be found (or whatever) - int item_count; // The number of above items needed - string_id target_id; // Destination type to be reached - npc_class_id recruit_class;// The type of NPC you are to recruit - int target_npc_id; // The ID of a specific NPC to interact with - mtype_id monster_type; // Monster ID that are to be killed - species_id monster_species; // Monster species that are to be killed - int monster_kill_goal; // The number of monsters you need to kill - int kill_count_to_reach; // The kill count you need to reach to complete mission + // Item that needs to be found (or whatever) + itype_id item_id; + // The number of above items needed + int item_count; + // Destination type to be reached + string_id target_id; + // The type of NPC you are to recruit + npc_class_id recruit_class; + // The ID of a specific NPC to interact with + int target_npc_id; + // Monster ID that are to be killed + mtype_id monster_type; + // Monster species that are to be killed + species_id monster_species; + // The number of monsters you need to kill + int monster_kill_goal; + // The kill count you need to reach to complete mission + int kill_count_to_reach; time_point deadline; - int npc_id; // ID of a related npc - int good_fac_id, bad_fac_id; // IDs of the protagonist/antagonist factions - int step; // How much have we completed? - mission_type_id follow_up; // What mission do we get after this succeeds? - int player_id; // The id of the player that has accepted this mission. + // ID of a related npc + int npc_id; + // IDs of the protagonist/antagonist factions + int good_fac_id, bad_fac_id; + // How much have we completed? + int step; + // What mission do we get after this succeeds? + mission_type_id follow_up; + // The id of the player that has accepted this mission. + int player_id; public: std::string name(); diff --git a/src/mission_companion.cpp b/src/mission_companion.cpp index b99f6cb281204..2a7e88eeb42ce 100644 --- a/src/mission_companion.cpp +++ b/src/mission_companion.cpp @@ -1,7 +1,7 @@ #include "mission_companion.h" -#include -#include +#include +#include #include #include #include @@ -41,7 +41,6 @@ #include "map.h" #include "monster.h" #include "npc.h" -#include "npc_class.h" #include "optional.h" #include "output.h" #include "pimpl.h" @@ -730,7 +729,9 @@ void talk_function::caravan_return( npc &p, const std::string &dest, const std:: std::vector caravan_party; std::vector bandit_party; std::vector npc_list = companion_list( p, id ); - for( int i = 0; i < rng( 1, 3 ); i++ ) { + const int rand_caravan_size = rng( 1, 3 ); + caravan_party.reserve( npc_list.size() + rand_caravan_size ); + for( int i = 0; i < rand_caravan_size; i++ ) { caravan_party.push_back( temp_npc( string_id( "commune_guard" ) ) ); } for( auto &elem : npc_list ) { @@ -743,7 +744,9 @@ void talk_function::caravan_return( npc &p, const std::string &dest, const std:: int time = 200 + distance * 100; int experience = rng( 10, time / 300 ); - for( int i = 0; i < rng( 1, 3 ); i++ ) { + const int rand_bandit_size = rng( 1, 3 ); + bandit_party.reserve( rand_bandit_size * 2 ); + for( int i = 0; i < rand_bandit_size * 2; i++ ) { bandit_party.push_back( temp_npc( string_id( "bandit" ) ) ); bandit_party.push_back( temp_npc( string_id( "thug" ) ) ); } @@ -1850,11 +1853,11 @@ std::vector talk_function::companion_rank( const std::vector } std::vector adjusted; - for( auto entry : raw ) { + for( const auto &entry : raw ) { comp_rank r; - r.combat = 100 * entry.combat / max_combat; - r.survival = 100 * entry.survival / max_survival; - r.industry = 100 * entry.industry / max_industry; + r.combat = max_combat ? 100 * entry.combat / max_combat : 0; + r.survival = max_survival ? 100 * entry.survival / max_survival : 0; + r.industry = max_industry ? 100 * entry.industry / max_industry : 0; adjusted.push_back( r ); } return adjusted; diff --git a/src/mission_companion.h b/src/mission_companion.h index 4f70ae8dddf24..290d830087fc2 100644 --- a/src/mission_companion.h +++ b/src/mission_companion.h @@ -7,7 +7,7 @@ #include #include "calendar.h" -#include "itype.h" +#include "type_id.h" class npc; class item; diff --git a/src/mission_end.cpp b/src/mission_end.cpp index dc081c659ae87..9fe1eb474ebb8 100644 --- a/src/mission_end.cpp +++ b/src/mission_end.cpp @@ -18,7 +18,8 @@ void mission_end::deposit_box( mission *miss ) debugmsg( "could not find mission NPC %d", miss->get_npc_id() ); return; } - p->set_attitude( NPCATT_NULL );//npc leaves your party + // Npc leaves your party + p->set_attitude( NPCATT_NULL ); std::string itemName = "deagle_44"; if( one_in( 4 ) ) { itemName = "katana"; diff --git a/src/mission_start.cpp b/src/mission_start.cpp index 4d349adcb42d7..78cdd7893ae80 100644 --- a/src/mission_start.cpp +++ b/src/mission_start.cpp @@ -1,21 +1,15 @@ #include "mission.h" // IWYU pragma: associated #include -#include #include #include "computer.h" -#include "coordinate_conversions.h" #include "debug.h" -#include "dialogue.h" #include "game.h" -#include "json.h" #include "line.h" #include "map.h" #include "map_iterator.h" #include "mapdata.h" -// TODO: Remove this include once 2D wrappers are no longer needed -#include "mapgen_functions.h" #include "messages.h" #include "name.h" #include "npc.h" @@ -95,8 +89,9 @@ void mission_start::kill_horde_master( mission *miss ) debugmsg( "could not find mission NPC %d", miss->npc_id ); return; } - p->set_attitude( NPCATT_FOLLOW );//npc joins you - //pick one of the below locations for the horde to haunt + // Npc joins you + p->set_attitude( NPCATT_FOLLOW ); + // Pick one of the below locations for the horde to haunt const auto center = p->global_omt_location(); tripoint site = overmap_buffer.find_closest( center, "office_tower_1", 0, false ); if( site == overmap::invalid_tripoint ) { @@ -252,7 +247,8 @@ void mission_start::place_deposit_box( mission *miss ) debugmsg( "could not find mission NPC %d", miss->npc_id ); return; } - p->set_attitude( NPCATT_FOLLOW );//npc joins you + // Npc joins you + p->set_attitude( NPCATT_FOLLOW ); tripoint site = overmap_buffer.find_closest( p->global_omt_location(), "bank", 0, false ); if( site == overmap::invalid_tripoint ) { site = overmap_buffer.find_closest( p->global_omt_location(), "office_tower_1", 0, false ); diff --git a/src/mission_util.cpp b/src/mission_util.cpp index df888cf3cf2eb..8b8bede26dbef 100644 --- a/src/mission_util.cpp +++ b/src/mission_util.cpp @@ -1,6 +1,8 @@ #include #include #include +#include +#include #include "coordinate_conversions.h" #include "dialogue.h" @@ -15,6 +17,12 @@ #include "enums.h" #include "player.h" #include "rng.h" +#include "debug.h" +#include "line.h" +#include "omdata.h" +#include "optional.h" +#include "translations.h" +#include "type_id.h" const tripoint reveal_destination( const std::string &type ) { @@ -250,8 +258,7 @@ cata::optional mission_util::assign_mission_target( const mission_targ // use the player or NPC's current position, adjust for the z value if any tripoint origin_pos = get_mission_om_origin( params ); - cata::optional target_pos = cata::nullopt; - target_pos = find_or_create_om_terrain( origin_pos, params ); + cata::optional target_pos = find_or_create_om_terrain( origin_pos, params ); if( target_pos ) { if( params.offset ) { @@ -501,8 +508,8 @@ bool mission_type::parse_funcs( JsonObject &jo, std::function phase_func = [ funcs, talk_effects ]( mission * miss ) { ::dialogue d; d.beta = g->find_npc( miss->get_npc_id() ); + standard_npc default_npc( "Default" ); if( d.beta == nullptr ) { - standard_npc default_npc( "Default" ); d.beta = &default_npc; } d.alpha = &g->u; diff --git a/src/missiondef.cpp b/src/missiondef.cpp index 9822d4c07a681..9d2889dbb550f 100644 --- a/src/missiondef.cpp +++ b/src/missiondef.cpp @@ -10,7 +10,6 @@ #include "item.h" #include "rng.h" #include "debug.h" -#include "game.h" #include "json.h" enum legacy_mission_type_id { diff --git a/src/mod_manager.h b/src/mod_manager.h index 25e538b46026a..634ca1912370a 100644 --- a/src/mod_manager.h +++ b/src/mod_manager.h @@ -2,7 +2,7 @@ #ifndef MOD_MANAGER_H #define MOD_MANAGER_H -#include +#include #include #include #include @@ -11,6 +11,7 @@ #include "pimpl.h" #include "string_id.h" +#include "type_id.h" struct WORLD; @@ -23,10 +24,6 @@ const std::vector > &get_mod_list_categories const std::vector > &get_mod_list_tabs(); const std::map &get_mod_list_cat_tab(); -struct MOD_INFORMATION; - -using mod_id = string_id; - struct MOD_INFORMATION { private: friend mod_manager; diff --git a/src/mod_manager_ui.cpp b/src/mod_manager_ui.cpp index ecf078cd6b3a4..4928826d3dbf4 100644 --- a/src/mod_manager_ui.cpp +++ b/src/mod_manager_ui.cpp @@ -9,7 +9,7 @@ #include "output.h" #include "string_formatter.h" #include "translations.h" -#include "game.h" +#include "string_id.h" mod_ui::mod_ui( mod_manager &mman ) : active_manager( mman ) @@ -27,12 +27,18 @@ std::string mod_ui::get_information( const MOD_INFORMATION *mod ) if( !mod->authors.empty() ) { info << "" << ngettext( "Author", "Authors", mod->authors.size() ) - << ": " << enumerate_as_string( mod->authors ) << "\n"; + << ": " << enumerate_as_string( mod->authors ); + if( mod->maintainers.empty() ) { + info << "\n"; + } else { + info << " "; + } } if( !mod->maintainers.empty() ) { info << "" << ngettext( "Maintainer", "Maintainers", mod->maintainers.size() ) - << ": " << enumerate_as_string( mod->maintainers ) << "\n"; + << u8":\u00a0"/*non-breaking space*/ + << enumerate_as_string( mod->maintainers ) << "\n"; } if( !mod->dependencies.empty() ) { diff --git a/src/monattack.cpp b/src/monattack.cpp index 9664cef16d815..4899f995d9032 100644 --- a/src/monattack.cpp +++ b/src/monattack.cpp @@ -1,7 +1,7 @@ #include "monattack.h" -#include -#include +#include +#include #include #include #include @@ -48,7 +48,6 @@ #include "vpart_position.h" #include "weighted_list.h" #include "calendar.h" -#include "character.h" #include "creature.h" #include "damage.h" #include "enums.h" @@ -63,8 +62,7 @@ #include "player.h" #include "string_formatter.h" #include "tileray.h" -#include "material.h" -#include "pldata.h" +#include "type_id.h" const mtype_id mon_ant( "mon_ant" ); const mtype_id mon_ant_acid( "mon_ant_acid" ); @@ -359,7 +357,8 @@ bool mattack::shriek( monster *z ) } z->moves -= 240; // It takes a while - sounds::sound( z->pos(), 50, sounds::sound_t::alert, _( "a terrible shriek!" ) ); + sounds::sound( z->pos(), 50, sounds::sound_t::alert, _( "a terrible shriek!" ), false, "shout", + "shriek" ); return true; } @@ -382,7 +381,8 @@ bool mattack::shriek_alert( monster *z ) } z->moves -= 150; - sounds::sound( z->pos(), 120, sounds::sound_t::alert, _( "a piercing wail!" ) ); + sounds::sound( z->pos(), 120, sounds::sound_t::alert, _( "a piercing wail!" ), false, "shout", + "wail" ); z->add_effect( effect_shrieking, 1_minutes ); return true; @@ -442,7 +442,8 @@ bool mattack::howl( monster *z ) } z->moves -= 200; // It takes a while - sounds::sound( z->pos(), 35, sounds::sound_t::alert, _( "an ear-piercing howl!" ) ); + sounds::sound( z->pos(), 35, sounds::sound_t::alert, _( "an ear-piercing howl!" ), false, "shout", + "howl" ); if( z->friendly != 0 ) { // TODO: Make this use mon's faction when those are in for( monster &other : g->all_monsters() ) { @@ -473,7 +474,8 @@ bool mattack::rattle( monster *z ) } z->moves -= 20; // It takes a very short while - sounds::sound( z->pos(), 10, sounds::sound_t::alarm, _( "a sibilant rattling sound!" ) ); + sounds::sound( z->pos(), 10, sounds::sound_t::alarm, _( "a sibilant rattling sound!" ), false, + "misc", "rattling" ); return true; } @@ -494,7 +496,8 @@ bool mattack::acid( monster *z ) return false; // Can't see/reach target, no attack } z->moves -= 300; // It takes a while - sounds::sound( z->pos(), 4, sounds::sound_t::combat, _( "a spitting noise." ) ); + sounds::sound( z->pos(), 4, sounds::sound_t::combat, _( "a spitting noise." ), false, "misc", + "spitting" ); projectile proj; proj.speed = 10; @@ -641,7 +644,9 @@ bool mattack::shockstorm( monster *z ) auto msg_type = target == &g->u ? m_bad : m_neutral; add_msg( msg_type, _( "A bolt of electricity arcs towards %s!" ), target->disp_name() ); } - sfx::play_variant_sound( "fire_gun", "bio_lightning", sfx::get_heard_volume( z->pos() ) ); + if( !g->u.is_deaf() ) { + sfx::play_variant_sound( "fire_gun", "bio_lightning", sfx::get_heard_volume( z->pos() ) ); + } tripoint tarp( target->posx() + rng( -1, 1 ) + rng( -1, 1 ), target->posy() + rng( -1, 1 ) + rng( -1, 1 ), target->posz() ); @@ -1479,7 +1484,8 @@ bool mattack::spit_sap( monster *z ) bool mattack::triffid_heartbeat( monster *z ) { - sounds::sound( z->pos(), 14, sounds::sound_t::movement, _( "thu-THUMP." ) ); + sounds::sound( z->pos(), 14, sounds::sound_t::movement, _( "thu-THUMP." ), true, "misc", + "heartbeat" ); z->moves -= 300; if( z->friendly != 0 ) { return true; @@ -1545,7 +1551,7 @@ bool mattack::fungus( monster *z ) z->friendly = 100; } //~ the sound of a fungus releasing spores - sounds::sound( z->pos(), 10, sounds::sound_t::combat, _( "Pouf!" ) ); + sounds::sound( z->pos(), 10, sounds::sound_t::combat, _( "Pouf!" ), false, "misc", "puff" ); if( g->u.sees( *z ) ) { add_msg( m_warning, _( "Spores are released from the %s!" ), z->name() ); } @@ -1609,7 +1615,7 @@ bool mattack::fungus_corporate( monster *z ) bool mattack::fungus_haze( monster *z ) { //~ That spore sound again - sounds::sound( z->pos(), 10, sounds::sound_t::combat, _( "Pouf!" ) ); + sounds::sound( z->pos(), 10, sounds::sound_t::combat, _( "Pouf!" ), true, "misc", "puff" ); if( g->u.sees( *z ) ) { add_msg( m_info, _( "The %s pulses, and fresh fungal material bursts forth." ), z->name() ); } @@ -1643,18 +1649,18 @@ bool mattack::fungus_big_blossom( monster *z ) add_msg( m_warning, _( "The %s suddenly inhales!" ), z->name() ); } //~Sound of a giant fungal blossom inhaling - sounds::sound( z->pos(), 20, sounds::sound_t::combat, _( "WOOOSH!" ) ); + sounds::sound( z->pos(), 20, sounds::sound_t::combat, _( "WOOOSH!" ), true, "misc", "inhale" ); if( u_see ) { add_msg( m_bad, _( "The %s discharges an immense flow of spores, smothering the flames!" ), z->name() ); } //~Sound of a giant fungal blossom blowing out the dangerous fire! - sounds::sound( z->pos(), 20, sounds::sound_t::combat, _( "POUFF!" ) ); + sounds::sound( z->pos(), 20, sounds::sound_t::combat, _( "POUFF!" ), true, "misc", "exhale" ); return true; } else { // No fire detected, routine haze-emission //~ That spore sound, much louder - sounds::sound( z->pos(), 15, sounds::sound_t::combat, _( "POUF." ) ); + sounds::sound( z->pos(), 15, sounds::sound_t::combat, _( "POUF." ), true, "misc", "puff" ); if( u_see ) { add_msg( m_info, _( "The %s pulses, and fresh fungal material bursts forth!" ), z->name() ); } @@ -2221,7 +2227,6 @@ bool mattack::formblob( monster *z ) // Brain blobs don't get sped up, they heal at the cost of the other blob. // But only if they are hurt badly. if( othermon.get_hp() < othermon.get_hp_max() / 2 ) { - didit = true; othermon.heal( z->get_speed_base(), true ); z->set_hp( 0 ); return true; @@ -2828,7 +2833,8 @@ bool mattack::photograph( monster *z ) cname = g->u.name; } sounds::sound( z->pos(), 15, sounds::sound_t::alert, - string_format( _( "a robotic voice boom, \"Citizen %s!\"" ), cname ) ); + string_format( _( "a robotic voice boom, \"Citizen %s!\"" ), cname ), false, "speech", + z->type->id.str() ); if( g->u.weapon.is_gun() ) { sounds::sound( z->pos(), 15, sounds::sound_t::alert, _( "\"Drop your gun! Now!\"" ) ); @@ -2895,7 +2901,7 @@ void mattack::rifle( monster *z, Creature *target ) if( target == &g->u ) { if( !z->has_effect( effect_targeted ) ) { - sounds::sound( z->pos(), 8, sounds::sound_t::alarm, _( "beep-beep." ) ); + sounds::sound( z->pos(), 8, sounds::sound_t::alarm, _( "beep-beep." ), false, "misc", "beep" ); z->add_effect( effect_targeted, 8_turns ); z->moves -= 100; return; @@ -2905,9 +2911,9 @@ void mattack::rifle( monster *z, Creature *target ) if( z->ammo[ammo_type] <= 0 ) { if( one_in( 3 ) ) { - sounds::sound( z->pos(), 2, sounds::sound_t::combat, _( "a chk!" ) ); + sounds::sound( z->pos(), 2, sounds::sound_t::combat, _( "a chk!" ), false, "fire_gun", "empty" ); } else if( one_in( 4 ) ) { - sounds::sound( z->pos(), 6, sounds::sound_t::combat, _( "boop!" ) ); + sounds::sound( z->pos(), 6, sounds::sound_t::combat, _( "boop!" ), false, "fire_gun", "empty" ); } return; } @@ -2941,7 +2947,8 @@ void mattack::frag( monster *z, Creature *target ) // This is for the bots, not add_msg( m_warning, _( "Those laser dots don't seem very friendly..." ) ); g->u.add_effect( effect_laserlocked, 3_turns ); // Effect removed in game.cpp, duration doesn't much matter - sounds::sound( z->pos(), 10, sounds::sound_t::speech, _( "Targeting." ) ); + sounds::sound( z->pos(), 10, sounds::sound_t::speech, _( "Targeting." ), false, "speech", + z->type->id.str() ); z->add_effect( effect_targeted, 5_turns ); z->moves -= 150; // Should give some ability to get behind cover, @@ -2957,9 +2964,9 @@ void mattack::frag( monster *z, Creature *target ) // This is for the bots, not if( z->ammo[ammo_type] <= 0 ) { if( one_in( 3 ) ) { - sounds::sound( z->pos(), 2, sounds::sound_t::combat, _( "a chk!" ) ); + sounds::sound( z->pos(), 2, sounds::sound_t::combat, _( "a chk!" ), false, "fire_gun", "empty" ); } else if( one_in( 4 ) ) { - sounds::sound( z->pos(), 6, sounds::sound_t::combat, _( "boop!" ) ); + sounds::sound( z->pos(), 6, sounds::sound_t::combat, _( "boop!" ), false, "fire_gun", "empty" ); } return; } @@ -2988,7 +2995,6 @@ void mattack::tankgun( monster *z, Creature *target ) } int dist = rl_dist( z->pos(), target->pos() ); - tripoint aim_point = target->pos(); if( dist > 50 ) { return; } @@ -2997,7 +3003,8 @@ void mattack::tankgun( monster *z, Creature *target ) //~ There will be a 120mm HEAT shell sent at high speed to your location next turn. target->add_msg_if_player( m_warning, _( "You're not sure why you've got a laser dot on you..." ) ); //~ Sound of a tank turret swiveling into place - sounds::sound( z->pos(), 10, sounds::sound_t::combat, _( "whirrrrrclick." ) ); + sounds::sound( z->pos(), 10, sounds::sound_t::combat, _( "whirrrrrclick." ), false, "misc", + "servomotor" ); z->add_effect( effect_targeted, 1_minutes ); target->add_effect( effect_laserlocked, 1_minutes ); z->moves -= 200; @@ -3005,10 +3012,6 @@ void mattack::tankgun( monster *z, Creature *target ) // even though it's patently unrealistic. return; } - // Target the vehicle itself instead if there is one. - if( const optional_vpart_position vp = g->m.veh_at( target->pos() ) ) { - aim_point = vp->vehicle().global_pos3() + vp->vehicle().rotated_center_of_mass(); - } // kevingranade KA101: yes, but make it really inaccurate // Sure thing. npc tmp = make_fake_npc( z, 12, 8, 8, 8 ); @@ -3019,9 +3022,9 @@ void mattack::tankgun( monster *z, Creature *target ) if( z->ammo[ammo_type] <= 0 ) { if( one_in( 3 ) ) { - sounds::sound( z->pos(), 2, sounds::sound_t::combat, _( "a chk!" ) ); + sounds::sound( z->pos(), 2, sounds::sound_t::combat, _( "a chk!" ), false, "fire_gun", "empty" ); } else if( one_in( 4 ) ) { - sounds::sound( z->pos(), 6, sounds::sound_t::combat, _( "clank!" ) ); + sounds::sound( z->pos(), 6, sounds::sound_t::combat, _( "clank!" ), false, "fire_gun", "empty" ); } return; } @@ -3328,18 +3331,19 @@ bool mattack::copbot( monster *z ) if( sees_u ) { if( foe->unarmed_attack() ) { sounds::sound( z->pos(), 18, sounds::sound_t::alert, - _( "a robotic voice boom, \"Citizen, Halt!\"" ) ); + _( "a robotic voice boom, \"Citizen, Halt!\"" ), false, "speech", z->type->id.str() ); } else if( !cuffed ) { sounds::sound( z->pos(), 18, sounds::sound_t::alert, _( "a robotic voice boom, \"\ -Please put down your weapon.\"" ) ); +Please put down your weapon.\"" ), false, "speech", z->type->id.str() ); } - } else + } else { sounds::sound( z->pos(), 18, sounds::sound_t::alert, - _( "a robotic voice boom, \"Come out with your hands up!\"" ) ); + _( "a robotic voice boom, \"Come out with your hands up!\"" ), false, "speech", z->type->id.str() ); + } } else { sounds::sound( z->pos(), 18, sounds::sound_t::alarm, - _( "a police siren, whoop WHOOP" ) ); + _( "a police siren, whoop WHOOP" ), false, "environment", "police_siren" ); } return true; } @@ -3754,7 +3758,8 @@ bool mattack::flesh_golem( monster *z ) if( one_in( 12 ) ) { z->moves -= 200; // It doesn't "nearly deafen you" when it roars from the other side of bubble - sounds::sound( z->pos(), 80, sounds::sound_t::alert, _( "a terrifying roar!" ) ); + sounds::sound( z->pos(), 80, sounds::sound_t::alert, _( "a terrifying roar!" ), false, "shout", + "roar" ); return true; } return false; @@ -3973,13 +3978,15 @@ bool mattack::longswipe( monster *z ) bool mattack::parrot( monster *z ) { if( z->has_effect( effect_shrieking ) ) { - sounds::sound( z->pos(), 120, sounds::sound_t::alert, _( "a piercing wail!" ), true ); + sounds::sound( z->pos(), 120, sounds::sound_t::alert, _( "a piercing wail!" ), false, "shout", + "wail" ); z->moves -= 40; return false; } else if( one_in( 20 ) ) { z->moves -= 100; // It takes a while const SpeechBubble &speech = get_speech( z->type->id.str() ); - sounds::sound( z->pos(), speech.volume, sounds::sound_t::speech, speech.text ); + sounds::sound( z->pos(), speech.volume, sounds::sound_t::speech, speech.text, false, "speech", + z->type->id.str() ); return true; } @@ -4172,7 +4179,8 @@ bool mattack::riotbot( monster *z ) if( calendar::once_every( 25_turns ) ) { sounds::sound( z->pos(), 10, sounds::sound_t::speech, - _( "Halt and submit to arrest, citizen! The police will be here any moment." ) ); + _( "Halt and submit to arrest, citizen! The police will be here any moment." ), false, "speech", + z->type->id.str() ); } return true; @@ -4189,7 +4197,8 @@ bool mattack::riotbot( monster *z ) if( foe == &g->u && !foe->is_armed() ) { sounds::sound( z->pos(), 15, sounds::sound_t::speech, - _( "Please stay in place, citizen, do not make any movements!" ) ); + _( "Please stay in place, citizen, do not make any movements!" ), false, "speech", + z->type->id.str() ); //we need to come closer and arrest if( !is_adjacent( z, foe, false ) ) { @@ -4252,7 +4261,8 @@ bool mattack::riotbot( monster *z ) } sounds::sound( z->pos(), 5, sounds::sound_t::speech, - _( "You are under arrest, citizen. You have the right to remain silent. If you do not remain silent, anything you say may be used against you in a court of law." ) ); + _( "You are under arrest, citizen. You have the right to remain silent. If you do not remain silent, anything you say may be used against you in a court of law." ), + false, "speech", z->type->id.str() ); sounds::sound( z->pos(), 5, sounds::sound_t::speech, _( "You have the right to an attorney. If you cannot afford an attorney, one will be provided at no cost to you. You may have your attorney present during any questioning." ) ); sounds::sound( z->pos(), 5, sounds::sound_t::speech, @@ -4305,7 +4315,7 @@ bool mattack::riotbot( monster *z ) if( calendar::once_every( 5_turns ) ) { sounds::sound( z->pos(), 25, sounds::sound_t::speech, - _( "Empty your hands and hold your position, citizen!" ) ); + _( "Empty your hands and hold your position, citizen!" ), false, "speech", z->type->id.str() ); } if( dist > 5 && dist < 18 && one_in( 10 ) ) { @@ -4322,7 +4332,7 @@ bool mattack::riotbot( monster *z ) target->posz() ); //~ Sound of a riotbot using its blinding flash - sounds::sound( z->pos(), 3, sounds::sound_t::combat, _( "fzzzzzt" ) ); + sounds::sound( z->pos(), 3, sounds::sound_t::combat, _( "fzzzzzt" ), false, "misc", "flash" ); std::vector traj = line_to( z->pos(), dest, 0, 0 ); for( auto &elem : traj ) { @@ -4823,7 +4833,8 @@ bool mattack::doot( monster *z ) continue; } } - sounds::sound( z->pos(), 200, sounds::sound_t::music, _( "DOOT." ) ); + sounds::sound( z->pos(), 200, sounds::sound_t::music, _( "DOOT." ), false, "music_instrument", + "trumpet" ); return true; } diff --git a/src/mondeath.cpp b/src/mondeath.cpp index d2a55f8ebe278..071e668182b80 100644 --- a/src/mondeath.cpp +++ b/src/mondeath.cpp @@ -1,6 +1,6 @@ #include "mondeath.h" -#include +#include #include #include #include @@ -11,6 +11,7 @@ #include #include +#include "explosion.h" #include "event.h" #include "field.h" #include "fungal_effects.h" @@ -40,6 +41,7 @@ #include "pldata.h" #include "units.h" #include "weighted_list.h" +#include "type_id.h" const mtype_id mon_blob( "mon_blob" ); const mtype_id mon_blob_brain( "mon_blob_brain" ); @@ -239,7 +241,7 @@ void mdeath::acid( monster &z ) void mdeath::boomer( monster &z ) { std::string explode = string_format( _( "a %s explode!" ), z.name() ); - sounds::sound( z.pos(), 24, sounds::sound_t::combat, explode ); + sounds::sound( z.pos(), 24, sounds::sound_t::combat, explode, false, "explosion", "small" ); for( auto &&dest : g->m.points_in_radius( z.pos(), 1 ) ) { // *NOPAD* g->m.bash( dest, 10 ); if( monster *const z = g->critter_at( dest ) ) { @@ -258,7 +260,7 @@ void mdeath::boomer( monster &z ) void mdeath::boomer_glow( monster &z ) { std::string explode = string_format( _( "a %s explode!" ), z.name() ); - sounds::sound( z.pos(), 24, sounds::sound_t::combat, explode ); + sounds::sound( z.pos(), 24, sounds::sound_t::combat, explode, false, "explosion", "small" ); for( auto &&dest : g->m.points_in_radius( z.pos(), 1 ) ) { // *NOPAD* g->m.bash( dest, 10 ); @@ -359,7 +361,7 @@ void mdeath::fungus( monster &z ) } //~ the sound of a fungus dying - sounds::sound( z.pos(), 10, sounds::sound_t::combat, _( "Pouf!" ) ); + sounds::sound( z.pos(), 10, sounds::sound_t::combat, _( "Pouf!" ), false, "misc", "puff" ); fungal_effects fe( *g, g->m ); for( auto &&sporep : g->m.points_in_radius( z.pos(), 1 ) ) { // *NOPAD* @@ -591,7 +593,7 @@ void mdeath::explode( monster &z ) size = 26; break; } - g->explosion( z.pos(), size ); + explosion_handler::explosion( z.pos(), size ); } void mdeath::focused_beam( monster &z ) @@ -626,7 +628,7 @@ void mdeath::focused_beam( monster &z ) z.inv.clear(); - g->explosion( z.pos(), 8 ); + explosion_handler::explosion( z.pos(), 8 ); } void mdeath::broken( monster &z ) @@ -676,14 +678,14 @@ void mdeath::darkman( monster &z ) void mdeath::gas( monster &z ) { std::string explode = string_format( _( "a %s explode!" ), z.name() ); - sounds::sound( z.pos(), 24, sounds::sound_t::combat, explode ); + sounds::sound( z.pos(), 24, sounds::sound_t::combat, explode, false, "explosion", "small" ); g->m.emit_field( z.pos(), emit_id( "emit_toxic_blast" ) ); } void mdeath::smokeburst( monster &z ) { std::string explode = string_format( _( "a %s explode!" ), z.name() ); - sounds::sound( z.pos(), 24, sounds::sound_t::combat, explode ); + sounds::sound( z.pos(), 24, sounds::sound_t::combat, explode, false, "explosion", "small" ); g->m.emit_field( z.pos(), emit_id( "emit_smoke_blast" ) ); } @@ -858,20 +860,19 @@ void mdeath::fireball( monster &z ) g->m.propagate_field( z.pos(), fd_fire, 15, 3 ); std::string explode = string_format( _( "an explosion of tank of the %s's flamethrower!" ), z.name() ); - sounds::sound( z.pos(), 24, sounds::sound_t::combat, explode ); + sounds::sound( z.pos(), 24, sounds::sound_t::combat, explode, false, "explosion", "default" ); add_msg( m_good, _( "I love the smell of burning zed in the morning." ) ); } else { normal( z ); } } - void mdeath::conflagration( monster &z ) { for( const auto &dest : g->m.points_in_radius( z.pos(), 1 ) ) { g->m.propagate_field( dest, fd_fire, 18, 3 ); } const std::string explode = string_format( _( "a %s explode!" ), z.name() ); - sounds::sound( z.pos(), 24, sounds::sound_t::combat, explode ); + sounds::sound( z.pos(), 24, sounds::sound_t::combat, explode, false, "explosion", "small" ); } diff --git a/src/mondefense.cpp b/src/mondefense.cpp index da79033fa89e6..5bbfe8f053770 100644 --- a/src/mondefense.cpp +++ b/src/mondefense.cpp @@ -1,6 +1,6 @@ #include "mondefense.h" -#include +#include #include #include #include diff --git a/src/monexamine.cpp b/src/monexamine.cpp index 34370e5af5f1e..cba4d42e99ef5 100644 --- a/src/monexamine.cpp +++ b/src/monexamine.cpp @@ -1,6 +1,6 @@ #include "monexamine.h" -#include +#include #include #include #include @@ -11,6 +11,7 @@ #include "calendar.h" #include "game.h" #include "game_inventory.h" +#include "handle_liquid.h" #include "item.h" #include "iuse.h" #include "map.h" @@ -29,6 +30,7 @@ #include "rng.h" #include "string_formatter.h" #include "units.h" +#include "type_id.h" const species_id ZOMBIE( "ZOMBIE" ); @@ -434,7 +436,7 @@ void monexamine::milk_source( monster &source_mon ) item milk( milked_item->first, calendar::turn, remaining_milk ); milk.set_item_temperature( 311.75 ); - if( g->handle_liquid( milk, nullptr, 1, nullptr, nullptr, -1, &source_mon ) ) { + if( liquid_handler::handle_liquid( milk, nullptr, 1, nullptr, nullptr, -1, &source_mon ) ) { add_msg( _( "You milk the %s." ), source_mon.get_name() ); long transferred_milk = remaining_milk - milk.charges; source_mon.add_effect( effect_milked, milking_freq * transferred_milk ); diff --git a/src/monfaction.cpp b/src/monfaction.cpp index 0dbd4e1494ef9..bff1b5e7e747c 100644 --- a/src/monfaction.cpp +++ b/src/monfaction.cpp @@ -1,6 +1,6 @@ #include "monfaction.h" -#include +#include #include #include #include @@ -10,6 +10,7 @@ #include "debug.h" #include "json.h" +#include "string_id.h" std::unordered_map< mfaction_str_id, mfaction_id > faction_map; std::vector< monfaction > faction_list; diff --git a/src/monfaction.h b/src/monfaction.h index a2bb4a5c7f449..c2f9971a14f4d 100644 --- a/src/monfaction.h +++ b/src/monfaction.h @@ -5,14 +5,10 @@ #include #include "int_id.h" -#include "string_id.h" +#include "type_id.h" -class monfaction; class JsonObject; -using mfaction_id = int_id; -using mfaction_str_id = string_id; - enum mf_attitude { MFA_BY_MOOD = 0, // Hostile if angry MFA_NEUTRAL, // Neutral even when angry diff --git a/src/mongroup.h b/src/mongroup.h index 9969044fec06c..d2fd86f9e0efd 100644 --- a/src/mongroup.h +++ b/src/mongroup.h @@ -12,19 +12,13 @@ #include "io_tags.h" #include "monster.h" #include "string_id.h" +#include "type_id.h" // from overmap.h class overmap; class JsonObject; class JsonIn; class JsonOut; -struct MonsterGroup; - -using mongroup_id = string_id; - -struct mtype; - -using mtype_id = string_id; struct MonsterGroupEntry; @@ -116,7 +110,7 @@ struct mongroup { , population( ppop ) , target() { } - mongroup( std::string ptype, tripoint ppos, unsigned int prad, unsigned int ppop, + mongroup( const std::string &ptype, tripoint ppos, unsigned int prad, unsigned int ppop, tripoint ptarget, int pint, bool pdie, bool phorde, bool pdiff ) : type( ptype ), pos( ppos ), radius( prad ), population( ppop ), target( ptarget ), interest( pint ), dying( pdie ), horde( phorde ), diffuse( pdiff ) { } diff --git a/src/monmove.cpp b/src/monmove.cpp index c8eb60fc9141e..a5717b80a05d5 100644 --- a/src/monmove.cpp +++ b/src/monmove.cpp @@ -2,7 +2,7 @@ #include "monster.h" // IWYU pragma: associated -#include +#include #include #include #include @@ -32,6 +32,8 @@ #include "mattack_common.h" #include "pathfinding.h" #include "player.h" +#include "int_id.h" +#include "string_id.h" #define MONSTER_FOLLOW_DIST 8 @@ -551,6 +553,12 @@ void monster::move() --friendly; } + // don't move if a passenger in a moving vehicle + auto vp = g->m.veh_at( pos() ); + if( vp && vp->vehicle().is_moving() && vp->vehicle().get_pet( vp->part_index() ) ) { + moves = 0; + return; + } // Set attitude to attitude to our current target monster_attitude current_attitude = attitude( nullptr ); if( !wander() ) { @@ -1074,6 +1082,7 @@ bool monster::attack_at( const tripoint &p ) // For now we're always attacking NPCs that are getting into our // way. This is consistent with how it worked previously, but // later on not hitting allied NPCs would be cool. + guy->on_attacked( *this ); // allow NPC hallucination to be one shot by monsters melee_attack( *guy ); return true; } diff --git a/src/monster.cpp b/src/monster.cpp index 3b818a068cc5d..754bfa49dd8e2 100644 --- a/src/monster.cpp +++ b/src/monster.cpp @@ -1,6 +1,6 @@ #include "monster.h" -#include +#include #include #include #include @@ -11,6 +11,7 @@ #include "cursesdef.h" #include "debug.h" #include "effect.h" +#include "explosion.h" #include "field.h" #include "game.h" #include "item.h" @@ -41,11 +42,11 @@ #include "character.h" #include "compatibility.h" #include "game_constants.h" -#include "itype.h" #include "mattack_common.h" #include "pimpl.h" #include "player.h" -#include "material.h" +#include "int_id.h" +#include "string_id.h" struct pathfinding_settings; @@ -919,6 +920,9 @@ monster_attitude monster::attitude( const Character *u ) const if( np != nullptr && np->get_attitude() != NPCATT_KILL && !type->in_species( ZOMBIE ) ) { return MATT_FRIEND; } + if( np != nullptr && np->is_hallucination() ) { + return MATT_IGNORE; + } } if( effect_cache[FLEEING] ) { return MATT_FLEE; @@ -1851,7 +1855,7 @@ void monster::process_turn() if( has_flag( MF_ELECTRIC_FIELD ) ) { if( has_effect( effect_emp ) ) { if( calendar::once_every( 10_turns ) ) { - sounds::sound( pos(), 5, sounds::sound_t::combat, _( "hummmmm." ) ); + sounds::sound( pos(), 5, sounds::sound_t::combat, _( "hummmmm." ), false, "humming", "electric" ); } } else { for( const tripoint &zap : g->m.points_in_radius( pos(), 1 ) ) { @@ -1860,17 +1864,17 @@ void monster::process_turn() for( const auto &item : items ) { if( item.made_of( LIQUID ) && item.flammable() ) { // start a fire! g->m.add_field( zap, fd_fire, 2, 1_minutes ); - sounds::sound( pos(), 30, sounds::sound_t::combat, _( "fwoosh!" ) ); + sounds::sound( pos(), 30, sounds::sound_t::combat, _( "fwoosh!" ), false, "fire", "ignition" ); break; } } if( zap != pos() ) { - g->emp_blast( zap ); // Fries electronics due to the intensity of the field + explosion_handler::emp_blast( zap ); // Fries electronics due to the intensity of the field } const auto t = g->m.ter( zap ); if( t == ter_str_id( "t_gas_pump" ) || t == ter_str_id( "t_gas_pump_a" ) ) { if( one_in( 4 ) ) { - g->explosion( pos(), 40, 0.8, true ); + explosion_handler::explosion( pos(), 40, 0.8, true ); if( player_sees ) { add_msg( m_warning, _( "The %s explodes in a fiery inferno!" ), g->m.tername( zap ) ); } @@ -1885,8 +1889,10 @@ void monster::process_turn() } if( g->lightning_active && !has_effect( effect_supercharged ) && g->m.is_outside( pos() ) ) { g->lightning_active = false; // only one supercharge per strike - sounds::sound( pos(), 300, sounds::sound_t::combat, _( "BOOOOOOOM!!!" ) ); - sounds::sound( pos(), 20, sounds::sound_t::combat, _( "vrrrRRRUUMMMMMMMM!" ) ); + sounds::sound( pos(), 300, sounds::sound_t::combat, _( "BOOOOOOOM!!!" ), false, "environment", + "thunder_near" ); + sounds::sound( pos(), 20, sounds::sound_t::combat, _( "vrrrRRRUUMMMMMMMM!" ), false, "explosion", + "default" ); if( g->u.sees( pos() ) ) { add_msg( m_bad, _( "Lightning strikes the %s!" ), name() ); add_msg( m_bad, _( "Your vision goes white!" ) ); @@ -1894,7 +1900,8 @@ void monster::process_turn() } add_effect( effect_supercharged, 12_hours ); } else if( has_effect( effect_supercharged ) && calendar::once_every( 5_turns ) ) { - sounds::sound( pos(), 20, sounds::sound_t::combat, _( "VMMMMMMMMM!" ) ); + sounds::sound( pos(), 20, sounds::sound_t::combat, _( "VMMMMMMMMM!" ), false, "humming", + "electric" ); } } } diff --git a/src/monster.h b/src/monster.h index a6c4b5ca1f79c..79e40b06ab6a4 100644 --- a/src/monster.h +++ b/src/monster.h @@ -2,8 +2,8 @@ #ifndef MONSTER_H #define MONSTER_H -#include -#include +#include +#include #include #include #include @@ -15,7 +15,6 @@ #include "calendar.h" #include "creature.h" #include "enums.h" -#include "int_id.h" #include "bodypart.h" #include "color.h" #include "cursesdef.h" @@ -24,13 +23,12 @@ #include "mtype.h" #include "optional.h" #include "pldata.h" -#include "string_id.h" +#include "type_id.h" #include "units.h" class JsonObject; class JsonIn; class JsonOut; -class monfaction; class player; class Character; class effect; @@ -41,9 +39,6 @@ struct trap; enum class mon_trigger; enum field_id : int; -using mfaction_id = int_id; -using mtype_id = string_id; - class monster; typedef std::map< mfaction_id, std::set< monster * > > mfactions; diff --git a/src/monstergenerator.cpp b/src/monstergenerator.cpp index 3f2e3432b8269..7979a4e185c18 100644 --- a/src/monstergenerator.cpp +++ b/src/monstergenerator.cpp @@ -17,24 +17,18 @@ #include "mondeath.h" #include "mondefense.h" #include "monfaction.h" -#include "mongroup.h" #include "options.h" #include "rng.h" #include "assign.h" #include "bodypart.h" #include "damage.h" #include "game.h" -#include "itype.h" #include "pathfinding.h" #include "units.h" -extern bool test_mode; - namespace { -const mtype_id mon_generator( "mon_generator" ); - const std::map trigger_map = { { "STALK", mon_trigger::STALK }, { "MEAT", mon_trigger::MEAT }, diff --git a/src/monstergenerator.h b/src/monstergenerator.h index f0ba2833236e8..dbd7e1073029e 100644 --- a/src/monstergenerator.h +++ b/src/monstergenerator.h @@ -13,6 +13,7 @@ #include "string_id.h" #include "enum_bitset.h" #include "generic_factory.h" +#include "type_id.h" class JsonObject; class Creature; @@ -22,10 +23,6 @@ struct dealt_projectile_attack; using mon_action_death = void ( * )( monster & ); using mon_action_attack = bool ( * )( monster * ); using mon_action_defend = void ( * )( monster &, Creature *, dealt_projectile_attack const * ); -using mtype_id = string_id; -struct species_type; - -using species_id = string_id; struct species_type { species_id id; diff --git a/src/morale.cpp b/src/morale.cpp index 164be68ba69cc..5f91d84e7514e 100644 --- a/src/morale.cpp +++ b/src/morale.cpp @@ -1,6 +1,6 @@ #include "morale.h" -#include +#include #include #include #include @@ -21,10 +21,8 @@ #include "output.h" #include "translations.h" #include "color.h" -#include "creature.h" #include "enums.h" #include "iuse.h" -#include "player.h" static const efftype_id effect_cold( "cold" ); static const efftype_id effect_hot( "hot" ); @@ -353,7 +351,6 @@ int player_morale::get_level() const if( !level_is_valid ) { const morale_mult mult = get_temper_mult(); - level = 0; int sum_of_positive_squares = 0; int sum_of_negative_squares = 0; diff --git a/src/morale.h b/src/morale.h index b8f2fa197d73a..9a9ac18ae1353 100644 --- a/src/morale.h +++ b/src/morale.h @@ -13,6 +13,7 @@ #include "calendar.h" #include "morale_types.h" #include "string_id.h" +#include "type_id.h" class item; class JsonIn; @@ -20,12 +21,6 @@ class JsonOut; class JsonObject; struct itype; struct morale_mult; -class effect_type; - -using efftype_id = string_id; -struct mutation_branch; - -using trait_id = string_id; class player_morale { diff --git a/src/morale_types.cpp b/src/morale_types.cpp index 845ad80c5a63a..85dea7be627c3 100644 --- a/src/morale_types.cpp +++ b/src/morale_types.cpp @@ -1,6 +1,6 @@ #include "morale_types.h" -#include +#include #include #include @@ -9,7 +9,6 @@ #include "json.h" #include "string_formatter.h" #include "debug.h" -#include "player.h" const morale_type &morale_type_data::convert_legacy( int lmt ) { @@ -96,6 +95,10 @@ const morale_type &morale_type_data::convert_legacy( int lmt ) morale_type( "morale_butcher" ), morale_type( "morale_gravedigger" ), + morale_type( "morale_funeral" ), + + morale_type( "morale_accomplishment" ), + morale_type( "morale_failure" ), morale_type( "morale_null" ) } @@ -181,7 +184,10 @@ const morale_type MORALE_PERM_FILTHY( "morale_perm_filthy" ); const morale_type MORALE_PERM_DEBUG( "morale_perm_debug" ); const morale_type MORALE_BUTCHER( "morale_butcher" ); const morale_type MORALE_GRAVEDIGGER( "morale_gravedigger" ); +const morale_type MORALE_FUNERAL( "morale_funeral" ); const morale_type MORALE_TREE_COMMUNION( "morale_tree_communion" ); +const morale_type MORALE_ACCOMPLISHMENT( "morale_accomplishment" ); +const morale_type MORALE_FAILURE( "morale_failure" ); namespace { diff --git a/src/morale_types.h b/src/morale_types.h index b2453e51ea271..64be6d02d8fca 100644 --- a/src/morale_types.h +++ b/src/morale_types.h @@ -5,11 +5,9 @@ #include #include "string_id.h" +#include "type_id.h" class JsonObject; -class morale_type_data; - -using morale_type = string_id; struct itype; @@ -113,6 +111,9 @@ extern const morale_type MORALE_PERM_FILTHY; extern const morale_type MORALE_PERM_DEBUG; extern const morale_type MORALE_BUTCHER; extern const morale_type MORALE_GRAVEDIGGER; +extern const morale_type MORALE_FUNERAL; extern const morale_type MORALE_TREE_COMMUNION; +extern const morale_type MORALE_ACCOMPLISHMENT; +extern const morale_type MORALE_FAILURE; #endif diff --git a/src/mtype.cpp b/src/mtype.cpp index 2b1302c0c1f15..a4a728228925f 100644 --- a/src/mtype.cpp +++ b/src/mtype.cpp @@ -8,10 +8,11 @@ #include "item.h" #include "itype.h" #include "mondeath.h" -#include "monstergenerator.h" #include "translations.h" #include "mapdata.h" +struct species_type; + const species_id MOLLUSK( "MOLLUSK" ); mtype::mtype() diff --git a/src/mtype.h b/src/mtype.h index 83a6968c8286b..f1c8fc6fcf2da 100644 --- a/src/mtype.h +++ b/src/mtype.h @@ -11,19 +11,14 @@ #include "damage.h" #include "enum_bitset.h" #include "enums.h" -#include "int_id.h" #include "mattack_common.h" #include "pathfinding.h" -#include "string_id.h" +#include "type_id.h" #include "units.h" class Creature; class monster; -class monfaction; -class emit; template struct enum_traits; - -using emit_id = string_id; struct dealt_projectile_attack; struct species_type; @@ -34,32 +29,12 @@ enum m_size : int; using mon_action_death = void ( * )( monster & ); using mon_action_attack = bool ( * )( monster * ); using mon_action_defend = void ( * )( monster &, Creature *, dealt_projectile_attack const * ); -struct MonsterGroup; - -using mongroup_id = string_id; -struct mtype; - -using mtype_id = string_id; -using mfaction_id = int_id; -using species_id = string_id; using bodytype_id = std::string; -class effect_type; - -using efftype_id = string_id; class JsonArray; class JsonObject; -class material_type; - -using material_id = string_id; typedef std::string itype_id; -using emit_id = string_id; - -class harvest_list; - -using harvest_id = string_id; - // These are triggers which may affect the monster's anger or morale. // They are handled in monster::check_triggers(), in monster.cpp enum class mon_trigger { diff --git a/src/mutation.cpp b/src/mutation.cpp index d7f2498c7d16b..c4b1bc049c643 100644 --- a/src/mutation.cpp +++ b/src/mutation.cpp @@ -1,6 +1,6 @@ #include "mutation.h" -#include +#include #include #include #include @@ -24,9 +24,8 @@ #include "omdata.h" #include "optional.h" #include "player_activity.h" -#include "pldata.h" #include "rng.h" -#include "mtype.h" +#include "string_id.h" const efftype_id effect_stunned( "stunned" ); @@ -53,7 +52,6 @@ static const trait_id trait_M_SPORES( "M_SPORES" ); static const trait_id trait_NOPAIN( "NOPAIN" ); static const trait_id trait_CARNIVORE( "CARNIVORE" ); static const trait_id trait_TREE_COMMUNION( "TREE_COMMUNION" ); -static const trait_id trait_HAIRROOTS( "HAIRROOTS" ); static const trait_id trait_ROOTS2( "ROOTS2" ); static const trait_id trait_ROOTS3( "ROOTS3" ); static const trait_id trait_DEBUG_BIONIC_POWER( "DEBUG_BIONIC_POWER" ); @@ -128,7 +126,7 @@ void Character::unset_mutation( const trait_id &flag ) reset_encumbrance(); } -int Character::get_mod( const trait_id &mut, std::string arg ) const +int Character::get_mod( const trait_id &mut, const std::string &arg ) const { auto &mod_data = mut->mods; int ret = 0; @@ -345,121 +343,9 @@ void player::activate_mutation( const trait_id &mut ) g->m.add_field( pos(), fd_web, 1 ); add_msg_if_player( _( "You start spinning web with your spinnerets!" ) ); } else if( mut == "BURROW" ) { - int choice = uilist( _( "Perform which function:" ), { - _( "Turn on digging mode" ), - _( "Dig pit" ), - _( "Fill pit/tamp ground" ), - _( "Clear rubble" ), - _( "Churn up ground" ) - } ); - if( choice == UILIST_CANCEL ) { - tdata.powered = false; - } else if( choice != 0 ) { - tdata.powered = false; - if( is_underwater() ) { - add_msg_if_player( m_info, _( "You can't do that while underwater." ) ); - return; - } else { - if( choice == 1 ) { - const cata::optional pnt_ = choose_adjacent( _( "Dig pit where?" ) ); - if( !pnt_ ) { - return; - } - const tripoint pnt = *pnt_; - - if( pnt == pos() ) { - add_msg_if_player( m_info, _( "You delve into yourself." ) ); - return; - } - int moves; - if( g->m.ter( pnt ) == t_pit_shallow ) { - moves = MINUTES( 30 ) * 100; - } else if( g->m.has_flag( "DIGGABLE", pnt ) ) { - moves = MINUTES( 10 ) * 100; - if( g->m.ter( pnt ) == t_grave ) { - moves *= 2; // 6 feet under - if( g->u.has_trait_flag( "SPIRITUAL" ) && !g->u.has_trait_flag( "PSYCHOPATH" ) && - g->u.query_yn( _( "Would you really touch the sacred resting place of the dead?" ) ) ) { - add_msg( m_info, _( "You are really going against your beliefs here." ) ); - g->u.add_morale( MORALE_GRAVEDIGGER, -50, -100, 48_hours, 12_hours ); - if( one_in( 3 ) ) { - g->u.vomit(); - } - } else if( g->u.has_trait_flag( "PSYCHOPATH" ) ) { - g->u.add_msg_if_player( m_good, _( "This is fun!" ) ); - g->u.add_morale( MORALE_GRAVEDIGGER, 25, 50, 2_hours, 1_hours ); - } else if( !g->u.has_trait_flag( "EATDEAD" ) && !g->u.has_trait_flag( "SAPROVORE" ) ) { - g->u.add_msg_if_player( m_bad, _( "This is utterly disgusting!" ) ); - g->u.add_morale( MORALE_GRAVEDIGGER, -25, -50, 2_hours, 1_hours ); - if( one_in( 5 ) ) { - g->u.vomit(); - } - } - } - } else { - add_msg_if_player( _( "You can't dig a pit on this ground." ) ); - return; - } - assign_activity( activity_id( "ACT_DIG" ), moves, -1, 0 ); - activity.placement = pnt; - } else if( choice == 2 ) { - const cata::optional pnt_ = choose_adjacent( _( "Fill pit where?" ) ); - if( !pnt_ ) { - return; - } - const tripoint pnt = *pnt_; - - if( pnt == pos() ) { - add_msg_if_player( m_info, _( "You decide not to bury yourself that early." ) ); - return; - } - int moves; - if( g->m.ter( pnt ) == t_pit || g->m.ter( pnt ) == t_pit_spiked || - g->m.ter( pnt ) == t_pit_glass || g->m.ter( pnt ) == t_pit_corpsed ) { - moves = MINUTES( 15 ) * 100; - } else if( g->m.ter( pnt ) == t_pit_shallow ) { - moves = MINUTES( 10 ) * 100; - } else if( g->m.ter( pnt ) == t_dirtmound ) { - moves = MINUTES( 5 ) * 100; - } else { - add_msg_if_player( _( "There is no pit to fill." ) ); - return; - } - assign_activity( activity_id( "ACT_FILL_PIT" ), moves, -1, 0 ); - activity.placement = pnt; - } else if( choice == 3 ) { - const cata::optional pnt_ = choose_adjacent( _( "Clear rubble where?" ) ); - if( !pnt_ ) { - return; - } - const tripoint pnt = *pnt_; - - if( g->m.has_flag( "RUBBLE", pnt ) ) { - // 75 seconds - assign_activity( activity_id( "ACT_CLEAR_RUBBLE" ), 1250, -1, 0 ); - activity.placement = pnt; - } else { - add_msg_if_player( m_bad, _( "There is no rubble to clear." ) ); - return; - } - } else if( choice == 4 ) { - const cata::optional pnt_ = choose_adjacent( _( "Churn up ground where?" ) ); - if( !pnt_ ) { - return; - } - const tripoint pnt = *pnt_; - - if( g->m.has_flag( "PLOWABLE", pnt ) && !g->m.has_flag( "PLANT", pnt ) && - g->m.ter( pnt ) != t_dirtmound ) { - add_msg_if_player( _( "You churn up the earth here." ) ); - moves = -300; - g->m.ter_set( pnt, t_dirtmound ); - } else { - add_msg_if_player( _( "You can't churn up this ground." ) ); - } - } - } - } + tdata.powered = false; + item burrowing_item( itype_id( "fake_burrowing" ) ); + invoke_item( &burrowing_item ); return; // handled when the activity finishes } else if( mut == trait_SLIMESPAWNER ) { std::vector valid; diff --git a/src/mutation.h b/src/mutation.h index db5c8856c33d4..cf5f5552eeb3a 100644 --- a/src/mutation.h +++ b/src/mutation.h @@ -17,30 +17,18 @@ #include "enums.h" // tripoint #include "string_id.h" #include "tuple_hash.h" -#include "item.h" +#include "type_id.h" class nc_color; class JsonObject; -class vitamin; class player; - -using vitamin_id = string_id; -class martialart; - -using matype_id = string_id; struct dream; -struct mutation_branch; +class Trait_group; +class item; -using trait_id = string_id; using itype_id = std::string; -class Trait_group; class JsonArray; -namespace trait_group -{ -using Trait_group_tag = string_id; -} - extern std::vector dreams; extern std::map > mutations_category; @@ -340,18 +328,25 @@ struct mutation_branch { struct mutation_category_trait { private: std::string raw_name; - std::string raw_mutagen_message; // message when you consume mutagen - std::string raw_iv_message; //message when you inject an iv; + // Message when you consume mutagen + std::string raw_mutagen_message; + // Message when you inject an iv + std::string raw_iv_message; std::string raw_iv_sound_message = "NULL"; + std::string raw_iv_sound_id = "shout"; + std::string raw_iv_sound_variant = "default"; std::string raw_iv_sleep_message = "NULL"; std::string raw_junkie_message; - std::string raw_memorial_message; //memorial message when you cross a threshold + // Memorial message when you cross a threshold + std::string raw_memorial_message; public: std::string name() const; std::string mutagen_message() const; std::string iv_message() const; std::string iv_sound_message() const; + std::string iv_sound_id() const; + std::string iv_sound_variant() const; std::string iv_sleep_message() const; std::string junkie_message() const; std::string memorial_message_male() const; @@ -362,23 +357,29 @@ struct mutation_category_trait { // The trait that you gain when you break the threshold for this category trait_id threshold_mut; - int mutagen_hunger = 10;//these are defaults + // These are defaults + int mutagen_hunger = 10; int mutagen_thirst = 10; int mutagen_pain = 2; int mutagen_fatigue = 5; int mutagen_morale = 0; - int iv_min_mutations = 1; //the minimum mutations an injection provides + // The minimum mutations an injection provides + int iv_min_mutations = 1; int iv_additional_mutations = 2; - int iv_additional_mutations_chance = 3; //chance of additional mutations + // Chance of additional mutations + int iv_additional_mutations_chance = 3; int iv_hunger = 10; int iv_thirst = 10; int iv_pain = 2; int iv_fatigue = 5; int iv_morale = 0; int iv_morale_max = 0; - bool iv_sound = false; //determines if you make a sound when you inject mutagen - int iv_noise = 0; //the amount of noise produced by the sound - bool iv_sleep = false; //whether the iv has a chance of knocking you out. + // Determines if you make a sound when you inject mutagen + bool iv_sound = false; + // The amount of noise produced by the sound + int iv_noise = 0; + // Whether the iv has a chance of knocking you out. + bool iv_sleep = false; int iv_sleep_dur = 0; static const std::map &get_all(); diff --git a/src/mutation_data.cpp b/src/mutation_data.cpp index e1a23eb4587c7..60793ea501962 100644 --- a/src/mutation_data.cpp +++ b/src/mutation_data.cpp @@ -15,8 +15,6 @@ #include "trait_group.h" #include "translations.h" #include "generic_factory.h" -#include "itype.h" -#include "player.h" typedef std::map> TraitGroupMap; typedef std::set TraitSet; @@ -52,7 +50,7 @@ bool string_id::is_valid() const } static void extract_mod( JsonObject &j, std::unordered_map, int> &data, - const std::string &mod_type, bool active, std::string type_key ) + const std::string &mod_type, bool active, const std::string &type_key ) { int val = j.get_int( mod_type, 0 ); if( val != 0 ) { @@ -103,6 +101,8 @@ void mutation_category_trait::load( JsonObject &jsobj ) new_category.iv_sound = jsobj.get_bool( "iv_sound", false ); new_category.raw_iv_sound_message = jsobj.get_string( "iv_sound_message", translate_marker( "You inject yoursel-arRGH!" ) ); + new_category.raw_iv_sound_id = jsobj.get_string( "iv_sound_id", "shout" ); + new_category.raw_iv_sound_variant = jsobj.get_string( "iv_sound_variant", "default" ); new_category.iv_noise = jsobj.get_int( "iv_noise", 0 ); new_category.iv_sleep = jsobj.get_bool( "iv_sleep", false ); new_category.raw_iv_sleep_message = jsobj.get_string( "iv_sleep_message", @@ -138,6 +138,16 @@ std::string mutation_category_trait::iv_sound_message() const return _( raw_iv_sound_message ); } +std::string mutation_category_trait::iv_sound_id() const +{ + return _( raw_iv_sound_id ); +} + +std::string mutation_category_trait::iv_sound_variant() const +{ + return _( raw_iv_sound_variant ); +} + std::string mutation_category_trait::iv_sleep_message() const { return _( raw_iv_sleep_message ); diff --git a/src/mutation_ui.cpp b/src/mutation_ui.cpp index dd951cb7056f9..fda5bacbc0992 100644 --- a/src/mutation_ui.cpp +++ b/src/mutation_ui.cpp @@ -9,6 +9,7 @@ #include "output.h" #include "string_formatter.h" #include "translations.h" +#include "string_id.h" // '!' and '=' are uses as default bindings in the menu const invlet_wrapper diff --git a/src/name.cpp b/src/name.cpp index 29a7c532d34be..65410ed946f97 100644 --- a/src/name.cpp +++ b/src/name.cpp @@ -1,6 +1,6 @@ #include "name.h" -#include +#include #include #include #include diff --git a/src/newcharacter.cpp b/src/newcharacter.cpp index 2c115603edc84..579454f92ab47 100644 --- a/src/newcharacter.cpp +++ b/src/newcharacter.cpp @@ -1,6 +1,6 @@ #include "player.h" // IWYU pragma: associated -#include +#include #include #include #include @@ -33,6 +33,7 @@ #include "ui.h" #include "worldfactory.h" #include "recipe.h" +#include "string_id.h" // Colors used in this file: (Most else defaults to c_light_gray) #define COL_STAT_ACT c_white // Selected stat diff --git a/src/npc.cpp b/src/npc.cpp index d690c3a319027..b2ccde2e0cdf2 100644 --- a/src/npc.cpp +++ b/src/npc.cpp @@ -1,8 +1,8 @@ #include "npc.h" -#include -#include -#include +#include +#include +#include #include #include #include @@ -55,8 +55,11 @@ #include "translations.h" #include "units.h" #include "visitable.h" +#include "int_id.h" +#include "pldata.h" class basecamp; +class monfaction; const skill_id skill_mechanics( "mechanics" ); const skill_id skill_electronics( "electronics" ); @@ -127,6 +130,7 @@ npc::npc() death_drops = true; dead = false; hit_by_player = false; + hallucination = false; moves = 100; mission = NPC_MISSION_NULL; myclass = npc_class_id::NULL_ID(); @@ -714,14 +718,12 @@ skill_id npc::best_skill() const int npc::best_skill_level() const { int highest_level = std::numeric_limits::min(); - skill_id highest_skill( skill_id::NULL_ID() ); for( const auto &p : *_skills ) { if( p.first.obj().is_combat_skill() ) { const int level = p.second.level(); if( level > highest_level ) { highest_level = level; - highest_skill = p.first; } } } @@ -1110,6 +1112,9 @@ void npc::make_angry() void npc::on_attacked( const Creature &attacker ) { + if( is_hallucination() ) { + die( nullptr ); + } if( attacker.is_player() && !is_enemy() ) { make_angry(); hit_by_player = true; @@ -1211,12 +1216,19 @@ void npc::say( const std::string &line, const int priority ) const if( g->u.sees( *this ) && g->u.is_deaf() ) { add_msg( m_warning, _( "%1$s says something but you can't hear it!" ), name ); } + // Hallucinations don't make noise when they speak + if( !is_hallucination() ) { + add_msg( _( "%1$s saying \"%2$s\"" ), name, formatted_line ); + return; + } // Sound happens even if we can't hear it sounds::sound_t spriority = static_cast( priority ); if( spriority == sounds::sound_t::order || spriority == sounds::sound_t::alert ) { - sounds::sound( pos(), get_shout_volume(), spriority, sound ); + sounds::sound( pos(), get_shout_volume(), spriority, sound, false, "speech", + male ? "NPC_m" : "NPC_f" ); } else { - sounds::sound( pos(), 16, sounds::sound_t::speech, sound ); + sounds::sound( pos(), 16, sounds::sound_t::speech, sound, false, "speech", + male ? "NPC_m_loud" : "NPC_f_loud" ); } } @@ -1649,7 +1661,7 @@ Creature::Attitude npc::attitude_to( const Creature &other ) const int npc::smash_ability() const { - if( !is_player_ally() || rules.has_flag( ally_rule::allow_bash ) ) { + if( !is_hallucination() && ( !is_player_ally() || rules.has_flag( ally_rule::allow_bash ) ) ) { ///\EFFECT_STR_NPC increases smash ability return str_cur + weapon.damage_melee( DT_BASH ); } @@ -1909,6 +1921,13 @@ void npc::die( Creature *nkiller ) dead = true; Character::die( nkiller ); + if( is_hallucination() ) { + if( g->u.sees( *this ) ) { + add_msg( _( "%s disappears." ), name.c_str() ); + } + return; + } + if( g->u.sees( *this ) ) { add_msg( _( "%s dies!" ), name ); } @@ -2116,6 +2135,9 @@ void npc::on_load() if( g->m.veh_at( pos() ).part_with_feature( VPFLAG_BOARDABLE, true ) && !in_vehicle ) { g->m.board_vehicle( pos(), this ); } + if( has_trait( trait_id( "HALLUCINATION" ) ) ) { + hallucination = true; + } } void npc_chatbin::add_new_mission( mission *miss ) @@ -2293,6 +2315,10 @@ std::ostream &operator<< ( std::ostream &os, const npc_need &need ) bool npc::will_accept_from_player( const item &it ) const { + if( is_hallucination() ) { + return false; + } + if( is_minion() || g->u.has_trait( trait_id( "DEBUG_MIND_CONTROL" ) ) || it.has_flag( "NPC_SAFE" ) ) { return true; @@ -2572,10 +2598,11 @@ npc_follower_rules::npc_follower_rules() set_flag( ally_rule::allow_complain ); set_flag( ally_rule::allow_pulp ); clear_flag( ally_rule::close_doors ); - clear_flag( ally_rule::avoid_combat ); + clear_flag( ally_rule::follow_close ); clear_flag( ally_rule::avoid_doors ); clear_flag( ally_rule::hold_the_line ); clear_flag( ally_rule::ignore_noise ); + clear_flag( ally_rule::forbid_engage ); } bool npc_follower_rules::has_flag( ally_rule test, bool check_override ) const @@ -2611,6 +2638,31 @@ void npc_follower_rules::toggle_flag( ally_rule toggle ) } } +void npc_follower_rules::set_specific_override_state( ally_rule rule, bool state ) +{ + if( state ) { + set_override( rule ); + } else { + clear_override( rule ); + } + enable_override( rule ); +} + +void npc_follower_rules::toggle_specific_override_state( ally_rule rule, bool state ) +{ + if( has_override_enable( rule ) && has_override( rule ) == state ) { + clear_override( rule ); + disable_override( rule ); + } else { + set_specific_override_state( rule, state ); + } +} + +bool npc::is_hallucination() const +{ + return hallucination; +} + bool npc_follower_rules::has_override_enable( ally_rule test ) const { return static_cast( test ) & static_cast( override_enable ); @@ -2648,10 +2700,10 @@ void npc_follower_rules::set_danger_overrides() { overrides = ally_rule::DEFAULT; override_enable = ally_rule::DEFAULT; - set_override( ally_rule::avoid_combat ); + set_override( ally_rule::follow_close ); set_override( ally_rule::avoid_doors ); set_override( ally_rule::hold_the_line ); - enable_override( ally_rule::avoid_combat ); + enable_override( ally_rule::follow_close ); enable_override( ally_rule::allow_sleep ); enable_override( ally_rule::close_doors ); enable_override( ally_rule::avoid_doors ); diff --git a/src/npc.h b/src/npc.h index 2e18095895274..a3757c43120c5 100644 --- a/src/npc.h +++ b/src/npc.h @@ -23,22 +23,18 @@ #include "creature.h" #include "cursesdef.h" #include "enums.h" -#include "int_id.h" #include "inventory.h" #include "item_location.h" -#include "itype.h" -#include "pldata.h" +#include "translations.h" #include "string_formatter.h" #include "string_id.h" #include "material.h" +#include "type_id.h" class JsonObject; class JsonIn; class JsonOut; class item; -class npc_class; -class monfaction; -struct mission_type; struct overmap_location; class Character; class faction; @@ -49,9 +45,6 @@ struct pathfinding_settings; enum game_message_type : int; class gun_mode; -using npc_class_id = string_id; -using mission_type_id = string_id; -using mfaction_id = int_id; using overmap_location_str_id = string_id; void parse_tags( std::string &phrase, const player &u, const player &me, @@ -245,26 +238,125 @@ enum class ally_rule { allow_complain = 128, allow_pulp = 256, close_doors = 512, - avoid_combat = 1024, + follow_close = 1024, avoid_doors = 2048, hold_the_line = 4096, - ignore_noise = 8192 + ignore_noise = 8192, + forbid_engage = 16384 }; -const std::unordered_map ally_rule_strs = { { - { "use_guns", ally_rule::use_guns }, - { "use_grenades", ally_rule::use_grenades }, - { "use_silent", ally_rule::use_silent }, - { "avoid_friendly_fire", ally_rule::avoid_friendly_fire }, - { "allow_pick_up", ally_rule::allow_pick_up }, - { "allow_bash", ally_rule::allow_bash }, - { "allow_sleep", ally_rule::allow_sleep }, - { "allow_complain", ally_rule::allow_complain }, - { "allow_pulp", ally_rule::allow_pulp }, - { "close_doors", ally_rule::close_doors }, - { "avoid_combat", ally_rule::avoid_combat }, - { "avoid_doors", ally_rule::avoid_doors }, - { "hold_the_line", ally_rule::hold_the_line }, - { "ignore_noise", ally_rule::ignore_noise } + +struct ally_rule_data { + ally_rule rule; + std::string rule_true_text; + std::string rule_false_text; +}; + +const std::unordered_map ally_rule_strs = { { + { + "use_guns", { + ally_rule::use_guns, + "", + "" + } + }, + { + "use_grenades", { + ally_rule::use_grenades, + "", + "" + } + }, + { + "use_silent", { + ally_rule::use_silent, + "", + "" + } + }, + { + "avoid_friendly_fire", { + ally_rule::avoid_friendly_fire, + "", + "" + } + }, + { + "allow_pick_up", { + ally_rule::allow_pick_up, + "", + "" + } + }, + { + "allow_bash", { + ally_rule::allow_bash, + "", + "" + } + }, + { + "allow_sleep", { + ally_rule::allow_sleep, + "", + "" + } + }, + { + "allow_complain", { + ally_rule::allow_complain, + "", + "" + } + }, + { + "allow_pulp", { + ally_rule::allow_pulp, + "", + "" + } + }, + { + "close_doors", { + ally_rule::close_doors, + "", + "" + } + }, + { + "follow_close", { + ally_rule::follow_close, + "", + "" + } + }, + { + "avoid_doors", { + ally_rule::avoid_doors, + "", + "" + } + }, + { + "hold_the_line", { + ally_rule::hold_the_line, + "", + "" + } + }, + { + "ignore_noise", { + ally_rule::ignore_noise, + "", + "" + } + }, + { + "forbid_engage", { + ally_rule::forbid_engage, + "", + "" + } + } } }; @@ -286,6 +378,8 @@ struct npc_follower_rules { void set_flag( ally_rule setit ); void clear_flag( ally_rule clearit ); void toggle_flag( ally_rule toggle ); + void set_specific_override_state( ally_rule, bool state ); + void toggle_specific_override_state( ally_rule rule, bool state ); bool has_override_enable( ally_rule test ) const; void enable_override( ally_rule setit ); void disable_override( ally_rule setit ); @@ -298,7 +392,7 @@ struct npc_follower_rules { }; struct dangerous_sound { - tripoint pos; + tripoint abs_pos; int type; int volume; }; @@ -316,7 +410,6 @@ struct healing_options { void set_all(); }; - // Data relevant only for this action struct npc_short_term_cache { float danger; @@ -330,7 +423,9 @@ struct npc_short_term_cache { // map of positions / type / volume of suspicious sounds std::vector sound_alerts; // current sound position being investigated - tripoint spos; + tripoint s_abs_pos; + // number of times we haven't moved when investigating a sound + int stuck = 0; // Position to return to guarding cata::optional guard_pos; double my_weapon_value; @@ -605,7 +700,8 @@ class npc : public player void starting_weapon( const npc_class_id &type ); // Save & load - void load_info( std::string data ) override; // Overloaded from player + // Overloaded from player + void load_info( std::string data ) override; std::string save_info() const override; void deserialize( JsonIn &jsin ) override; @@ -622,9 +718,13 @@ class npc : public player std::string pick_talk_topic( const player &u ); float character_danger( const Character &u ) const; float vehicle_danger( int radius ) const; - bool turned_hostile() const; // True if our anger is at least equal to... - int hostile_anger_level() const; // ... this value! - void make_angry(); // Called if the player attacks us + void pretend_fire( npc *source, int shots, item &gun ); // fake ranged attack for hallucination + // True if our anger is at least equal to... + bool turned_hostile() const; + // ... this value! + int hostile_anger_level() const; + // Called if the player attacks us + void make_angry(); /* * Angers and makes the NPC consider the creature an attacker * if the creature is a player and the NPC is not already hostile @@ -642,19 +742,33 @@ class npc : public player */ std::vector styles_offered_to( const player &p ) const; // State checks - int get_faction_ver() const; // faction version number + // Faction version number + int get_faction_ver() const; void set_faction_ver( int new_version ); - bool is_enemy() const; // We want to kill/mug/etc the player - bool is_following() const; // Traveling w/ player (whether as a friend or a slave) + // We want to kill/mug/etc the player + bool is_enemy() const; + // Traveling w/ player (whether as a friend or a slave) + bool is_following() const; bool is_obeying( const player &p ) const; - bool is_friendly( const player &p ) const; // ally of or travelling with p - bool is_leader() const; // Leading the player - bool is_walking_with() const; // Leading, following, or waiting for the player - bool is_ally( const player &p ) const; // in the same faction - bool is_player_ally() const; // is an ally of the player - bool is_stationary( bool include_guards = true ) const; // isn't moving - bool is_guarding() const; // has a guard mission - bool is_patrolling() const; // has a guard patrol mission + + bool is_hallucination() const override; // true if the NPC isn't actually real + + // Ally of or travelling with p + bool is_friendly( const player &p ) const; + // Leading the player + bool is_leader() const; + // Leading, following, or waiting for the player + bool is_walking_with() const; + // In the same faction + bool is_ally( const player &p ) const; + // Is an ally of the player + bool is_player_ally() const; + // Isn't moving + bool is_stationary( bool include_guards = true ) const; + // Has a guard mission + bool is_guarding() const; + // Has a guard patrol mission + bool is_patrolling() const; bool is_assigned_to_camp() const; /** is performing a player_activity */ bool has_player_activity() const; @@ -668,15 +782,18 @@ class npc : public player /** For mutant NPCs. Returns how monsters perceive said NPC. Doesn't imply NPC sees them the same. */ mfaction_id get_monster_faction() const; // What happens when the player makes a request - int follow_distance() const; // How closely do we follow the player? + // How closely do we follow the player? + int follow_distance() const; // Dialogue and bartering--see npctalk.cpp void talk_to_u( bool text_only = false, bool radio_contact = false ); // Re-roll the inventory of a shopkeeper void shop_restock(); // Use and assessment of items - int minimum_item_value() const; // The minimum value to want to pick up an item - void update_worst_item_value(); // Find the worst value in our inventory + // The minimum value to want to pick up an item + int minimum_item_value() const; + // Find the worst value in our inventory + void update_worst_item_value(); int value( const item &it ) const; int value( const item &it, int market_price ) const; bool wear_if_wanted( const item &it ); @@ -709,7 +826,8 @@ class npc : public player // Interaction and assessment of the world around us float danger_assessment(); - float average_damage_dealt(); // Our guess at how much damage we can deal + // Our guess at how much damage we can deal + float average_damage_dealt(); bool need_heal( const player &n ); bool bravery_check( int diff ); bool emergency() const; @@ -723,7 +841,8 @@ class npc : public player void decide_needs(); void die( Creature *killer ) override; bool is_dead() const; - int smash_ability() const; // How well we smash terrain (not corpses!) + // How well we smash terrain (not corpses!) + int smash_ability() const; // complain about a specific issue if enough time has passed // @param issue string identifier of the issue @@ -737,7 +856,8 @@ class npc : public player // different warnings for hostile or friendly NPCs and hostile NPCs always complaining void warn_about( const std::string &type, const time_duration &d = 10_minutes, const std::string &name = "" ); - bool complain(); // Finds something to complain about and complains. Returns if complained. + // Finds something to complain about and complains. Returns if complained. + bool complain(); void handle_sound( int priority, const std::string &description, int heard_volume, const tripoint &spos ); @@ -812,24 +932,32 @@ class npc : public player // nomove is used to resolve recursive invocation void move_to( const tripoint &p, bool no_bashing = false, std::set *nomove = nullptr ); - void move_to_next(); // Next in - void avoid_friendly_fire(); // Maneuver so we won't shoot u + // Next in + void move_to_next(); + // Maneuver so we won't shoot u + void avoid_friendly_fire(); void escape_explosion(); // nomove is used to resolve recursive invocation void move_away_from( const tripoint &p, bool no_bashing = false, std::set *nomove = nullptr ); void move_away_from( const std::vector &spheres, bool no_bashing = false ); - void move_pause(); // Same as if the player pressed '.' + // Same as if the player pressed '.' + void move_pause(); const pathfinding_settings &get_pathfinding_settings() const override; const pathfinding_settings &get_pathfinding_settings( bool no_bashing ) const; std::set get_path_avoid() const override; // Item discovery and fetching - void find_item(); // Look around and pick an item - void pick_up_item(); // Move to, or grab, our targeted item - void drop_items( int weight, int volume ); // Drop wgt and vol + // Comment on item seen + void see_item_say_smth( const itype_id item, const std::string smth ); + // Look around and pick an item + void find_item(); + // Move to, or grab, our targeted item + void pick_up_item(); + // Drop wgt and vol + void drop_items( int weight, int volume ); /** Picks up items and returns a list of them. */ std::list pick_up_item_map( const tripoint &where ); std::list pick_up_item_vehicle( vehicle &veh, int part_index ); @@ -846,25 +974,32 @@ class npc : public player bool do_player_activity(); // Combat functions and player interaction functions - bool alt_attack(); // Returns true if did something + // Returns true if did something + bool alt_attack(); void heal_player( player &patient ); void heal_self(); + void pretend_heal( player &patient, item used ); // healing action of hallucinations void mug_player( player &mark ); void look_for_player( const player &sought ); - bool saw_player_recently() const;// Do we have an idea of where u are? + // Do we have an idea of where u are? + bool saw_player_recently() const; /** Returns true if food was consumed, false otherwise. */ bool consume_food(); int get_thirst() const override; // Movement on the overmap scale - bool has_omt_destination() const; // Do we have a long-term destination? - void set_omt_destination(); // Pick a place to go - void go_to_omt_destination(); // Move there; on the micro scale - void reach_omt_destination(); // We made it! + // Do we have a long-term destination? + bool has_omt_destination() const; + // Pick a place to go + void set_omt_destination(); + // Move there; on the micro scale + void go_to_omt_destination(); + // We made it! + void reach_omt_destination(); void guard_current_pos(); - //message related stuff + // Message related stuff using player::add_msg_if_npc; void add_msg_if_npc( const std::string &msg ) const override; void add_msg_if_npc( game_message_type type, const std::string &msg ) const override; @@ -962,8 +1097,6 @@ class npc : public player */ tripoint goal; std::vector omt_path; - tripoint wander_pos; // Not actually used (should be: wander there when you hear a sound) - int wander_time; /** * Location and index of the corpse we'd like to pulp (if any). @@ -996,6 +1129,7 @@ class npc : public player npc_follower_rules rules; bool marked_for_death; // If true, we die as soon as we respawn! bool hit_by_player; + bool hallucination; // If true, NPC is an hallucination std::vector needs; // Dummy point that indicates that the goal is invalid. static constexpr tripoint no_goal_point = tripoint_min; diff --git a/src/npc_class.cpp b/src/npc_class.cpp index 744783db6d46d..176ba0851a196 100644 --- a/src/npc_class.cpp +++ b/src/npc_class.cpp @@ -1,6 +1,6 @@ #include "npc_class.h" -#include +#include #include #include #include @@ -15,10 +15,9 @@ #include "rng.h" #include "skill.h" #include "trait_group.h" -#include "itype.h" #include "json.h" -static const std::array legacy_ids = {{ +static const std::array legacy_ids = {{ npc_class_id( "NC_NONE" ), npc_class_id( "NC_EVAC_SHOPKEEP" ), // Found in the Evacuation Center, unique, has more goods than he should be able to carry npc_class_id( "NC_SHOPKEEP" ), // Found in towns. Stays in his shop mostly. @@ -36,7 +35,8 @@ static const std::array legacy_ids = {{ npc_class_id( "NC_HUNTER" ), // Survivor type good with bow or rifle npc_class_id( "NC_SOLDIER" ), // Well equipped and trained combatant, good with rifles and melee npc_class_id( "NC_BARTENDER" ), // Stocks alcohol - npc_class_id( "NC_JUNK_SHOPKEEP" ) // Stocks wide range of items... + npc_class_id( "NC_JUNK_SHOPKEEP" ), // Stocks wide range of items... + npc_class_id( "NC_HALLU" ) // Hallucinatory NPCs } }; @@ -58,6 +58,7 @@ npc_class_id NC_HUNTER( "NC_HUNTER" ); npc_class_id NC_SOLDIER( "NC_SOLDIER" ); npc_class_id NC_BARTENDER( "NC_BARTENDER" ); npc_class_id NC_JUNK_SHOPKEEP( "NC_JUNK_SHOPKEEP" ); +npc_class_id NC_HALLU( "NC_HALLU" ); generic_factory npc_class_factory( "npc_class" ); @@ -261,7 +262,8 @@ void npc_class::load( JsonObject &jo, const std::string & ) mutation_category_trait::get_all(); auto jo2 = jo.get_object( "mutation_rounds" ); for( auto &mutation : jo2.get_member_names() ) { - const auto category_match = [&mutation]( std::pair p ) { + const auto category_match = [&mutation]( const std::pair + &p ) { return p.second.id == mutation; }; if( std::find_if( mutation_categories.begin(), mutation_categories.end(), diff --git a/src/npc_class.h b/src/npc_class.h index 1ea7d419b5e7d..5ebc614dc6dfa 100644 --- a/src/npc_class.h +++ b/src/npc_class.h @@ -9,23 +9,9 @@ #include "string_id.h" #include "int_id.h" +#include "type_id.h" class JsonObject; -class npc_class; - -using npc_class_id = string_id; - -class Skill; - -using skill_id = string_id; - -struct mutation_branch; - -using trait_id = string_id; - -struct bionic_data; - -using bionic_id = string_id; typedef std::string Group_tag; typedef std::string Mutation_category_tag; @@ -142,5 +128,6 @@ extern npc_class_id NC_HUNTER; extern npc_class_id NC_SOLDIER; extern npc_class_id NC_BARTENDER; extern npc_class_id NC_JUNK_SHOPKEEP; +extern npc_class_id NC_HALLU; #endif diff --git a/src/npc_favor.h b/src/npc_favor.h index d2c61d76dccad..dc9d69a7f8ef3 100644 --- a/src/npc_favor.h +++ b/src/npc_favor.h @@ -4,12 +4,9 @@ #include -#include "string_id.h" +#include "type_id.h" using itype_id = std::string; -class Skill; - -using skill_id = string_id; class JsonIn; class JsonOut; diff --git a/src/npcmove.cpp b/src/npcmove.cpp index e377ae9910819..4f569f04c3d96 100644 --- a/src/npcmove.cpp +++ b/src/npcmove.cpp @@ -1,7 +1,7 @@ #include "npc.h" // IWYU pragma: associated -#include -#include +#include +#include #include #include #include @@ -30,6 +30,7 @@ #include "monster.h" #include "mtype.h" #include "npctalk.h" +#include "options.h" #include "overmap_location.h" #include "overmapbuffer.h" #include "projectile.h" @@ -45,7 +46,6 @@ #include "vpart_reference.h" #include "bodypart.h" #include "character.h" -#include "clzones.h" #include "damage.h" #include "explosion.h" #include "game_constants.h" @@ -55,6 +55,7 @@ #include "player_activity.h" #include "ret_val.h" #include "units.h" +#include "pldata.h" static constexpr float NPC_DANGER_VERY_LOW = 5.0f; static constexpr float NPC_DANGER_MAX = 150.0f; @@ -69,6 +70,7 @@ const efftype_id effect_bite( "bite" ); const efftype_id effect_bleed( "bleed" ); const efftype_id effect_bouldering( "bouldering" ); const efftype_id effect_catch_up( "catch_up" ); +const efftype_id effect_hallu( "hallu" ); const efftype_id effect_hit_by_player( "hit_by_player" ); const efftype_id effect_infected( "infected" ); const efftype_id effect_infection( "infection" ); @@ -150,11 +152,12 @@ bool clear_shot_reach( const tripoint &from, const tripoint &to ) tripoint npc::good_escape_direction( bool include_pos ) { - if( !is_enemy() && path.empty() ) { + if( path.empty() ) { zone_type_id retreat_zone = zone_type_id( "NPC_RETREAT" ); const tripoint &abs_pos = global_square_location(); const zone_manager &mgr = zone_manager::get_manager(); - cata::optional retreat_target = mgr.get_nearest( retreat_zone, abs_pos, 60 ); + cata::optional retreat_target = mgr.get_nearest( retreat_zone, abs_pos, 60, + fac_id ); if( retreat_target && *retreat_target != abs_pos ) { update_path( g->m.getlocal( *retreat_target ) ); if( !path.empty() ) { @@ -286,12 +289,17 @@ void npc::assess_danger() float assessment = 0.0f; float highest_priority = 1.0f; + // Radius we can attack without moving const int max_range = std::max( weapon.reach_range( *this ), confident_shoot_range( weapon, get_most_accurate_sight( weapon ) ) ); const auto ok_by_rules = [max_range, this]( const Creature & c, int dist, int scaled_dist ) { + // If we're forbidden to attack, no need to check engagement rules + if( rules.has_flag( ally_rule::forbid_engage ) ) { + return false; + } switch( rules.engagement ) { case ENGAGE_NONE: return false; @@ -377,8 +385,8 @@ void npc::assess_danger() } } - const auto handle_hostile = [&]( const player & guy, float guy_threat, std::string bogey, - std::string warning ) { + const auto handle_hostile = [&]( const player & guy, float guy_threat, const std::string & bogey, + const std::string & warning ) { if( guy_threat > ( 8.0f + personality.bravery + rng( 0, 5 ) ) ) { warn_about( "monster", 10_minutes, bogey ); } @@ -486,7 +494,7 @@ void npc::regen_ai_cache() { auto i = std::begin( ai_cache.sound_alerts ); while( i != std::end( ai_cache.sound_alerts ) ) { - if( sees( i->pos ) ) { + if( sees( g->m.getlocal( i->abs_pos ) ) ) { i = ai_cache.sound_alerts.erase( i ); if( ai_cache.sound_alerts.size() == 1 ) { path.clear(); @@ -595,8 +603,9 @@ void npc::move() } else if( target != nullptr && ai_cache.danger > 0 ) { action = method_of_attack(); } else if( !ai_cache.sound_alerts.empty() && !is_walking_with() ) { + tripoint cur_s_abs_pos = ai_cache.s_abs_pos; if( !ai_cache.guard_pos ) { - ai_cache.guard_pos = pos(); + ai_cache.guard_pos = g->m.getabs( pos() ); } if( ai_cache.sound_alerts.size() > 1 ) { std::sort( ai_cache.sound_alerts.begin(), ai_cache.sound_alerts.end(), @@ -605,10 +614,23 @@ void npc::move() ai_cache.sound_alerts.resize( 10 ); } } - ai_cache.spos = ai_cache.sound_alerts.front().pos; - add_msg( m_debug, "NPC %s: investigating sound at x(%d) y(%d)", name, ai_cache.spos.x, - ai_cache.spos.y ); action = npc_investigate_sound; + if( ai_cache.sound_alerts.front().abs_pos != cur_s_abs_pos ) { + ai_cache.stuck = 0; + ai_cache.s_abs_pos = ai_cache.sound_alerts.front().abs_pos; + } else if( ai_cache.stuck > 10 ) { + ai_cache.stuck = 0; + if( ai_cache.sound_alerts.size() == 1 ) { + ai_cache.sound_alerts.clear(); + action = npc_return_to_guard_pos; + } else { + ai_cache.s_abs_pos = ai_cache.sound_alerts.at( 1 ).abs_pos; + } + } + if( action == npc_investigate_sound ) { + add_msg( m_debug, "NPC %s: investigating sound at x(%d) y(%d)", name, + ai_cache.s_abs_pos.x, ai_cache.s_abs_pos.y ); + } } else if( ai_cache.sound_alerts.empty() && ai_cache.guard_pos ) { tripoint return_guard_pos = *ai_cache.guard_pos; add_msg( m_debug, "NPC %s: returning to guard spot at x(%d) y(%d)", name, @@ -726,14 +748,19 @@ void npc::execute_action( npc_action action ) break; case npc_investigate_sound: { - update_path( ai_cache.spos ); + tripoint cur_pos = pos(); + update_path( g->m.getlocal( ai_cache.s_abs_pos ) ); move_to_next(); + if( pos() == cur_pos ) { + ai_cache.stuck += 1; + } } break; case npc_return_to_guard_pos: { - update_path( *ai_cache.guard_pos ); - if( pos() == *ai_cache.guard_pos || path.empty() ) { + const tripoint local_guard_pos = g->m.getlocal( *ai_cache.guard_pos ); + update_path( local_guard_pos ); + if( pos() == local_guard_pos || path.empty() ) { move_pause(); ai_cache.guard_pos = cata::nullopt; path.clear(); @@ -839,7 +866,11 @@ void npc::execute_action( npc_action action ) break; } aim(); - fire_gun( tar, mode.qty, *mode ); + if( !is_hallucination() ) { + fire_gun( tar, mode.qty, *mode ); + } else { + pretend_fire( this, mode.qty, *mode ); + } break; } @@ -1387,6 +1418,12 @@ npc_action npc::address_needs( float danger ) return npc_sleep; } } + //Does the hallucination needs to disappear ? + if( g->u.sees( *this ) && is_hallucination() ) { + if( !g->u.has_effect( effect_hallu ) ) { + die( nullptr ); + } + } // TODO: Mutation & trait related needs // e.g. finding glasses; getting out of sunlight if we're an albino; etc. @@ -1666,8 +1703,9 @@ bool npc::can_open_door( const tripoint &p, const bool inside ) const bool npc::can_move_to( const tripoint &p, bool no_bashing ) const { // Allow moving into any bashable spots, but penalize them during pathing + // Doors are not passable for hallucinations return( rl_dist( pos(), p ) <= 1 && - ( g->m.passable( p ) || can_open_door( p, !g->m.is_outside( pos() ) ) || + ( g->m.passable( p ) || ( can_open_door( p, !g->m.is_outside( pos() ) ) && !is_hallucination() ) || ( !no_bashing && g->m.bash_rating( smash_ability(), p ) > 0 ) ) ); } @@ -1790,8 +1828,14 @@ void npc::move_to( const tripoint &pt, bool no_bashing, std::set *nomo bool diag = trigdist && posx() != p.x && posy() != p.y; moves -= run_cost( g->m.combined_movecost( pos(), p ), diag ); moved = true; - } else if( g->m.open_door( p, !g->m.is_outside( pos() ) ) ) { - moves -= 100; + } else if( g->m.open_door( p, !g->m.is_outside( pos() ), true ) ) { + if( !is_hallucination() ) { // hallucinations don't open doors + g->m.open_door( p, !g->m.is_outside( pos() ) ); + moves -= 100; + } else { // hallucinations teleport through doors + moves -= 100; + moved = true; + } } else if( get_dex() > 1 && g->m.has_flag_ter_or_furn( "CLIMBABLE", p ) ) { ///\EFFECT_DEX_NPC increases chance to climb CLIMBABLE furniture or terrain int climb = get_dex(); @@ -1839,7 +1883,7 @@ void npc::move_to( const tripoint &pt, bool no_bashing, std::set *nomo } // Close doors behind self (if you can) - if( rules.has_flag( ally_rule::close_doors ) && is_player_ally() ) { + if( ( rules.has_flag( ally_rule::close_doors ) && is_player_ally() ) && !is_hallucination() ) { doors::close_door( g->m, *this, old_pos ); } @@ -1859,8 +1903,8 @@ void npc::move_to_next() } if( path.empty() ) { - add_msg( m_debug, - "npc::move_to_next() called with an empty path or path containing only current position" ); + add_msg( m_debug, "npc::move_to_next() called with an empty path or path " + "containing only current position" ); move_pause(); return; } @@ -2063,9 +2107,29 @@ void npc::move_away_from( const std::vector &spheres, bool no_bashing ) } } +void npc::see_item_say_smth( const itype_id object, const std::string smth ) +{ + for( const tripoint &p : closest_tripoints_first( 6, pos() ) ) { + if( g->m.sees_some_items( p, *this ) && sees( p ) ) { + for( const item &it : g->m.i_at( p ) ) { + if( one_in( 100 ) && ( it.typeId() == object ) ) { + say( smth ); + } + } + } + } +} + void npc::find_item() { + if( is_hallucination() ) { + see_item_say_smth( "thorazine", "" ); + see_item_say_smth( "lsd", "" ); + return; + } + if( is_player_ally() && !rules.has_flag( ally_rule::allow_pick_up ) ) { + // Grabbing stuff not allowed by our "owner" return; } @@ -2200,6 +2264,10 @@ void npc::find_item() void npc::pick_up_item() { + if( is_hallucination() ) { + return; + } + if( !rules.has_flag( ally_rule::allow_pick_up ) && is_player_ally() ) { add_msg( m_debug, "%s::pick_up_item(); Cancelling on player's request", name ); fetching_item = false; @@ -2437,7 +2505,9 @@ void npc::drop_items( int weight, int volume ) } else if( num_items_dropped == 2 ) { item_name << _( " and " ) << dropped.tname(); } - g->m.add_item_or_charges( pos(), dropped ); + if( !is_hallucination() ) { // hallucinations can't drop real items + g->m.add_item_or_charges( pos(), dropped ); + } } // Finally, describe the action if u can see it if( g->u.sees( *this ) ) { @@ -2453,7 +2523,8 @@ void npc::drop_items( int weight, int volume ) bool npc::find_corpse_to_pulp() { - if( is_player_ally() && ( !rules.has_flag( ally_rule::allow_pulp ) || g->u.in_vehicle ) ) { + if( ( is_player_ally() && ( !rules.has_flag( ally_rule::allow_pulp ) || g->u.in_vehicle ) ) || + is_hallucination() ) { return false; } @@ -2631,12 +2702,12 @@ bool npc::wield_better_weapon() // Until then, the NPCs should reload the guns as a last resort if( best == &weapon ) { - add_msg( m_debug, "Wielded %s is best at %.1f, not switching", best->display_name(), + add_msg( m_debug, "Wielded %s is best at %.1f, not switching", best->type->get_id(), best_value ); return false; } - add_msg( m_debug, "Wielding %s at value %.1f", best->display_name(), best_value ); + add_msg( m_debug, "Wielding %s at value %.1f", best->type->get_id(), best_value ); wield( *best ); return true; @@ -2667,7 +2738,9 @@ void npc_throw( npc &np, item &it, int index, const tripoint &pos ) stack_size = it.charges; it.charges = 1; } - np.throw_item( pos, it ); + if( !np.is_hallucination() ) { // hallucinations only pretend to throw + np.throw_item( pos, it ); + } // Throw a single charge of a stacking object. if( stack_size == -1 || stack_size == 1 ) { np.i_rem( index ); @@ -2678,7 +2751,7 @@ void npc_throw( npc &np, item &it, int index, const tripoint &pos ) bool npc::alt_attack() { - if( is_player_ally() && !rules.has_flag( ally_rule::use_grenades ) ) { + if( ( is_player_ally() && !rules.has_flag( ally_rule::use_grenades ) ) || is_hallucination() ) { return false; } @@ -2850,9 +2923,12 @@ void npc::heal_player( player &patient ) debugmsg( "%s tried to heal you but has no healing item", disp_name() ); return; } - - long charges_used = used.type->invoke( *this, used, patient.pos(), "heal" ); - consume_charges( used, charges_used ); + if( !is_hallucination() ) { + long charges_used = used.type->invoke( *this, used, patient.pos(), "heal" ); + consume_charges( used, charges_used ); + } else { + pretend_heal( patient, used ); + } if( !patient.is_npc() ) { // Test if we want to heal the player further @@ -2865,6 +2941,16 @@ void npc::heal_player( player &patient ) } } +void npc:: pretend_heal( player &patient, item used ) +{ + if( g->u.sees( *this ) ) { + add_msg( _( "%1$s heals %2$s." ), disp_name(), + patient.disp_name() ); // you can tell that it's not real by looking at your HP though + } + consume_charges( used, 1 ); // empty hallucination's inventory to avoid spammming + moves -= 100; // consumes moves to avoid infinite loop +} + void npc::heal_self() { item &used = get_healing_item( ai_cache.can_heal ); @@ -3041,8 +3127,10 @@ void npc::mug_player( player &mark ) const bool u_see = g->u.sees( *this ) || g->u.sees( mark ); if( mark.cash > 0 ) { - cash += mark.cash; - mark.cash = 0; + if( !is_hallucination() ) { // hallucinations can't take items + cash += mark.cash; + mark.cash = 0; + } moves = 0; // Describe the action if( mark.is_npc() ) { @@ -3084,8 +3172,11 @@ void npc::mug_player( player &mark ) moves -= 100; return; } - - item stolen = mark.i_rem( item_index ); + item stolen; + if( !is_hallucination() ) { + stolen = mark.i_rem( item_index ); + i_add( stolen ); + } if( mark.is_npc() ) { if( u_see ) { add_msg( _( "%1$s takes %2$s's %3$s." ), name, mark.name, stolen.tname() ); @@ -3093,7 +3184,6 @@ void npc::mug_player( player &mark ) } else { add_msg( m_bad, _( "%1$s takes your %2$s." ), name, stolen.tname() ); } - i_add( stolen ); moves -= 100; if( !mark.is_npc() ) { op_of_u.value -= rng( 0, 1 ); // Decrease the value of the player @@ -3156,14 +3246,14 @@ void npc::reach_omt_destination() { if( is_travelling() ) { talk_function::assign_guard( *this ); - guard_pos = global_square_location(); + guard_pos = g->m.getabs( pos() ); omt_path.clear(); goal = no_goal_point; if( rl_dist( g->u.pos(), pos() ) > SEEX * 2 || !g->u.sees( pos() ) ) { if( g->u.has_item_with_flag( "TWO_WAY_RADIO", true ) && has_item_with_flag( "TWO_WAY_RADIO", true ) ) { - add_msg( m_info, _( "From your two-way radio you hear %s reporting in, 'I've arrived, boss!'" ), - disp_name() ); + add_msg( m_info, _( "From your two-way radio you hear %s reporting in, " + " 'I've arrived, boss!'" ), disp_name() ); } } return; @@ -3176,7 +3266,7 @@ void npc::reach_omt_destination() } // If we are guarding, remember our position in case we get forcibly moved goal = global_omt_location(); - if( guard_pos == global_square_location() ) { + if( guard_pos == g->m.getabs( pos() ) ) { // This is the specific point return; } @@ -3185,14 +3275,10 @@ void npc::reach_omt_destination() // No point recalculating the path to get home move_to_next(); } else if( guard_pos != no_goal_point ) { - const tripoint sm_dir = goal - submap_coords; - const tripoint dest( sm_dir.x * SEEX + guard_pos.x - posx(), - sm_dir.y * SEEY + guard_pos.y - posy(), - guard_pos.z ); - update_path( dest ); + update_path( g->m.getlocal( guard_pos ) ); move_to_next(); } else { - guard_pos = global_square_location(); + guard_pos = g->m.getabs( pos() ); } } @@ -3221,29 +3307,47 @@ void npc::set_omt_destination() return; } + tripoint surface_omt_loc = global_omt_location(); + // We need that, otherwise find_closest won't work properly + surface_omt_loc.z = 0; + + // also, don't bother looking if the CITY_SIZE is 0, just go somewhere at random + const int city_size = get_option( "CITY_SIZE" ); + if( city_size == 0 ) { + goal = surface_omt_loc + point( rng( -90, 90 ), rng( -90, 90 ) ); + return; + } + decide_needs(); if( needs.empty() ) { // We don't need anything in particular. needs.push_back( need_none ); } - // We need that, otherwise find_closest won't work properly - // TODO: Allow finding sewers and stuff - tripoint surface_omt_loc = global_omt_location(); - surface_omt_loc.z = 0; + std::string dest_type; + for( const auto &fulfill : needs ) { + dest_type = get_location_for( fulfill )->get_random_terrain().id().str(); + goal = overmap_buffer.find_closest( surface_omt_loc, dest_type, 150, false ); + if( goal != overmap::invalid_tripoint ) { + break; + } + } - std::string dest_type = get_location_for( needs.front() )->get_random_terrain().id().str(); - goal = overmap_buffer.find_closest( surface_omt_loc, dest_type, 0, false ); + // couldn't find any places to go, so go somewhere. + if( goal == overmap::invalid_tripoint ) { + goal = surface_omt_loc + point( rng( -90, 90 ), rng( -90, 90 ) ); + return; + } DebugLog( D_INFO, DC_ALL ) << "npc::set_omt_destination - new goal for NPC [" << get_name() << - "] with [" - << get_need_str_id( needs.front() ) << "] is [" << dest_type << "] in [" - << goal.x << "," << goal.y << "," << goal.z << "]."; + "] with [" << get_need_str_id( needs.front() ) << + "] is [" << dest_type << + "] in [" << goal.x << "," << goal.y << "," << goal.z << "]."; } void npc::go_to_omt_destination() { if( ai_cache.guard_pos ) { - if( pos() == *ai_cache.guard_pos ) { + if( g->m.getabs( pos() ) == *ai_cache.guard_pos ) { path.clear(); ai_cache.guard_pos = cata::nullopt; move_pause(); @@ -3265,7 +3369,8 @@ void npc::go_to_omt_destination() add_msg( m_debug, "%s going (%d,%d,%d)->(%d,%d,%d)", name, omt_pos.x, omt_pos.y, omt_pos.z, goal.x, goal.y, goal.z ); if( goal == omt_pos ) { - // We're at our desired map square! + // We're at our desired map square! Pause to keep the NPC infinite loop counter happy + move_pause(); reach_omt_destination(); return; } @@ -3311,60 +3416,60 @@ void npc::go_to_omt_destination() void npc::guard_current_pos() { goal = global_omt_location(); - guard_pos = global_square_location(); + guard_pos = g->m.getabs( pos() ); } std::string npc_action_name( npc_action action ) { switch( action ) { case npc_undecided: - return _( "Undecided" ); + return "Undecided"; case npc_pause: - return _( "Pause" ); + return "Pause"; case npc_reload: - return _( "Reload" ); + return "Reload"; case npc_investigate_sound: - return _( "Investigate sound" ); + return "Investigate sound"; case npc_return_to_guard_pos: - return _( "Returning to guard position" ); + return "Returning to guard position"; case npc_sleep: - return _( "Sleep" ); + return "Sleep"; case npc_pickup: - return _( "Pick up items" ); + return "Pick up items"; case npc_heal: - return _( "Heal self" ); + return "Heal self"; case npc_use_painkiller: - return _( "Use painkillers" ); + return "Use painkillers"; case npc_drop_items: - return _( "Drop items" ); + return "Drop items"; case npc_flee: - return _( "Flee" ); + return "Flee"; case npc_melee: - return _( "Melee" ); + return "Melee"; case npc_reach_attack: - return _( "Reach attack" ); + return "Reach attack"; case npc_aim: - return _( "Aim" ); + return "Aim"; case npc_shoot: - return _( "Shoot" ); + return "Shoot"; case npc_look_for_player: - return _( "Look for player" ); + return "Look for player"; case npc_heal_player: - return _( "Heal player or ally" ); + return "Heal player or ally"; case npc_follow_player: - return _( "Follow player" ); + return "Follow player"; case npc_follow_embarked: - return _( "Follow player (embarked)" ); + return "Follow player (embarked)"; case npc_talk_to_player: - return _( "Talk to player" ); + return "Talk to player"; case npc_mug_player: - return _( "Mug player" ); + return "Mug player"; case npc_goto_destination: - return _( "Go to destination" ); + return "Go to destination"; case npc_avoid_friendly_fire: - return _( "Avoid friendly fire" ); + return "Avoid friendly fire"; case npc_escape_explosion: - return _( "Escape explosion" ); + return "Escape explosion"; default: return "Unnamed action"; } diff --git a/src/npctalk.cpp b/src/npctalk.cpp index 34855a545adb0..dea1d13ad989b 100644 --- a/src/npctalk.cpp +++ b/src/npctalk.cpp @@ -1,8 +1,8 @@ #include "dialogue.h" // IWYU pragma: associated -#include -#include -#include +#include +#include +#include #include #include #include @@ -30,7 +30,6 @@ #include "line.h" #include "map.h" #include "mapgen_functions.h" -#include "map_selector.h" #include "martialarts.h" #include "messages.h" #include "mission.h" @@ -164,6 +163,149 @@ int cash_to_favor( const npc &, int cash ) return roll_remainder( scaled_mission_val ); } +enum npc_chat_menu { + NPC_CHAT_DONE, + NPC_CHAT_TALK, + NPC_CHAT_YELL, + NPC_CHAT_SENTENCE, + NPC_CHAT_GUARD, + NPC_CHAT_FOLLOW, + NPC_CHAT_AWAKE, + NPC_CHAT_DANGER, + NPC_CHAT_ORDERS, + NPC_CHAT_NO_GUNS, + NPC_CHAT_PULP, + NPC_CHAT_FOLLOW_CLOSE, + NPC_CHAT_MOVE_FREELY, + NPC_CHAT_SLEEP, + NPC_CHAT_FORBID_ENGAGE, + NPC_CHAT_CLEAR_OVERRIDES +}; + +// given a vector of NPCs, presents a menu to allow a player to pick one. +// everyone == true adds another entry at the end to allow selecting all listed NPCs +// this implies a return value of npc_list.size() means "everyone" +int npc_select_menu( const std::vector &npc_list, const std::string prompt, + const bool everyone = true ) +{ + if( npc_list.empty() ) { + return -1; + } + const int npc_count = npc_list.size(); + if( npc_count == 1 ) { + return 0; + } else { + uilist nmenu; + nmenu.text = prompt; + for( auto &elem : npc_list ) { + nmenu.addentry( -1, true, MENU_AUTOASSIGN, ( elem )->name ); + } + if( npc_count > 1 && everyone ) { + nmenu.addentry( -1, true, MENU_AUTOASSIGN, _( "Everyone" ) ); + } + nmenu.query(); + return nmenu.ret; + } + +} + +void npc_batch_override_toggle( const std::vector npc_list, ally_rule rule, bool state ) +{ + for( npc *p : npc_list ) { + p->rules.toggle_specific_override_state( rule, state ); + } +} + +void npc_temp_orders_menu( const std::vector &npc_list ) +{ + if( npc_list.empty() ) { + return; + } + npc *guy = npc_list.front(); + + bool done = false; + uilist nmenu; + + while( !done ) { + int override_count = 0; + std::ostringstream override_string; + override_string << string_format( _( "%s currently has these temporary orders:" ), guy->name ); + for( const auto &rule : ally_rule_strs ) { + if( guy->rules.has_override_enable( rule.second.rule ) ) { + override_count++; + override_string << "\n "; + override_string << ( guy->rules.has_override( rule.second.rule ) ? + rule.second.rule_true_text : rule.second.rule_false_text ); + } + } + if( override_count == 0 ) { + override_string << "\n " << _( "None." ) << "\n"; + } + if( npc_list.size() > 1 ) { + override_string << "\n" << _( "Other followers might have different temporary orders." ); + } + g->refresh_all(); + nmenu.reset(); + nmenu.text = _( "Issue what temporary order?" ); + nmenu.desc_enabled = true; + std::string output_string = override_string.str(); + parse_tags( output_string, g->u, *guy ); + nmenu.footer_text = output_string; + nmenu.addentry( NPC_CHAT_DONE, true, 'd', _( "Done issuing orders" ) ); + nmenu.addentry( NPC_CHAT_FORBID_ENGAGE, true, 'f', + guy->rules.has_override_enable( ally_rule::forbid_engage ) ? + _( "Go back to your usual engagement habits" ) : _( "Don't engage hostiles for the time being" ) ); + nmenu.addentry( NPC_CHAT_NO_GUNS, true, 'g', guy->rules.has_override_enable( ally_rule::use_guns ) ? + _( "Use whatever weapon you normally would" ) : _( "Don't use ranged weapons for a while" ) ); + nmenu.addentry( NPC_CHAT_PULP, true, 'p', guy->rules.has_override_enable( ally_rule::allow_pulp ) ? + _( "Pulp zombies if you like" ) : _( "Hold off on pulping zombies for a while" ) ); + nmenu.addentry( NPC_CHAT_FOLLOW_CLOSE, true, 'c', + guy->rules.has_override_enable( ally_rule::follow_close ) && + guy->rules.has_override( ally_rule::follow_close ) ? + _( "Go back to keeping your usual distance" ) : _( "Stick close to me for now" ) ); + nmenu.addentry( NPC_CHAT_MOVE_FREELY, true, 'm', + guy->rules.has_override_enable( ally_rule::follow_close ) && + !guy->rules.has_override( ally_rule::follow_close ) ? + _( "Go back to keeping your usual distance" ) : _( "Move farther from me if you need to" ) ); + nmenu.addentry( NPC_CHAT_SLEEP, true, 's', + guy->rules.has_override_enable( ally_rule::allow_sleep ) ? + _( "Go back to your usual sleeping habits" ) : _( "Take a nap if you need it" ) ); + nmenu.addentry( NPC_CHAT_CLEAR_OVERRIDES, true, 'o', _( "Let's go back to your usual behaviors" ) ); + nmenu.query(); + + switch( nmenu.ret ) { + case NPC_CHAT_FORBID_ENGAGE: + npc_batch_override_toggle( npc_list, ally_rule::forbid_engage, true ); + break; + case NPC_CHAT_NO_GUNS: + npc_batch_override_toggle( npc_list, ally_rule::use_guns, false ); + break; + case NPC_CHAT_PULP: + npc_batch_override_toggle( npc_list, ally_rule::allow_pulp, false ); + break; + case NPC_CHAT_FOLLOW_CLOSE: + npc_batch_override_toggle( npc_list, ally_rule::follow_close, true ); + break; + case NPC_CHAT_MOVE_FREELY: + npc_batch_override_toggle( npc_list, ally_rule::follow_close, false ); + break; + case NPC_CHAT_SLEEP: + npc_batch_override_toggle( npc_list, ally_rule::allow_sleep, true ); + break; + case NPC_CHAT_CLEAR_OVERRIDES: + for( npc *p : npc_list ) { + p->rules.clear_overrides(); + } + break; + default: + done = true; + break; + } + } + +} + + void game::chat() { int volume = g->u.get_shout_volume(); @@ -173,119 +315,140 @@ void game::chat() return u.posz() == guy.posz() && u.sees( guy.pos() ) && rl_dist( u.pos(), guy.pos() ) <= SEEX * 2; } ); + const int available_count = available.size(); const std::vector followers = get_npcs_if( [&]( const npc & guy ) { return guy.is_player_ally() && guy.is_following() && guy.can_hear( u.pos(), volume ); } ); + const int follower_count = followers.size(); const std::vector guards = get_npcs_if( [&]( const npc & guy ) { return guy.mission == NPC_MISSION_GUARD_ALLY && guy.companion_mission_role_id != "FACTION_CAMP" && guy.can_hear( u.pos(), volume ); } ); + const int guard_count = guards.size(); uilist nmenu; - nmenu.text = std::string( _( "Who do you want to talk to or yell at?" ) ); - - int i = 0; - - for( auto &elem : available ) { - nmenu.addentry( i++, true, MENU_AUTOASSIGN, ( elem )->name ); - } - - int yell = 0; - int yell_sentence = 0; - int yell_guard = -1; - int yell_follow = -1; - int yell_awake = -1; - int yell_sleep = -1; - int yell_flee = -1; - int yell_stop = -1; - int yell_danger = -1; - int yell_relax = -1; + nmenu.text = std::string( _( "What do you want to do?" ) ); - nmenu.addentry( yell = i++, true, 'a', _( "Yell" ) ); - nmenu.addentry( yell_sentence = i++, true, 'b', _( "Yell a sentence" ) ); - if( !followers.empty() ) { - nmenu.addentry( yell_guard = i++, true, 'g', _( "Tell all your allies to guard" ) ); - nmenu.addentry( yell_awake = i++, true, 'w', _( "Tell all your allies to stay awake" ) ); - nmenu.addentry( yell_sleep = i++, true, 's', - _( "Tell all your allies to relax and sleep when tired" ) ); - nmenu.addentry( yell_flee = i++, true, 'R', _( "Tell all your allies to flee" ) ); - nmenu.addentry( yell_stop = i++, true, 'S', _( "Tell all your allies stop running" ) ); - nmenu.addentry( yell_danger = i++, true, 'D', - _( "Tell all your allies to prepare for danger" ) ); - nmenu.addentry( yell_relax = i++, true, 'C', - _( "Tell all your allies to relax from danger" ) ); + if( !available.empty() ) { + nmenu.addentry( NPC_CHAT_TALK, true, 't', available_count == 1 ? + string_format( _( "Talk to %s" ), available.front()->name ) : + _( "Talk to ..." ) + ); } + nmenu.addentry( NPC_CHAT_YELL, true, 'a', _( "Yell" ) ); + nmenu.addentry( NPC_CHAT_SENTENCE, true, 'b', _( "Yell a sentence" ) ); if( !guards.empty() ) { - nmenu.addentry( yell_follow = i++, true, 'f', _( "Tell all your allies to follow" ) ); + nmenu.addentry( NPC_CHAT_FOLLOW, true, 'f', guard_count == 1 ? + string_format( _( "Tell %s to follow" ), guards.front()->name ) : + _( "Tell someone to follow..." ) + ); + } + if( !followers.empty() ) { + nmenu.addentry( NPC_CHAT_GUARD, true, 'g', follower_count == 1 ? + string_format( _( "Tell %s to guard" ), followers.front()->name ) : + _( "Tell someone to guard..." ) + ); + nmenu.addentry( NPC_CHAT_AWAKE, true, 'w', _( "Tell everyone on your team to wake up" ) ); + nmenu.addentry( NPC_CHAT_DANGER, true, 'D', + _( "Tell everyone on your team to prepare for danger" ) ); + nmenu.addentry( NPC_CHAT_CLEAR_OVERRIDES, true, 'r', + _( "Tell everyone on your team to relax (Clear Overrides)" ) ); + nmenu.addentry( NPC_CHAT_ORDERS, true, 'o', _( "Tell everyone on your team to temporarily..." ) ); } - std::string message; std::string yell_msg; bool is_order = true; nmenu.query(); + if( nmenu.ret < 0 ) { return; - } else if( nmenu.ret == yell ) { - is_order = false; - message = _( "loudly." ); - } else if( nmenu.ret == yell_sentence ) { - std::string popupdesc = string_format( _( "Enter a sentence to yell" ) ); - string_input_popup popup; - popup.title( string_format( _( "Yell a sentence" ) ) ) - .width( 64 ) - .description( popupdesc ) - .identifier( "sentence" ) - .max_length( 128 ) - .query(); - yell_msg = popup.text() + "."; - is_order = false; - } else if( nmenu.ret == yell_guard ) { - for( npc *p : followers ) { - talk_function::assign_guard( *p ); - } - yell_msg = _( "Guard here!" ); - } else if( nmenu.ret == yell_awake ) { - for( npc *p : followers ) { - talk_function::wake_up( *p ); - } - yell_msg = _( "Stay awake!" ); - } else if( nmenu.ret == yell_sleep ) { - for( npc *p : followers ) { - p->rules.set_flag( ally_rule::allow_sleep ); - } - yell_msg = _( "We're safe! Take a nap if you're tired." ); - } else if( nmenu.ret == yell_follow ) { - for( npc *p : guards ) { - talk_function::stop_guard( *p ); - } - yell_msg = _( "Follow me!" ); - } else if( nmenu.ret == yell_flee ) { - for( npc *p : followers ) { - p->rules.set_flag( ally_rule::avoid_combat ); - } - yell_msg = _( "Fall back to safety! Flee, you fools!" ); - } else if( nmenu.ret == yell_stop ) { - for( npc *p : followers ) { - p->rules.clear_flag( ally_rule::avoid_combat ); - } - yell_msg = _( "No need to run any more, we can fight here." ); - } else if( nmenu.ret == yell_danger ) { - for( npc *p : followers ) { - p->rules.set_danger_overrides(); - } - yell_msg = _( "We're in danger. Stay awake, stay close, don't go wandering off, " - "and don't open any doors." ); - } else if( nmenu.ret == yell_relax ) { - for( npc *p : followers ) { - talk_function::clear_overrides( *p ); - } - yell_msg = _( "Relax and stand down." ); - } else if( nmenu.ret <= static_cast( available.size() ) ) { - available[nmenu.ret]->talk_to_u(); - } else { - return; } + + switch( nmenu.ret ) { + case NPC_CHAT_TALK: { + const int npcselect = npc_select_menu( available, _( "Talk to whom?" ), false ); + if( npcselect < 0 ) { + return; + } + available[npcselect]->talk_to_u(); + break; + } + case NPC_CHAT_YELL: + is_order = false; + message = _( "loudly." ); + break; + case NPC_CHAT_SENTENCE: { + std::string popupdesc = string_format( _( "Enter a sentence to yell" ) ); + string_input_popup popup; + popup.title( string_format( _( "Yell a sentence" ) ) ) + .width( 64 ) + .description( popupdesc ) + .identifier( "sentence" ) + .max_length( 128 ) + .query(); + yell_msg = popup.text() + "."; + is_order = false; + break; + } + case NPC_CHAT_GUARD: { + const int npcselect = npc_select_menu( followers, _( "Who should guard here?" ) ); + if( npcselect < 0 ) { + return; + } + if( npcselect == follower_count ) { + for( npc *them : followers ) { + talk_function::assign_guard( *them ); + } + yell_msg = _( "Everyone guard here!" ); + } else { + talk_function::assign_guard( *followers[npcselect] ); + yell_msg = string_format( _( "Guard here, %s!" ), followers[npcselect]->name ); + } + break; + } + case NPC_CHAT_FOLLOW: { + const int npcselect = npc_select_menu( guards, _( "Who should follow you?" ) ); + if( npcselect < 0 ) { + return; + } + if( npcselect == guard_count ) { + for( npc *them : guards ) { + talk_function::stop_guard( *them ); + } + yell_msg = _( "Everyone follow me!" ); + } else { + talk_function::stop_guard( *guards[npcselect] ); + yell_msg = string_format( _( "Follow me, %s!" ), guards[npcselect]->name ); + } + break; + } + case NPC_CHAT_AWAKE: + for( npc *them : followers ) { + talk_function::wake_up( *them ); + } + yell_msg = _( "Stay awake!" ); + break; + case NPC_CHAT_DANGER: + for( npc *them : followers ) { + them->rules.set_danger_overrides(); + } + yell_msg = _( "We're in danger. Stay awake, stay close, don't go wandering off, " + "and don't open any doors." ); + break; + case NPC_CHAT_CLEAR_OVERRIDES: + for( npc *p : followers ) { + talk_function::clear_overrides( *p ); + } + yell_msg = _( "As you were." ); + break; + case NPC_CHAT_ORDERS: + npc_temp_orders_menu( followers ); + break; + default: + return; + } + if( !yell_msg.empty() ) { message = string_format( "\"%s\"", yell_msg ); } @@ -301,8 +464,12 @@ void game::chat() void npc::handle_sound( int priority, const std::string &description, int heard_volume, const tripoint &spos ) { + const tripoint s_abs_pos = g->m.getabs( spos ); + const tripoint my_abs_pos = g->m.getabs( pos() ); + add_msg( m_debug, "%s heard '%s', priority %d at volume %d from %d:%d, my pos %d:%d", - disp_name(), description, priority, heard_volume, spos.x, spos.y, pos().x, pos().y ); + disp_name(), description, priority, heard_volume, s_abs_pos.x, s_abs_pos.y, + my_abs_pos.x, my_abs_pos.y ); const sounds::sound_t spriority = static_cast( priority ); bool player_ally = g->u.pos() == spos && is_player_ally(); @@ -313,7 +480,7 @@ void npc::handle_sound( int priority, const std::string &description, int heard_ say( "" ); } - if( sees( spos ) ) { + if( sees( spos ) || is_hallucination() ) { return; } // ignore low priority sounds if the NPC "knows" it came from a friend. @@ -355,30 +522,30 @@ void npc::handle_sound( int priority, const std::string &description, int heard_ warn_about( "movement_noise", rng( 1, 10 ) * 1_minutes, description ); } else if( spriority > sounds::sound_t::movement ) { if( !( player_ally || npc_ally ) && ( spriority == sounds::sound_t::speech || - spriority == sounds::sound_t::alert || spriority == sounds::sound_t::order ) ) { + spriority == sounds::sound_t::alert || + spriority == sounds::sound_t::order ) ) { warn_about( "speech_noise", rng( 1, 10 ) * 1_minutes ); } else if( spriority > sounds::sound_t::activity ) { warn_about( "combat_noise", rng( 1, 10 ) * 1_minutes ); } bool should_check = rl_dist( pos(), spos ) < investigate_dist; - if( should_check && is_ally( g->u ) ) { + if( should_check ) { const zone_manager &mgr = zone_manager::get_manager(); - const tripoint &s_abs_pos = g->m.getabs( spos ); - if( mgr.has( zone_no_investigate, s_abs_pos ) ) { + if( mgr.has( zone_no_investigate, s_abs_pos, fac_id ) ) { should_check = false; - } else if( mgr.has_defined( zone_investigate_only ) && - !mgr.has( zone_investigate_only, s_abs_pos ) ) { + } else if( mgr.has( zone_investigate_only, my_abs_pos, fac_id ) && + !mgr.has( zone_investigate_only, s_abs_pos, fac_id ) ) { should_check = false; } } if( should_check ) { - add_msg( m_debug, "NPC %s added noise at pos %d:%d", name, spos.x, spos.y ); + add_msg( m_debug, "%s added noise at pos %d:%d", name, s_abs_pos.x, s_abs_pos.y ); dangerous_sound temp_sound; - temp_sound.pos = spos; + temp_sound.abs_pos = s_abs_pos; temp_sound.volume = heard_volume; temp_sound.type = priority; if( !ai_cache.sound_alerts.empty() ) { - if( ai_cache.sound_alerts.back().pos != spos ) { + if( ai_cache.sound_alerts.back().abs_pos != s_abs_pos ) { ai_cache.sound_alerts.push_back( temp_sound ); } } else { @@ -567,8 +734,9 @@ std::string dialogue::dynamic_line( const talk_topic &the_topic ) const } if( topic == "TALK_SEDATED" ) { return string_format( - _( "%s is sedated and can't be moved or woken up until the medication or sedation wears off." ), - beta->name ); + _( "%1$s is sedated and can't be moved or woken up until the medication or sedation wears off.\nYou estimate it will wear off in %2$s." ), + beta->name, to_string_approx( g->u.estimate_effect_dur( skill_id( "firstaid" ), effect_narcosis, + 15_minutes, 6, *beta ) ) ); } const auto &p = beta; // for compatibility, later replace it in the code below @@ -1722,7 +1890,7 @@ void talk_effect_fun_t::set_toggle_npc_rule( const std::string &rule ) if( toggle == ally_rule_strs.end() ) { return; } - d.beta->rules.toggle_flag( toggle->second ); + d.beta->rules.toggle_flag( toggle->second.rule ); d.beta->wield_better_weapon(); }; } @@ -1734,7 +1902,7 @@ void talk_effect_fun_t::set_set_npc_rule( const std::string &rule ) if( flag == ally_rule_strs.end() ) { return; } - d.beta->rules.set_flag( flag->second ); + d.beta->rules.set_flag( flag->second.rule ); d.beta->wield_better_weapon(); }; } @@ -1746,7 +1914,7 @@ void talk_effect_fun_t::set_clear_npc_rule( const std::string &rule ) if( flag == ally_rule_strs.end() ) { return; } - d.beta->rules.clear_flag( flag->second ); + d.beta->rules.clear_flag( flag->second.rule ); d.beta->wield_better_weapon(); }; } @@ -2224,7 +2392,6 @@ json_talk_repeat_response::json_talk_repeat_response( JsonObject jo ) } } - json_talk_response::json_talk_response( JsonObject jo ) : actual_response( jo ) { @@ -2596,7 +2763,7 @@ void conditional_t::set_npc_rule( JsonObject &jo ) condition = [rule]( const dialogue & d ) { auto flag = ally_rule_strs.find( rule ); if( flag != ally_rule_strs.end() ) { - return d.beta->rules.has_flag( flag->second ); + return d.beta->rules.has_flag( flag->second.rule ); } return false; }; @@ -2608,7 +2775,7 @@ void conditional_t::set_npc_override( JsonObject &jo ) condition = [rule]( const dialogue & d ) { auto flag = ally_rule_strs.find( rule ); if( flag != ally_rule_strs.end() ) { - return d.beta->rules.has_override_enable( flag->second ); + return d.beta->rules.has_override_enable( flag->second.rule ); } return false; }; @@ -3135,6 +3302,25 @@ bool json_talk_response::gen_repeat_response( dialogue &d, const itype_id &item_ return false; } +static std::string translate_gendered_line( + const std::string &line, + const std::vector &relevant_genders, + const dialogue &d +) +{ + GenderMap gender_map; + for( const std::string &subject : relevant_genders ) { + if( subject == "npc" ) { + gender_map[subject] = d.beta->get_grammatical_genders(); + } else if( subject == "u" ) { + gender_map[subject] = d.alpha->get_grammatical_genders(); + } else { + debugmsg( "Unsupported subject '%s' for grammatical gender in dialogue", subject ); + } + } + return gettext_gendered( gender_map, line ); +} + dynamic_line_t dynamic_line_t::from_member( JsonObject &jo, const std::string &member_name ) { if( jo.has_array( member_name ) ) { @@ -3188,6 +3374,25 @@ dynamic_line_t::dynamic_line_t( JsonObject jo ) d.reason.clear(); return tmp; }; + } else if( jo.has_string( "gendered_line" ) ) { + const std::string line = jo.get_string( "gendered_line" ); + if( !jo.has_array( "relevant_genders" ) ) { + jo.throw_error( + "dynamic line with \"gendered_line\" must also have \"relevant_genders\"" ); + } + JsonArray ja = jo.get_array( "relevant_genders" ); + std::vector relevant_genders; + while( ja.has_more() ) { + relevant_genders.push_back( ja.next_string() ); + } + for( const std::string &gender : relevant_genders ) { + if( gender != "npc" && gender != "u" ) { + jo.throw_error( "Unexpected subject in relevant_genders; expected 'npc' or 'u'" ); + } + } + function = [line, relevant_genders]( const dialogue & d ) { + return translate_gendered_line( line, relevant_genders, d ); + }; } else { conditional_t dcondition; const dynamic_line_t yes = from_member( jo, "yes" ); @@ -3490,6 +3695,9 @@ consumption_result try_consume( npc &p, item &it, std::string &reason ) std::string give_item_to( npc &p, bool allow_use, bool allow_carry ) { + if( p.is_hallucination() ) { + return _( "No thanks, I'm good." ); + } const int inv_pos = g->inv_for_all( _( "Offer what?" ), _( "You have no items to offer." ) ); item &given = g->u.i_at( inv_pos ); if( given.is_null() ) { @@ -3528,9 +3736,9 @@ std::string give_item_to( npc &p, bool allow_use, bool allow_carry ) const double cur_weapon_value = p.weapon_value( p.weapon, our_ammo ); if( allow_use ) { add_msg( m_debug, "NPC evaluates own %s (%d ammo): %0.1f", - p.weapon.tname(), our_ammo, cur_weapon_value ); + p.weapon.type->get_id(), our_ammo, cur_weapon_value ); add_msg( m_debug, "NPC evaluates your %s (%d ammo): %0.1f", - given.tname(), new_ammo, new_weapon_value ); + given.type->get_id(), new_ammo, new_weapon_value ); if( new_weapon_value > cur_weapon_value ) { p.wield( given ); taken = true; diff --git a/src/npctalk.h b/src/npctalk.h index 06dd1e970b3b5..53df2ad4da7c4 100644 --- a/src/npctalk.h +++ b/src/npctalk.h @@ -2,15 +2,9 @@ #ifndef NPCTALK_H #define NPCTALK_H -#include "string_id.h" +#include "type_id.h" -class martialart; - -using matype_id = string_id; class npc; -class Skill; - -using skill_id = string_id; class time_duration; namespace talk_function diff --git a/src/npctalk_funcs.cpp b/src/npctalk_funcs.cpp index f43113cc480ee..bf10ae433cbe6 100644 --- a/src/npctalk_funcs.cpp +++ b/src/npctalk_funcs.cpp @@ -1,6 +1,6 @@ #include "npctalk.h" // IWYU pragma: associated -#include +#include #include #include #include @@ -38,8 +38,9 @@ #include "player.h" #include "player_activity.h" #include "pldata.h" -#include "itype.h" -#include "mtype.h" +#include "string_id.h" + +struct itype; #define dbg(x) DebugLog((DebugLevel)(x), D_NPC) << __FILE__ << ":" << __LINE__ << ": " @@ -634,6 +635,9 @@ void talk_function::player_leaving( npc &p ) void talk_function::drop_weapon( npc &p ) { + if( p.is_hallucination() ) { + return; + } g->m.add_item_or_charges( p.pos(), p.remove_weapon() ); } diff --git a/src/npctrade.cpp b/src/npctrade.cpp index 00ca592973a06..db307771d6d11 100644 --- a/src/npctrade.cpp +++ b/src/npctrade.cpp @@ -1,6 +1,6 @@ #include "npctrade.h" -#include +#include #include #include #include @@ -23,6 +23,7 @@ #include "player.h" #include "units.h" #include "visitable.h" +#include "type_id.h" const skill_id skill_barter( "barter" ); @@ -260,10 +261,8 @@ TAB key to switch lists, letters to pick items, Enter to finalize, Esc to quit,\ const auto &offset = they ? them_off : you_off; const auto &person = they ? p : g->u; auto &w_whose = they ? w_them : w_you; - int win_h = getmaxy( w_whose ); int win_w = getmaxx( w_whose ); // Borders - win_h -= 2; win_w -= 2; for( size_t i = offset; i < list.size() && i < entries_per_page + offset; i++ ) { const item_pricing &ip = list[i]; diff --git a/src/omdata.h b/src/omdata.h index 954e42b24fc42..eaeac58b4c676 100644 --- a/src/omdata.h +++ b/src/omdata.h @@ -2,9 +2,9 @@ #ifndef OMDATA_H #define OMDATA_H -#include -#include -#include +#include +#include +#include #include #include #include @@ -19,13 +19,12 @@ #include "int_id.h" #include "string_id.h" #include "translations.h" +#include "type_id.h" #include "optional.h" -struct MonsterGroup; - -using mongroup_id = string_id; struct city; class overmap_land_use_code; +struct MonsterGroup; using overmap_land_use_code_id = string_id; struct oter_t; @@ -165,9 +164,6 @@ enum oter_flags { num_oter_flags }; -using oter_id = int_id; -using oter_str_id = string_id; - struct oter_type_t { public: static const oter_type_t null_type; diff --git a/src/options.cpp b/src/options.cpp index 6b14553995057..0a114d0927550 100644 --- a/src/options.cpp +++ b/src/options.cpp @@ -1,6 +1,6 @@ #include "options.h" -#include +#include #include "cata_utility.h" #include "catacharset.h" @@ -283,8 +283,8 @@ void options_manager::add( const std::string &sNameIn, const std::string &sPageI //add int map option void options_manager::add( const std::string &sNameIn, const std::string &sPageIn, const std::string &sMenuTextIn, const std::string &sTooltipIn, - const std::map &mIntValuesIn, int iInitialIn, - int iDefaultIn, copt_hide_t opt_hide ) + const std::vector< std::tuple > &mIntValuesIn, + int iInitialIn, int iDefaultIn, copt_hide_t opt_hide, const bool verbose ) { cOpt thisOpt; @@ -294,6 +294,7 @@ void options_manager::add( const std::string &sNameIn, const std::string &sPageI thisOpt.sTooltip = sTooltipIn; thisOpt.sType = "int_map"; thisOpt.eType = get_value_type( thisOpt.sType ); + thisOpt.verbose = verbose; thisOpt.format = "%i"; @@ -301,14 +302,14 @@ void options_manager::add( const std::string &sNameIn, const std::string &sPageI thisOpt.mIntValues = mIntValuesIn; - auto item = mIntValuesIn.find( iInitialIn ); - if( item == mIntValuesIn.cend() ) { - iInitialIn = mIntValuesIn.cbegin()->first; + auto item = thisOpt.findInt( iInitialIn ); + if( !item ) { + iInitialIn = std::get<0>( mIntValuesIn[0] ); } - item = mIntValuesIn.find( iDefaultIn ); - if( item == mIntValuesIn.cend() ) { - iDefaultIn = mIntValuesIn.cbegin()->first; + item = thisOpt.findInt( iDefaultIn ); + if( !item ) { + iDefaultIn = std::get<0>( mIntValuesIn[0] ); } thisOpt.iDefault = iDefaultIn; @@ -590,7 +591,12 @@ std::string options_manager::cOpt::getValueName() const return ( bSet ) ? _( "True" ) : _( "False" ); } else if( sType == "int_map" ) { - return string_format( _( "%d: %s" ), iSet, mIntValues.find( iSet )->second ); + const auto name = std::get<1>( *findInt( iSet ) ).c_str(); + if( verbose ) { + return string_format( _( "%d: %s" ), iSet, name ); + } else { + return string_format( _( "%s" ), name ); + } } return getValue(); @@ -621,7 +627,12 @@ std::string options_manager::cOpt::getDefaultText( const bool bTranslated ) cons return string_format( _( "Default: %d - Min: %d, Max: %d" ), iDefault, iMin, iMax ); } else if( sType == "int_map" ) { - return string_format( _( "Default: %d: %s" ), iDefault, mIntValues.find( iDefault )->second ); + const auto name = std::get<1>( *findInt( iDefault ) ).c_str(); + if( verbose ) { + return string_format( _( "Default: %d: %s" ), iDefault, name ); + } else { + return string_format( _( "Default: %s" ), name ); + } } else if( sType == "float" ) { return string_format( _( "Default: %.2f - Min: %.2f, Max: %.2f" ), fDefault, fMin, fMax ); @@ -648,6 +659,29 @@ std::vector options_manager::cOpt::getItems() co return vItems; } +int options_manager::cOpt::getIntPos( const int iSearch ) const +{ + if( sType == "int_map" ) { + for( size_t i = 0; i < mIntValues.size(); i++ ) { + if( std::get<0>( mIntValues[i] ) == iSearch ) { + return i; + } + } + } + + return -1; +} + +cata::optional< std::tuple > options_manager::cOpt::findInt( + const int iSearch ) const +{ + int i = static_cast( getIntPos( iSearch ) ); + if( i == -1 ) { + return cata::nullopt; + } + return mIntValues[i]; +} + int options_manager::cOpt::getMaxLength() const { if( sType == "string_input" ) { @@ -687,12 +721,11 @@ void options_manager::cOpt::setNext() } } else if( sType == "int_map" ) { - auto next = std::next( mIntValues.find( iSet ) ); - if( next == mIntValues.cend() ) { - iSet = mIntValues.cbegin()->first; - } else { - iSet = next->first; + long unsigned int iNext = getIntPos( iSet ) + 1; + if( iNext >= mIntValues.size() ) { + iNext = 0; } + iSet = std::get<0>( mIntValues[iNext] ); } else if( sType == "float" ) { fSet += fStep; @@ -706,7 +739,7 @@ void options_manager::cOpt::setNext() void options_manager::cOpt::setPrev() { if( sType == "string_select" ) { - int iPrev = getItemPos( sSet ) - 1; + int iPrev = static_cast( getItemPos( sSet ) ) - 1; if( iPrev < 0 ) { iPrev = vItems.size() - 1; } @@ -726,14 +759,11 @@ void options_manager::cOpt::setPrev() } } else if( sType == "int_map" ) { - auto item = mIntValues.find( iSet ); - if( item == mIntValues.cbegin() ) { - auto prev = std::prev( mIntValues.cend() ); - iSet = prev->first; - } else { - auto prev = std::prev( item ); - iSet = prev->first; + int iPrev = static_cast( getIntPos( iSet ) ) - 1; + if( iPrev < 0 ) { + iPrev = mIntValues.size() - 1; } + iSet = std::get<0>( mIntValues[iPrev] ); } else if( sType == "float" ) { fSet -= fStep; @@ -793,8 +823,8 @@ void options_manager::cOpt::setValue( std::string sSetIn ) } else if( sType == "int_map" ) { iSet = atoi( sSetIn.c_str() ); - auto item = mIntValues.find( iSet ); - if( item == mIntValues.cend() ) { + auto item = findInt( iSet ); + if( !item ) { iSet = iDefault; } @@ -1463,9 +1493,14 @@ void options_manager::add_options_interface() "show", COPT_CURSES_HIDE ); add( "EDGE_SCROLL", "interface", translate_marker( "Edge scrolling" ), - translate_marker( "If true, enables edge scrolling/panning with mouse when looking or peeking." ), - true, COPT_CURSES_HIDE - ); + translate_marker( "Edge scrolling with the mouse." ), { + std::make_tuple( -1, translate_marker( "Disabled" ) ), + std::make_tuple( 100, translate_marker( "Slow" ) ), + std::make_tuple( 30, translate_marker( "Normal" ) ), + std::make_tuple( 10, translate_marker( "Fast" ) ) + }, + 30, 30, COPT_CURSES_HIDE ); + } void options_manager::add_options_graphics() @@ -1594,7 +1629,11 @@ void options_manager::add_options_graphics() add( "TILES", "graphics", translate_marker( "Choose tileset" ), translate_marker( "Choose the tileset you want to use." ), +#if !defined(__ANDROID__) build_tilesets_list(), "MSX++DEAD_PEOPLE", COPT_CURSES_HIDE +#else + build_tilesets_list(), "retrodays", COPT_CURSES_HIDE +#endif ); // populate the options dynamically get_option( "TILES" ).setPrerequisite( "USE_TILES" ); @@ -2520,7 +2559,7 @@ std::string options_manager::show( bool ingame, const bool world_options_only ) sfx::play_variant_sound( "menu_move", "default", 100 ); } else if( !mPageItems[iCurrentPage].empty() && action == "CONFIRM" ) { if( current_opt.getType() == "bool" || current_opt.getType() == "string_select" || - current_opt.getType() == "string_input" ) { + current_opt.getType() == "string_input" || current_opt.getType() == "int_map" ) { current_opt.setNext(); } else { const bool is_int = current_opt.getType() == "int"; diff --git a/src/options.h b/src/options.h index cc3db421ef5ec..87a47256e85b4 100644 --- a/src/options.h +++ b/src/options.h @@ -93,6 +93,9 @@ class options_manager int getItemPos( const std::string &sSearch ) const; std::vector getItems() const; + int getIntPos( const int iSearch ) const; + cata::optional< std::tuple > findInt( const int iSearch ) const; + int getMaxLength() const; //set to next item @@ -141,6 +144,7 @@ class options_manager // The *untranslated* displayed option tool tip ( longer string ). std::string sTooltip; std::string sType; + bool verbose; std::string format; @@ -169,7 +173,7 @@ class options_manager int iMin; int iMax; int iDefault; - std::map mIntValues; + std::vector< std::tuple > mIntValues; //sType == "float" float fSet; @@ -247,8 +251,9 @@ class options_manager //add int map option void add( const std::string &sNameIn, const std::string &sPageIn, const std::string &sMenuTextIn, const std::string &sTooltipIn, - const std::map &mIntValuesIn, int iInitialIn, - int iDefaultIn, copt_hide_t opt_hide = COPT_NO_HIDE ); + const std::vector< std::tuple > &mIntValuesIn, + int iInitialIn, int iDefaultIn, copt_hide_t opt_hide = COPT_NO_HIDE, + const bool verbose = false ); //add float option void add( const std::string &sNameIn, const std::string &sPageIn, diff --git a/src/output.cpp b/src/output.cpp index 8a91fda9a6f42..79f3756f3b058 100644 --- a/src/output.cpp +++ b/src/output.cpp @@ -1,8 +1,8 @@ #include "output.h" -#include +#include #include -#include +#include #include #include #include @@ -64,7 +64,7 @@ extern bool use_tiles; extern bool test_mode; // utf8 version -std::vector foldstring( std::string str, int width, const char split ) +std::vector foldstring( const std::string &str, int width, const char split ) { std::vector lines; if( width < 1 ) { diff --git a/src/output.h b/src/output.h index 3842eace70a09..5e9bfebfed2ac 100644 --- a/src/output.h +++ b/src/output.h @@ -2,8 +2,8 @@ #ifndef OUTPUT_H #define OUTPUT_H -#include -#include +#include +#include #include #include #include @@ -210,7 +210,7 @@ std::string remove_color_tags( const std::string &text ); * @return A vector of lines, it may contain empty strings. Each entry is at most `width` * console cells width. */ -std::vector foldstring( std::string str, int width, const char split = ' ' ); +std::vector foldstring( const std::string &str, int width, const char split = ' ' ); /** * Print text with embedded @ref color_tags, x, y are in curses system. diff --git a/src/overmap.cpp b/src/overmap.cpp index f8403c5567d80..5f762f7ce32fe 100644 --- a/src/overmap.cpp +++ b/src/overmap.cpp @@ -1157,7 +1157,7 @@ bool overmap::mongroup_check( const mongroup &candidate ) const { const auto matching_range = zg.equal_range( candidate.pos ); return std::find_if( matching_range.first, matching_range.second, - [candidate]( std::pair match ) { + [candidate]( const std::pair &match ) { // This is extra strict since we're using it to test serialization. return candidate.type == match.second.type && candidate.pos == match.second.pos && candidate.radius == match.second.radius && @@ -1174,7 +1174,7 @@ bool overmap::monster_check( const std::pair &candidate ) con { const auto matching_range = monster_map.equal_range( candidate.first ); return std::find_if( matching_range.first, matching_range.second, - [candidate]( std::pair match ) { + [candidate]( const std::pair &match ) { return candidate.second.pos() == match.second.pos() && candidate.second.type == match.second.type; } ) != matching_range.second; @@ -1314,11 +1314,14 @@ void overmap::generate( const overmap *north, const overmap *east, overmap_special_batch &enabled_specials ) { dbg( D_INFO ) << "overmap::generate start..."; - std::vector river_start;// West/North endpoints of rivers - std::vector river_end; // East/South endpoints of rivers + // West/North endpoints of rivers + std::vector river_start; + // East/South endpoints of rivers + std::vector river_end; // Determine points where rivers & roads should connect w/ adjacent maps - const oter_id river_center( "river_center" ); // optimized comparison. + // optimized comparison. + const oter_id river_center( "river_center" ); if( north != nullptr ) { for( int i = 2; i < OMAPX - 2; i++ ) { diff --git a/src/overmap.h b/src/overmap.h index 6db6b48d07a82..37ade3316b24e 100644 --- a/src/overmap.h +++ b/src/overmap.h @@ -2,7 +2,7 @@ #ifndef OVERMAP_H #define OVERMAP_H -#include +#include #include #include #include @@ -24,6 +24,7 @@ #include "enums.h" #include "mongroup.h" #include "optional.h" +#include "type_id.h" class npc; class overmap_connection; @@ -81,7 +82,7 @@ struct radio_tower { radio_type type; std::string message; int frequency; - radio_tower( int X = -1, int Y = -1, int S = -1, std::string M = "", + radio_tower( int X = -1, int Y = -1, int S = -1, const std::string &M = "", radio_type T = MESSAGE_BROADCAST ) : x( X ), y( Y ), strength( S ), type( T ), message( M ) { frequency = rng( 0, INT_MAX ); diff --git a/src/overmap_connection.cpp b/src/overmap_connection.cpp index 506358d7d6f51..d09f46254a6a5 100644 --- a/src/overmap_connection.cpp +++ b/src/overmap_connection.cpp @@ -1,6 +1,6 @@ #include "overmap_connection.h" -#include +#include #include #include #include diff --git a/src/overmap_noise.cpp b/src/overmap_noise.cpp index efc2e3c86a619..192f7fb6f2f3b 100644 --- a/src/overmap_noise.cpp +++ b/src/overmap_noise.cpp @@ -1,4 +1,5 @@ #include +#include #include "overmap_noise.h" #include "simplexnoise.h" diff --git a/src/overmap_noise.h b/src/overmap_noise.h index f572e02757bd9..b63b275da23ef 100644 --- a/src/overmap_noise.h +++ b/src/overmap_noise.h @@ -47,7 +47,6 @@ class om_noise_layer float seed; }; - class om_noise_layer_forest : public om_noise_layer { public: diff --git a/src/overmap_ui.cpp b/src/overmap_ui.cpp index ec3a4ce092b84..7f380100d7f05 100644 --- a/src/overmap_ui.cpp +++ b/src/overmap_ui.cpp @@ -1,8 +1,9 @@ #include "overmap_ui.h" -#include +#include #include #include +#include #include #include #include @@ -43,12 +44,12 @@ #include "omdata.h" #include "optional.h" #include "overmap_types.h" -#include "pldata.h" #include "regional_settings.h" #include "rng.h" #include "string_formatter.h" #include "string_id.h" #include "translations.h" +#include "type_id.h" #if defined(__ANDROID__) #include @@ -962,6 +963,8 @@ tripoint display( const tripoint &orig, const draw_data_t &data = draw_data_t() ictxt.register_action( "LEVEL_UP" ); ictxt.register_action( "LEVEL_DOWN" ); ictxt.register_action( "HELP_KEYBINDINGS" ); + ictxt.register_action( "MOUSE_MOVE" ); + ictxt.register_action( "SELECT" ); // Actions whose keys we want to display. ictxt.register_action( "CENTER" ); @@ -987,16 +990,37 @@ tripoint display( const tripoint &orig, const draw_data_t &data = draw_data_t() bool show_explored = true; bool fast_scroll = false; /* fast scroll state should reset every time overmap UI is opened */ int fast_scroll_offset = get_option( "MOVE_VIEW_OFFSET" ); - + cata::optional mouse_pos; + bool redraw = true; + auto last_blink = std::chrono::steady_clock::now(); do { - draw( g->w_overmap, g->w_omlegend, curs, orig, uistate.overmap_show_overlays, show_explored, - fast_scroll, &ictxt, data ); + if( redraw ) { + draw( g->w_overmap, g->w_omlegend, curs, orig, uistate.overmap_show_overlays, + show_explored, fast_scroll, &ictxt, data ); + } + redraw = true; +#if (defined TILES || defined _WIN32 || defined WINDOWS) + action = ictxt.handle_input( get_option( "EDGE_SCROLL" ) ); +#else action = ictxt.handle_input( BLINK_SPEED ); - +#endif if( const cata::optional vec = ictxt.get_direction( action ) ) { int scroll_d = fast_scroll ? fast_scroll_offset : 1; curs.x += vec->x * scroll_d; curs.y += vec->y * scroll_d; + } else if( action == "MOUSE_MOVE" || action == "TIMEOUT" ) { + tripoint edge_scroll = g->mouse_edge_scrolling_terrain( ictxt ); + if( edge_scroll == tripoint_zero ) { + redraw = false; + } else { + if( action == "MOUSE_MOVE" ) { + edge_scroll *= 2; + } + curs += edge_scroll; + } + } else if( action == "SELECT" && ( mouse_pos = ictxt.get_coordinates( g->w_overmap ) ) ) { + curs.x += mouse_pos->x; + curs.y += mouse_pos->y; } else if( action == "CENTER" ) { curs = orig; } else if( action == "LEVEL_DOWN" && curs.z > -OVERMAP_DEPTH ) { @@ -1023,7 +1047,7 @@ tripoint display( const tripoint &orig, const draw_data_t &data = draw_data_t() std::string title = _( "Note:" ); const std::string old_note = overmap_buffer.note( curs ); - std::string new_note = old_note, tmp_note; + std::string new_note = old_note; const auto map_around = get_overmap_neighbors( curs ); const int max_note_length = 45; @@ -1197,7 +1221,7 @@ tripoint display( const tripoint &orig, const draw_data_t &data = draw_data_t() direction_name_short( direction_from( orig, tripoint( locations[i], orig.z ) ) ) ); - mvwprintz( w_search, 6, 1, c_white, _( "'<' '>' Cycle targets." ) ); + mvwprintz( w_search, 6, 1, c_white, _( "'<-' '->' Cycle targets." ) ); mvwprintz( w_search, 10, 1, c_white, _( "Enter/Spacebar to select." ) ); mvwprintz( w_search, 11, 1, c_white, _( "q or ESC to return." ) ); draw_border( w_search ); @@ -1331,14 +1355,15 @@ tripoint display( const tripoint &orig, const draw_data_t &data = draw_data_t() uistate.place_special = nullptr; action.clear(); } - } else if( action == "TIMEOUT" ) { - if( uistate.overmap_blinking ) { - uistate.overmap_show_overlays = !uistate.overmap_show_overlays; - } - } else if( action == "ANY_INPUT" ) { + } + + auto now = std::chrono::steady_clock::now(); + if( now > last_blink + std::chrono::milliseconds( BLINK_SPEED ) ) { if( uistate.overmap_blinking ) { uistate.overmap_show_overlays = !uistate.overmap_show_overlays; + redraw = true; } + last_blink = now; } } while( action != "QUIT" && action != "CONFIRM" ); werase( g->w_overmap ); diff --git a/src/overmapbuffer.cpp b/src/overmapbuffer.cpp index 15feca1691f13..c1ca0cc57452f 100644 --- a/src/overmapbuffer.cpp +++ b/src/overmapbuffer.cpp @@ -1,7 +1,7 @@ #include "overmapbuffer.h" -#include -#include +#include +#include #include #include #include @@ -35,6 +35,7 @@ #include "simple_pathfinding.h" #include "string_id.h" #include "translations.h" +#include "int_id.h" overmapbuffer overmap_buffer; @@ -576,7 +577,7 @@ void overmapbuffer::move_vehicle( vehicle *veh, const point &old_msp ) } } -void overmapbuffer::remove_camp( const basecamp camp ) +void overmapbuffer::remove_camp( const basecamp &camp ) { const point omt = point( camp.camp_omt_pos().x, camp.camp_omt_pos().y ); overmap &om = get_om_global( omt ); @@ -614,7 +615,7 @@ void overmapbuffer::add_vehicle( vehicle *veh ) veh->om_id = id; } -void overmapbuffer::add_camp( basecamp camp ) +void overmapbuffer::add_camp( const basecamp &camp ) { point omt = point( camp.camp_omt_pos().x, camp.camp_omt_pos().y ); overmap &om = get_om_global( omt.x, omt.y ); diff --git a/src/overmapbuffer.h b/src/overmapbuffer.h index 89c60ffeb67e5..c3be993f4cb51 100644 --- a/src/overmapbuffer.h +++ b/src/overmapbuffer.h @@ -12,18 +12,16 @@ #include #include "enums.h" -#include "int_id.h" #include "omdata.h" #include "overmap_types.h" #include "optional.h" +#include "type_id.h" struct mongroup; class monster; class npc; struct om_vehicle; class overmap_special_batch; - -using oter_id = int_id; class overmap; struct radio_tower; struct regional_settings; @@ -205,7 +203,7 @@ class overmapbuffer /** * Remove basecamp */ - void remove_camp( const basecamp camp ); + void remove_camp( const basecamp &camp ); /** * Remove the vehicle from being tracked in the overmap. */ @@ -213,7 +211,7 @@ class overmapbuffer /** * Add Basecamp to overmapbuffer */ - void add_camp( basecamp camp ); + void add_camp( const basecamp &camp ); cata::optional find_camp( const int x, const int y ); /** diff --git a/src/panels.cpp b/src/panels.cpp index 75cf442fd70e3..fd0e499a1b698 100644 --- a/src/panels.cpp +++ b/src/panels.cpp @@ -1,6 +1,6 @@ #include "panels.h" -#include +#include #include #include #include @@ -36,17 +36,16 @@ #include "bodypart.h" #include "calendar.h" #include "catacharset.h" -#include "character.h" #include "compatibility.h" #include "debug.h" #include "enums.h" #include "game_constants.h" #include "int_id.h" -#include "itype.h" #include "omdata.h" #include "pldata.h" #include "string_formatter.h" #include "tileray.h" +#include "type_id.h" static const trait_id trait_SELFAWARE( "SELFAWARE" ); static const trait_id trait_THRESH_FELINE( "THRESH_FELINE" ); @@ -55,7 +54,7 @@ static const trait_id trait_THRESH_URSINE( "THRESH_URSINE" ); // constructor window_panel::window_panel( std::function - draw_func, std::string nm, int ht, int wd, bool def_toggle ) + draw_func, const std::string &nm, int ht, int wd, bool def_toggle ) { draw = draw_func; name = nm; @@ -69,7 +68,7 @@ window_panel::window_panel( std::function static_cast( trunc ) ) { return utf8_truncate( input, trunc - 1 ) + "…"; @@ -100,7 +99,6 @@ void draw_rectangle( const catacurses::window &w, nc_color, point top_left, std::pair str_string( const player &p ) { nc_color clr; - std::string str; if( p.get_str() == p.get_str_base() ) { clr = c_white; @@ -115,7 +113,6 @@ std::pair str_string( const player &p ) std::pair dex_string( const player &p ) { nc_color clr; - std::string str; if( p.get_dex() == p.get_dex_base() ) { clr = c_white; @@ -130,7 +127,6 @@ std::pair dex_string( const player &p ) std::pair int_string( const player &p ) { nc_color clr; - std::string str; if( p.get_int() == p.get_int_base() ) { clr = c_white; @@ -145,7 +141,6 @@ std::pair int_string( const player &p ) std::pair per_string( const player &p ) { nc_color clr; - std::string str; if( p.get_per() == p.get_per_base() ) { clr = c_white; @@ -400,7 +395,7 @@ void draw_minimap( const player &u, const catacurses::window &w_minimap ) } } -void decorate_panel( const std::string name, const catacurses::window &w ) +void decorate_panel( const std::string &name, const catacurses::window &w ) { werase( w ); draw_border( w ); @@ -1089,10 +1084,10 @@ void draw_needs( const player &u, const catacurses::window &w ) void draw_limb( player &u, const catacurses::window &w ) { werase( w ); - int ny = 0; int ny2 = 0; - int nx = 0; for( int i = 0; i < num_hp_parts; i++ ) { + int ny; + int nx; if( i < 3 ) { ny = i; nx = 8; @@ -1109,10 +1104,10 @@ void draw_limb( player &u, const catacurses::window &w ) bp_head, bp_torso, bp_arm_l, bp_arm_r, bp_leg_l, bp_leg_r } }; - ny = 0; ny2 = 0; - nx = 0; for( size_t i = 0; i < part.size(); i++ ) { + int ny; + int nx; if( i < 3 ) { ny = i; nx = 1; @@ -1989,8 +1984,6 @@ void panel_manager::draw_adm( const catacurses::window &w, size_t column, size_t for( size_t i = source_index; i != target_index; i += step_dir ) { std::swap( panels[i], panels[i + step_dir] ); } - counter = 0; - selected = false; werase( w ); wrefresh( g->w_terrain ); g->reinitmap = true; @@ -2008,9 +2001,6 @@ void panel_manager::draw_adm( const catacurses::window &w, size_t column, size_t update_offsets( width ); int h; // to_map_font_dimension needs a second input to_map_font_dimension( width, h ); - if( get_option( "SIDEBAR_POSITION" ) == "left" ) { - width *= -1; - } werase( w ); wrefresh( g->w_terrain ); g->reinitmap = true; @@ -2035,7 +2025,6 @@ void panel_manager::draw_adm( const catacurses::window &w, size_t column, size_t } if( action == "TOGGLE_PANEL" && column == 0 ) { panels[index - 1].toggle = !panels[index - 1].toggle; - redraw = true; wrefresh( g->w_terrain ); g->reinitmap = true; g->draw_panels( column, index ); diff --git a/src/panels.h b/src/panels.h index 0c25da1ebb1ec..a60c12819ed92 100644 --- a/src/panels.h +++ b/src/panels.h @@ -2,7 +2,7 @@ #ifndef PANELS_H #define PANELS_H -#include +#include #include #include #include @@ -27,8 +27,8 @@ enum face_type : int { class window_panel { public: - window_panel( std::function draw_func, std::string nm, - int ht, int wd, bool default_toggle ); + window_panel( std::function draw_func, + const std::string &nm, int ht, int wd, bool default_toggle ); std::function draw; int get_height() const; diff --git a/src/pathfinding.cpp b/src/pathfinding.cpp index c58a55d6c1dc2..a4cde678cbc18 100644 --- a/src/pathfinding.cpp +++ b/src/pathfinding.cpp @@ -1,7 +1,7 @@ #include "pathfinding.h" -#include -#include +#include +#include #include #include #include @@ -24,6 +24,7 @@ #include "vpart_position.h" #include "vpart_reference.h" #include "line.h" +#include "type_id.h" enum astar_state { ASL_NONE, diff --git a/src/pickup.cpp b/src/pickup.cpp index 2e19c194adacd..1ed5eec53e9af 100644 --- a/src/pickup.cpp +++ b/src/pickup.cpp @@ -1,7 +1,7 @@ #include "pickup.h" -#include -#include +#include +#include #include #include #include @@ -30,7 +30,6 @@ #include "vpart_position.h" #include "vpart_reference.h" #include "character.h" -#include "clzones.h" #include "color.h" #include "cursesdef.h" #include "enums.h" @@ -42,6 +41,7 @@ #include "ret_val.h" #include "string_id.h" #include "units.h" +#include "type_id.h" typedef std::pair ItemCount; typedef std::map PickupMap; @@ -557,7 +557,8 @@ void Pickup::pick_up( const tripoint &p, int min, from_where get_items_from ) std::string filter; std::string new_filter; - std::vector matches;//Indexes of items that match the filter + // Indexes of items that match the filter + std::vector matches; bool filter_changed = true; if( g->was_fullscreen ) { g->draw_ter(); diff --git a/src/player.cpp b/src/player.cpp index 7c00555ba5f10..e563e9100d846 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -1,6 +1,6 @@ #include "player.h" -#include +#include #include #include #include @@ -31,6 +31,7 @@ #include "game.h" #include "get_version.h" #include "gun_mode.h" +#include "handle_liquid.h" #include "help.h" // get_hint #include "input.h" #include "inventory.h" @@ -94,6 +95,7 @@ #include "rng.h" #include "units.h" #include "visitable.h" +#include "string_id.h" constexpr double SQRT_2 = 1.41421356237309504880; @@ -260,7 +262,6 @@ static const trait_id trait_ARACHNID_ARMS_OK( "ARACHNID_ARMS_OK" ); static const trait_id trait_ASTHMA( "ASTHMA" ); static const trait_id trait_BADBACK( "BADBACK" ); static const trait_id trait_BARK( "BARK" ); -static const trait_id trait_BIRD_EYE( "BIRD_EYE" ); static const trait_id trait_CANNIBAL( "CANNIBAL" ); static const trait_id trait_CENOBITE( "CENOBITE" ); static const trait_id trait_CEPH_EYES( "CEPH_EYES" ); @@ -381,7 +382,6 @@ static const trait_id trait_RADIOACTIVE3( "RADIOACTIVE3" ); static const trait_id trait_RADIOGENIC( "RADIOGENIC" ); static const trait_id trait_REGEN( "REGEN" ); static const trait_id trait_REGEN_LIZ( "REGEN_LIZ" ); -static const trait_id trait_HAIRROOTS( "HAIRROOTS" ); static const trait_id trait_ROOTS2( "ROOTS2" ); static const trait_id trait_ROOTS3( "ROOTS3" ); static const trait_id trait_SAPIOVORE( "SAPIOVORE" ); @@ -772,10 +772,11 @@ void player::process_turn() // Didn't just pick something up last_item = itype_id( "null" ); - if( has_active_bionic( bio_metabolics ) && power_level + 25 <= max_power_level && - 0.8f < get_kcal_percent() && calendar::once_every( 5_turns ) ) { - mod_stored_kcal( -25 ); - charge_power( 25 ); + if( has_active_bionic( bio_metabolics ) && power_level < max_power_level && + 0.8f < get_kcal_percent() && calendar::once_every( 3_turns ) ) { + // Efficiency is approximately 25%, power output is ~60W + mod_stored_kcal( -1 ); + charge_power( 1 ); } if( has_trait( trait_DEBUG_BIONIC_POWER ) ) { charge_power( max_power_level ); @@ -884,7 +885,7 @@ void player::process_turn() // Reduce the tracked time spent in this overmap tile. const time_duration decay_amount = std::min( since_visit - modified_decay_time, 1_hours ); const time_duration updated_value = it->second - decay_amount; - if( updated_value <= 0 ) { + if( updated_value <= 0_turns ) { // We can stop tracking this tile if there's no longer any time recorded there. it = overmap_time.erase( it ); continue; @@ -1787,7 +1788,6 @@ void player::recalc_speed_bonus() // fat or underweight, you get slower. cumulative with hunger mod_speed_bonus( kcal_speed_penalty() ); - for( const auto &maps : *effects ) { for( auto i : maps.second ) { bool reduced = resists_effect( i.second ); @@ -2479,6 +2479,21 @@ void player::disp_morale() morale->display( ( calc_focus_equilibrium() - focus_pool ) / 100.0 ); } +time_duration player::estimate_effect_dur( const skill_id &relevant_skill, + const efftype_id &target_effect, const time_duration &error_magnitude, + int threshold, const Creature &target ) const +{ + const time_duration zero_duration = 0_turns; + + int skill_lvl = get_skill_level( relevant_skill ); + + time_duration estimate = std::max( zero_duration, target.get_effect_dur( target_effect ) + + rng( -1, 1 ) * error_magnitude * + rng( 0, std::max( 0, threshold - skill_lvl ) ) ); + + return estimate; +} + bool player::has_conflicting_trait( const trait_id &flag ) const { return ( has_opposite_trait( flag ) || has_lower_trait( flag ) || has_higher_trait( flag ) || @@ -3061,22 +3076,26 @@ int player::get_shout_volume() const void player::shout( std::string msg, bool order ) { int base = 10; + std::string shout = ""; // Mutations make shouting louder, they also define the default message if( has_trait( trait_SHOUT3 ) ) { base = 20; if( msg.empty() ) { msg = is_player() ? _( "yourself let out a piercing howl!" ) : _( "a piercing howl!" ); + shout = "howl"; } } else if( has_trait( trait_SHOUT2 ) ) { base = 15; if( msg.empty() ) { msg = is_player() ? _( "yourself scream loudly!" ) : _( "a loud scream!" ); + shout = "scream"; } } if( msg.empty() ) { msg = is_player() ? _( "yourself shout loudly!" ) : _( "a loud shout!" ); + shout = "default"; } int noise = get_shout_volume(); @@ -3108,10 +3127,11 @@ void player::shout( std::string msg, bool order ) add_msg_if_player( m_warning, _( "The sound of your voice is significantly muffled!" ) ); } - sounds::sound( pos(), noise, order ? sounds::sound_t::order : sounds::sound_t::alert, msg ); + sounds::sound( pos(), noise, order ? sounds::sound_t::order : sounds::sound_t::alert, msg, false, + "shout", shout ); } -void player::set_movement_mode( std::string new_mode ) +void player::set_movement_mode( const std::string &new_mode ) { if( new_mode == "run" ) { if( stamina > 0 && !has_effect( effect_winded ) ) { @@ -3830,6 +3850,7 @@ void player::apply_damage( Creature *source, body_part hurt, int dam, const bool remove_med -= reduce_healing_effect( effect_bandaged, remove_med, hurt ); } if( remove_med > 0 && has_effect( effect_disinfected, hurt ) ) { + // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores) remove_med -= reduce_healing_effect( effect_disinfected, remove_med, hurt ); } } @@ -4576,6 +4597,7 @@ needs_rates player::calc_needs_rates() needs_rates rates; rates.hunger = metabolic_rate(); + // TODO: this is where calculating basal metabolic rate, in kcal per day would go rates.kcal = 2500.0; @@ -4587,6 +4609,9 @@ needs_rates player::calc_needs_rates() rates.thirst *= 0.7f; } + rates.fatigue = get_option< float >( "PLAYER_FATIGUE_RATE" ); + rates.fatigue *= 1.0f + mutation_value( "fatigue_modifier" ); + // Note: intentionally not in metabolic rate if( has_recycler ) { // Recycler won't help much with mutant metabolism - it is intended for human one @@ -4594,7 +4619,6 @@ needs_rates player::calc_needs_rates() rates.thirst = std::min( rates.thirst, std::max( 0.5f, rates.thirst - 0.5f ) ); } - if( asleep ) { rates.recovery = 1.0f + mutation_value( "fatigue_regen_modifier" ); if( !is_hibernating() ) { @@ -4632,8 +4656,6 @@ needs_rates player::calc_needs_rates() rates.hunger *= 0.25f; rates.thirst *= 0.25f; } - rates.fatigue = get_option< float >( "PLAYER_FATIGUE_RATE" ); - rates.fatigue *= 1.0f + mutation_value( "fatigue_modifier" ); return rates; } @@ -4980,7 +5002,7 @@ void player::siphon( vehicle &veh, const itype_id &type ) if( liquid.is_food() ) { liquid.set_item_specific_energy( veh.fuel_specific_energy( type ) ); } - if( g->handle_liquid( liquid, nullptr, 1, nullptr, &veh ) ) { + if( liquid_handler::handle_liquid( liquid, nullptr, 1, nullptr, &veh ) ) { veh.drain( type, qty - liquid.charges ); } } @@ -5002,7 +5024,7 @@ void player::cough( bool harmful, int loudness ) if( !is_npc() ) { add_msg( m_bad, _( "You cough heavily." ) ); } - sounds::sound( pos(), loudness, sounds::sound_t::speech, _( "a hacking cough." ) ); + sounds::sound( pos(), loudness, sounds::sound_t::speech, _( "a hacking cough." ), "misc", "cough" ); moves -= 80; @@ -5461,7 +5483,7 @@ void player::suffer() if( has_active_mutation( trait_id( "WINGS_INSECT" ) ) ) { //~Sound of buzzing Insect Wings - sounds::sound( pos(), 10, sounds::sound_t::movement, _( "BZZZZZ" ) ); + sounds::sound( pos(), 10, sounds::sound_t::movement, _( "BZZZZZ" ), false, "misc", "insect_wings" ); } bool wearing_shoes = is_wearing_shoes( side::LEFT ) || is_wearing_shoes( side::RIGHT ); @@ -5837,6 +5859,7 @@ void player::suffer() add_msg( m_bad, str ); drop( get_item_position( &weapon ), pos() ); } + // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores) done_effect = true; } } @@ -6328,7 +6351,7 @@ void player::suffer() add_msg( m_bad, _( "You feel your faulty bionic shuddering." ) ); sfx::play_variant_sound( "bionics", "elec_blast_muffled", 100 ); } - sounds::sound( pos(), 60, sounds::sound_t::movement, _( "Crackle!" ) ); + sounds::sound( pos(), 60, sounds::sound_t::movement, _( "Crackle!" ) ); //sfx above } if( has_bionic( bio_power_weakness ) && max_power_level > 0 && power_level >= max_power_level * .75 ) { @@ -7603,7 +7626,7 @@ bool player::consume_item( item &target ) return false; } - item &comest = get_comestible_from( target ); + item &comest = get_consumable_from( target ); if( comest.is_null() || target.is_craft() ) { add_msg_if_player( m_info, _( "You can't eat your %s." ), target.tname() ); @@ -8110,7 +8133,7 @@ ret_val player::can_wear( const item &it ) const if( it.covers( bp_head ) && ( it.has_flag( "SKINTIGHT" ) || it.has_flag( "HELMET_COMPAT" ) ) && - ( head_cloth_encumbrance() + it.get_encumber( *this ) > 20 ) ) { + ( head_cloth_encumbrance() + it.get_encumber( *this ) > 40 ) ) { return ret_val::make_failure( ( is_player() ? _( "You can't wear that much on your head!" ) : string_format( _( "%s can't wear that much on their head!" ), name ) ) ); } @@ -8315,6 +8338,7 @@ bool player::pick_style() // Style selection menu if( selection >= STYLE_OFFSET ) { style_selected = selectable_styles[selection - STYLE_OFFSET]; + add_msg_if_player( m_info, _( style_selected.obj().get_initiate_player_message() ) ); } else if( selection == KEEP_HANDS_FREE ) { keep_hands_free = !keep_hands_free; } else { @@ -8979,7 +9003,7 @@ void player::drop( const std::list> &what, const tripoint &t bool player::add_or_drop_with_msg( item &it, const bool unloading ) { if( it.made_of( LIQUID ) ) { - g->consume_liquid( it, 1 ); + liquid_handler::consume_liquid( it, 1 ); return it.charges <= 0; } it.charges = this->i_add_to_container( it, unloading ); @@ -9377,6 +9401,12 @@ void player::use( item_location loc ) } invoke_item( &used, loc.position() ); + } else if( used.type->can_use( "DOGFOOD" ) || + used.type->can_use( "CATFOOD" ) || + used.type->can_use( "BIRDFOOD" ) || + used.type->can_use( "CATTLEFODDER" ) ) { + invoke_item( &used, loc.position() ); + } else if( !used.is_craft() && ( used.is_food() || used.is_medication() || used.get_contained().is_food() || @@ -9717,8 +9747,8 @@ const player *player::get_book_reader( const item &book, std::vectorskill; const int skill_level = get_skill_level( skill ); if( skill && skill_level < type->req && has_identified( book.typeId() ) ) { - reasons.push_back( string_format( _( "You need %s %d to understand the jargon!" ), - skill.obj().name(), type->req ) ); + reasons.push_back( string_format( _( "%s %d needed to understand. You have %d" ), + skill.obj().name(), type->req, skill_level ) ); return nullptr; } @@ -9753,8 +9783,8 @@ const player *player::get_book_reader( const item &book, std::vectordisp_name() ) ); } else if( skill && elem->get_skill_level( skill ) < type->req && has_identified( book.typeId() ) ) { - reasons.push_back( string_format( _( "%s needs %s %d to understand the jargon!" ), - elem->disp_name(), skill.obj().name(), type->req ) ); + reasons.push_back( string_format( _( "%s %d needed to understand. %s has %d" ), + skill.obj().name(), type->req, elem->disp_name(), elem->get_skill_level( skill ) ) ); } else if( elem->has_trait( trait_HYPEROPIC ) && !elem->worn_with_flag( "FIX_FARSIGHT" ) && !elem->has_effect( effect_contacts ) ) { reasons.push_back( string_format( _( "%s needs reading glasses!" ), @@ -9955,8 +9985,9 @@ bool player::read( int inventory_position, const bool continuous ) }; auto max_length = [&length]( const std::map &m ) { - auto max_ele = std::max_element( m.begin(), m.end(), [&length]( std::pair left, - std::pair right ) { + auto max_ele = std::max_element( m.begin(), + m.end(), [&length]( const std::pair &left, + const std::pair &right ) { return length( left ) < length( right ); } ); return max_ele == m.end() ? 0 : length( *max_ele ); @@ -10033,7 +10064,7 @@ bool player::read( int inventory_position, const bool continuous ) } if( !continuous || - !std::all_of( learners.begin(), learners.end(), [&]( std::pair elem ) { + !std::all_of( learners.begin(), learners.end(), [&]( const std::pair &elem ) { return std::count( activity.values.begin(), activity.values.end(), elem.first->getID() ) != 0; } ) || !std::all_of( activity.values.begin(), activity.values.end(), [&]( int elem ) { @@ -10044,7 +10075,7 @@ bool player::read( int inventory_position, const bool continuous ) add_msg( m_info, _( "%s studies with you." ), learners.begin()->first->disp_name() ); } else if( !learners.empty() ) { const std::string them = enumerate_as_string( learners.begin(), - learners.end(), [&]( std::pair elem ) { + learners.end(), [&]( const std::pair &elem ) { return elem.first->disp_name(); } ); add_msg( m_info, _( "%s study with you." ), them ); @@ -11588,6 +11619,11 @@ bool player::has_activity( const activity_id &type ) const return activity.id() == type; } +bool player::has_activity( const std::vector &types ) const +{ + return std::find( types.begin(), types.end(), activity.id() ) != types.end() ; +} + void player::cancel_activity() { if( has_activity( activity_id( "ACT_MOVE_ITEMS" ) ) && is_hauling() ) { @@ -11604,6 +11640,7 @@ void player::cancel_activity() if( activity && activity.is_suspendable() ) { backlog.push_front( activity ); } + sfx::end_activity_sounds(); // kill activity sounds when canceled activity = player_activity(); } @@ -11638,7 +11675,7 @@ bool player::has_magazine_for_ammo( const ammotype &at ) const std::string player::weapname( unsigned int truncate ) const { if( weapon.is_gun() ) { - std::string str = string_format( "(%s) %s", weapon.gun_current_mode().name(), weapon.type_name() ); + std::string str = string_format( "(%s) %s", weapon.gun_current_mode().tname(), weapon.type_name() ); // Is either the base item or at least one auxiliary gunmod loaded (includes empty magazines) bool base = weapon.ammo_capacity() > 0 && !weapon.has_flag( "RELOAD_AND_SHOOT" ); @@ -12061,6 +12098,14 @@ bool player::has_weapon() const m_size player::get_size() const { + if( has_trait( trait_id( "SMALL2" ) ) || has_trait( trait_id( "SMALL_OK" ) ) || + has_trait( trait_id( "SMALL" ) ) ) { + return MS_SMALL; + } else if( has_trait( trait_LARGE ) || has_trait( trait_LARGE_OK ) ) { + return MS_LARGE; + } else if( has_trait( trait_HUGE ) || has_trait( trait_HUGE_OK ) ) { + return MS_HUGE; + } return MS_MEDIUM; } @@ -12638,7 +12683,7 @@ void player::spores() { fungal_effects fe( *g, g->m ); //~spore-release sound - sounds::sound( pos(), 10, sounds::sound_t::combat, _( "Pouf!" ) ); + sounds::sound( pos(), 10, sounds::sound_t::combat, _( "Pouf!" ), false, "misc", "puff" ); for( const tripoint &sporep : g->m.points_in_radius( pos(), 1 ) ) { if( sporep == pos() ) { continue; @@ -12650,7 +12695,7 @@ void player::spores() void player::blossoms() { // Player blossoms are shorter-ranged, but you can fire much more frequently if you like. - sounds::sound( pos(), 10, sounds::sound_t::combat, _( "Pouf!" ) ); + sounds::sound( pos(), 10, sounds::sound_t::combat, _( "Pouf!" ), false, "misc", "puff" ); for( const tripoint &tmp : g->m.points_in_radius( pos(), 2 ) ) { g->m.add_field( tmp, fd_fungal_haze, rng( 1, 2 ) ); } diff --git a/src/player.h b/src/player.h index 080c447cb3cd7..90aa25f395241 100644 --- a/src/player.h +++ b/src/player.h @@ -2,8 +2,8 @@ #ifndef PLAYER_H #define PLAYER_H -#include -#include +#include +#include #include #include #include @@ -38,20 +38,19 @@ #include "enums.h" #include "inventory.h" #include "item_location.h" -#include "itype.h" #include "pldata.h" -#include "string_id.h" +#include "type_id.h" class effect; class map; class npc; struct pathfinding_settings; +class recipe; +struct islot_comestible; +struct itype; static const std::string DEFAULT_HOTKEYS( "1234567890abcdefghijklmnopqrstuvwxyz" ); -class ammunition_type; - -using ammotype = string_id; class craft_command; class recipe_subset; @@ -72,25 +71,13 @@ nc_color encumb_color( int level ); enum game_message_type : int; class ma_technique; class martialart; -class recipe; - -using recipe_id = string_id; struct item_comp; struct tool_comp; template struct comp_selection; class vehicle; -class vitamin; - -using vitamin_id = string_id; -class start_location; - -using start_location_id = string_id; struct w_point; struct points_left; struct targeting_data; -class morale_type_data; - -using morale_type = string_id; namespace debug_menu { @@ -261,6 +248,11 @@ class player : public Character /** Provides the window and detailed morale data */ void disp_morale(); + /**Estimate effect duration based on player relevant skill*/ + time_duration estimate_effect_dur( const skill_id &relevant_skill, const efftype_id &effect, + const time_duration &error_magnitude, + int threshold, const Creature &target ) const; + /** Resets stats, and applies effects in an idempotent manner */ void reset_stats() override; /** Resets movement points and applies other non-idempotent changes */ @@ -482,7 +474,7 @@ class player : public Character void pause(); // '.' command; pauses & reduces recoil - void set_movement_mode( std::string mode ); + void set_movement_mode( const std::string &mode ); const std::string get_movement_mode() const; void cycle_move_mode(); // Cycles to the next move mode. @@ -890,17 +882,16 @@ class player : public Character int kcal_for( const item &comest ) const; /** Handles the nutrition value for a comestible **/ int nutrition_for( const item &comest ) const; - // easy way to get calorie value from nutrition_for - int calories_for( const item &comest ) const; /** Handles the enjoyability value for a comestible. First value is enjoyability, second is cap. **/ std::pair fun_for( const item &comest ) const; /** Handles the enjoyability value for a book. **/ int book_fun_for( const item &book, const player &p ) const; /** - * Returns a reference to the item itself (if it's comestible), - * the first of its contents (if it's comestible) or null item otherwise. + * Returns a reference to the item itself (if it's consumable), + * the first of its contents (if it's consumable) or null item otherwise. + * WARNING: consumable does not necessarily guarantee the comestible type. */ - item &get_comestible_from( item &it ) const; + item &get_consumable_from( item &it ) const; stomach_contents stomach; stomach_contents guts; @@ -924,7 +915,7 @@ class player : public Character */ int vitamin_mod( const vitamin_id &vit, int qty, bool capped = true ); - void vitamins_mod( const std::map, bool capped = true ); + void vitamins_mod( const std::map &, bool capped = true ); /** * Check current level of a vitamin @@ -1289,7 +1280,10 @@ class player : public Character const std::string &name = "" ); /** Assigns activity to player, possibly resuming old activity if it's similar enough. */ void assign_activity( const player_activity &act, bool allow_resume = true ); + /** Check if player currently has a given activity */ bool has_activity( const activity_id &type ) const; + /** Check if player currently has any of the given activities */ + bool has_activity( const std::vector &types ) const; void cancel_activity(); void resume_backlog_activity(); @@ -1348,10 +1342,14 @@ class player : public Character */ bool can_interface_armor() const; - const martialart &get_combat_style() const; // Returns the combat style object - std::vector inv_dump(); // Inventory + weapon + worn (for death, etc) - void place_corpse(); // put corpse+inventory on map at the place where this is. - void place_corpse( const tripoint &om_target ); // put corpse+inventory on defined om tile + // Returns the combat style object + const martialart &get_combat_style() const; + // Inventory + weapon + worn (for death, etc) + std::vector inv_dump(); + // Put corpse+inventory on map at the place where this is. + void place_corpse(); + // Put corpse+inventory on defined om tile + void place_corpse( const tripoint &om_target ); bool covered_with_flag( const std::string &flag, const body_part_set &parts ) const; bool is_waterproof( const body_part_set &parts ) const; @@ -1360,10 +1358,12 @@ class player : public Character // has_charges works ONLY for charges. std::list use_amount( itype_id it, int quantity, const std::function &filter = return_true ); - bool use_charges_if_avail( const itype_id &it, long quantity );// Uses up charges + // Uses up charges + bool use_charges_if_avail( const itype_id &it, long quantity ); + // Uses up charges std::list use_charges( const itype_id &what, long qty, - const std::function &filter = return_true ); // Uses up charges + const std::function &filter = return_true ); bool has_charges( const itype_id &it, long quantity, const std::function &filter = return_true ) const; @@ -1371,7 +1371,8 @@ class player : public Character /** Returns the amount of item `type' that is currently worn */ int amount_worn( const itype_id &id ) const; - int leak_level( const std::string &flag ) const; // carried items may leak radiation or chemicals + // Carried items may leak radiation or chemicals + int leak_level( const std::string &flag ) const; // Has a weapon, inventory item or worn item with flag bool has_item_with_flag( const std::string &flag, bool need_charges = false ) const; @@ -1567,8 +1568,10 @@ class player : public Character position = p; } tripoint view_offset; - bool in_vehicle; // Means player sit inside vehicle on the tile he is now - bool controlling_vehicle; // Is currently in control of a vehicle + // Means player sit inside vehicle on the tile he is now + bool in_vehicle; + // Is currently in control of a vehicle + bool controlling_vehicle; // Relative direction of a grab, add to posx, posy to get the coordinates of the grabbed thing. tripoint grab_point; bool hauling; @@ -1594,7 +1597,8 @@ class player : public Character double recoil = MAX_RECOIL; std::weak_ptr last_target; cata::optional last_target_pos; - item_location ammo_location; //Save favorite ammo location + // Save favorite ammo location + item_location ammo_location; int scent; int dodges_left; int blocks_left; @@ -1602,9 +1606,11 @@ class player : public Character int radiation; unsigned long cash; int movecounter; - bool death_drops;// Turned to false for simulating NPCs on distant missions so they don't drop all their gear in sight + // Turned to false for simulating NPCs on distant missions so they don't drop all their gear in sight + bool death_drops; std::array temp_cur, frostbite_timer, temp_conv; - void temp_equalizer( body_part bp1, body_part bp2 ); // Equalizes heat between body parts + // Equalizes heat between body parts + void temp_equalizer( body_part bp1, body_part bp2 ); // Drench cache enum water_tolerance { diff --git a/src/player_activity.cpp b/src/player_activity.cpp index 92fd255341689..a3365152c799f 100644 --- a/src/player_activity.cpp +++ b/src/player_activity.cpp @@ -6,6 +6,7 @@ #include "activity_handlers.h" #include "activity_type.h" #include "player.h" +#include "sounds.h" player_activity::player_activity() : type( activity_id::NULL_ID() ) { } @@ -63,6 +64,7 @@ player_activity &player_activity::operator=( const player_activity &rhs ) void player_activity::set_to_null() { type = activity_id::NULL_ID(); + sfx::end_activity_sounds(); // kill activity sounds when activity is nullified } bool player_activity::rooted() const diff --git a/src/player_activity.h b/src/player_activity.h index b0fd8cfbd7f9e..a01e042060b8a 100644 --- a/src/player_activity.h +++ b/src/player_activity.h @@ -2,7 +2,7 @@ #ifndef PLAYER_ACTIVITY_H #define PLAYER_ACTIVITY_H -#include +#include #include #include #include diff --git a/src/player_display.cpp b/src/player_display.cpp index 68c8a24ebf8c2..108fea96f9f7e 100644 --- a/src/player_display.cpp +++ b/src/player_display.cpp @@ -1,6 +1,6 @@ #include "player.h" // IWYU pragma: associated -#include +#include #include #include @@ -19,6 +19,7 @@ #include "weather.h" #include "catacharset.h" #include "translations.h" +#include "string_id.h" const skill_id skill_swimming( "swimming" ); diff --git a/src/player_hardcoded_effects.cpp b/src/player_hardcoded_effects.cpp index f992d10ab0df0..a974b60894a47 100644 --- a/src/player_hardcoded_effects.cpp +++ b/src/player_hardcoded_effects.cpp @@ -1,7 +1,7 @@ #include "player.h" // IWYU pragma: associated -#include -#include +#include +#include #include "effect.h" #include "fungal_effects.h" @@ -259,7 +259,8 @@ static void eff_fun_hallu( player &u, effect &it ) int loudness = 20 + u.str_cur - u.int_cur; loudness = ( loudness > 5 ? loudness : 5 ); loudness = ( loudness < 30 ? loudness : 30 ); - sounds::sound( u.pos(), loudness, sounds::sound_t::speech, npc_text ); + sounds::sound( u.pos(), loudness, sounds::sound_t::speech, npc_text, false, "speech", + loudness < 15 ? ( u.male ? "NPC_m" : "NPC_f" ) : ( u.male ? "NPC_m_loud" : "NPC_f_loud" ) ); } } else if( dur == peakTime ) { // Visuals start @@ -1258,13 +1259,15 @@ void player::hardcoded_effects( effect &it ) it.mod_duration( 10_minutes ); } else if( dur == 2_turns ) { // let the sound code handle the wake-up part - sounds::sound( pos(), 16, sounds::sound_t::alarm, _( "beep-beep-beep!" ) ); + sounds::sound( pos(), 16, sounds::sound_t::alarm, _( "beep-beep-beep!" ), false, "tool", + "alarm_clock" ); } } } else { if( dur == 1_turns ) { if( g->u.has_alarm_clock() ) { - sounds::sound( g->u.pos(), 16, sounds::sound_t::alarm, _( "beep-beep-beep!" ) ); + sounds::sound( g->u.pos(), 16, sounds::sound_t::alarm, _( "beep-beep-beep!" ), false, "tool", + "alarm_clock" ); const std::string alarm = _( "Your alarm is going off." ); g->cancel_activity_or_ignore_query( distraction_type::noise, alarm ); add_msg( "Your alarm went off." ); diff --git a/src/pldata.h b/src/pldata.h index 9bc4d0cfee7ab..c3be993a0d3b7 100644 --- a/src/pldata.h +++ b/src/pldata.h @@ -5,25 +5,9 @@ #include #include "calendar.h" -#include "string_id.h" class JsonIn; class JsonOut; -class martialart; - -using matype_id = string_id; - -class ma_buff; - -using mabuff_id = string_id; - -class ma_technique; - -using matec_id = string_id; - -struct mutation_branch; - -using trait_id = string_id; typedef std::string dis_type; diff --git a/src/popup.h b/src/popup.h index b36ad46af93c5..56d9cc21a8df4 100644 --- a/src/popup.h +++ b/src/popup.h @@ -2,7 +2,7 @@ #ifndef POPUP_H #define POPUP_H -#include +#include #include #include #include diff --git a/src/profession.cpp b/src/profession.cpp index 5b30eebc40770..a890f926ff955 100644 --- a/src/profession.cpp +++ b/src/profession.cpp @@ -18,7 +18,6 @@ #include "translations.h" #include "calendar.h" #include "item.h" -#include "creature.h" namespace { diff --git a/src/profession.h b/src/profession.h index 5d427f0a3d58d..e1609dc277e6d 100644 --- a/src/profession.h +++ b/src/profession.h @@ -10,6 +10,7 @@ #include "string_id.h" #include "pldata.h" +#include "type_id.h" template class generic_factory; @@ -20,18 +21,8 @@ class item; using itype_id = std::string; class player; class JsonObject; -struct mutation_branch; - -using trait_id = string_id; -struct bionic_data; - -using bionic_id = string_id; enum add_type : int; -class Skill; - -using skill_id = string_id; - class profession { public: diff --git a/src/projectile.cpp b/src/projectile.cpp index e0de20a06c726..96b76803efc48 100644 --- a/src/projectile.cpp +++ b/src/projectile.cpp @@ -93,21 +93,21 @@ void apply_ammo_effects( const tripoint &p, const std::set &effects { if( effects.count( "EXPLOSIVE_SMALL" ) > 0 ) { // TODO: double-check if this is sensible. - g->explosion( p, 360, 0.4 ); + explosion_handler::explosion( p, 360, 0.4 ); } if( effects.count( "EXPLOSIVE" ) > 0 ) { // TODO: double-check if this is sensible. - g->explosion( p, 360 ); + explosion_handler::explosion( p, 360 ); } if( effects.count( "FRAG" ) > 0 ) { // Same as a standard thrown frag grenade. - g->explosion( p, 185, 0.8, false, 212, 0.05 ); + explosion_handler::explosion( p, 185, 0.8, false, 212, 0.05 ); } if( effects.count( "NAPALM" ) > 0 ) { - g->explosion( p, 60, 0.7, true ); + explosion_handler::explosion( p, 60, 0.7, true ); // More intense fire near the center for( auto &pt : g->m.points_in_radius( p, 1, 0 ) ) { g->m.add_field( pt, fd_fire, 1 ); @@ -115,7 +115,7 @@ void apply_ammo_effects( const tripoint &p, const std::set &effects } if( effects.count( "NAPALM_BIG" ) > 0 ) { - g->explosion( p, 360, 0.8, true ); + explosion_handler::explosion( p, 360, 0.8, true ); // More intense fire near the center for( auto &pt : g->m.points_in_radius( p, 3, 0 ) ) { g->m.add_field( pt, fd_fire, 1 ); @@ -123,7 +123,7 @@ void apply_ammo_effects( const tripoint &p, const std::set &effects } if( effects.count( "MININUKE_MOD" ) > 0 ) { - g->explosion( p, 72000000 ); + explosion_handler::explosion( p, 72000000 ); for( auto &pt : g->m.points_in_radius( p, 18, 0 ) ) { if( g->m.sees( p, pt, 3 ) && g->m.passable( pt ) ) { @@ -140,12 +140,12 @@ void apply_ammo_effects( const tripoint &p, const std::set &effects if( effects.count( "EXPLOSIVE_BIG" ) > 0 ) { // TODO: double-check if this is sensible. - g->explosion( p, 600 ); + explosion_handler::explosion( p, 600 ); } if( effects.count( "EXPLOSIVE_HUGE" ) > 0 ) { // TODO: double-check if this is sensible. - g->explosion( p, 1200 ); + explosion_handler::explosion( p, 1200 ); } if( effects.count( "TOXICGAS" ) > 0 ) { @@ -170,11 +170,11 @@ void apply_ammo_effects( const tripoint &p, const std::set &effects } if( effects.count( "FLASHBANG" ) ) { - g->flashbang( p ); + explosion_handler::flashbang( p ); } if( effects.count( "EMP" ) ) { - g->emp_blast( p ); + explosion_handler::emp_blast( p ); } if( effects.count( "NO_BOOM" ) == 0 && effects.count( "FLAME" ) > 0 ) { diff --git a/src/ranged.cpp b/src/ranged.cpp index 2265b0f715a93..fe84cc9d0f268 100644 --- a/src/ranged.cpp +++ b/src/ranged.cpp @@ -1,7 +1,7 @@ #include "ranged.h" -#include -#include +#include +#include #include #include #include @@ -57,7 +57,7 @@ #include "string_id.h" #include "units.h" #include "material.h" -#include "pldata.h" +#include "type_id.h" const skill_id skill_throw( "throw" ); const skill_id skill_gun( "gun" ); @@ -253,6 +253,29 @@ bool player::handle_gun_damage( item &it ) return true; } +void npc::pretend_fire( npc *source, int shots, item &gun ) +{ + int curshot = 0; + if( g->u.sees( *source ) && one_in( 50 ) ) { + add_msg( m_info, _( "%s shoots something." ), source->disp_name() ); + } + while( curshot != shots ) { + if( gun.ammo_consume( gun.ammo_required(), pos() ) != gun.ammo_required() ) { + debugmsg( "Unexpected shortage of ammo whilst firing %s", gun.tname().c_str() ); + break; + } + + item *weapon = &gun; + const auto data = weapon->gun_noise( shots > 1 ); + + if( g->u.sees( *source ) ) { + add_msg( m_warning, _( "You hear %s." ), data.sound ); + } + curshot++; + moves -= 100; + } +} + int player::fire_gun( const tripoint &target, int shots ) { return fire_gun( target, shots, weapon ); @@ -518,6 +541,11 @@ dealt_projectile_attack player::throw_item( const tripoint &target, const item & const bool shatter = !thrown.active && thrown.made_of( material_id( "glass" ) ) && rng( 0, units::to_milliliter( 2000_ml - volume ) ) < get_str() * 100; + // Item will burst upon landing, destroying the item, and spilling its contents + const bool burst = thrown.has_property( "burst_when_filled" ) && thrown.is_container() && + thrown.get_property_long( "burst_when_filled" ) <= static_cast + ( thrown.get_contained().volume().value() ) / thrown.get_container_capacity().value() * 100; + // Add some flags to the projectile if( weight > 500_gram ) { proj_effects.insert( "HEAVY_HIT" ); @@ -545,6 +573,11 @@ dealt_projectile_attack player::throw_item( const tripoint &target, const item & proj_effects.insert( "SHATTER_SELF" ); } + //TODO: Add wet effect if other things care about that + if( burst ) { + proj_effects.insert( "BURST" ); + } + // Some minor (skill/2) armor piercing for skillful throws // Not as much as in melee, though for( damage_unit &du : impact.damage_units ) { @@ -1051,7 +1084,7 @@ std::vector target_handler::target_ui( player &pc, target_mode mode, sight_dispersion = pc.effective_dispersion( relevant->sight_dispersion() ); } - tripoint src = pc.pos(); + const tripoint src = pc.pos(); tripoint dst = pc.pos(); std::vector t; @@ -1132,14 +1165,11 @@ std::vector target_handler::target_ui( player &pc, target_mode mode, int top = 0; if( tiny ) { // If we're extremely short on space, use the whole sidebar. - top = 0; height = TERMY; } else if( compact ) { // Cover up more low-value ui elements if we're tight on space. - top -= 4; height = 25; } - top = 0; catacurses::window w_target = catacurses::newwin( height, 45, top, TERMX - 45 ); input_context ctxt( "TARGET" ); @@ -1161,6 +1191,9 @@ std::vector target_handler::target_ui( player &pc, target_mode mode, ctxt.register_action( "QUIT" ); ctxt.register_action( "SWITCH_MODE" ); ctxt.register_action( "SWITCH_AMMO" ); + ctxt.register_action( "MOUSE_MOVE" ); + ctxt.register_action( "zoom_out" ); + ctxt.register_action( "zoom_in" ); if( mode == TARGET_MODE_FIRE ) { ctxt.register_action( "AIM" ); @@ -1219,6 +1252,7 @@ std::vector target_handler::target_ui( player &pc, target_mode mode, return std::min( recoil_pc + angle * recoil_per_deg, MAX_RECOIL ); }; + bool redraw = true; const tripoint old_offset = pc.view_offset; do { ret = g->m.find_clear_path( src, dst ); @@ -1245,136 +1279,141 @@ std::vector target_handler::target_ui( player &pc, target_mode mode, } else { center = pc.pos() + pc.view_offset; } - // Clear the target window. - for( int i = 1; i <= getmaxy( w_target ) - num_instruction_lines - 2; i++ ) { - // Clear width excluding borders. - for( int j = 1; j <= getmaxx( w_target ) - 2; j++ ) { - mvwputch( w_target, i, j, c_white, ' ' ); + if( redraw ) { + // Clear the target window. + for( int i = 1; i <= getmaxy( w_target ) - num_instruction_lines - 2; i++ ) { + // Clear width excluding borders. + for( int j = 1; j <= getmaxx( w_target ) - 2; j++ ) { + mvwputch( w_target, i, j, c_white, ' ' ); + } } - } - g->draw_ter( center, true ); - int line_number = 1; - Creature *critter = g->critter_at( dst, true ); - const int relative_elevation = dst.z - pc.pos().z; - if( dst != src ) { - // Only draw those tiles which are on current z-level - auto ret_this_zlevel = ret; - ret_this_zlevel.erase( std::remove_if( ret_this_zlevel.begin(), ret_this_zlevel.end(), - [¢er]( const tripoint & pt ) { - return pt.z != center.z; - } ), ret_this_zlevel.end() ); - // Only draw a highlighted trajectory if we can see the endpoint. - // Provides feedback to the player, and avoids leaking information - // about tiles they can't see. - g->draw_line( dst, center, ret_this_zlevel ); - - // Print to target window - mvwprintw( w_target, line_number++, 1, _( "Range: %d/%d Elevation: %d Targets: %d" ), - rl_dist( src, dst ), range, relative_elevation, t.size() ); + g->draw_ter( center, true ); + int line_number = 1; + Creature *critter = g->critter_at( dst, true ); + const int relative_elevation = dst.z - pc.pos().z; + if( dst != src ) { + // Only draw those tiles which are on current z-level + auto ret_this_zlevel = ret; + ret_this_zlevel.erase( std::remove_if( ret_this_zlevel.begin(), ret_this_zlevel.end(), + [¢er]( const tripoint & pt ) { + return pt.z != center.z; + } ), ret_this_zlevel.end() ); + // Only draw a highlighted trajectory if we can see the endpoint. + // Provides feedback to the player, and avoids leaking information + // about tiles they can't see. + g->draw_line( dst, center, ret_this_zlevel ); + + // Print to target window + mvwprintw( w_target, line_number++, 1, _( "Range: %d/%d Elevation: %d Targets: %d" ), + rl_dist( src, dst ), range, relative_elevation, t.size() ); - } else { - mvwprintw( w_target, line_number++, 1, _( "Range: %d Elevation: %d Targets: %d" ), range, - relative_elevation, t.size() ); - } - - // Skip blank lines if we're short on space. - if( !compact ) { - line_number++; - } - if( mode == TARGET_MODE_FIRE || mode == TARGET_MODE_TURRET_MANUAL ) { - auto m = relevant->gun_current_mode(); - std::string str = ""; - nc_color col = c_light_gray; - if( relevant != m.target ) { - str = string_format( _( "Firing mode: %s %s (%d)" ), - m->tname(), m.name(), m.qty ); - - print_colored_text( w_target, line_number++, 1, col, col, str ); } else { - str = string_format( _( "Firing mode: %s (%d)" ), - m.name(), m.qty ); - print_colored_text( w_target, line_number++, 1, col, col, str ); - } - - const itype *cur = ammo ? ammo : m->ammo_data(); - if( cur ) { - auto str = string_format( m->ammo_remaining() ? - _( "Ammo: %s (%d/%d)" ) : - _( "Ammo: %s" ), - get_all_colors().get_name( cur->color ), - cur->nname( std::max( m->ammo_remaining(), 1L ) ), - m->ammo_remaining(), m->ammo_capacity() ); - - print_colored_text( w_target, line_number++, 1, col, col, str ); + mvwprintw( w_target, line_number++, 1, _( "Range: %d Elevation: %d Targets: %d" ), range, + relative_elevation, t.size() ); } - print_colored_text( w_target, line_number++, 1, col, col, string_format( _( "%s" ), - print_recoil( g->u ) ) ); - // Skip blank lines if we're short on space. if( !compact ) { line_number++; } - } + if( mode == TARGET_MODE_FIRE || mode == TARGET_MODE_TURRET_MANUAL ) { + auto m = relevant->gun_current_mode(); + std::string str = ""; + nc_color col = c_light_gray; + if( relevant != m.target ) { + str = string_format( _( "Firing mode: %s %s (%d)" ), + m->tname(), m.tname(), m.qty ); + + print_colored_text( w_target, line_number++, 1, col, col, str ); + } else { + str = string_format( _( "Firing mode: %s (%d)" ), + m.tname(), m.qty ); + print_colored_text( w_target, line_number++, 1, col, col, str ); + } - if( critter && critter != &pc && pc.sees( *critter ) ) { - // The 12 is 2 for the border and 10 for aim bars. - // Just print the monster name if we're short on space. - int available_lines = compact ? 1 : ( height - num_instruction_lines - line_number - 12 ); - line_number = critter->print_info( w_target, line_number, available_lines, 1 ); - } else { - mvwputch( g->w_terrain, POSY + dst.y - center.y, POSX + dst.x - center.x, - c_red, '*' ); - } + const itype *cur = ammo ? ammo : m->ammo_data(); + if( cur ) { + auto str = string_format( m->ammo_remaining() ? + _( "Ammo: %s (%d/%d)" ) : + _( "Ammo: %s" ), + get_all_colors().get_name( cur->color ), + cur->nname( std::max( m->ammo_remaining(), 1L ) ), + m->ammo_remaining(), m->ammo_capacity() ); - if( mode == TARGET_MODE_FIRE ) { - double predicted_recoil = pc.recoil; - int predicted_delay = 0; - if( aim_mode->has_threshold && aim_mode->threshold < pc.recoil ) { - do { - const double aim_amount = pc.aim_per_move( *relevant, predicted_recoil ); - if( aim_amount > 0 ) { - predicted_delay++; - predicted_recoil = std::max( predicted_recoil - aim_amount, 0.0 ); - } - } while( predicted_recoil > aim_mode->threshold && - predicted_recoil - sight_dispersion > 0 ); + print_colored_text( w_target, line_number++, 1, col, col, str ); + } + + print_colored_text( w_target, line_number++, 1, col, col, string_format( _( "%s" ), + print_recoil( g->u ) ) ); + + // Skip blank lines if we're short on space. + if( !compact ) { + line_number++; + } + } + + if( critter && critter != &pc && pc.sees( *critter ) ) { + // The 12 is 2 for the border and 10 for aim bars. + // Just print the monster name if we're short on space. + int available_lines = compact ? 1 : ( height - num_instruction_lines - line_number - 12 ); + line_number = critter->print_info( w_target, line_number, available_lines, 1 ); } else { - predicted_recoil = pc.recoil; + mvwputch( g->w_terrain, POSY + dst.y - center.y, POSX + dst.x - center.x, + c_red, '*' ); } - const double target_size = critter != nullptr ? critter->ranged_target_size() : - occupied_tile_fraction( MS_MEDIUM ); + if( mode == TARGET_MODE_FIRE ) { + double predicted_recoil = pc.recoil; + int predicted_delay = 0; + if( aim_mode->has_threshold && aim_mode->threshold < pc.recoil ) { + do { + const double aim_amount = pc.aim_per_move( *relevant, predicted_recoil ); + if( aim_amount > 0 ) { + predicted_delay++; + predicted_recoil = std::max( predicted_recoil - aim_amount, 0.0 ); + } + } while( predicted_recoil > aim_mode->threshold && + predicted_recoil - sight_dispersion > 0 ); + } else { + predicted_recoil = pc.recoil; + } - line_number = print_aim( pc, w_target, line_number, ctxt, &*relevant->gun_current_mode(), - target_size, dst, predicted_recoil ); + const double target_size = critter != nullptr ? critter->ranged_target_size() : + occupied_tile_fraction( MS_MEDIUM ); - if( aim_mode->has_threshold ) { - mvwprintw( w_target, line_number++, 1, _( "%s Delay: %i" ), aim_mode->name, predicted_delay ); - } - } else if( mode == TARGET_MODE_TURRET ) { - line_number = draw_turret_aim( pc, w_target, line_number, dst ); - } else if( mode == TARGET_MODE_THROW ) { - line_number = draw_throw_aim( pc, w_target, line_number, ctxt, relevant, dst, false ); - } else if( mode == TARGET_MODE_THROW_BLIND ) { - line_number = draw_throw_aim( pc, w_target, line_number, ctxt, relevant, dst, true ); - } + line_number = print_aim( pc, w_target, line_number, ctxt, &*relevant->gun_current_mode(), + target_size, dst, predicted_recoil ); - wrefresh( g->w_terrain ); - g->draw_panels(); - draw_targeting_window( w_target, relevant->tname(), - mode, ctxt, aim_types, tiny ); - wrefresh( w_target ); + if( aim_mode->has_threshold ) { + mvwprintw( w_target, line_number++, 1, _( "%s Delay: %i" ), aim_mode->name, predicted_delay ); + } + } else if( mode == TARGET_MODE_TURRET ) { + // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores) + line_number = draw_turret_aim( pc, w_target, line_number, dst ); + } else if( mode == TARGET_MODE_THROW ) { + // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores) + line_number = draw_throw_aim( pc, w_target, line_number, ctxt, relevant, dst, false ); + } else if( mode == TARGET_MODE_THROW_BLIND ) { + // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores) + line_number = draw_throw_aim( pc, w_target, line_number, ctxt, relevant, dst, true ); + } - catacurses::refresh(); + wrefresh( g->w_terrain ); + g->draw_panels(); + draw_targeting_window( w_target, relevant->tname(), + mode, ctxt, aim_types, tiny ); + wrefresh( w_target ); + catacurses::refresh(); + } + redraw = true; std::string action; if( pc.activity.id() == activity_id( "ACT_AIM" ) && pc.activity.str_values[0] != "AIM" ) { // If we're in 'aim and shoot' mode, // skip retrieving input and go straight to the action. action = pc.activity.str_values[0]; } else { - action = ctxt.handle_input(); + action = ctxt.handle_input( get_option( "EDGE_SCROLL" ) ); } // Clear the activity if any, we'll re-set it later if we need to. pc.cancel_activity(); @@ -1541,22 +1580,43 @@ std::vector target_handler::target_ui( player &pc, target_mode mode, if( !confirm_non_enemy_target( dst ) || dst == src ) { continue; } - target = find_target( t, dst ); if( src == dst ) { ret.clear(); } break; } else if( action == "CENTER" ) { + pc.view_offset = tripoint_zero; dst = src; set_last_target( dst ); ret.clear(); } else if( action == "TOGGLE_SNAP_TO_TARGET" ) { - snap_to_target = !snap_to_target; + if( snap_to_target ) { + snap_to_target = false; + pc.view_offset = dst - pc.pos(); + } else { + snap_to_target = true; + } } else if( action == "QUIT" ) { // return empty vector (cancel) ret.clear(); pc.last_target_pos = cata::nullopt; - target = -1; break; + } else if( action == "zoom_in" ) { + g->zoom_in(); + } else if( action == "zoom_out" ) { + g->zoom_out(); + } else if( action == "MOUSE_MOVE" || action == "TIMEOUT" ) { + tripoint edge_scroll = g->mouse_edge_scrolling_terrain( ctxt ); + if( edge_scroll == tripoint_zero ) { + redraw = false; + } else { + if( action == "MOUSE_MOVE" ) { + edge_scroll *= 2; + } + pc.view_offset += edge_scroll; + if( snap_to_target ) { + dst += edge_scroll; + } + } } // Make player's sprite flip to face the current target @@ -1978,7 +2038,7 @@ double player::gun_value( const item &weap, long ammo ) const double gun_value = damage_and_accuracy * capacity_factor; add_msg( m_debug, "%s as gun: %.1f total, %.1f dispersion, %.1f damage, %.1f capacity", - weap.tname(), gun_value, dispersion_factor, damage_factor, + weap.type->get_id(), gun_value, dispersion_factor, damage_factor, capacity_factor ); return std::max( 0.0, gun_value ); } diff --git a/src/recipe.cpp b/src/recipe.cpp index 3a9d03ad52dc9..73db94bd70709 100644 --- a/src/recipe.cpp +++ b/src/recipe.cpp @@ -19,10 +19,8 @@ #include "optional.h" #include "player.h" #include "translations.h" - -struct oter_t; - -using oter_str_id = string_id; +#include "type_id.h" +#include "string_id.h" recipe::recipe() : skill_used( skill_id::NULL_ID() ) {} diff --git a/src/recipe.h b/src/recipe.h index 341a0e55ebc3b..9163e935d00d0 100644 --- a/src/recipe.h +++ b/src/recipe.h @@ -2,7 +2,7 @@ #ifndef RECIPE_H #define RECIPE_H -#include +#include #include #include #include @@ -11,18 +11,12 @@ #include #include "requirements.h" -#include "string_id.h" +#include "type_id.h" -class Skill; class item; class JsonObject; -using skill_id = string_id; using itype_id = std::string; // From itype.h -using requirement_id = string_id; -class recipe; - -using recipe_id = string_id; class Character; class recipe diff --git a/src/recipe_dictionary.cpp b/src/recipe_dictionary.cpp index 50dc92db9d931..0cbcbcb7b5e26 100644 --- a/src/recipe_dictionary.cpp +++ b/src/recipe_dictionary.cpp @@ -19,6 +19,7 @@ #include "player.h" #include "requirements.h" #include "units.h" +#include "string_id.h" recipe_dictionary recipe_dict; @@ -290,9 +291,7 @@ recipe &recipe_dictionary::load( JsonObject &jo, const std::string &src, r.load( jo, src ); - out[ r.ident() ] = std::move( r ); - - return out[ r.ident() ]; + return out[ r.ident() ] = std::move( r ); } size_t recipe_dictionary::size() const diff --git a/src/recipe_dictionary.h b/src/recipe_dictionary.h index d941f20f86635..b6fb93fc9847a 100644 --- a/src/recipe_dictionary.h +++ b/src/recipe_dictionary.h @@ -2,7 +2,7 @@ #ifndef RECIPE_DICTIONARY_H #define RECIPE_DICTIONARY_H -#include +#include #include #include #include @@ -11,14 +11,13 @@ #include #include "recipe.h" -#include "string_id.h" +#include "type_id.h" class JsonIn; class JsonOut; class JsonObject; typedef std::string itype_id; -using recipe_id = string_id; class recipe_dictionary { diff --git a/src/recipe_groups.cpp b/src/recipe_groups.cpp index 78df65dd574a4..4e64ba8300818 100644 --- a/src/recipe_groups.cpp +++ b/src/recipe_groups.cpp @@ -7,9 +7,9 @@ #include "generic_factory.h" #include "json.h" -#include "player.h" #include "debug.h" #include "string_id.h" +#include "type_id.h" // recipe_groups namespace @@ -57,7 +57,7 @@ void recipe_group_data::check() const } } -std::map recipe_group::get_recipes( std::string id ) +std::map recipe_group::get_recipes( const std::string &id ) { std::map all_rec; if( id == "ALL" ) { diff --git a/src/recipe_groups.h b/src/recipe_groups.h index 8b4b8c5746a56..5c8f71885dae0 100644 --- a/src/recipe_groups.h +++ b/src/recipe_groups.h @@ -14,7 +14,7 @@ void load( JsonObject &jo, const std::string &src ); void check(); void reset(); -std::map get_recipes( std::string id ); +std::map get_recipes( const std::string &id ); } diff --git a/src/regional_settings.h b/src/regional_settings.h index 283d40c8eb055..adccbfd7a26d0 100644 --- a/src/regional_settings.h +++ b/src/regional_settings.h @@ -15,6 +15,7 @@ #include "weighted_list.h" #include "int_id.h" #include "string_id.h" +#include "type_id.h" class JsonObject; diff --git a/src/requirements.cpp b/src/requirements.cpp index 5d622a83fa1de..487f88c20b165 100644 --- a/src/requirements.cpp +++ b/src/requirements.cpp @@ -1,6 +1,6 @@ #include "requirements.h" -#include +#include #include #include #include @@ -24,7 +24,6 @@ #include "translations.h" #include "color.h" #include "item.h" -#include "pldata.h" #include "visitable.h" static const trait_id trait_DEBUG_HS( "DEBUG_HS" ); @@ -454,7 +453,7 @@ std::vector requirement_data::get_folded_components_list( int width template std::vector requirement_data::get_folded_list( int width, const inventory &crafting_inv, const std::function &filter, - const std::vector< std::vector > &objs, int batch, std::string hilite ) const + const std::vector< std::vector > &objs, int batch, const std::string &hilite ) const { // hack: ensure 'cached' availability is up to date can_make_with_inventory( crafting_inv, filter ); diff --git a/src/requirements.h b/src/requirements.h index 143ee8a59d0f0..7522e26f64dbd 100644 --- a/src/requirements.h +++ b/src/requirements.h @@ -9,21 +9,16 @@ #include #include "string_id.h" +#include "type_id.h" class nc_color; class JsonObject; class JsonArray; class inventory; -struct requirement_data; class item; -using requirement_id = string_id; - // Denotes the id of an item type typedef std::string itype_id; -struct quality; - -using quality_id = string_id; enum available_status { a_true = +1, // yes, it's available @@ -292,7 +287,7 @@ struct requirement_data { template std::vector get_folded_list( int width, const inventory &crafting_inv, const std::function &filter, const std::vector< std::vector > &objs, - int batch = 1, std::string hilite = "" ) const; + int batch = 1, const std::string &hilite = "" ) const; template static bool any_marked_available( const std::vector &comps ); diff --git a/src/rng.h b/src/rng.h index 6995bbb1897ca..53b8b55b6f545 100644 --- a/src/rng.h +++ b/src/rng.h @@ -2,7 +2,7 @@ #ifndef RNG_H #define RNG_H -#include +#include #include #include #include diff --git a/src/rotatable_symbols.cpp b/src/rotatable_symbols.cpp index 667f307703798..b54f65c7a3e91 100644 --- a/src/rotatable_symbols.cpp +++ b/src/rotatable_symbols.cpp @@ -1,6 +1,6 @@ #include "rotatable_symbols.h" -#include +#include #include #include #include @@ -47,6 +47,7 @@ void load( JsonObject &jo, const std::string &src ) jo.throw_error( "Invalid size. Must be either 2 or 4.", tuple_key ); } std::vector tuple; + tuple.reserve( tuple_temp.size() ); for( std::string &elem : tuple_temp ) { tuple.emplace_back( UTF8_getch( elem ) ); } diff --git a/src/rotatable_symbols.h b/src/rotatable_symbols.h index 9c7bf2e3ad12a..c28af5d333070 100644 --- a/src/rotatable_symbols.h +++ b/src/rotatable_symbols.h @@ -2,7 +2,7 @@ #ifndef ROTATABLE_SYMBOLS_H #define ROTATABLE_SYMBOLS_H -#include +#include #include class JsonObject; diff --git a/src/safemode_ui.cpp b/src/safemode_ui.cpp index 6db2fe3b32244..63c3774945fe0 100644 --- a/src/safemode_ui.cpp +++ b/src/safemode_ui.cpp @@ -208,7 +208,7 @@ void safemode::show( const std::string &custom_name_in, bool is_safemode_in ) mvwprintz( w, i - start_pos, 1, line_color, "%d", i + 1 ); mvwprintz( w, i - start_pos, 5, c_yellow, ( line == i ) ? ">> " : " " ); - auto draw_column = [&]( Columns column_in, std::string text_in ) { + auto draw_column = [&]( Columns column_in, const std::string & text_in ) { mvwprintz( w, i - start_pos, column_pos[column_in] + 2, ( line == i && column == column_in ) ? hilite( line_color ) : line_color, text_in diff --git a/src/safemode_ui.h b/src/safemode_ui.h index febc720fe7b3a..511d89573d554 100644 --- a/src/safemode_ui.h +++ b/src/safemode_ui.h @@ -33,8 +33,9 @@ class safemode rules_class() : active( false ), whitelist( false ), attitude( Creature::A_HOSTILE ), proximity( 0 ) {} - rules_class( std::string rule_in, bool active_in, bool whitelist_in, Creature::Attitude attitude_in, - int proximity_in ) : rule( rule_in ), active( active_in ), whitelist( whitelist_in ), + rules_class( const std::string &rule_in, bool active_in, bool whitelist_in, + Creature::Attitude attitude_in, int proximity_in ) : rule( rule_in ), + active( active_in ), whitelist( whitelist_in ), attitude( attitude_in ), proximity( proximity_in ) {} }; diff --git a/src/savegame.cpp b/src/savegame.cpp index ee3137d7277f8..a98a06148ff42 100644 --- a/src/savegame.cpp +++ b/src/savegame.cpp @@ -24,7 +24,6 @@ #include "options.h" #include "output.h" #include "overmap.h" -#include "overmapbuffer.h" #include "scent_map.h" #include "translations.h" #include "tuple_hash.h" @@ -34,7 +33,8 @@ #include "overmap_types.h" #include "player.h" #include "regional_settings.h" -#include "itype.h" +#include "int_id.h" +#include "string_id.h" #if defined(__ANDROID__) #include "input.h" diff --git a/src/savegame_json.cpp b/src/savegame_json.cpp index 4d4027ae9a165..a8abbfe353d2c 100644 --- a/src/savegame_json.cpp +++ b/src/savegame_json.cpp @@ -5,8 +5,8 @@ #include "npc_favor.h" // IWYU pragma: associated #include "pldata.h" // IWYU pragma: associated -#include -#include +#include +#include #include #include #include @@ -37,7 +37,6 @@ #include "item_factory.h" #include "json.h" #include "mission.h" -#include "monfaction.h" #include "monster.h" #include "morale.h" #include "mtype.h" @@ -78,8 +77,10 @@ #include "stomach.h" #include "tileray.h" #include "visitable.h" +#include "string_id.h" struct oter_type_t; +struct mutation_branch; #define dbg(x) DebugLog((DebugLevel)(x),D_GAME) << __FILE__ << ":" << __LINE__ << ": " @@ -1052,13 +1053,13 @@ void npc_follower_rules::serialize( JsonOut &json ) const // serialize the flags so they can be changed between save games for( const auto &rule : ally_rule_strs ) { - json.member( "rule_" + rule.first, has_flag( rule.second, false ) ); + json.member( "rule_" + rule.first, has_flag( rule.second.rule, false ) ); } for( const auto &rule : ally_rule_strs ) { - json.member( "override_enable_" + rule.first, has_override_enable( rule.second ) ); + json.member( "override_enable_" + rule.first, has_override_enable( rule.second.rule ) ); } for( const auto &rule : ally_rule_strs ) { - json.member( "override_" + rule.first, has_override( rule.second ) ); + json.member( "override_" + rule.first, has_override( rule.second.rule ) ); } json.member( "pickup_whitelist", *pickup_whitelist ); @@ -1082,28 +1083,49 @@ void npc_follower_rules::deserialize( JsonIn &jsin ) // legacy to handle rules that were saved before overrides data.read( rule.first, tmpflag ); if( tmpflag ) { - set_flag( rule.second ); + set_flag( rule.second.rule ); } else { - clear_flag( rule.second ); + clear_flag( rule.second.rule ); } data.read( "rule_" + rule.first, tmpflag ); if( tmpflag ) { - set_flag( rule.second ); + set_flag( rule.second.rule ); } else { - clear_flag( rule.second ); + clear_flag( rule.second.rule ); } data.read( "override_enable_" + rule.first, tmpflag ); if( tmpflag ) { - enable_override( rule.second ); + enable_override( rule.second.rule ); } else { - disable_override( rule.second ); + disable_override( rule.second.rule ); } data.read( "override_" + rule.first, tmpflag ); if( tmpflag ) { - set_override( rule.second ); + set_override( rule.second.rule ); } else { - clear_override( rule.second ); + clear_override( rule.second.rule ); } + + // This and the following two entries are for legacy save game handling. + // "avoid_combat" was renamed "follow_close" to better reflect behavior. + data.read( "rule_avoid_combat", tmpflag ); + if( tmpflag ) { + set_flag( ally_rule::follow_close ); + } else { + clear_flag( ally_rule::follow_close ); + }; + data.read( "override_enable_avoid_combat", tmpflag ); + if( tmpflag ) { + enable_override( ally_rule::follow_close ); + } else { + disable_override( ally_rule::follow_close ); + }; + data.read( "override_avoid_combat", tmpflag ); + if( tmpflag ) { + set_override( ally_rule::follow_close ); + } else { + clear_override( ally_rule::follow_close ); + }; } data.read( "pickup_whitelist", *pickup_whitelist ); @@ -1276,13 +1298,6 @@ void npc::load( JsonObject &data ) data.read( "personality", personality ); - data.read( "wandf", wander_time ); - data.read( "wandx", wander_pos.x ); - data.read( "wandy", wander_pos.y ); - if( !data.read( "wandz", wander_pos.z ) ) { - wander_pos.z = posz(); - } - if( !data.read( "submap_coords", submap_coords ) ) { // Old submap coordinates are for the point (0, 0, 0) on local map // New ones are for submap that contains pos @@ -1466,10 +1481,6 @@ void npc::store( JsonOut &json ) const json.member( "myclass", myclass.str() ); json.member( "personality", personality ); - json.member( "wandf", wander_time ); - json.member( "wandx", wander_pos.x ); - json.member( "wandy", wander_pos.y ); - json.member( "wandz", wander_pos.z ); json.member( "submap_coords", submap_coords ); diff --git a/src/savegame_legacy.cpp b/src/savegame_legacy.cpp index 4aee67d60c157..e89b42d98f1dd 100644 --- a/src/savegame_legacy.cpp +++ b/src/savegame_legacy.cpp @@ -1,4 +1,4 @@ -#include +#include #include #include #include @@ -28,9 +28,9 @@ #include "game_constants.h" #include "inventory.h" #include "monster.h" -#include "omdata.h" #include "regional_settings.h" #include "rng.h" +#include "type_id.h" namespace std { diff --git a/src/scenario.cpp b/src/scenario.cpp index ad43427951edb..6b8343c614f48 100644 --- a/src/scenario.cpp +++ b/src/scenario.cpp @@ -1,6 +1,6 @@ #include "scenario.h" -#include +#include #include #include "debug.h" @@ -9,7 +9,6 @@ #include "map_extras.h" #include "mission.h" #include "mutation.h" -#include "player.h" #include "profession.h" #include "translations.h" #include "rng.h" diff --git a/src/scenario.h b/src/scenario.h index 865108f36a5c7..9bea396d22a1f 100644 --- a/src/scenario.h +++ b/src/scenario.h @@ -7,21 +7,14 @@ #include #include "string_id.h" +#include "type_id.h" class profession; class JsonObject; enum add_type : int; -class start_location; - -using start_location_id = string_id; template class generic_factory; -struct mutation_branch; - -using trait_id = string_id; -struct mission_type; -using mission_type_id = string_id; class scenario { diff --git a/src/scent_map.cpp b/src/scent_map.cpp index 4db29f16d9ed6..c58e253ad58a0 100644 --- a/src/scent_map.cpp +++ b/src/scent_map.cpp @@ -1,6 +1,6 @@ #include "scent_map.h" -#include +#include #include #include diff --git a/src/sdl_wrappers.h b/src/sdl_wrappers.h index fdedd26600e11..071d4085120c0 100644 --- a/src/sdl_wrappers.h +++ b/src/sdl_wrappers.h @@ -6,9 +6,11 @@ #if defined(_MSC_VER) && defined(USE_VCPKG) # include # include +# include #else # include # include +# include #endif // IWYU pragma: end_exports diff --git a/src/sdlsound.cpp b/src/sdlsound.cpp index 8efb129f2a24a..fd1a9345ce92d 100644 --- a/src/sdlsound.cpp +++ b/src/sdlsound.cpp @@ -2,7 +2,7 @@ #include "sdlsound.h" -#include +#include #include #include #include @@ -101,7 +101,7 @@ bool init_sound() // Mix_OpenAudio returns non-zero if something went wrong trying to open the device if( !Mix_OpenAudio( audio_rate, audio_format, audio_channels, audio_buffers ) ) { Mix_AllocateChannels( 128 ); - Mix_ReserveChannels( 20 ); + Mix_ReserveChannels( 24 ); // For the sound effects system. Mix_GroupChannels( 2, 9, 1 ); @@ -357,6 +357,11 @@ const sound_effect *find_random_effect( const std::string &id, const std::string return find_random_effect( id_and_variant( id, "default" ) ); } +bool sfx::has_variant_sound( const std::string &id, const std::string &variant ) +{ + return find_random_effect( id, variant ) != nullptr ? true : false; +} + // Deletes the dynamically created chunk (if such a chunk had been played). void cleanup_when_channel_finished( int /* channel */, void *udata ) { @@ -436,8 +441,7 @@ void sfx::play_variant_sound( const std::string &id, const std::string &variant, } void sfx::play_variant_sound( const std::string &id, const std::string &variant, int volume, - int angle, - float pitch_min, float pitch_max ) + int angle, float pitch_min, float pitch_max ) { if( !check_sound( volume ) ) { return; @@ -459,9 +463,31 @@ void sfx::play_variant_sound( const std::string &id, const std::string &variant, Mix_SetPosition( channel, angle, 1 ); } +void sfx::play_variant_sound_pitch( const std::string &id, const std::string &variant, int volume, + int angle, + float pitch ) +{ + if( !check_sound( volume ) ) { + return; + } + + const sound_effect *eff = find_random_effect( id, variant ); + if( eff == nullptr ) { + return; + } + const sound_effect &selected_sound_effect = *eff; + + Mix_Chunk *effect_to_play = get_sfx_resource( selected_sound_effect.resource_id ); + Mix_Chunk *shifted_effect = do_pitch_shift( effect_to_play, pitch ); + Mix_VolumeChunk( shifted_effect, + selected_sound_effect.volume * get_option( "SOUND_EFFECT_VOLUME" ) * volume / ( 100 * 100 ) ); + int channel = Mix_PlayChannel( -1, shifted_effect, 0 ); + Mix_RegisterEffect( channel, empty_effect, cleanup_when_channel_finished, shifted_effect ); + Mix_SetPosition( channel, angle, 1 ); +} + void sfx::play_ambient_variant_sound( const std::string &id, const std::string &variant, int volume, - int channel, - int duration ) + int channel, int duration, float pitch ) { if( !check_sound( volume ) ) { return; @@ -474,11 +500,20 @@ void sfx::play_ambient_variant_sound( const std::string &id, const std::string & const sound_effect &selected_sound_effect = *eff; Mix_Chunk *effect_to_play = get_sfx_resource( selected_sound_effect.resource_id ); - Mix_VolumeChunk( effect_to_play, + Mix_Chunk *shifted_effect = do_pitch_shift( effect_to_play, pitch ); + Mix_VolumeChunk( shifted_effect, selected_sound_effect.volume * get_option( "AMBIENT_SOUND_VOLUME" ) * volume / ( 100 * 100 ) ); - if( Mix_FadeInChannel( channel, effect_to_play, -1, duration ) == -1 ) { - dbg( D_ERROR ) << "Failed to play sound effect: " << Mix_GetError(); + if( duration ) { + if( Mix_FadeInChannel( channel, shifted_effect, -1, duration ) == -1 ) { + dbg( D_ERROR ) << "Failed to play sound effect: " << Mix_GetError(); + } + } else { + if( Mix_PlayChannel( channel, shifted_effect, -1 ) == -1 ) { + dbg( D_ERROR ) << "Failed to play sound effect: " << Mix_GetError(); + } } + + Mix_RegisterEffect( channel, empty_effect, cleanup_when_channel_finished, shifted_effect ); } void load_soundset() diff --git a/src/sdltiles.cpp b/src/sdltiles.cpp index 950094fa5158d..2efbb2b84f877 100644 --- a/src/sdltiles.cpp +++ b/src/sdltiles.cpp @@ -2,7 +2,7 @@ #include "cursesdef.h" // IWYU pragma: associated -#include +#include #include #include #include @@ -827,17 +827,17 @@ void set_displaybuffer_rendertarget() // Populate a map with the available video displays and their name void find_videodisplays() { - std::map displays; + std::vector< std::tuple > displays; int numdisplays = SDL_GetNumVideoDisplays(); for( int i = 0 ; i < numdisplays ; i++ ) { - displays.insert( { i, SDL_GetDisplayName( i ) } ); + displays.push_back( std::make_tuple( i, std::string( SDL_GetDisplayName( i ) ) ) ); } int current_display = get_option( "DISPLAY" ); get_options().add( "DISPLAY", "graphics", _( "Display" ), _( "Sets which video display will be used to show the game. Requires restart." ), - displays, current_display, 0, options_manager::COPT_CURSES_HIDE + displays, current_display, 0, options_manager::COPT_CURSES_HIDE, true ); } @@ -2538,25 +2538,22 @@ void CheckMessages() const optional_vpart_position vp = g->m.veh_at( pos ); vehicle *const veh = veh_pointer_or_null( vp ); if( veh ) { - int veh_part = vp ? vp->part_index() : -1; + const int veh_part = vp ? vp->part_index() : -1; if( veh->part_with_feature( veh_part, "CONTROLS", true ) >= 0 ) { actions.insert( ACTION_CONTROL_VEHICLE ); } - int openablepart = veh->part_with_feature( veh_part, "OPENABLE", true ); + const int openablepart = veh->part_with_feature( veh_part, "OPENABLE", true ); if( openablepart >= 0 && veh->is_open( openablepart ) && ( dx != 0 || dy != 0 ) ) { // an open door adjacent to us actions.insert( ACTION_CLOSE ); } - int curtainpart = veh->part_with_feature( veh_part, "CURTAIN", true ); + const int curtainpart = veh->part_with_feature( veh_part, "CURTAIN", true ); if( curtainpart >= 0 && veh->is_open( curtainpart ) && ( dx != 0 || dy != 0 ) ) { actions.insert( ACTION_CLOSE ); } - if( dx == 0 && dy == 0 ) { - int cargopart = veh->part_with_feature( veh_part, "CARGO", true ); - bool can_pickup = cargopart >= 0 && ( !veh->get_items( cargopart ).empty() ); - if( can_pickup ) { - actions.insert( ACTION_PICKUP ); - } + const int cargopart = veh->part_with_feature( veh_part, "CARGO", true ); + if( cargopart >= 0 && ( !veh->get_items( cargopart ).empty() ) ) { + actions.insert( ACTION_PICKUP ); } } } @@ -3484,10 +3481,14 @@ template<> SDL_Color color_loader::from_rgb( const int r, const int g, const int b ) { SDL_Color result; - result.b = b; //Blue - result.g = g; //Green - result.r = r; //Red - //result.a=0;//The Alpha, is not used, so just set it to 0 + //Blue + result.b = b; + //Green + result.g = g; + //Red + result.r = r; + //The Alpha, is not used, so just set it to 0 + //result.a = 0; return result; } @@ -3586,6 +3587,9 @@ cata::optional input_context::get_coordinates( const catacurses::windo // map font (if any) might differ from standard font fw = map_font->fontwidth; fh = map_font->fontheight; + } else if( overmap_font && capture_win == g->w_overmap ) { + fw = overmap_font->fontwidth; + fh = overmap_font->fontheight; } // multiplied by the user's specified scaling factor regardless of whether tiles are in use @@ -3607,6 +3611,13 @@ cata::optional input_context::get_coordinates( const catacurses::windo return cata::nullopt; } + int view_offset_x = 0; + int view_offset_y = 0; + if( capture_win == g->w_terrain ) { + view_offset_x = g->ter_view_x; + view_offset_y = g->ter_view_y; + } + int x, y; if( tile_iso && use_tiles ) { const int screen_column = round( static_cast( coordinate_x - win_left - ( ( @@ -3615,14 +3626,14 @@ cata::optional input_context::get_coordinates( const catacurses::windo ( win_bottom - win_top ) / 2 + win_top ) / ( fw / 4 ) ); const int selected_x = ( screen_column - screen_row ) / 2; const int selected_y = ( screen_row + screen_column ) / 2; - x = g->ter_view_x + selected_x; - y = g->ter_view_y + selected_y; + x = view_offset_x + selected_x; + y = view_offset_y + selected_y; } else { const int selected_column = ( coordinate_x - win_left ) / fw; const int selected_row = ( coordinate_y - win_top ) / fh; - x = g->ter_view_x - ( ( capture_win->width / 2 ) - selected_column ); - y = g->ter_view_y - ( ( capture_win->height / 2 ) - selected_row ); + x = view_offset_x + selected_column - capture_win->width / 2; + y = view_offset_y + selected_row - capture_win->height / 2; } return tripoint( x, y, g->get_levz() ); @@ -3838,4 +3849,35 @@ SDL_Color cursesColorToSDL( const nc_color &color ) return windowsPalette[palette_index]; } +/** Saves a screenshot of the current viewport, as a PNG file, to the given location. +* @param file_path: A full path to the file where the screenshot should be saved. +* @returns `true` if the screenshot generation was successful, `false` otherwise. +*/ +bool save_screenshot( const std::string &file_path ) +{ + // Note: the viewport is returned by SDL and we don't have to manage its lifetime. + SDL_Rect viewport; + + // Get the viewport size (width and heigth of the screen) + SDL_RenderGetViewport( renderer.get(), &viewport ); + + // Create SDL_Surface with depth of 32 bits (note: using zeros for the RGB masks sets a default value, based on the depth; Alpha mask will be 0). + SDL_Surface_Ptr surface = CreateRGBSurface( 0, viewport.w, viewport.h, 32, 0, 0, 0, 0 ); + + // Get data from SDL_Renderer and save them into surface + if( printErrorIf( SDL_RenderReadPixels( renderer.get(), nullptr, surface->format->format, + surface->pixels, surface->pitch ) != 0, + "save_screenshot: cannot read data from SDL_Renderer." ) ) { + return false; + } + + // Save screenshot as PNG file + if( printErrorIf( IMG_SavePNG( surface.get(), file_path.c_str() ) != 0, + std::string( "save_screenshot: cannot save screenshot file: " + file_path ).c_str() ) ) { + return false; + } + + return true; +} + #endif // TILES diff --git a/src/skill.cpp b/src/skill.cpp index 05c154191f6ea..e349ec5b9c3aa 100644 --- a/src/skill.cpp +++ b/src/skill.cpp @@ -1,6 +1,6 @@ #include "skill.h" -#include +#include #include #include #include @@ -319,8 +319,8 @@ bool SkillLevelMap::has_recipe_requirements( const recipe &rec ) const return exceeds_recipe_requirements( rec ) >= 0; } -//Actually take the difference in barter skill between the two parties involved -//Caps at 200% when you are 5 levels ahead, int comparison is handled in npctalk.cpp +// Actually take the difference in barter skill between the two parties involved +// Caps at 200% when you are 5 levels ahead, int comparison is handled in npctalk.cpp double price_adjustment( int barter_skill ) { if( barter_skill <= 0 ) { @@ -339,6 +339,7 @@ double price_adjustment( int barter_skill ) case 4: return 1.65; default: - return 1.0;//should never occur + // Should never occur + return 1.0; } } diff --git a/src/skill.h b/src/skill.h index e671cc8759c26..2c3282bf9b5c5 100644 --- a/src/skill.h +++ b/src/skill.h @@ -10,16 +10,14 @@ #include "calendar.h" #include "string_id.h" +#include "type_id.h" class JsonObject; class JsonIn; class JsonOut; -class Skill; class recipe; class item; -using skill_id = string_id; - class Skill { friend class string_id; diff --git a/src/sounds.cpp b/src/sounds.cpp index 329edd5ae0beb..0a1b9bf5ae798 100644 --- a/src/sounds.cpp +++ b/src/sounds.cpp @@ -1,6 +1,6 @@ #include "sounds.h" -#include +#include #include #include #include @@ -22,7 +22,6 @@ #include "map_iterator.h" #include "messages.h" #include "monster.h" -#include "mtype.h" #include "npc.h" #include "overmapbuffer.h" #include "player.h" @@ -31,7 +30,6 @@ #include "weather.h" #include "bodypart.h" #include "calendar.h" -#include "character.h" #include "creature.h" #include "game_constants.h" #include "mapdata.h" @@ -41,6 +39,10 @@ #include "units.h" #include "material.h" #include "pldata.h" +#include "vehicle.h" +#include "vpart_position.h" +#include "veh_type.h" +#include "type_id.h" #if defined(SDL_SOUND) # if defined(_MSC_VER) && defined(USE_VCPKG) @@ -58,11 +60,15 @@ weather_type previous_weather; int prev_hostiles = 0; +int previous_speed = 0; +int previous_gear = 0; bool audio_muted = false; float g_sfx_volume_multiplier = 1; auto start_sfx_timestamp = std::chrono::high_resolution_clock::now(); auto end_sfx_timestamp = std::chrono::high_resolution_clock::now(); auto sfx_time = end_sfx_timestamp - start_sfx_timestamp; +activity_id act; +std::pair engine_external_id_and_variant; const efftype_id effect_alarm_clock( "alarm_clock" ); const efftype_id effect_deaf( "deaf" ); @@ -72,6 +78,9 @@ const efftype_id effect_slept_through_alarm( "slept_through_alarm" ); static const trait_id trait_HEAVYSLEEPER2( "HEAVYSLEEPER2" ); static const trait_id trait_HEAVYSLEEPER( "HEAVYSLEEPER" ); +static const itype_id fuel_type_muscle( "muscle" ); +static const itype_id fuel_type_wind( "wind" ); +static const itype_id fuel_type_battery( "battery" ); struct sound_event { int volume; @@ -106,7 +115,7 @@ void sounds::ambient_sound( const tripoint &p, int vol, sound_t category, sound( p, vol, category, description, true ); } -void sounds::sound( const tripoint &p, int vol, sound_t category, std::string description, +void sounds::sound( const tripoint &p, int vol, sound_t category, const std::string &description, bool ambient, const std::string &id, const std::string &variant ) { if( vol < 0 ) { @@ -490,10 +499,6 @@ std::string sounds::sound_at( const tripoint &location ) #if defined(SDL_SOUND) -bool is_underground( const tripoint &p ) -{ - return p.z < 0; -} void sfx::fade_audio_group( int tag, int duration ) { @@ -517,6 +522,218 @@ void sfx::stop_sound_effect_fade( int channel, int duration ) } } +int sfx::set_channel_volume( int channel, int volume ) +{ + if( !Mix_Playing( channel ) ) { + return -1; + } + if( Mix_FadingChannel( channel ) != MIX_NO_FADING ) { + return -1; + } + return Mix_Volume( channel, volume ); +} + +void sfx::do_vehicle_engine_sfx() +{ + /** Channel Assignments: + 23: engine working internal + **/ + if( !g->u.in_vehicle ) { + fade_audio_channel( 23, 300 ); + add_msg( m_debug, "STOP 23, OUT OF CAR" ); + return; + } + if( g->u.in_sleep_state() && !audio_muted ) { + fade_audio_channel( -1, 300 ); + audio_muted = true; + return; + } else if( g->u.in_sleep_state() && audio_muted ) { + return; + } + + vehicle *veh = &g->m.veh_at( g->u.pos() )->vehicle(); + if( !veh->engine_on ) { + fade_audio_channel( 23, 100 ); + add_msg( m_debug, "STOP 23" ); + return; + } + + std::pair id_and_variant; + + for( size_t e = 0; e < veh->engines.size(); ++e ) { + if( veh->is_engine_on( e ) ) { + if( sfx::has_variant_sound( "engine_working", + veh->part_info( veh->engines[ e ] ).get_id().str() ) ) { + id_and_variant = std::make_pair( "engine_working_internal", + veh->part_info( veh->engines[ e ] ).get_id().str() ); + } else if( veh->is_engine_type( e, fuel_type_muscle ) ) { + id_and_variant = std::make_pair( "engine_working_internal", "muscle" ); + } else if( veh->is_engine_type( e, fuel_type_wind ) ) { + id_and_variant = std::make_pair( "engine_working_internal", "wind" ); + } else if( veh->is_engine_type( e, fuel_type_battery ) ) { + id_and_variant = std::make_pair( "engine_working_internal", "electric" ); + } else { + id_and_variant = std::make_pair( "engine_working_internal", "combustion" ); + } + } + } + + if( !is_channel_playing( 23 ) ) { + play_ambient_variant_sound( id_and_variant.first, id_and_variant.second, + sfx::get_heard_volume( g->u.pos() ), 23, 1000 ); + add_msg( m_debug, "START %s %s", id_and_variant.first, id_and_variant.second ); + } else { + add_msg( m_debug, "PLAYING" ); + } + int current_speed = veh->velocity; + bool in_reverse = false; + if( current_speed <= -1 ) { + current_speed = current_speed * -1; + in_reverse = true; + } + float pitch = 1.0f; + int safe_speed = veh->safe_velocity(); + int current_gear; + if( in_reverse == true ) { + current_gear = -1; + } else if( current_speed == 0 ) { + current_gear = 0; + } else if( current_speed > 0 && current_speed <= safe_speed / 12 ) { + current_gear = 1; + } else if( current_speed > safe_speed / 12 && current_speed <= safe_speed / 5 ) { + current_gear = 2; + } else if( current_speed > safe_speed / 5 && current_speed <= safe_speed / 4 ) { + current_gear = 3; + } else if( current_speed > safe_speed / 4 && current_speed <= safe_speed / 3 ) { + current_gear = 4; + } else if( current_speed > safe_speed / 5 && current_speed <= safe_speed / 4 ) { + current_gear = 5; + } else { + current_gear = 6; + } + if( veh->has_engine_type( fuel_type_muscle, true ) || + veh->has_engine_type( fuel_type_wind, true ) ) { + current_gear = previous_gear; + } + + if( current_gear > previous_gear ) { + play_variant_sound_pitch( "vehicle", "gear_shift", get_heard_volume( g->u.pos() ), 0, 0.8 ); + add_msg( m_debug, "GEAR UP" ); + } else if( current_gear < previous_gear ) { + play_variant_sound_pitch( "vehicle", "gear_shift", get_heard_volume( g->u.pos() ), 0, 1.2 ); + add_msg( m_debug, "GEAR DOWN" ); + } + if( ( safe_speed != 0 ) ) { + if( current_gear == 0 ) { + pitch = 1.0f; + } else if( current_gear == -1 ) { + pitch = 1.2f; + } else { + pitch = 1.0f - ( float )current_speed / ( float )safe_speed * 1.0f; + } + } + if( pitch <= 0.5f ) { + pitch = 0.5f; + } + + if( current_speed != previous_speed ) { + Mix_HaltChannel( 23 ); + add_msg( m_debug, "STOP speed %d =/= %d", current_speed, previous_speed ); + play_ambient_variant_sound( id_and_variant.first, id_and_variant.second, + sfx::get_heard_volume( g->u.pos() ), 23, 1000, pitch ); + add_msg( m_debug, string_format( "PITCH %f", pitch ) ); + } + previous_speed = current_speed; + previous_gear = current_gear; +} + +void sfx::do_vehicle_exterior_engine_sfx() +{ + + /** Channel Assignments: + 22: engine working external + **/ + + // early bail-outs for efficiency + if( g->u.in_vehicle ) { + fade_audio_channel( 22, 300 ); + add_msg( m_debug, "STOP 22, IN CAR" ); + return; + } + if( g->u.in_sleep_state() && !audio_muted ) { + fade_audio_channel( -1, 300 ); + audio_muted = true; + return; + } else if( g->u.in_sleep_state() && audio_muted ) { + return; + } + + VehicleList vehs = g->m.get_vehicles(); + unsigned char noise_factor = 0; + unsigned char vol = 0; + vehicle *veh = nullptr; + + for( wrapped_vehicle vehicle : vehs ) { + if( vehicle.v->vehicle_noise > 0 && + vehicle.v->vehicle_noise - rl_dist( g->u.pos(), vehicle.v->global_pos3() ) > noise_factor ) { + + noise_factor = vehicle.v->vehicle_noise - rl_dist( g->u.pos(), vehicle.v->global_pos3() ); + veh = vehicle.v; + } + } + if( !noise_factor || !veh ) { + fade_audio_channel( 22, 300 ); + add_msg( m_debug, "STOP 22, NO NOISE" ); + return; + } + + vol = MIX_MAX_VOLUME * noise_factor / veh->vehicle_noise; + std::pair id_and_variant; + + for( size_t e = 0; e < veh->engines.size(); ++e ) { + if( veh->is_engine_on( e ) ) { + if( sfx::has_variant_sound( "engine_working_exterior", + veh->part_info( veh->engines[ e ] ).get_id().str() ) ) { + id_and_variant = std::make_pair( "engine_working_external", + veh->part_info( veh->engines[ e ] ).get_id().str() ); + } else if( veh->is_engine_type( e, fuel_type_muscle ) ) { + id_and_variant = std::make_pair( "engine_working_external", "muscle" ); + } else if( veh->is_engine_type( e, fuel_type_wind ) ) { + id_and_variant = std::make_pair( "engine_working_external", "wind" ); + } else if( veh->is_engine_type( e, fuel_type_battery ) ) { + id_and_variant = std::make_pair( "engine_working_external", "electric" ); + } else { + id_and_variant = std::make_pair( "engine_working_external", "combustion" ); + } + } + } + + if( is_channel_playing( 22 ) ) { + if( engine_external_id_and_variant == id_and_variant ) { + Mix_SetPosition( 22, get_heard_angle( veh->global_pos3() ), 0 ); + set_channel_volume( 22, vol ); + add_msg( m_debug, "PLAYING, vol: ex:%d true:%d", vol, Mix_Volume( 22, -1 ) ); + } else { + engine_external_id_and_variant = id_and_variant; + Mix_HaltChannel( 22 ); + add_msg( m_debug, "STOP, change id/var" ); + play_ambient_variant_sound( id_and_variant.first, id_and_variant.second, 128, 22, 0 ); + Mix_SetPosition( 22, get_heard_angle( veh->global_pos3() ), 0 ); + set_channel_volume( 22, vol ); + add_msg( m_debug, "START22 %s %s vol: %d", id_and_variant.first, id_and_variant.second, + Mix_Volume( 22, -1 ) ); + } + } else { + play_ambient_variant_sound( id_and_variant.first, id_and_variant.second, 128, 22, 0 ); + add_msg( m_debug, "Vol: %d %d", vol, Mix_Volume( 22, -1 ) ); + Mix_SetPosition( 22, get_heard_angle( veh->global_pos3() ), 0 ); + add_msg( m_debug, "Vol: %d %d", vol, Mix_Volume( 22, -1 ) ); + set_channel_volume( 22, vol ); + add_msg( m_debug, "START22 NEW %s %s vol: ex:%d true:%d", id_and_variant.first, + id_and_variant.second, vol, Mix_Volume( 22, -1 ) ); + } +} + void sfx::do_ambient() { /* Channel assignments: @@ -541,6 +758,9 @@ void sfx::do_ambient() 18: Idle chainsaw 19: Chainsaw theme 20: Outdoor blizzard + 21: Player activities + 22: Exterior engine sound + 23: Interior engine sound Group Assignments: 1: SFX related to weather 2: SFX related to time of day @@ -557,7 +777,7 @@ void sfx::do_ambient() audio_muted = false; const bool is_deaf = g->u.is_deaf(); const int heard_volume = get_heard_volume( g->u.pos() ); - const bool is_underground = ::is_underground( g->u.pos() ); + const bool is_underground = g->u.pos().z < 0; const bool is_sheltered = g->is_sheltered( g->u.pos() ); const bool weather_changed = g->weather != previous_weather; // Step in at night time / we are not indoors @@ -1080,6 +1300,10 @@ void sfx::do_footstep() play_variant_sound( "plmove", "walk_barefoot", heard_volume, 0, 0.8, 1.2 ); start_sfx_timestamp = std::chrono::high_resolution_clock::now(); return; + } else if( sfx::has_variant_sound( "plmove", terrain.str() ) ) { + play_variant_sound( "plmove", terrain.str(), heard_volume, 0, 0.8, 1.2 ); + start_sfx_timestamp = std::chrono::high_resolution_clock::now(); + return; } else if( grass.count( terrain ) > 0 ) { play_variant_sound( "plmove", "walk_grass", heard_volume, 0, 0.8, 1.2 ); start_sfx_timestamp = std::chrono::high_resolution_clock::now(); @@ -1108,27 +1332,43 @@ void sfx::do_footstep() } } -void sfx::do_obstacle() +void sfx::do_obstacle( const std::string &obst ) { int heard_volume = sfx::get_heard_volume( g->u.pos() ); - const auto terrain = g->m.ter( g->u.pos() ).id(); - static const std::set water = { - ter_str_id( "t_water_sh" ), - ter_str_id( "t_water_dp" ), - ter_str_id( "t_water_moving_sh" ), - ter_str_id( "t_water_moving_dp" ), - ter_str_id( "t_swater_sh" ), - ter_str_id( "t_swater_dp" ), - ter_str_id( "t_water_pool" ), - ter_str_id( "t_sewage" ), + //const auto terrain = g->m.ter( g->u.pos() ).id(); + static const std::set water = { + "t_water_sh", + "t_water_dp", + "t_water_moving_sh", + "t_water_moving_dp", + "t_swater_sh", + "t_swater_dp", + "t_water_pool", + "t_sewage", }; - if( water.count( terrain ) > 0 ) { - return; + if( sfx::has_variant_sound( "plmove", obst ) ) { + play_variant_sound( "plmove", obst, heard_volume, 0, 0.8, 1.2 ); + } else if( water.count( obst ) > 0 ) { + play_variant_sound( "plmove", "walk_water", heard_volume, 0, 0.8, 1.2 ); } else { play_variant_sound( "plmove", "clear_obstacle", heard_volume, 0, 0.8, 1.2 ); } } +void sfx::play_activity_sound( const std::string &id, const std::string &variant, int volume ) +{ + if( act != g->u.activity.id() ) { + act = g->u.activity.id(); + play_ambient_variant_sound( id, variant, volume, 21, 0 ); + } +} + +void sfx::end_activity_sounds() +{ + act = activity_id::NULL_ID(); + fade_audio_channel( 21, 2000 ); +} + #else // if defined(SDL_SOUND) /** Dummy implementations for builds without sound */ @@ -1138,7 +1378,10 @@ void sfx::load_sound_effect_preload( JsonObject & ) { } void sfx::load_playlist( JsonObject & ) { } void sfx::play_variant_sound( const std::string &, const std::string &, int, int, float, float ) { } void sfx::play_variant_sound( const std::string &, const std::string &, int ) { } -void sfx::play_ambient_variant_sound( const std::string &, const std::string &, int, int, int ) { } +void sfx::play_ambient_variant_sound( const std::string &, const std::string &, int, int, int, + float ) { } +void sfx::play_activity_sound( const std::string &, const std::string &, int ) { } +void sfx::end_activity_sounds() { } void sfx::generate_gun_sound( const player &, const item & ) { } void sfx::generate_melee_sound( const tripoint &, const tripoint &, bool, bool, const std::string & ) { } @@ -1147,17 +1390,27 @@ void sfx::remove_hearing_loss() { } void sfx::do_projectile_hit( const Creature & ) { } void sfx::do_footstep() { } void sfx::do_danger_music() { } +void sfx::do_vehicle_engine_sfx() { } +void sfx::do_vehicle_exterior_engine_sfx() { } void sfx::do_ambient() { } void sfx::fade_audio_group( int, int ) { } void sfx::fade_audio_channel( int, int ) { } -bool is_channel_playing( int ) +bool sfx::is_channel_playing( int ) +{ + return false; +} +int sfx::set_channel_volume( int, int ) +{ + return 0; +} +bool sfx::has_variant_sound( const std::string &, const std::string & ) { return false; } void sfx::stop_sound_effect_fade( int, int ) { } void sfx::do_player_death_hurt( const player &, bool ) { } void sfx::do_fatigue() { } -void sfx::do_obstacle() { } +void sfx::do_obstacle( const std::string & ) { } /*@}*/ #endif // if defined(SDL_SOUND) diff --git a/src/sounds.h b/src/sounds.h index 0c1d58fc13077..4882431a8d21d 100644 --- a/src/sounds.h +++ b/src/sounds.h @@ -45,7 +45,7 @@ enum class sound_t : int { * @param variant Variant of sound effect given in id * @returns true if the player could hear the sound. */ -void sound( const tripoint &p, int vol, sound_t category, std::string description, +void sound( const tripoint &p, int vol, sound_t category, const std::string &description, bool ambient = false, const std::string &id = "", const std::string &variant = "default" ); /** Functions identical to sound(..., true). */ @@ -79,12 +79,16 @@ namespace sfx void load_sound_effects( JsonObject &jsobj ); void load_sound_effect_preload( JsonObject &jsobj ); void load_playlist( JsonObject &jsobj ); +void play_variant_sound_pitch( const std::string &id, const std::string &variant, int volume, + int angle, + float pitch ); void play_variant_sound( const std::string &id, const std::string &variant, int volume, int angle, - float pitch_mix = 1.0, float pitch_max = 1.0 ); + float pitch_min = 1.0, float pitch_max = 1.0 ); void play_variant_sound( const std::string &id, const std::string &variant, int volume ); void play_ambient_variant_sound( const std::string &id, const std::string &variant, int volume, - int channel, - int duration ); + int channel, int duration, float pitch = 1.0 ); +void play_activity_sound( const std::string &id, const std::string &variant, int volume ); +void end_activity_sounds(); void generate_gun_sound( const player &source_arg, const item &firing ); void generate_melee_sound( const tripoint &source, const tripoint &target, bool hit, bool targ_mon = false, const std::string &material = "flesh" ); @@ -96,13 +100,18 @@ int get_heard_angle( const tripoint &source ); void do_footstep(); void do_danger_music(); void do_ambient(); +void do_vehicle_engine_sfx(); +void do_vehicle_exterior_engine_sfx(); void fade_audio_group( int tag, int duration ); void fade_audio_channel( int tag, int duration ); bool is_channel_playing( int channel ); +bool has_variant_sound( const std::string &id, const std::string &variant ); void stop_sound_effect_fade( int channel, int duration ); +int set_channel_volume( int channel, int volume ); void do_player_death_hurt( const player &target, bool death ); void do_fatigue(); -void do_obstacle(); +// @param obst should be string id of obstacle terrain or vehicle part +void do_obstacle( const std::string &obst = "" ); } #endif diff --git a/src/start_location.cpp b/src/start_location.cpp index 13d39a7b86cf1..9d62d5058c476 100644 --- a/src/start_location.cpp +++ b/src/start_location.cpp @@ -1,6 +1,6 @@ #include "start_location.h" -#include +#include #include #include #include @@ -21,12 +21,9 @@ #include "calendar.h" #include "game_constants.h" #include "int_id.h" -#include "mapgen.h" #include "pldata.h" #include "rng.h" #include "translations.h" -#include "mongroup.h" -#include "mtype.h" class item; diff --git a/src/start_location.h b/src/start_location.h index 0b2be8f2d7f82..02fceed370ef9 100644 --- a/src/start_location.h +++ b/src/start_location.h @@ -2,12 +2,13 @@ #ifndef START_LOCATION_H #define START_LOCATION_H -#include +#include #include #include #include #include "string_id.h" +#include "type_id.h" class tinymap; class player; @@ -15,9 +16,6 @@ class JsonObject; struct tripoint; template class generic_factory; -struct MonsterGroup; - -using mongroup_id = string_id; class start_location { diff --git a/src/stomach.cpp b/src/stomach.cpp index b45582820bad4..6c3fc8a1f5704 100644 --- a/src/stomach.cpp +++ b/src/stomach.cpp @@ -14,10 +14,7 @@ #include "item.h" #include "itype.h" #include "optional.h" -#include "pldata.h" #include "rng.h" -#include "mtype.h" - stomach_contents::stomach_contents() = default; @@ -45,7 +42,7 @@ void stomach_contents::serialize( JsonOut &json ) const json.end_object(); } -units::volume string_to_ml( std::string str ) +units::volume string_to_ml( const std::string &str ) { return units::from_milliliter( std::stoi( str.substr( 0, str.size() - 3 ) ) ); } @@ -105,7 +102,7 @@ bool stomach_contents::store_absorbed( player &p ) return absorbed; } -void stomach_contents::bowel_movement( stomach_pass_rates rates ) +void stomach_contents::bowel_movement( const stomach_pass_rates &rates ) { int cal_rate = static_cast( round( calories * rates.percent_kcal ) ); cal_rate = clamp( cal_rate, std::min( rates.min_kcal, calories - calories_absorbed ), @@ -164,7 +161,7 @@ void stomach_contents::bowel_movement() bowel_movement( rates ); } -void stomach_contents::bowel_movement( stomach_pass_rates rates, stomach_contents &move_to ) +void stomach_contents::bowel_movement( const stomach_pass_rates &rates, stomach_contents &move_to ) { int cal_rate = static_cast( round( calories * rates.percent_kcal ) ); cal_rate = clamp( cal_rate, std::min( rates.min_kcal, calories - calories_absorbed ), @@ -281,7 +278,7 @@ bool stomach_contents::absorb_vitamin( std::pair vit ) return absorb_vitamin( vit.first, vit.second ); } -bool stomach_contents::absorb_vitamins( std::map vitamins ) +bool stomach_contents::absorb_vitamins( const std::map &vitamins ) { bool absorbed = false; for( const std::pair vit : vitamins ) { @@ -320,7 +317,8 @@ stomach_pass_rates stomach_contents::get_pass_rates( bool stomach ) return rates; } -stomach_absorb_rates stomach_contents::get_absorb_rates( bool stomach, needs_rates metabolic_rates ) +stomach_absorb_rates stomach_contents::get_absorb_rates( bool stomach, + const needs_rates &metabolic_rates ) { stomach_absorb_rates rates; if( !stomach ) { diff --git a/src/stomach.h b/src/stomach.h index 4e65d40255746..8e93f79566c9d 100644 --- a/src/stomach.h +++ b/src/stomach.h @@ -3,19 +3,16 @@ #include #include -#include "string_id.h" #include "units.h" #include "calendar.h" +#include "type_id.h" struct needs_rates; class player; -class vitamin; class JsonIn; class JsonOut; class item; -using vitamin_id = string_id; - // how much the stomach_contents passes // based on 30 minute increments struct stomach_pass_rates { @@ -49,10 +46,10 @@ class stomach_contents void bowel_movement(); // empties contents equal to amount as ratio // amount ranges from 0 to 1 - void bowel_movement( stomach_pass_rates rates ); + void bowel_movement( const stomach_pass_rates &rates ); // moves @rates contents to other stomach_contents // amount ranges from 0 to 1 - void bowel_movement( stomach_pass_rates rates, stomach_contents &move_to ); + void bowel_movement( const stomach_pass_rates &rates, stomach_contents &move_to ); // turns an item into stomach contents // will still add contents if past maximum volume. @@ -72,7 +69,7 @@ class stomach_contents stomach_pass_rates get_pass_rates( bool stomach ); // gets the absorption rates for kcal and vitamins // stomach == true, guts == false - stomach_absorb_rates get_absorb_rates( bool stomach, needs_rates metabolic_rates ); + stomach_absorb_rates get_absorb_rates( bool stomach, const needs_rates &metabolic_rates ); int get_calories() const; int get_calories_absorbed() const; @@ -147,6 +144,6 @@ class stomach_contents // absorbs multiple vitamins // does not add it to player vitamins yet // returns true if any vitamins are absorbed - bool absorb_vitamins( std::map vitamins ); + bool absorb_vitamins( const std::map &vitamins ); }; diff --git a/src/string_formatter.cpp b/src/string_formatter.cpp index a821c760419fb..bdcc71a05284c 100644 --- a/src/string_formatter.cpp +++ b/src/string_formatter.cpp @@ -1,6 +1,6 @@ #include "string_formatter.h" -#include +#include #include #include diff --git a/src/string_formatter.h b/src/string_formatter.h index deffc13229f6b..5c54671750ce7 100644 --- a/src/string_formatter.h +++ b/src/string_formatter.h @@ -2,7 +2,7 @@ #ifndef STRING_FORMATTER_H #define STRING_FORMATTER_H -#include +#include #include #include #include diff --git a/src/string_id.h b/src/string_id.h index c8eddfe310fbf..45db3fd3cfd73 100644 --- a/src/string_id.h +++ b/src/string_id.h @@ -32,9 +32,13 @@ class int_id; * \endcode * The types mtype_id and itype_id declared here are separate, the compiler will not * allow assignment / comparison of mtype_id and itype_id. - * Note that for this to work, the template parameter type does note even need to be - * known when the string_id is used. In fact, it does not even need to be defined at all, - * a declaration is just enough. + * Note that a forward declaration is sufficient for the template parameter type. + * + * If an id is used locally in just one header & source file, then feel free to + * define it in those files. If it is used more widely (like mtype_id), then + * please define it in type_id.h, a central light-weight header that defines all ids + * people might want to use. This prevents duplicate definitions in many + * files. */ template class string_id diff --git a/src/string_input_popup.cpp b/src/string_input_popup.cpp index f3dbb8853939e..2a71ce6ac6cd2 100644 --- a/src/string_input_popup.cpp +++ b/src/string_input_popup.cpp @@ -1,6 +1,6 @@ #include "string_input_popup.h" -#include +#include #include "catacharset.h" #include "compatibility.h" // needed for the workaround for the std::to_string bug in some compilers @@ -238,14 +238,14 @@ void string_input_popup::draw( const utf8_wrapper &ret, const utf8_wrapper &edit } const size_t left_over = ret.substr( 0, a ).display_width() - shift; mvwprintz( w, _starty, _startx + left_over, _cursor_color, "%s", cursor.c_str() ); - start_x_edit = _startx + left_over; + start_x_edit += left_over; } else if( _position == _max_length && _max_length > 0 ) { mvwprintz( w, _starty, _startx + sx, _cursor_color, " " ); - start_x_edit = _startx + sx; + start_x_edit += sx; sx++; // don't override trailing ' ' } else { mvwprintz( w, _starty, _startx + sx, _cursor_color, "_" ); - start_x_edit = _startx + sx; + start_x_edit += sx; sx++; // don't override trailing '_' } if( static_cast( sx ) < scrmax ) { diff --git a/src/string_input_popup.h b/src/string_input_popup.h index 7e0261a584563..a0f814d8b83bd 100644 --- a/src/string_input_popup.h +++ b/src/string_input_popup.h @@ -2,7 +2,7 @@ #ifndef STRING_INPUT_POPUP_H #define STRING_INPUT_POPUP_H -#include +#include #include #include #include diff --git a/src/submap.cpp b/src/submap.cpp index 67dbd319c7ded..63d27b8fb92b0 100644 --- a/src/submap.cpp +++ b/src/submap.cpp @@ -7,7 +7,6 @@ #include "mapdata.h" #include "trap.h" - template void maptile_soa::swap_soa_tile( const point &p1, const point &p2 ) { @@ -32,7 +31,6 @@ void maptile_soa::swap_soa_tile( const point &p, maptile_soa<1, 1> &othe std::swap( rad[p.x][p.y], **other.rad ); } - submap::submap() { constexpr size_t elements = SEEX * SEEY; diff --git a/src/submap.h b/src/submap.h index 46c5a9f580d02..9597ec7501e0e 100644 --- a/src/submap.h +++ b/src/submap.h @@ -2,8 +2,8 @@ #ifndef SUBMAP_H #define SUBMAP_H -#include -#include +#include +#include #include #include #include @@ -15,10 +15,9 @@ #include "computer.h" #include "field.h" #include "game_constants.h" -#include "int_id.h" #include "item.h" -#include "string_id.h" #include "enums.h" +#include "type_id.h" #include "vehicle.h" class JsonIn; @@ -30,12 +29,6 @@ struct trap; struct ter_t; struct furn_t; -using mtype_id = string_id; -using trap_id = int_id; -using ter_id = int_id; -using furn_id = int_id; -using furn_str_id = string_id; - struct spawn_point { point pos; int count; @@ -46,7 +39,7 @@ struct spawn_point { std::string name; spawn_point( const mtype_id &T = mtype_id::NULL_ID(), int C = 0, point P = point_zero, int FAC = -1, int MIS = -1, bool F = false, - std::string N = "NONE" ) : + const std::string &N = "NONE" ) : pos( P ), count( C ), type( T ), faction_id( FAC ), mission_id( MIS ), friendly( F ), name( N ) {} }; diff --git a/src/text_snippets.cpp b/src/text_snippets.cpp index 80ec570de70f5..3adb77c521c23 100644 --- a/src/text_snippets.cpp +++ b/src/text_snippets.cpp @@ -1,6 +1,6 @@ #include "text_snippets.h" -#include +#include #include #include #include diff --git a/src/trait_group.cpp b/src/trait_group.cpp index 37071683d683e..2e204804bdbc4 100644 --- a/src/trait_group.cpp +++ b/src/trait_group.cpp @@ -1,11 +1,12 @@ #include "trait_group.h" -#include +#include #include #include #include #include #include +#include #include "debug.h" #include "json.h" @@ -13,6 +14,7 @@ #include "translations.h" #include "ui.h" #include "compatibility.h" +#include "mutation.h" using namespace trait_group; diff --git a/src/trait_group.h b/src/trait_group.h index 70963008d38cc..6c7a1232f4d64 100644 --- a/src/trait_group.h +++ b/src/trait_group.h @@ -6,9 +6,9 @@ #include #include -#include "mutation.h" #include "string_id.h" #include "int_id.h" +#include "type_id.h" class JsonObject; class JsonIn; diff --git a/src/translations.cpp b/src/translations.cpp index 0068a357857ce..837555927ffa9 100644 --- a/src/translations.cpp +++ b/src/translations.cpp @@ -1,6 +1,6 @@ #include "translations.h" -#include +#include #if defined(LOCALIZE) && defined(__STRICT_ANSI__) #undef __STRICT_ANSI__ // _putenv in minGW need that @@ -20,6 +20,7 @@ #include "json.h" #include "name.h" +#include "output.h" #include "path_info.h" #include "cursesdef.h" @@ -89,6 +90,63 @@ const char *npgettext( const char *const context, const char *const msgid, } } +static bool sanity_checked_genders = false; + +static void sanity_check_genders( const std::vector &language_genders ) +{ + if( sanity_checked_genders ) { + return; + } + sanity_checked_genders = true; + + constexpr std::array all_genders = {{"f", "m", "n"}}; + + for( const std::string &gender : language_genders ) { + if( find( all_genders.begin(), all_genders.end(), gender ) == all_genders.end() ) { + debugmsg( "Unexpected gender '%s' in grammatical gender list for " + "this language", gender ); + } + } +} + +std::string gettext_gendered( const GenderMap &genders, const std::string &msg ) +{ + //~ Space-separated list of grammatical genders. Default should be first. + //~ Use short names and try to be consistent between languages as far as + //~ possible. Current choices are m (male), f (female), n (neuter). + //~ As appropriate we might add e.g. a (animate) or c (common). + //~ New genders must be added to all_genders in lang/extract_json_strings.py + //~ and src/translations.cpp. + //~ The primary purpose of this is for NPC dialogue which might depend on + //~ gender. Only add genders to the extent needed by such translations. + //~ They are likely only needed if they affect the first and second + //~ person. For example, one gender suffices for English even though + //~ third person pronouns differ. + std::string language_genders_s = pgettext( "grammatical gender list", "n" ); + std::vector language_genders = string_split( language_genders_s, ' ' ); + + sanity_check_genders( language_genders ); + + if( language_genders.empty() ) { + language_genders.push_back( "n" ); + } + + std::vector chosen_genders; + for( const auto &subject_genders : genders ) { + std::string chosen_gender = language_genders[0]; // default if no match + for( const std::string &gender : subject_genders.second ) { + if( std::find( language_genders.begin(), language_genders.end(), gender ) != + language_genders.end() ) { + chosen_gender = gender; + break; + } + } + chosen_genders.push_back( subject_genders.first + ":" + chosen_gender ); + } + std::string context = join( chosen_genders, " " ); + return pgettext( context.c_str(), msg.c_str() ); +} + bool isValidLanguage( const std::string &lang ) { const auto languages = get_options().get_option( "USE_LANG" ).getItems(); @@ -218,6 +276,8 @@ void set_language() textdomain( "cataclysm-dda" ); reload_names(); + + sanity_checked_genders = false; } #if defined(MACOSX) diff --git a/src/translations.h b/src/translations.h index 0af1a618bc334..672f85aa7c213 100644 --- a/src/translations.h +++ b/src/translations.h @@ -2,7 +2,9 @@ #ifndef TRANSLATIONS_H #define TRANSLATIONS_H +#include #include +#include #include "optional.h" @@ -48,8 +50,7 @@ inline const char *_( const char *msg ) { return ( msg[0] == '\0' ) ? msg : gettext( msg ); } -const char *_( const std::string &msg ); -inline const char *_( const std::string &msg ) +inline std::string _( const std::string &msg ) { return _( msg.c_str() ); } @@ -73,6 +74,21 @@ const char *npgettext( const char *context, const char *msgid, const char *msgid #define npgettext(STRING0, STRING1, STRING2, COUNT) ngettext(STRING1, STRING2, COUNT) #endif // LOCALIZE + +using GenderMap = std::map>; +/** + * Translation with a gendered context + * + * Similar to pgettext, but the context is a collection of genders. + * @param genders A map where each key is a subject name (a string which should + * make sense to the translator in the context of the line to be translated) + * and the corresponding value is a list of potential genders for that subject. + * The first gender from the list of genders for the current language will be + * chosen for each subject (or the language default if there are no genders in + * common). + */ +std::string gettext_gendered( const GenderMap &genders, const std::string &msg ); + bool isValidLanguage( const std::string &lang ); std::string getLangFromLCID( const int &lcid ); void select_language(); diff --git a/src/trap.cpp b/src/trap.cpp index a4baf8ef85c87..2e490c3e12718 100644 --- a/src/trap.cpp +++ b/src/trap.cpp @@ -15,12 +15,8 @@ #include "translations.h" #include "assign.h" #include "bodypart.h" -#include "creature.h" #include "enums.h" #include "item.h" -#include "itype.h" -#include "mapdata.h" -#include "pldata.h" #include "rng.h" namespace diff --git a/src/trap.h b/src/trap.h index a9b6f060e193b..219deafc4c029 100644 --- a/src/trap.h +++ b/src/trap.h @@ -2,7 +2,7 @@ #ifndef TRAP_H #define TRAP_H -#include +#include #include #include #include @@ -10,19 +10,16 @@ #include "color.h" #include "int_id.h" #include "string_id.h" +#include "type_id.h" #include "units.h" class Creature; class item; class player; class map; -struct trap; struct tripoint; class JsonObject; -using trap_id = int_id; -using trap_str_id = string_id; - namespace trapfunc { // creature is the creature that triggered the trap, diff --git a/src/trapfunc.cpp b/src/trapfunc.cpp index 1bf746ddb2abb..ed2b30d95d99d 100644 --- a/src/trapfunc.cpp +++ b/src/trapfunc.cpp @@ -6,6 +6,7 @@ #include #include "debug.h" +#include "explosion.h" #include "event.h" #include "game.h" #include "map.h" @@ -26,9 +27,8 @@ #include "enums.h" #include "game_constants.h" #include "item.h" -#include "itype.h" #include "player.h" -#include "pldata.h" +#include "int_id.h" const mtype_id mon_blob( "mon_blob" ); const mtype_id mon_shadow( "mon_shadow" ); @@ -73,7 +73,7 @@ void trapfunc::none( Creature *, const tripoint & ) void trapfunc::bubble( Creature *c, const tripoint &p ) { // tiny animals don't trigger bubble wrap - if( c != nullptr && c->get_size() == MS_TINY ) { + if( c != nullptr && ( c->get_size() == MS_TINY || c->is_hallucination() ) ) { return; } if( c != nullptr ) { @@ -82,7 +82,7 @@ void trapfunc::bubble( Creature *c, const tripoint &p ) c->add_memorial_log( pgettext( "memorial_male", "Stepped on bubble wrap." ), pgettext( "memorial_female", "Stepped on bubble wrap." ) ); } - sounds::sound( p, 18, sounds::sound_t::alarm, _( "Pop!" ) ); + sounds::sound( p, 18, sounds::sound_t::alarm, _( "Pop!" ), false, "trap", "bubble_wrap" ); g->m.remove_trap( p ); } @@ -99,10 +99,10 @@ void trapfunc::cot( Creature *c, const tripoint & ) void trapfunc::beartrap( Creature *c, const tripoint &p ) { // tiny animals don't trigger bear traps - if( c != nullptr && c->get_size() == MS_TINY ) { + if( c != nullptr && ( c->get_size() == MS_TINY || c->is_hallucination() ) ) { return; } - sounds::sound( p, 8, sounds::sound_t::combat, _( "SNAP!" ) ); + sounds::sound( p, 8, sounds::sound_t::combat, _( "SNAP!" ), false, "trap", "bear_trap" ); g->m.remove_trap( p ); if( c != nullptr ) { // What got hit? @@ -139,7 +139,7 @@ void trapfunc::beartrap( Creature *c, const tripoint &p ) void trapfunc::board( Creature *c, const tripoint & ) { // tiny animals don't trigger spiked boards, they can squeeze between the nails - if( c != nullptr && c->get_size() == MS_TINY ) { + if( c != nullptr && ( c->get_size() == MS_TINY || c->is_hallucination() ) ) { return; } if( c != nullptr ) { @@ -170,7 +170,7 @@ void trapfunc::board( Creature *c, const tripoint & ) void trapfunc::caltrops( Creature *c, const tripoint & ) { // tiny animals don't trigger caltrops, they can squeeze between them - if( c != nullptr && c->get_size() == MS_TINY ) { + if( c != nullptr && ( c->get_size() == MS_TINY || c->is_hallucination() ) ) { return; } if( c != nullptr ) { @@ -194,7 +194,7 @@ void trapfunc::caltrops( Creature *c, const tripoint & ) void trapfunc::tripwire( Creature *c, const tripoint &p ) { // tiny animals don't trigger tripwires, they just squeeze under it - if( c != nullptr && c->get_size() == MS_TINY ) { + if( c != nullptr && ( c->get_size() == MS_TINY || c->is_hallucination() ) ) { return; } if( c != nullptr ) { @@ -234,6 +234,9 @@ void trapfunc::tripwire( Creature *c, const tripoint &p ) void trapfunc::crossbow( Creature *c, const tripoint &p ) { + if( c != nullptr && c->is_hallucination() ) { + return; + } bool add_bolt = true; if( c != nullptr ) { c->add_msg_player_or_npc( m_neutral, _( "You trigger a crossbow trap!" ), @@ -325,7 +328,11 @@ void trapfunc::crossbow( Creature *c, const tripoint &p ) void trapfunc::shotgun( Creature *c, const tripoint &p ) { - sounds::sound( p, 60, sounds::sound_t::combat, _( "Kerblam!" ) ); + if( c != nullptr && c->is_hallucination() ) { + return; + } + sounds::sound( p, 60, sounds::sound_t::combat, _( "Kerblam!" ), false, "fire_gun", + g->m.tr_at( p ).loadid == tr_shotgun_1 ? "shotgun_s" : "shotgun_d" ); int shots = 1; if( c != nullptr ) { c->add_msg_player_or_npc( m_neutral, _( "You trigger a shotgun trap!" ), @@ -417,6 +424,9 @@ void trapfunc::shotgun( Creature *c, const tripoint &p ) void trapfunc::blade( Creature *c, const tripoint & ) { + if( c != nullptr && c->is_hallucination() ) { + return; + } if( c != nullptr ) { c->add_msg_player_or_npc( m_bad, _( "A blade swings out and hacks your torso!" ), _( "A blade swings out and hacks s torso!" ) ); @@ -432,7 +442,10 @@ void trapfunc::blade( Creature *c, const tripoint & ) void trapfunc::snare_light( Creature *c, const tripoint &p ) { - sounds::sound( p, 2, sounds::sound_t::combat, _( "Snap!" ) ); + if( c != nullptr && c->is_hallucination() ) { + return; + } + sounds::sound( p, 2, sounds::sound_t::combat, _( "Snap!" ), false, "trap", "snare" ); g->m.remove_trap( p ); if( c != nullptr ) { // Determine what gets hit @@ -455,7 +468,10 @@ void trapfunc::snare_light( Creature *c, const tripoint &p ) void trapfunc::snare_heavy( Creature *c, const tripoint &p ) { - sounds::sound( p, 4, sounds::sound_t::combat, _( "Snap!" ) ); + if( c != nullptr && c->is_hallucination() ) { + return; + } + sounds::sound( p, 4, sounds::sound_t::combat, _( "Snap!" ), false, "trap", "snare" ); g->m.remove_trap( p ); if( c != nullptr ) { // Determine what got hit @@ -478,8 +494,6 @@ void trapfunc::snare_heavy( Creature *c, const tripoint &p ) int damage; switch( z->type->size ) { case MS_TINY: - damage = 20; - break; case MS_SMALL: damage = 20; break; @@ -498,7 +512,7 @@ void trapfunc::snare_heavy( Creature *c, const tripoint &p ) void trapfunc::landmine( Creature *c, const tripoint &p ) { // tiny animals are too light to trigger land mines - if( c != nullptr && c->get_size() == MS_TINY ) { + if( c != nullptr && ( c->get_size() == MS_TINY || c->is_hallucination() ) ) { return; } if( c != nullptr ) { @@ -507,26 +521,32 @@ void trapfunc::landmine( Creature *c, const tripoint &p ) c->add_memorial_log( pgettext( "memorial_male", "Stepped on a land mine." ), pgettext( "memorial_female", "Stepped on a land mine." ) ); } - g->explosion( p, 18, 0.5, false, 8 ); + explosion_handler::explosion( p, 18, 0.5, false, 8 ); g->m.remove_trap( p ); } void trapfunc::boobytrap( Creature *c, const tripoint &p ) { + if( c != nullptr && c->is_hallucination() ) { + return; + } if( c != nullptr ) { c->add_msg_player_or_npc( m_bad, _( "You trigger a booby trap!" ), _( " triggers a booby trap!" ) ); c->add_memorial_log( pgettext( "memorial_male", "Triggered a booby trap." ), pgettext( "memorial_female", "Triggered a booby trap." ) ); } - g->explosion( p, 18, 0.6, false, 12 ); + explosion_handler::explosion( p, 18, 0.6, false, 12 ); g->m.remove_trap( p ); } void trapfunc::telepad( Creature *c, const tripoint &p ) { + if( c != nullptr && c->is_hallucination() ) { + return; + } //~ the sound of a telepad functioning - sounds::sound( p, 6, sounds::sound_t::movement, _( "vvrrrRRMM*POP!*" ) ); + sounds::sound( p, 6, sounds::sound_t::movement, _( "vvrrrRRMM*POP!*" ), false, "trap", "teleport" ); if( c != nullptr ) { monster *z = dynamic_cast( c ); // TODO: NPC don't teleport? @@ -566,6 +586,9 @@ void trapfunc::telepad( Creature *c, const tripoint &p ) void trapfunc::goo( Creature *c, const tripoint &p ) { + if( c != nullptr && c->is_hallucination() ) { + return; + } if( c != nullptr ) { c->add_msg_player_or_npc( m_bad, _( "You step in a puddle of thick goo." ), _( " steps in a puddle of thick goo." ) ); @@ -602,7 +625,7 @@ void trapfunc::goo( Creature *c, const tripoint &p ) void trapfunc::dissector( Creature *c, const tripoint &p ) { - if( c == nullptr ) { + if( c != nullptr && c->is_hallucination() ) { return; } @@ -610,35 +633,39 @@ void trapfunc::dissector( Creature *c, const tripoint &p ) if( z != nullptr && z->type->in_species( ROBOT ) ) { //The monster is a robot. So the dissector should not try to dissect the monsters flesh. sounds::sound( p, 4, sounds::sound_t::speech, - _( "BEEPBOOP! Please remove non-organic object." ) ); //Dissector error sound. + _( "BEEPBOOP! Please remove non-organic object." ), false, "speech", + "robot" ); //Dissector error sound. c->add_msg_player_or_npc( m_bad, _( "The dissector lights up, and shuts down." ), _( "The dissector lights up, and shuts down." ) ); return; } //~ the sound of a dissector dissecting - sounds::sound( p, 10, sounds::sound_t::combat, _( "BRZZZAP!" ) ); - c->add_msg_player_or_npc( m_bad, _( "Electrical beams emit from the floor and slice your flesh!" ), - _( "Electrical beams emit from the floor and slice s flesh!" ) ); - c->add_memorial_log( pgettext( "memorial_male", "Stepped into a dissector." ), - pgettext( "memorial_female", "Stepped into a dissector." ) ); - c->deal_damage( nullptr, bp_head, damage_instance( DT_CUT, 15 ) ); - c->deal_damage( nullptr, bp_torso, damage_instance( DT_CUT, 20 ) ); - c->deal_damage( nullptr, bp_arm_r, damage_instance( DT_CUT, 12 ) ); - c->deal_damage( nullptr, bp_arm_l, damage_instance( DT_CUT, 12 ) ); - c->deal_damage( nullptr, bp_hand_r, damage_instance( DT_CUT, 10 ) ); - c->deal_damage( nullptr, bp_hand_l, damage_instance( DT_CUT, 10 ) ); - c->deal_damage( nullptr, bp_leg_r, damage_instance( DT_CUT, 12 ) ); - c->deal_damage( nullptr, bp_leg_r, damage_instance( DT_CUT, 12 ) ); - c->deal_damage( nullptr, bp_foot_l, damage_instance( DT_CUT, 10 ) ); - c->deal_damage( nullptr, bp_foot_r, damage_instance( DT_CUT, 10 ) ); - c->check_dead_state(); + sounds::sound( p, 10, sounds::sound_t::combat, _( "BRZZZAP!" ), false, "trap", "dissector" ); + + if( c != nullptr ) { + c->add_msg_player_or_npc( m_bad, _( "Electrical beams emit from the floor and slice your flesh!" ), + _( "Electrical beams emit from the floor and slice s flesh!" ) ); + c->add_memorial_log( pgettext( "memorial_male", "Stepped into a dissector." ), + pgettext( "memorial_female", "Stepped into a dissector." ) ); + c->deal_damage( nullptr, bp_head, damage_instance( DT_CUT, 15 ) ); + c->deal_damage( nullptr, bp_torso, damage_instance( DT_CUT, 20 ) ); + c->deal_damage( nullptr, bp_arm_r, damage_instance( DT_CUT, 12 ) ); + c->deal_damage( nullptr, bp_arm_l, damage_instance( DT_CUT, 12 ) ); + c->deal_damage( nullptr, bp_hand_r, damage_instance( DT_CUT, 10 ) ); + c->deal_damage( nullptr, bp_hand_l, damage_instance( DT_CUT, 10 ) ); + c->deal_damage( nullptr, bp_leg_r, damage_instance( DT_CUT, 12 ) ); + c->deal_damage( nullptr, bp_leg_r, damage_instance( DT_CUT, 12 ) ); + c->deal_damage( nullptr, bp_foot_l, damage_instance( DT_CUT, 10 ) ); + c->deal_damage( nullptr, bp_foot_r, damage_instance( DT_CUT, 10 ) ); + c->check_dead_state(); + } } void trapfunc::pit( Creature *c, const tripoint &p ) { // tiny animals aren't hurt by falling into pits - if( c != nullptr && c->get_size() == MS_TINY ) { + if( c != nullptr && ( c->get_size() == MS_TINY || c->is_hallucination() ) ) { return; } if( c != nullptr ) { @@ -680,7 +707,7 @@ void trapfunc::pit( Creature *c, const tripoint &p ) void trapfunc::pit_spikes( Creature *c, const tripoint &p ) { // tiny animals aren't hurt by falling into spiked pits - if( c != nullptr && c->get_size() == MS_TINY ) { + if( c != nullptr && ( c->get_size() == MS_TINY || c->is_hallucination() ) ) { return; } if( c != nullptr ) { @@ -758,7 +785,7 @@ void trapfunc::pit_spikes( Creature *c, const tripoint &p ) void trapfunc::pit_glass( Creature *c, const tripoint &p ) { // tiny animals aren't hurt by falling into glass pits - if( c != nullptr && c->get_size() == MS_TINY ) { + if( c != nullptr && ( c->get_size() == MS_TINY || c->is_hallucination() ) ) { return; } if( c != nullptr ) { @@ -839,6 +866,9 @@ void trapfunc::pit_glass( Creature *c, const tripoint &p ) void trapfunc::lava( Creature *c, const tripoint &p ) { + if( c != nullptr && c->is_hallucination() ) { + return; + } if( c != nullptr ) { c->add_msg_player_or_npc( m_bad, _( "The %s burns you horribly!" ), _( "The %s burns !" ), g->m.tername( p ) ); @@ -936,9 +966,13 @@ static bool sinkhole_safety_roll( player *p, const std::string &itemname, const void trapfunc::sinkhole( Creature *c, const tripoint &p ) { + if( c != nullptr && c->is_hallucination() ) { + return; + } player *pl = dynamic_cast( c ); if( pl == nullptr ) { - // TODO: Handle monsters + // TODO: Handle monsters. + // TODO: handle projectile triggering the trap. return; } @@ -972,7 +1006,7 @@ void trapfunc::sinkhole( Creature *c, const tripoint &p ) void trapfunc::ledge( Creature *c, const tripoint &p ) { - if( c == nullptr ) { + if( c == nullptr || c->is_hallucination() ) { return; } @@ -1144,6 +1178,9 @@ void trapfunc::temple_toggle( Creature *c, const tripoint &p ) void trapfunc::glow( Creature *c, const tripoint &p ) { + if( c != nullptr && c->is_hallucination() ) { + return; + } if( c != nullptr ) { monster *z = dynamic_cast( c ); player *n = dynamic_cast( c ); @@ -1153,7 +1190,7 @@ void trapfunc::glow( Creature *c, const tripoint &p ) n->irradiate( rng( 10, 30 ) ); } else if( one_in( 4 ) ) { n->add_msg_if_player( m_bad, _( "A blinding flash strikes you!" ) ); - g->flashbang( p ); + explosion_handler::flashbang( p ); } else { c->add_msg_if_player( _( "Small flashes surround you." ) ); } @@ -1182,7 +1219,7 @@ void trapfunc::hum( Creature * /*c*/, const tripoint &p ) //~ a very loud humming sound sfx = _( "VRMMMMMM" ); } - sounds::sound( p, volume, sounds::sound_t::activity, sfx ); + sounds::sound( p, volume, sounds::sound_t::activity, sfx, false, "humming", "machinery" ); } void trapfunc::shadow( Creature *c, const tripoint &p ) @@ -1217,6 +1254,9 @@ void trapfunc::shadow( Creature *c, const tripoint &p ) void trapfunc::drain( Creature *c, const tripoint & ) { + if( c != nullptr && c->is_hallucination() ) { + return; + } if( c != nullptr ) { c->add_msg_if_player( m_bad, _( "You feel your life force sapping away." ) ); c->add_memorial_log( pgettext( "memorial_male", "Triggered a life-draining trap." ), @@ -1234,8 +1274,11 @@ void trapfunc::drain( Creature *c, const tripoint & ) void trapfunc::snake( Creature *c, const tripoint &p ) { + if( c != nullptr && c->is_hallucination() ) { + return; + } //~ the sound a snake makes - sounds::sound( p, 10, sounds::sound_t::movement, _( "ssssssss" ) ); + sounds::sound( p, 10, sounds::sound_t::movement, _( "ssssssss" ), "misc", "snake_hiss" ); if( one_in( 6 ) ) { g->m.remove_trap( p ); } diff --git a/src/turret.cpp b/src/turret.cpp index 52340344f7f3c..d02ea5bf477bf 100644 --- a/src/turret.cpp +++ b/src/turret.cpp @@ -21,7 +21,6 @@ #include "creature.h" #include "debug.h" #include "optional.h" -#include "mtype.h" static const itype_id fuel_type_battery( "battery" ); const efftype_id effect_on_roof( "on_roof" ); @@ -354,7 +353,7 @@ void vehicle::turrets_set_mode() for( auto &p : turrets ) { menu.addentry( -1, true, MENU_AUTOASSIGN, "%s [%s]", - p->name(), p->base.gun_current_mode().name() ); + p->name(), p->base.gun_current_mode().tname() ); } menu.query(); diff --git a/src/tutorial.cpp b/src/tutorial.cpp index 2d0671f3ba1d3..ba34030314166 100644 --- a/src/tutorial.cpp +++ b/src/tutorial.cpp @@ -1,6 +1,6 @@ #include "tutorial.h" -#include +#include #include #include #include @@ -29,10 +29,9 @@ #include "inventory.h" #include "item.h" #include "item_stack.h" -#include "omdata.h" #include "pldata.h" #include "units.h" -#include "mongroup.h" +#include "type_id.h" const mtype_id mon_zombie( "mon_zombie" ); diff --git a/src/type_id.h b/src/type_id.h new file mode 100644 index 0000000000000..06d4b2b39e63c --- /dev/null +++ b/src/type_id.h @@ -0,0 +1,124 @@ +#pragma once +#ifndef TYPE_ID_H +#define TYPE_ID_H + +#include "int_id.h" +#include "string_id.h" + +class ammunition_type; +using ammotype = string_id; + +struct bionic_data; +using bionic_id = string_id; + +class effect_type; +using efftype_id = string_id; + +class emit; +using emit_id = string_id; + +class fault; +using fault_id = string_id; + +struct furn_t; +using furn_id = int_id; +using furn_str_id = string_id; + +class gun_mode; +using gun_mode_id = string_id; + +class harvest_list; +using harvest_id = string_id; + +class ma_buff; +using mabuff_id = string_id; + +class martialart; +using matype_id = string_id; + +class ma_technique; +using matec_id = string_id; + +class material_type; +using material_id = string_id; + +struct mission_type; +using mission_type_id = string_id; + +struct MOD_INFORMATION; +using mod_id = string_id; + +class monfaction; +using mfaction_id = int_id; +using mfaction_str_id = string_id; + +struct MonsterGroup; +using mongroup_id = string_id; + +class morale_type_data; +using morale_type = string_id; + +struct mtype; +using mtype_id = string_id; + +class npc_class; +using npc_class_id = string_id; + +struct oter_t; +using oter_id = int_id; +using oter_str_id = string_id; + +class recipe; +using recipe_id = string_id; + +struct requirement_data; +using requirement_id = string_id; + +class Skill; +using skill_id = string_id; + +struct species_type; +using species_id = string_id; + +class spell_type; +using spell_id = string_id; + +class start_location; +using start_location_id = string_id; + +struct ter_t; +using ter_id = int_id; +using ter_str_id = string_id; + +class Trait_group; +namespace trait_group +{ +using Trait_group_tag = string_id; +} + +struct trap; +using trap_id = int_id; +using trap_str_id = string_id; + +struct mutation_branch; +using trait_id = string_id; + +struct quality; +using quality_id = string_id; + +class VehicleGroup; +using vgroup_id = string_id; + +class vitamin; +using vitamin_id = string_id; + +class vpart_info; +using vpart_id = string_id; + +struct vehicle_prototype; +using vproto_id = string_id; + +class zone_type; +using zone_type_id = string_id; + +#endif // TYPE_ID_H diff --git a/src/ui.cpp b/src/ui.cpp index c39d6412bb4a8..fcb9b01c9d34d 100644 --- a/src/ui.cpp +++ b/src/ui.cpp @@ -1,8 +1,8 @@ #include "ui.h" -#include -#include -#include +#include +#include +#include #include #include #include @@ -143,7 +143,8 @@ void uilist::init() pad_right = 0; // or right desc_enabled = false; // don't show option description by default desc_lines = 6; // default number of lines for description - border = true; // TODO: always true + footer_text.clear(); // takes precedence over per-entry descriptions. + border = true; // TODO: always true. border_color = c_magenta; // border color text_color = c_light_gray; // text color title_color = c_green; // title color @@ -391,8 +392,8 @@ void uilist::setup() if( desc_enabled ) { const int min_width = std::min( TERMX, std::max( w_width, descwidth_final ) ) - 4; const int max_width = TERMX - 4; - int descwidth = find_minimum_fold_width( entries[i].desc, desc_lines, - min_width, max_width ); + int descwidth = find_minimum_fold_width( footer_text.empty() ? entries[i].desc : footer_text, + desc_lines, min_width, max_width ); descwidth += 4; // 2x border + 2x ' ' pad if( descwidth_final < descwidth ) { descwidth_final = descwidth; @@ -470,7 +471,8 @@ void uilist::setup() desc_lines = 0; for( const uilist_entry &ent : entries ) { // -2 for borders, -2 for padding - desc_lines = std::max( desc_lines, foldstring( ent.desc, w_width - 4 ).size() ); + desc_lines = std::max( desc_lines, foldstring( footer_text.empty() ? ent.desc : footer_text, + w_width - 4 ).size() ); } if( desc_lines <= 0 ) { desc_enabled = false; @@ -679,7 +681,7 @@ void uilist::show() if( static_cast( selected ) < entries.size() ) { fold_and_print( window, w_height - desc_lines - 1, 2, w_width - 4, text_color, - entries[selected].desc ); + footer_text.empty() ? entries[selected].desc : footer_text ); } } diff --git a/src/ui.h b/src/ui.h index 7bcfb5f520399..e75b7ec3c3a06 100644 --- a/src/ui.h +++ b/src/ui.h @@ -174,6 +174,7 @@ class uilist: public ui_container std::map keymap; bool desc_enabled; int desc_lines; + std::string footer_text; // basically the same as desc, except it doesn't change based on selection bool border; bool filtering; bool filtering_nocase; diff --git a/src/uistate.h b/src/uistate.h index b08516afdd731..d9044e46d8fd4 100644 --- a/src/uistate.h +++ b/src/uistate.h @@ -9,9 +9,7 @@ #include "enums.h" #include "omdata.h" - -class ammunition_type; -using ammotype = string_id; +#include "type_id.h" class item; diff --git a/src/veh_interact.cpp b/src/veh_interact.cpp index 985060d0639c6..0c384333ed8ff 100644 --- a/src/veh_interact.cpp +++ b/src/veh_interact.cpp @@ -1,6 +1,6 @@ #include "veh_interact.h" -#include +#include #include #include #include @@ -21,6 +21,7 @@ #include "debug.h" #include "fault.h" #include "game.h" +#include "handle_liquid.h" #include "itype.h" #include "map.h" #include "map_selector.h" @@ -49,7 +50,8 @@ #include "tileray.h" #include "units.h" #include "material.h" -#include "pldata.h" +#include "item.h" +#include "string_id.h" static inline const std::string status_color( bool status ) { @@ -1043,7 +1045,7 @@ bool veh_interact::do_repair( std::string &msg ) werase( w_parts ); veh->print_part_list( w_parts, 0, getmaxy( w_parts ) - 1, getmaxx( w_parts ), cpart, - need_repair[pos] ); + need_repair[pos], true ); wrefresh( w_parts ); const std::string action = main_context.handle_input(); @@ -1059,7 +1061,7 @@ bool veh_interact::do_repair( std::string &msg ) } else if( action == "QUIT" ) { werase( w_parts ); - veh->print_part_list( w_parts, 0, getmaxy( w_parts ) - 1, getmaxx( w_parts ), cpart, -1 ); + veh->print_part_list( w_parts, 0, getmaxy( w_parts ) - 1, getmaxx( w_parts ), cpart, -1, true ); wrefresh( w_parts ); werase( w_msg ); wrefresh( w_msg ); @@ -1633,7 +1635,7 @@ bool veh_interact::do_remove( std::string &msg ) while( true ) { //redraw list of parts werase( w_parts ); - veh->print_part_list( w_parts, 0, getmaxy( w_parts ) - 1, getmaxx( w_parts ), cpart, pos ); + veh->print_part_list( w_parts, 0, getmaxy( w_parts ) - 1, getmaxx( w_parts ), cpart, pos, true ); wrefresh( w_parts ); int part = parts_here[ pos ]; @@ -1655,7 +1657,7 @@ bool veh_interact::do_remove( std::string &msg ) break; } else if( action == "QUIT" ) { werase( w_parts ); - veh->print_part_list( w_parts, 0, getmaxy( w_parts ) - 1, getmaxx( w_parts ), cpart, -1 ); + veh->print_part_list( w_parts, 0, getmaxy( w_parts ) - 1, getmaxx( w_parts ), cpart, -1, true ); wrefresh( w_parts ); werase( w_msg ); wrefresh( w_msg ); @@ -1698,7 +1700,7 @@ bool veh_interact::do_siphon( std::string &msg ) const int idx = veh->find_part( base ); item liquid( base.contents.back() ); const int liq_charges = liquid.charges; - if( g->handle_liquid( liquid, nullptr, 1, nullptr, veh, idx ) ) { + if( liquid_handler::handle_liquid( liquid, nullptr, 1, nullptr, veh, idx ) ) { veh->drain( idx, liq_charges - liquid.charges ); } return true; @@ -1932,7 +1934,7 @@ void veh_interact::move_cursor( int dx, int dy, int dstart_at ) special_symbol( sym ) ); wrefresh( w_disp ); werase( w_parts ); - veh->print_part_list( w_parts, 0, getmaxy( w_parts ) - 1, getmaxx( w_parts ), cpart, -1 ); + veh->print_part_list( w_parts, 0, getmaxy( w_parts ) - 1, getmaxx( w_parts ), cpart, -1, true ); wrefresh( w_parts ); werase( w_msg ); @@ -2594,7 +2596,7 @@ void veh_interact::count_durability() return lhs + rhs.base.max_damage(); } ); - int pct = 100 * qty / total; + int pct = total ? 100 * qty / total : 0; if( pct < 5 ) { total_durability_text = _( "like new" ); @@ -2711,7 +2713,7 @@ void act_vehicle_siphon( vehicle *veh ) const int idx = veh->find_part( base ); item liquid( base.contents.back() ); const int liq_charges = liquid.charges; - if( g->handle_liquid( liquid, nullptr, 1, nullptr, veh, idx ) ) { + if( liquid_handler::handle_liquid( liquid, nullptr, 1, nullptr, veh, idx ) ) { veh->drain( idx, liq_charges - liquid.charges ); veh->invalidate_mass(); } diff --git a/src/veh_interact.h b/src/veh_interact.h index d9dea8708706b..1416f5ccddfeb 100644 --- a/src/veh_interact.h +++ b/src/veh_interact.h @@ -2,7 +2,7 @@ #ifndef VEH_INTERACT_H #define VEH_INTERACT_H -#include +#include #include #include #include @@ -14,15 +14,12 @@ #include "input.h" #include "inventory.h" #include "player_activity.h" -#include "string_id.h" -#include "item.h" #include "item_location.h" +#include "type_id.h" -class vpart_info; struct requirement_data; struct tripoint; - -using vpart_id = string_id; +class vpart_info; /** Represents possible return values from the cant_do function. */ enum task_reason { @@ -170,9 +167,6 @@ class veh_interact void count_durability(); - /** Show durability symbol/name as prefix */ - std::string name_with_durability() const; - std::string total_durability_text; nc_color total_durability_color; diff --git a/src/veh_type.cpp b/src/veh_type.cpp index ed6c4211088be..48501c99e1c85 100644 --- a/src/veh_type.cpp +++ b/src/veh_type.cpp @@ -1,7 +1,7 @@ #include "veh_type.h" -#include -#include +#include +#include #include #include #include @@ -97,26 +97,31 @@ static const std::unordered_map vpart_bitflag_map = { "WASHING_MACHINE", VPFLAG_WASHING_MACHINE }, { "FLUIDTANK", VPFLAG_FLUIDTANK }, { "REACTOR", VPFLAG_REACTOR }, + { "RAIL", VPFLAG_RAIL }, }; -static const std::vector> standard_terrain_mod = {{ - { "FLAT", 4 }, { "ROAD", 2 } +static const std::vector> standard_terrain_mod = {{ + { "FLAT", { 0, 4 } }, { "ROAD", { 0, 2 } } } }; -static const std::vector> rigid_terrain_mod = {{ - { "FLAT", 6 }, { "ROAD", 3 } +static const std::vector> rigid_terrain_mod = {{ + { "FLAT", { 0, 6 } }, { "ROAD", { 0, 3 } } } }; -static const std::vector> racing_terrain_mod = {{ - { "FLAT", 5 }, { "ROAD", 2 } +static const std::vector> racing_terrain_mod = {{ + { "FLAT", { 0, 5 } }, { "ROAD", { 0, 2 } } } }; -static const std::vector> off_road_terrain_mod = {{ - { "FLAT", 3 }, { "ROAD", 1 } +static const std::vector> off_road_terrain_mod = {{ + { "FLAT", { 0, 3 } }, { "ROAD", { 0, 1 } } } }; -static const std::vector> treads_terrain_mod = {{ - { "FLAT", 3 } +static const std::vector> treads_terrain_mod = {{ + { "FLAT", { 0, 3 } } + } +}; +static const std::vector> rail_terrain_mod = {{ + { "RAIL", { 2, 8 } } } }; @@ -228,8 +233,10 @@ void vpart_info::load_wheel( cata::optional &whptr, JsonObject &jo } assign( jo, "rolling_resistance", wh_info.rolling_resistance ); assign( jo, "contact_area", wh_info.contact_area ); - wh_info.terrain_mod = standard_terrain_mod; - wh_info.or_rating = 0.5f; + if( !jo.has_member( "copy-from" ) ) { // if flag presented, it is already set + wh_info.terrain_mod = standard_terrain_mod; + wh_info.or_rating = 0.5f; + } if( jo.has_string( "wheel_type" ) ) { const std::string wheel_type = jo.get_string( "wheel_type" ); if( wheel_type == "rigid" ) { @@ -244,6 +251,9 @@ void vpart_info::load_wheel( cata::optional &whptr, JsonObject &jo } else if( wheel_type == "treads" ) { wh_info.terrain_mod = treads_terrain_mod; wh_info.or_rating = 0.9; + } else if( wheel_type == "rail" ) { + wh_info.terrain_mod = rail_terrain_mod; + wh_info.or_rating = 0.05; } } @@ -847,9 +857,9 @@ int vpart_info::wheel_area() const return has_flag( VPFLAG_WHEEL ) ? wheel_info->contact_area : 0; } -std::vector> vpart_info::wheel_terrain_mod() const +std::vector> vpart_info::wheel_terrain_mod() const { - const std::vector> null_map; + const std::vector> null_map; return has_flag( VPFLAG_WHEEL ) ? wheel_info->terrain_mod : null_map; } @@ -921,7 +931,7 @@ void vehicle_prototype::load( JsonObject &jo ) vproto.parts.push_back( pt ); }; - const auto add_part_string = [&]( std::string part, point pos ) { + const auto add_part_string = [&]( const std::string & part, point pos ) { part_def pt; pt.pos = pos; pt.part = vpart_id( part ); @@ -1091,6 +1101,7 @@ void vehicle_prototype::finalize() std::vector vehicle_prototype::get_all() { std::vector result; + result.reserve( vtypes.size() ); for( auto &vp : vtypes ) { result.push_back( vp.first ); } diff --git a/src/veh_type.h b/src/veh_type.h index ccff5b7d2834d..465d26a568df8 100644 --- a/src/veh_type.h +++ b/src/veh_type.h @@ -18,29 +18,15 @@ #include "enums.h" #include "optional.h" #include "string_id.h" +#include "type_id.h" #include "units.h" #include "vehicle.h" +#include "requirements.h" using itype_id = std::string; -class vpart_info; - -using vpart_id = string_id; -struct vehicle_prototype; - -using vproto_id = string_id; class JsonObject; -struct quality; - -using quality_id = string_id; class Character; -struct requirement_data; - -using requirement_id = string_id; - -class Skill; - -using skill_id = string_id; // bitmask backing store of -certain- vpart_info.flags, ones that // won't be going away, are involved in core functionality, and are checked frequently @@ -84,6 +70,7 @@ enum vpart_bitflags : int { VPFLAG_WASHING_MACHINE, VPFLAG_FLUIDTANK, VPFLAG_REACTOR, + VPFLAG_RAIL, NUM_VPFLAGS }; @@ -110,10 +97,16 @@ struct vpslot_engine { std::vector fuel_opts; }; +struct veh_ter_mod { + int movecost; /* movecost for moving through this terrain (overrides current terrain movecost) + * if movecost <= 0 ignore this parameter */ + int penalty; // penalty while not on this terrain (adds to movecost) +}; + struct vpslot_wheel { float rolling_resistance = 1; int contact_area = 1; - std::vector> terrain_mod; + std::vector> terrain_mod; float or_rating; }; @@ -281,7 +274,7 @@ class vpart_info */ float wheel_rolling_resistance() const; int wheel_area() const; - std::vector> wheel_terrain_mod() const; + std::vector> wheel_terrain_mod() const; float wheel_or_rating() const; /** diff --git a/src/veh_utils.h b/src/veh_utils.h index 4dbcffa48b4c6..14891bf588a65 100644 --- a/src/veh_utils.h +++ b/src/veh_utils.h @@ -2,16 +2,13 @@ #ifndef VEH_UTILS_H #define VEH_UTILS_H -#include "string_id.h" +#include "type_id.h" class vehicle; class Character; class vpart_info; struct vehicle_part; -class Skill; -using skill_id = string_id; - namespace veh_utils { /** Calculates xp for interacting with given part. */ diff --git a/src/vehicle.cpp b/src/vehicle.cpp index bfe9c6d0f26b8..3221d0b2fbb5e 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -19,7 +19,9 @@ #include "ammo.h" #include "cata_utility.h" #include "coordinate_conversions.h" +#include "creature.h" #include "debug.h" +#include "explosion.h" #include "game.h" #include "item.h" #include "item_group.h" @@ -38,7 +40,6 @@ #include "veh_type.h" #include "vehicle_selector.h" #include "weather.h" -#include "character.h" #include "field.h" #include "math_defines.h" #include "pimpl.h" @@ -374,6 +375,18 @@ void vehicle::init_state( int init_veh_fuel, int init_veh_status ) pt.enabled = true; } + if( pt.is_reactor() ) { + if( veh_fuel_mult == 100 ) { // Mint condition vehicle + pt.ammo_set( "plut_cell", pt.ammo_capacity() ); + } else if( one_in( 2 ) && veh_fuel_mult > 0 ) { // Randomize charge a bit + pt.ammo_set( "plut_cell", pt.ammo_capacity() * ( veh_fuel_mult + rng( 0, 10 ) ) / 100 ); + } else if( one_in( 2 ) && veh_fuel_mult > 0 ) { + pt.ammo_set( "plut_cell", pt.ammo_capacity() * ( veh_fuel_mult - rng( 0, 10 ) ) / 100 ); + } else { + pt.ammo_set( "plut_cell", pt.ammo_capacity() * veh_fuel_mult / 100 ); + } + } + if( pt.is_battery() ) { if( veh_fuel_mult == 100 ) { // Mint condition vehicle pt.ammo_set( "battery", pt.ammo_capacity() ); @@ -690,9 +703,9 @@ void vehicle::backfire( const int e ) const const int power = part_vpower_w( engines[e], true ); const tripoint pos = global_part_pos3( engines[e] ); //~ backfire sound - sounds::ambient_sound( pos, 40 + power / 10000, sounds::sound_t::movement, - string_format( _( "a loud BANG! from the %s" ), - parts[ engines[ e ] ].name() ) ); + sounds::sound( pos, 40 + power / 10000, sounds::sound_t::movement, + string_format( _( "a loud BANG! from the %s" ), + parts[ engines[ e ] ].name() ), true, "vehicle", "engine_backfire" ); } const vpart_info &vehicle::part_info( int index, bool include_removed ) const @@ -1276,7 +1289,7 @@ int vehicle::install_part( const point &dp, const vehicle_part &new_part ) "REAPER", "PLANTER", "SCOOP", - "SPACE_HEATER" + "SPACE_HEATER", "WATER_PURIFIER", "ROCKWHEEL" } @@ -1799,7 +1812,7 @@ bool vehicle::find_and_split_vehicles( int exclude ) std::queue>> search_queue; - const auto push_neighbor = [&]( int p, std::vector with_p ) { + const auto push_neighbor = [&]( int p, const std::vector &with_p ) { std::pair> data( p, with_p ); search_queue.push( data ); }; @@ -1918,6 +1931,10 @@ bool vehicle::split_vehicles( const std::vector> &new_vehs, new_v_pos3 = global_part_pos3( parts[ split_part0 ] ); mnt_offset = parts[ split_part0 ].mount; new_vehicle = g->m.add_vehicle( vproto_id( "none" ), new_v_pos3, face.dir() ); + if( new_vehicle == nullptr ) { + // the split part was out of the map bounds. + continue; + } new_vehicle->name = name; new_vehicle->move = move; new_vehicle->turn_dir = turn_dir; @@ -2681,6 +2698,21 @@ std::vector vehicle::boarded_parts() const return res; } +std::vector vehicle::get_riders() const +{ + std::vector res; + for( const vpart_reference &vp : get_avail_parts( VPFLAG_BOARDABLE ) ) { + Creature *rider = g->critter_at( vp.pos() ); + if( rider ) { + rider_data r; + r.prt = vp.part_index(); + r.psg = rider; + res.emplace_back( r ); + } + } + return res; +} + player *vehicle::get_passenger( int p ) const { p = part_with_feature( p, VPFLAG_BOARDABLE, false ); @@ -2690,6 +2722,15 @@ player *vehicle::get_passenger( int p ) const return nullptr; } +monster *vehicle::get_pet( int p ) const +{ + p = part_with_feature( p, VPFLAG_BOARDABLE, false ); + if( p >= 0 ) { + return g->critter_at( global_part_pos3( p ), true ); + } + return nullptr; +} + tripoint vehicle::global_pos3() const { return tripoint( smx * SEEX + posx, smy * SEEY + posy, smz ); @@ -2943,7 +2984,15 @@ int vehicle::consumption_per_hour( const itype_id &ftype, int fuel_rate_w ) cons // add 3600 seconds worth of fuel consumption for the engine // HACK - engines consume 1 second worth of fuel per turn, even though a turn is 6 seconds if( vslowdown > 0 ) { - amount_pct += 600 * vslowdown / acceleration( true, target_v ); + int accel = acceleration( true, target_v ); + if( accel == 0 ) { + // FIXME: Long-term plan is to change the fuel consumption + // computation entirely; for now just warn if this would + // otherwise have been division-by-zero + debugmsg( "Vehicle unexpectedly has zero acceleration" ); + } else { + amount_pct += 600 * vslowdown / accel; + } } } int energy_j_per_mL = fuel.fuel_energy() * 1000; @@ -2986,6 +3035,24 @@ bool vehicle::is_moving() const return velocity != 0; } +bool vehicle::can_use_rails() const +{ + // do not allow vehicles without rail wheels or with mixed wheels + bool can_use = !rail_wheelcache.empty() && wheelcache.size() == rail_wheelcache.size(); + if( !can_use ) { + return false; + } + bool is_wheel_on_rail = false; + for( int part_index : rail_wheelcache ) { + // at least one wheel should be on track + if( g->m.has_flag_ter_or_furn( TFLAG_RAIL, global_part_pos3( part_index ) ) ) { + is_wheel_on_rail = true; + break; + } + } + return can_use && is_wheel_on_rail; +} + int vehicle::ground_acceleration( const bool fueled, int at_vel_in_vmi ) const { if( !( engine_on || skidding ) ) { @@ -3219,6 +3286,9 @@ void vehicle::noise_and_smoke( int load, time_duration time ) int part_watts = part_vpower_w( p, true ); double max_stress = static_cast( part_watts / 40000.0 ); double cur_stress = load / 1000.0 * max_stress; + // idle stress = 1.0 resulting in nominal working engine noise = engine_noise_factor() + // and preventing noise = 0 + cur_stress = std::max( cur_stress, 1.0 ); double part_noise = cur_stress * part_info( p ).engine_noise_factor(); if( part_info( p ).has_flag( "E_COMBUSTION" ) ) { @@ -3242,11 +3312,11 @@ void vehicle::noise_and_smoke( int load, time_duration time ) mufflesmoke += j; } part_noise = ( part_noise + max_stress * 3 + 5 ) * muffle; + //add_msg( m_good, "PART NOISE (2nd): %d", static_cast( part_noise ) ); } noise = std::max( noise, part_noise ); // Only the loudest engine counts. } } - if( ( exhaust_part != -1 ) && engine_on && has_engine_type_not( fuel_type_muscle, true ) ) { // No engine, no smoke spew_smoke( mufflesmoke, exhaust_part, bad_filter ? MAX_FIELD_DENSITY : 1 ); @@ -3261,7 +3331,9 @@ void vehicle::noise_and_smoke( int load, time_duration time ) lvl++; } } - sounds::ambient_sound( global_pos3(), noise, sounds::sound_t::movement, sound_msgs[lvl] ); + add_msg( m_debug, "VEH NOISE final: %d", static_cast( noise ) ); + vehicle_noise = static_cast( noise ); + sounds::sound( global_pos3(), noise, sounds::sound_t::movement, sound_msgs[lvl], true ); } int vehicle::wheel_area() const @@ -4531,7 +4603,7 @@ void vehicle::suspend_refresh() void vehicle::enable_refresh() { // force all caches to recalculate - no_refresh = true; + no_refresh = false; mass_dirty = true; mass_center_precalc_dirty = true; mass_center_no_precalc_dirty = true; @@ -4539,7 +4611,6 @@ void vehicle::enable_refresh() coeff_air_dirty = true; coeff_water_dirty = true; coeff_air_changed = true; - no_refresh = false; refresh(); } @@ -4565,11 +4636,15 @@ void vehicle::refresh() relative_parts.clear(); loose_parts.clear(); wheelcache.clear(); + rail_wheelcache.clear(); steering.clear(); speciality.clear(); floating.clear(); alternator_load = 0; extra_drag = 0; + all_wheels_on_one_axis = true; + int first_wheel_y_mount = INT_MAX; + // Used to sort part list so it displays properly when examining struct sort_veh_part_vector { vehicle *veh; @@ -4584,6 +4659,11 @@ void vehicle::refresh() mount_max.x = -123; mount_max.y = -123; + int railwheel_xmin = INT_MAX; + int railwheel_ymin = INT_MAX; + int railwheel_xmax = INT_MIN; + int railwheel_ymax = INT_MIN; + // Main loop over all vehicle parts. for( const vpart_reference &vp : get_all_parts() ) { const size_t p = vp.part_index(); @@ -4644,6 +4724,21 @@ void vehicle::refresh() if( vpi.has_flag( VPFLAG_WHEEL ) ) { wheelcache.push_back( p ); } + if( vpi.has_flag( VPFLAG_WHEEL ) && vpi.has_flag( VPFLAG_RAIL ) ) { + rail_wheelcache.push_back( p ); + if( first_wheel_y_mount == INT_MAX ) { + first_wheel_y_mount = vp.part().mount.y; + } + if( first_wheel_y_mount != vp.part().mount.y ) { + // vehicle have wheels on different axis + all_wheels_on_one_axis = false; + } + + railwheel_xmin = std::min( railwheel_xmin, pt.x ); + railwheel_ymin = std::min( railwheel_ymin, pt.y ); + railwheel_xmax = std::max( railwheel_xmax, pt.x ); + railwheel_ymax = std::max( railwheel_ymax, pt.y ); + } if( vpi.has_flag( "STEERABLE" ) || vpi.has_flag( "TRACKED" ) ) { // TRACKED contributes to steering effectiveness but // (a) doesn't count as a steering axle for install difficulty @@ -4667,6 +4762,9 @@ void vehicle::refresh() } } + rail_wheel_bounding_box.p1 = point( railwheel_xmin, railwheel_ymin ); + rail_wheel_bounding_box.p2 = point( railwheel_xmax, railwheel_ymax ); + // NB: using the _old_ pivot point, don't recalc here, we only do that when moving! precalc_mounts( 0, pivot_rotation[0], pivot_anchor[0] ); check_environmental_effects = true; @@ -5140,7 +5238,7 @@ bool vehicle::explode_fuel( int p, damage_type type ) ( parts[p].ammo_remaining() * data.fuel_size_factor ) ) ); //debugmsg( "damage check dmg=%d pow=%d amount=%d", dmg, pow, parts[p].amount ); - g->explosion( global_part_pos3( p ), pow, 0.7, data.fiery_explosion ); + explosion_handler::explosion( global_part_pos3( p ), pow, 0.7, data.fiery_explosion ); mod_hp( parts[p], 0 - parts[ p ].hp(), DT_HEAT ); parts[p].ammo_unset(); } diff --git a/src/vehicle.h b/src/vehicle.h index 833d7a907383a..edb2cc743f0ae 100644 --- a/src/vehicle.h +++ b/src/vehicle.h @@ -2,8 +2,8 @@ #ifndef VEHICLE_H #define VEHICLE_H -#include -#include +#include +#include #include #include #include @@ -29,12 +29,13 @@ #include "units.h" #include "enums.h" #include "item_location.h" +#include "type_id.h" +class Creature; class nc_color; class player; class npc; class vehicle; -class vpart_info; class vehicle_part_range; class JsonIn; class JsonOut; @@ -43,12 +44,10 @@ class zone_data; struct itype; struct uilist_entry; template class visitable; +class vpart_info; enum vpart_bitflags : int; -using vpart_id = string_id; -struct vehicle_prototype; - -using vproto_id = string_id; +enum ter_bitflags : int; template class vehicle_part_with_feature_range; @@ -63,6 +62,11 @@ extern point cardinal_d[5]; constexpr double rolling_constant_to_variable = 33.33; constexpr float vmiph_per_tile = 400.0f; } +struct rider_data { + Creature *psg = nullptr; + int prt = -1; + bool moved = false; +}; //collision factor for vehicle-vehicle collision; delta_v in mph float get_collision_factor( float delta_v ); @@ -707,7 +711,7 @@ class vehicle void deserialize( JsonIn &jsin ); // Vehicle parts list - all the parts on a single tile int print_part_list( const catacurses::window &win, int y1, int max_y, int width, int p, - int hl = -1 ) const; + int hl = -1, bool detail = false ) const; // Vehicle parts descriptions - descriptions for all the parts on a single tile void print_vparts_descs( const catacurses::window &win, int max_y, int width, int &p, @@ -951,8 +955,13 @@ class vehicle // get a list of part indices where is a passenger inside std::vector boarded_parts() const; + // get a list of part indices and Creature pointers with a rider + std::vector get_riders() const; + // get passenger at part p player *get_passenger( int p ) const; + // get monster on a boardable part at p + monster *get_pet( int p ) const; /** * Get the coordinates (in map squares) of this vehicle, it's the same @@ -1079,6 +1088,10 @@ class vehicle // is the vehicle currently moving? bool is_moving() const; + + // can the vehicle use rails? + bool can_use_rails() const; + // Get maximum ground velocity gained by combined power of all engines. // If fueled == true, then only the engines which the vehicle has fuel for are included int max_ground_velocity( bool fueled = true ) const; @@ -1447,6 +1460,22 @@ class vehicle // check if the vehicle should be falling or is in water void check_falling_or_floating(); + /** Precalculate vehicle turn. Counts wheels that will land on ter_flag_to_check + * new_turn_dir - turn direction to calculate + * falling_only - is vehicle falling + * check_rail_direction - check if vehicle should land on diagonal/not rail tile (use for trucks only) + * ter_flag_to_check - terrain flag vehicle wheel should land on + ** Results: + * &wheels_on_rail - resulting wheels that land on ter_flag_to_check + * &turning_wheels_that_are_one_axis_counter - number of wheels that are on one axis and will land on rail + */ + void precalculate_vehicle_turning( int new_turn_dir, bool check_rail_direction, + const ter_bitflags ter_flag_to_check, int &wheels_on_rail, + int &turning_wheels_that_are_one_axis_counter ) const; + bool allow_auto_turn_on_rails( int &corrected_turn_dir ) const; + bool allow_manual_turn_on_rails( int &corrected_turn_dir ) const; + bool is_wheel_state_correct_to_turn_on_rails( int wheels_on_rail, int wheel_count, + int turning_wheels_that_are_one_axis ) const; /** * Update the submap coordinates smx, smy, and update the tracker info in the overmap * (if enabled). @@ -1494,6 +1523,7 @@ class vehicle std::vector heaters; // List of heater parts std::vector loose_parts; // List of UNMOUNT_ON_MOVE parts std::vector wheelcache; // List of wheels + std::vector rail_wheelcache; // List of rail wheels std::vector steering; // List of STEERABLE parts std::vector speciality; // List of parts that will not be on a vehicle very often, or which only one will be present @@ -1502,7 +1532,9 @@ class vehicle // After fuel consumption, this tracks the remainder of fuel < 1, and applies it the next time. std::map fuel_remainder; active_item_cache active_items; + bool all_wheels_on_one_axis; + bounding_box rail_wheel_bounding_box; bounding_box get_bounding_box(); /** @@ -1595,6 +1627,8 @@ class vehicle time_point last_fluid_check = calendar::time_of_cataclysm; // zone_data positions are outdated and need refreshing bool zones_dirty = true; + // current noise of vehicle (engine working, etc.) + unsigned char vehicle_noise = 0; private: // refresh pivot_cache, clear pivot_dirty diff --git a/src/vehicle_display.cpp b/src/vehicle_display.cpp index fcc4e24fc0191..79602ab0bd7a3 100644 --- a/src/vehicle_display.cpp +++ b/src/vehicle_display.cpp @@ -1,6 +1,6 @@ #include "vehicle.h" // IWYU pragma: associated -#include +#include #include #include #include @@ -18,6 +18,7 @@ #include "translations.h" #include "veh_type.h" #include "vpart_position.h" +#include "units.h" #include "color.h" #include "optional.h" @@ -131,9 +132,10 @@ nc_color vehicle::part_color( const int p, const bool exact ) const * @param width The width of the window. * @param p The index of the part being examined. * @param hl The index of the part to highlight (if any). + * @param detail Whether or not to show detailed contents for fuel components. */ int vehicle::print_part_list( const catacurses::window &win, int y1, const int max_y, int width, - int p, int hl /*= -1*/ ) const + int p, int hl /*= -1*/, bool detail ) const { if( p < 0 || p >= static_cast( parts.size() ) ) { return y1; @@ -152,7 +154,19 @@ int vehicle::print_part_list( const catacurses::window &win, int y1, const int m std::string partname = vp.name(); if( vp.is_fuel_store() && vp.ammo_current() != "null" ) { - partname += string_format( " (%s)", item::nname( vp.ammo_current() ) ); + if( detail ) { + if( vp.ammo_current() == "battery" ) { + partname += string_format( _( " (%s/%s charge)" ), vp.ammo_remaining(), vp.ammo_capacity() ); + } else { + const itype *pt_ammo_cur = item::find_type( vp.ammo_current() ); + auto stack = units::legacy_volume_factor / pt_ammo_cur->stack_size; + partname += string_format( _( " (%.1fL %s)" ), + round_up( units::to_liter( vp.ammo_remaining() * stack ), + 1 ), item::nname( vp.ammo_current() ) ); + } + } else { + partname += string_format( " (%s)", item::nname( vp.ammo_current() ) ); + } } if( part_flag( pl[i], "CARGO" ) ) { diff --git a/src/vehicle_group.cpp b/src/vehicle_group.cpp index 8dea36b9de219..35210223cd22b 100644 --- a/src/vehicle_group.cpp +++ b/src/vehicle_group.cpp @@ -1,6 +1,6 @@ #include "vehicle_group.h" -#include +#include #include #include diff --git a/src/vehicle_group.h b/src/vehicle_group.h index a79189e7cc174..baaa0b41abc3c 100644 --- a/src/vehicle_group.h +++ b/src/vehicle_group.h @@ -11,19 +11,15 @@ #include "optional.h" #include "rng.h" #include "string_id.h" +#include "type_id.h" #include "weighted_list.h" class JsonObject; -class VehicleGroup; class map; - -using vgroup_id = string_id; class VehicleSpawn; +class VehicleGroup; using vspawn_id = string_id; -struct vehicle_prototype; - -using vproto_id = string_id; struct point; extern std::unordered_map vgroups; diff --git a/src/vehicle_move.cpp b/src/vehicle_move.cpp index 1c932e0ae3754..69713e382abef 100644 --- a/src/vehicle_move.cpp +++ b/src/vehicle_move.cpp @@ -9,6 +9,7 @@ #include #include "debug.h" +#include "explosion.h" #include "game.h" #include "item.h" #include "itype.h" @@ -27,8 +28,7 @@ #include "player.h" #include "rng.h" #include "vpart_position.h" -#include "character.h" -#include "mtype.h" +#include "string_id.h" static const std::string part_location_structure( "structure" ); static const itype_id fuel_type_muscle( "muscle" ); @@ -447,6 +447,11 @@ veh_collision vehicle::part_collision( int part, const tripoint &p, return ret; } + // critters on a BOARDABLE part in this vehicle aren't colliding + if( is_body_collision && ovp && ( &ovp->vehicle() == this ) && get_pet( ovp->part_index() ) ) { + return ret; + } + // Damage armor before damaging any other parts // Actually target, not just damage - spiked plating will "hit back", for example const int armor_part = part_with_feature( ret.part, VPFLAG_ARMOR, true ); @@ -496,7 +501,9 @@ veh_collision vehicle::part_collision( int part, const tripoint &p, !( part_with_feature( ret.part, "PROTRUSION", true ) >= 0 && g->m.has_flag_ter_or_furn( "SHORT", p ) ) && // These are bashable, but don't interact with vehicles. - !g->m.has_flag_ter_or_furn( "NOCOLLIDE", p ) ) ) { + !g->m.has_flag_ter_or_furn( "NOCOLLIDE", p ) && + // Do not collide with track tiles if we can use rails + !( g->m.has_flag_ter_or_furn( TFLAG_RAIL, p ) && this->can_use_rails() ) ) ) { // Movecost 2 indicates flat terrain like a floor, no collision there. ret.type = veh_coll_bashable; terrain_collision_data( p, bash_floor, mass2, part_dens, e ); @@ -704,7 +711,7 @@ veh_collision vehicle::part_collision( int part, const tripoint &p, if( part_flag( ret.part, "SHARP" ) ) { critter->bleed(); } else { - sounds::sound( p, 20, sounds::sound_t::combat, snd ); + sounds::sound( p, 20, sounds::sound_t::combat, snd, false, "smash_success", "hit_vehicle" ); } } } else { @@ -720,7 +727,8 @@ veh_collision vehicle::part_collision( int part, const tripoint &p, } } - sounds::sound( p, smashed ? 80 : 50, sounds::sound_t::combat, snd ); + sounds::sound( p, smashed ? 80 : 50, sounds::sound_t::combat, snd, false, "smash_success", + "hit_vehicle" ); } if( smashed && !vert_coll ) { @@ -762,6 +770,8 @@ void vehicle::handle_trap( const tripoint &p, int part ) int shrap = 0; int part_damage = 0; std::string snd; + std::string stype; + std::string variant; // TODO: make trapfuncv? if( t == tr_bubblewrap ) { @@ -770,6 +780,8 @@ void vehicle::handle_trap( const tripoint &p, int part ) } else if( t == tr_beartrap || t == tr_beartrap_buried ) { noise = 8; snd = _( "SNAP!" ); + stype = "trap"; + variant = "bear_trap"; part_damage = 300; g->m.remove_trap( p ); g->m.spawn_item( p, "beartrap" ); @@ -778,11 +790,15 @@ void vehicle::handle_trap( const tripoint &p, int part ) } else if( t == tr_blade ) { noise = 1; snd = _( "Swinnng!" ); + stype = "smash_success"; + variant = "hit_vehicle"; part_damage = 300; } else if( t == tr_crossbow ) { chance = 30; noise = 1; snd = _( "Clank!" ); + stype = "fire_gun"; + variant = "crossbow"; part_damage = 300; g->m.remove_trap( p ); g->m.spawn_item( p, "crossbow" ); @@ -793,14 +809,17 @@ void vehicle::handle_trap( const tripoint &p, int part ) } else if( t == tr_shotgun_2 || t == tr_shotgun_1 ) { noise = 60; snd = _( "Bang!" ); + stype = "fire_gun"; chance = 70; part_damage = 300; if( t == tr_shotgun_2 ) { g->m.trap_set( p, tr_shotgun_1 ); + variant = "shotgun_d"; } else { g->m.remove_trap( p ); g->m.spawn_item( p, "shotgun_s" ); g->m.spawn_item( p, "string_6" ); + variant = "shotgun_s"; } } else if( t == tr_landmine_buried || t == tr_landmine ) { expl = 10; @@ -814,6 +833,8 @@ void vehicle::handle_trap( const tripoint &p, int part ) } else if( t == tr_dissector ) { noise = 10; snd = _( "BRZZZAP!" ); + stype = "trap"; + variant = "dissector"; part_damage = 500; } else if( t == tr_sinkhole || t == tr_pit || t == tr_spike_pit || t == tr_glass_pit ) { part_damage = 500; @@ -836,14 +857,14 @@ void vehicle::handle_trap( const tripoint &p, int part ) } } if( noise > 0 ) { - sounds::sound( p, noise, sounds::sound_t::combat, snd ); + sounds::sound( p, noise, sounds::sound_t::combat, snd, false, stype, variant ); } if( part_damage && chance >= rng( 1, 100 ) ) { // Hit the wheel directly since it ran right over the trap. damage_direct( pwh, part_damage ); } if( expl > 0 ) { - g->explosion( p, expl, 0.5f, false, shrap ); + explosion_handler::explosion( p, expl, 0.5f, false, shrap ); } } @@ -1010,6 +1031,176 @@ float get_collision_factor( const float delta_v ) } } +void vehicle::precalculate_vehicle_turning( int new_turn_dir, bool check_rail_direction, + const ter_bitflags ter_flag_to_check, int &wheels_on_rail, + int &turning_wheels_that_are_one_axis ) const +{ + tileray mdir; // The direction we're moving + mdir.init( new_turn_dir ); // calculate direction after turn + tripoint dp; + bool is_diagonal_movement = new_turn_dir % 90 == 45; + + if( abs( velocity ) >= 20 ) { + mdir.advance( velocity < 0 ? -1 : 1 ); + dp.x = mdir.dx(); + dp.y = mdir.dy(); + } + + // number of wheels that will land on rail + wheels_on_rail = 0; + + // used to count wheels that will land on different axis + int yVal = INT_MAX; + /* + number of wheels that are on one axis and will land on rail + (not sometimes correct, for vehicle with 4 wheels, wheels_on_rail==3 + this can get 1 or 2 depending on position inaxis .wheelcache + */ + turning_wheels_that_are_one_axis = 0; + + for( int part_index : wheelcache ) { + const auto &wheel = parts[ part_index ]; + bool rails_ahead = true; + point wheel_point; + coord_translate( mdir.dir(), this->pivot_point(), wheel.mount, + wheel_point ); + + tripoint wheel_tripoint = global_pos3() + wheel_point; + + // maximum number of incorrect tiles for this type of turn(diagonal or not) + const int allowed_incorrect_tiles_diagonal = 1; + const int allowed_incorrect_tiles_not_diagonal = 2; + int incorrect_tiles_diagonal = 0; + int incorrect_tiles_not_diagonal = 0; + + // check if terrain under the wheel and in direction of moving is rails + for( int try_num = 0; try_num < 3; try_num++ ) { + // advance precalculated wheel position 1 time in direction of moving + wheel_tripoint += dp; + + if( !g->m.has_flag_ter_or_furn( ter_flag_to_check, wheel_tripoint ) ) { + // this tile is not allowed, disallow turn + rails_ahead = false; + break; + } + + // special case for rails + if( check_rail_direction ) { + ter_id terrain_at_wheel = g->m.ter( wheel_tripoint ); + // check is it correct tile to turn into + if( !is_diagonal_movement && + ( terrain_at_wheel == t_railroad_track_d || terrain_at_wheel == t_railroad_track_d1 || + terrain_at_wheel == t_railroad_track_d2 || terrain_at_wheel == t_railroad_track_d_on_tie ) ) { + incorrect_tiles_not_diagonal++; + } else if( is_diagonal_movement && + ( terrain_at_wheel == t_railroad_track || terrain_at_wheel == t_railroad_track_on_tie || + terrain_at_wheel == t_railroad_track_h || terrain_at_wheel == t_railroad_track_v || + terrain_at_wheel == t_railroad_track_h_on_tie || terrain_at_wheel == t_railroad_track_v_on_tie ) ) { + incorrect_tiles_diagonal++; + } + if( incorrect_tiles_diagonal > allowed_incorrect_tiles_diagonal || + incorrect_tiles_not_diagonal > allowed_incorrect_tiles_not_diagonal ) { + rails_ahead = false; + break; + } + } + } + if( rails_ahead ) { // found a wheel that turns correctly on rails + if( yVal == INT_MAX ) { // if wheel that lands on rail still not found + yVal = wheel.mount.y; // store mount point.y of wheel + } + if( yVal == wheel.mount.y ) { + turning_wheels_that_are_one_axis++; + } + wheels_on_rail++; + } + } +} + +// rounds turn_dir to 45*X degree, respecting face_dir +int get_corrected_turn_dir( int turn_dir, int face_dir ) +{ + int corrected_turn_dir = 0; + + // Driver turned vehicle, round angle to 45 deg + if( turn_dir > face_dir && turn_dir < face_dir + 180 ) { + corrected_turn_dir = face_dir + 45; + } else if( turn_dir < face_dir || turn_dir > 270 ) { + corrected_turn_dir = face_dir - 45; + } + if( corrected_turn_dir < 0 ) { + corrected_turn_dir += 360; + } else if( corrected_turn_dir >= 360 ) { + corrected_turn_dir -= 360; + } + return corrected_turn_dir; +} + +bool vehicle::allow_manual_turn_on_rails( int &corrected_turn_dir ) const +{ + bool allow_turn_on_rail = false; + if( turn_dir != face.dir() ) { // driver tried to turn rails vehicle + corrected_turn_dir = get_corrected_turn_dir( turn_dir, face.dir() ); + + int wheels_on_rail, turning_wheels_that_are_one_axis; + precalculate_vehicle_turning( corrected_turn_dir, true, TFLAG_RAIL, wheels_on_rail, + turning_wheels_that_are_one_axis ); + if( is_wheel_state_correct_to_turn_on_rails( wheels_on_rail, rail_wheelcache.size(), + turning_wheels_that_are_one_axis ) ) { + allow_turn_on_rail = true; + } + } + return allow_turn_on_rail; +} + +bool vehicle::allow_auto_turn_on_rails( int &corrected_turn_dir ) const +{ + bool allow_turn_on_rail = false; + if( turn_dir == face.dir() ) { // check if autoturn is possible + // precalculate wheels for every direction + int straight_wheels_on_rail, straight_turning_wheels_that_are_one_axis; + precalculate_vehicle_turning( face.dir(), true, TFLAG_RAIL, straight_wheels_on_rail, + straight_turning_wheels_that_are_one_axis ); + + int left_turn_dir = get_corrected_turn_dir( face.dir() - 45, face.dir() ); + int leftturn_wheels_on_rail, leftturn_turning_wheels_that_are_one_axis; + precalculate_vehicle_turning( left_turn_dir, true, TFLAG_RAIL, leftturn_wheels_on_rail, + leftturn_turning_wheels_that_are_one_axis ); + + int right_turn_dir = get_corrected_turn_dir( face.dir() + 45, face.dir() ); + int rightturn_wheels_on_rail, rightturn_turning_wheels_that_are_one_axis; + precalculate_vehicle_turning( right_turn_dir, true, TFLAG_RAIL, rightturn_wheels_on_rail, + rightturn_turning_wheels_that_are_one_axis ); + + // if bad terrain ahead (landing wheels num is low) + if( straight_wheels_on_rail <= leftturn_wheels_on_rail && + is_wheel_state_correct_to_turn_on_rails( leftturn_wheels_on_rail, rail_wheelcache.size(), + leftturn_turning_wheels_that_are_one_axis ) ) { + allow_turn_on_rail = true; + corrected_turn_dir = left_turn_dir; + } else if( straight_wheels_on_rail <= rightturn_wheels_on_rail && + is_wheel_state_correct_to_turn_on_rails( rightturn_wheels_on_rail, rail_wheelcache.size(), + rightturn_turning_wheels_that_are_one_axis ) ) { + allow_turn_on_rail = true; + corrected_turn_dir = right_turn_dir; + } + } + return allow_turn_on_rail; +} + +bool vehicle::is_wheel_state_correct_to_turn_on_rails( int wheels_on_rail, int wheel_count, + int turning_wheels_that_are_one_axis ) const +{ + return ( wheels_on_rail >= 2 || // minimum wheels to be able to turn (excluding one axis vehicles) + ( wheels_on_rail == 1 && ( wheel_count == 1 || + all_wheels_on_one_axis ) ) ) // for bikes or 1 wheel vehicle + && ( wheels_on_rail != + turning_wheels_that_are_one_axis // wheels that want to turn is not on same axis + || all_wheels_on_one_axis || + ( abs( rail_wheel_bounding_box.p2.x - rail_wheel_bounding_box.p1.x ) < 4 && velocity < 0 ) ); + // allow turn for vehicles with wheel distance < 4 when moving backwards +} + bool vehicle::act_on_map() { const tripoint pt = global_pos3(); @@ -1100,6 +1291,7 @@ bool vehicle::act_on_map() of_turn -= turn_cost; } + bool can_use_rails = this->can_use_rails(); if( one_in( 10 ) ) { bool controlled = false; // It can even be a NPC, but must be at the controls @@ -1114,8 +1306,8 @@ bool vehicle::act_on_map() } // Eventually send it skidding if no control - // But not if it's remotely controlled - if( !controlled && !pl_ctrl && !is_floating ) { + // But not if it's remotely controlled, is in water or can use rails + if( !controlled && !pl_ctrl && !is_floating && !can_use_rails ) { skidding = true; } } @@ -1130,13 +1322,24 @@ bool vehicle::act_on_map() skidding = true; } - // Where do we go + bool allow_turn_on_rail = false; + if( can_use_rails && !falling_only ) { + int corrected_turn_dir; + allow_turn_on_rail = allow_manual_turn_on_rails( corrected_turn_dir ); + if( !allow_turn_on_rail ) { + allow_turn_on_rail = allow_auto_turn_on_rails( corrected_turn_dir ); + } + if( allow_turn_on_rail ) { + turn_dir = corrected_turn_dir; + } + } + tileray mdir; // The direction we're moving if( skidding || should_fall ) { // If skidding, it's the move vector // Same for falling - no air control mdir = move; - } else if( turn_dir != face.dir() ) { + } else if( turn_dir != face.dir() && ( !can_use_rails || allow_turn_on_rail ) ) { // Driver turned vehicle, get turn_dir mdir.init( turn_dir ); } else { @@ -1228,8 +1431,12 @@ float map::vehicle_wheel_traction( const vehicle &veh ) const } for( const auto &terrain_mod : veh.part_info( p ).wheel_terrain_mod() ) { - if( !tr.has_flag( terrain_mod.first ) ) { - move_mod += terrain_mod.second; + if( terrain_mod.second.movecost && terrain_mod.second.movecost > 0 && + tr.has_flag( terrain_mod.first ) ) { + move_mod = terrain_mod.second.movecost; + break; + } else if( terrain_mod.second.penalty && !tr.has_flag( terrain_mod.first ) ) { + move_mod += terrain_mod.second.penalty; break; } } @@ -1241,43 +1448,60 @@ float map::vehicle_wheel_traction( const vehicle &veh ) const int map::shake_vehicle( vehicle &veh, const int velocity_before, const int direction ) { - const tripoint &pt = veh.global_pos3(); const int d_vel = abs( veh.velocity - velocity_before ) / 100; - const std::vector boarded = veh.boarded_parts(); + std::vector riders = veh.get_riders(); int coll_turn = 0; - for( const auto &ps : boarded ) { - player *psg = veh.get_passenger( ps ); - if( psg == nullptr ) { + for( const rider_data &r : riders ) { + const int ps = r.prt; + Creature *rider = r.psg; + if( rider == nullptr ) { debugmsg( "throw passenger: empty passenger at part %d", ps ); continue; } - const tripoint part_pos = pt + veh.parts[ps].precalc[0]; - if( psg->pos() != part_pos ) { + const tripoint part_pos = veh.global_part_pos3( ps ); + if( rider->pos() != part_pos ) { debugmsg( "throw passenger: passenger at %d,%d,%d, part at %d,%d,%d", - psg->posx(), psg->posy(), psg->posz(), part_pos.x, part_pos.y, part_pos.z ); + rider->posx(), rider->posy(), rider->posz(), + part_pos.x, part_pos.y, part_pos.z ); veh.parts[ps].remove_flag( vehicle_part::passenger_flag ); continue; } + player *psg = dynamic_cast( rider ); + monster *pet = dynamic_cast( rider ); + bool throw_from_seat = false; + int move_resist = 1; + if( psg ) { + ///\EFFECT_STR reduces chance of being thrown from your seat when not wearing a seatbelt + move_resist = psg->str_cur * 150 + 500; + } else { + move_resist = std::max( 100, + static_cast( to_kilogram( pet->get_weight() ) * 200 ) ); + } if( veh.part_with_feature( ps, VPFLAG_SEATBELT, true ) == -1 ) { ///\EFFECT_STR reduces chance of being thrown from your seat when not wearing a seatbelt - throw_from_seat = d_vel * rng( 80, 120 ) / 100 > ( psg->str_cur * 1.5 + 5 ); + throw_from_seat = d_vel * rng( 80, 120 ) > move_resist; } // Damage passengers if d_vel is too high - if( d_vel > 60 * rng( 50, 100 ) / 100 && !throw_from_seat ) { - const int dmg = d_vel / 4 * rng( 70, 100 ) / 100; - psg->hurtall( dmg, nullptr ); - psg->add_msg_player_or_npc( m_bad, - _( "You take %d damage by the power of the impact!" ), - _( " takes %d damage by the power of the impact!" ), dmg ); + if( !throw_from_seat && ( 10 * d_vel ) > 6 * rng( 50, 100 ) ) { + const int dmg = d_vel * rng( 70, 100 ) / 400; + if( psg ) { + psg->hurtall( dmg, nullptr ); + psg->add_msg_player_or_npc( m_bad, + _( "You take %d damage by the power of the impact!" ), + _( " takes %d damage by the power of the " + "impact!" ), dmg ); + } else { + pet->apply_damage( nullptr, bp_torso, dmg ); + } } - if( veh.player_in_control( *psg ) ) { + if( psg && veh.player_in_control( *psg ) ) { const int lose_ctrl_roll = rng( 0, d_vel ); ///\EFFECT_DEX reduces chance of losing control of vehicle when shaken @@ -1286,7 +1510,7 @@ int map::shake_vehicle( vehicle &veh, const int velocity_before, const int direc psg->add_msg_player_or_npc( m_warning, _( "You lose control of the %s." ), _( " loses control of the %s." ), veh.name ); - int turn_amount = ( rng( 1, 3 ) * sqrt( static_cast( abs( veh.velocity ) ) ) / 2 ) / 15; + int turn_amount = rng( 1, 3 ) * sqrt( abs( veh.velocity ) ) / 30; if( turn_amount < 1 ) { turn_amount = 1; } @@ -1299,14 +1523,20 @@ int map::shake_vehicle( vehicle &veh, const int velocity_before, const int direc } if( throw_from_seat ) { - psg->add_msg_player_or_npc( m_bad, - _( "You are hurled from the %s's seat by the power of the impact!" ), - _( " is hurled from the %s's seat by the power of the impact!" ), - veh.name ); - unboard_vehicle( part_pos ); + if( psg ) { + psg->add_msg_player_or_npc( m_bad, + _( "You are hurled from the %s's seat by " + "the power of the impact!" ), + _( " is hurled from the %s's seat by " + "the power of the impact!" ), veh.name ); + unboard_vehicle( part_pos ); + } else if( g->u.sees( part_pos ) ) { + add_msg( m_bad, _( "The %s is hurled from %s's by the power of the impact!" ), + pet->disp_name(), veh.name ); + } ///\EFFECT_STR reduces distance thrown from seat in a vehicle impact - g->fling_creature( psg, direction + rng( 0, 60 ) - 30, - ( d_vel - psg->str_cur < 10 ) ? 10 : d_vel - psg->str_cur ); + g->fling_creature( rider, direction + rng( 0, 60 ) - 30, + std::max( 10, d_vel - move_resist / 100 ) ); } } diff --git a/src/vehicle_part.cpp b/src/vehicle_part.cpp index e8a53d4ab3294..c1555a45017af 100644 --- a/src/vehicle_part.cpp +++ b/src/vehicle_part.cpp @@ -19,6 +19,8 @@ #include "vpart_position.h" #include "weather.h" #include "optional.h" +#include "color.h" +#include "string_id.h" static const itype_id fuel_type_none( "null" ); static const itype_id fuel_type_battery( "battery" ); @@ -338,12 +340,14 @@ void vehicle_part::process_contents( const tripoint &pos, const bool e_heater ) { // for now we only care about processing food containers since things like // fuel don't care about temperature yet + temperature_flag flag = temperature_flag::TEMP_NORMAL; if( base.is_food_container() ) { int temp = g->get_temperature( pos ); if( e_heater ) { temp = std::max( temp, temperatures::normal ); + flag = temperature_flag::TEMP_HEATER; } - base.process( nullptr, pos, false, temp, 1 ); + base.process( nullptr, pos, false, temp, 1, flag ); } } diff --git a/src/vehicle_use.cpp b/src/vehicle_use.cpp index 72f83be79493f..e1d88734dfdd1 100644 --- a/src/vehicle_use.cpp +++ b/src/vehicle_use.cpp @@ -43,10 +43,12 @@ #include "pldata.h" #include "requirements.h" #include "rng.h" +#include "string_id.h" static const itype_id fuel_type_none( "null" ); static const itype_id fuel_type_battery( "battery" ); static const itype_id fuel_type_muscle( "muscle" ); +static const itype_id fuel_type_wind( "wind" ); static const fault_id fault_diesel( "fault_engine_pump_diesel" ); static const fault_id fault_glowplug( "fault_engine_glow_plug" ); @@ -56,8 +58,6 @@ static const fault_id fault_starter( "fault_engine_starter" ); const skill_id skill_mechanics( "mechanics" ); -static const trait_id trait_SHELL2( "SHELL2" ); - enum change_types : int { OPENCURTAINS = 0, OPENBOTH, @@ -525,13 +525,39 @@ void vehicle::use_controls( const tripoint &pos ) if( engine_on && has_engine_type_not( fuel_type_muscle, true ) ) { add_msg( _( "You turn the engine off and let go of the controls." ) ); + sounds::sound( pos, 2, sounds::sound_t::movement, + _( "the engine go silent" ) ); } else { add_msg( _( "You let go of the controls." ) ); } + + for( size_t e = 0; e < engines.size(); ++e ) + { + if( is_engine_on( e ) ) { + if( sfx::has_variant_sound( "engine_stop", parts[ engines[ e ] ].info().get_id().str() ) ) { + sfx::play_variant_sound( "engine_stop", parts[ engines[ e ] ].info().get_id().str(), + parts[ engines[ e ] ].info().engine_noise_factor() ); + } else if( is_engine_type( e, fuel_type_muscle ) ) { + sfx::play_variant_sound( "engine_stop", "muscle", + parts[ engines[ e ] ].info().engine_noise_factor() ); + } else if( is_engine_type( e, fuel_type_wind ) ) { + sfx::play_variant_sound( "engine_stop", "wind", + parts[ engines[ e ] ].info().engine_noise_factor() ); + } else if( is_engine_type( e, fuel_type_battery ) ) { + sfx::play_variant_sound( "engine_stop", "electric", + parts[ engines[ e ] ].info().engine_noise_factor() ); + } else { + sfx::play_variant_sound( "engine_stop", "combustion", + parts[ engines[ e ] ].info().engine_noise_factor() ); + } + } + } + vehicle_noise = 0; engine_on = false; g->u.controlling_vehicle = false; g->setremoteveh( nullptr ); + sfx::do_vehicle_engine_sfx(); refresh(); } ); @@ -541,8 +567,26 @@ void vehicle::use_controls( const tripoint &pos ) actions.push_back( [&] { if( engine_on ) { + vehicle_noise = 0; engine_on = false; add_msg( _( "You turn the engine off." ) ); + sounds::sound( pos, 2, sounds::sound_t::movement, + _( "the engine go silent" ) ); + for( size_t e = 0; e < engines.size(); ++e ) { + if( is_engine_on( e ) ) { + if( sfx::has_variant_sound( "engine_stop", parts[ engines[ e ] ].info().get_id().str() ) ) { + sfx::play_variant_sound( "engine_stop", parts[ engines[ e ] ].info().get_id().str(), + parts[ engines[ e ] ].info().engine_noise_factor() ); + } else if( is_engine_type( e, fuel_type_battery ) ) { + sfx::play_variant_sound( "engine_stop", "electric", + parts[ engines[ e ] ].info().engine_noise_factor() ); + } else { + sfx::play_variant_sound( "engine_stop", "combustion", + parts[ engines[ e ] ].info().engine_noise_factor() ); + } + } + } + sfx::do_vehicle_engine_sfx(); } else { start_engines(); @@ -793,48 +837,69 @@ bool vehicle::start_engine( const int e ) one_in( einfo.engine_backfire_freq() ) ) { backfire( e ); } else { - sounds::ambient_sound( pos, start_moves / 10, sounds::sound_t::movement, - string_format( _( "the %s bang as it starts" ), eng.name() ) ); + sounds::sound( pos, start_moves / 10, sounds::sound_t::movement, + string_format( _( "the %s bang as it starts" ), eng.name() ), true, "vehicle", + "engine_bangs_start" ); } } // Immobilizers need removing before the vehicle can be started if( eng.faults().count( fault_immobiliser ) ) { - sounds::ambient_sound( pos, 5, sounds::sound_t::alarm, - string_format( _( "the %s making a long beep" ), eng.name() ) ); + sounds::sound( pos, 5, sounds::sound_t::alarm, + string_format( _( "the %s making a long beep" ), eng.name() ), true, "vehicle", + "fault_immobiliser_beep" ); return false; } // Engine with starter motors can fail on both battery and starter motor if( eng.faults_potential().count( fault_starter ) ) { if( eng.faults().count( fault_starter ) ) { - sounds::ambient_sound( pos, 2, sounds::sound_t::alarm, - string_format( _( "the %s clicking once" ), eng.name() ) ); + sounds::sound( pos, eng.info().engine_noise_factor(), sounds::sound_t::alarm, + string_format( _( "the %s clicking once" ), eng.name() ), true, "vehicle", + "engine_single_click_fail" ); return false; } const int start_draw_bat = power_to_energy_bat( engine_power * ( 1.0 + dmg / 2 + cold_factor / 5 ) * 10, TICKS_TO_SECONDS( start_moves ) ); if( discharge_battery( start_draw_bat, true ) != 0 ) { - sounds::ambient_sound( pos, 2, sounds::sound_t::alarm, - string_format( _( "the %s rapidly clicking" ), eng.name() ) ); + sounds::sound( pos, eng.info().engine_noise_factor(), sounds::sound_t::alarm, + string_format( _( "the %s rapidly clicking" ), eng.name() ), true, "vehicle", + "engine_multi_click_fail" ); return false; } } // Engines always fail to start with faulty fuel pumps if( eng.faults().count( fault_pump ) || eng.faults().count( fault_diesel ) ) { - add_msg( _( "The %s quickly stutters out." ), eng.name() ); + sounds::sound( pos, eng.info().engine_noise_factor(), sounds::sound_t::movement, + string_format( _( "the %s quickly stuttering out." ), eng.name() ), true, "vehicle", + "engine_stutter_fail" ); return false; } // Damaged engines have a chance of failing to start if( x_in_y( dmg * 100, 120 ) ) { - sounds::ambient_sound( pos, 2, sounds::sound_t::movement, - string_format( _( "the %s clanking and grinding" ), eng.name() ) ); + sounds::sound( pos, eng.info().engine_noise_factor(), sounds::sound_t::movement, + string_format( _( "the %s clanking and grinding" ), eng.name() ), true, "vehicle", + "engine_clanking_fail" ); return false; } - + sounds::sound( pos, eng.info().engine_noise_factor(), sounds::sound_t::movement, + string_format( _( "the %s starting" ), eng.name() ) ); + + if( sfx::has_variant_sound( "engine_start", eng.info().get_id().str() ) ) { + sfx::play_variant_sound( "engine_start", eng.info().get_id().str(), + eng.info().engine_noise_factor() ); + } else if( is_engine_type( e, fuel_type_muscle ) ) { + sfx::play_variant_sound( "engine_start", "muscle", eng.info().engine_noise_factor() ); + } else if( is_engine_type( e, fuel_type_wind ) ) { + sfx::play_variant_sound( "engine_start", "wind", eng.info().engine_noise_factor() ); + } else if( is_engine_type( e, fuel_type_battery ) ) { + sfx::play_variant_sound( "engine_start", "electric", eng.info().engine_noise_factor() ); + } else { + sfx::play_variant_sound( "engine_start", "combustion", eng.info().engine_noise_factor() ); + } return true; } @@ -906,13 +971,16 @@ void vehicle::honk_horn() //Determine sound if( horn_type.bonus >= 110 ) { //~ Loud horn sound - sounds::sound( horn_pos, horn_type.bonus, sounds::sound_t::alarm, _( "HOOOOORNK!" ) ); + sounds::sound( horn_pos, horn_type.bonus, sounds::sound_t::alarm, _( "HOOOOORNK!" ), false, + "vehicle", "horn_loud" ); } else if( horn_type.bonus >= 80 ) { //~ Moderate horn sound - sounds::sound( horn_pos, horn_type.bonus, sounds::sound_t::alarm, _( "BEEEP!" ) ); + sounds::sound( horn_pos, horn_type.bonus, sounds::sound_t::alarm, _( "BEEEP!" ), false, "vehicle", + "horn_medium" ); } else { //~ Weak horn sound - sounds::sound( horn_pos, horn_type.bonus, sounds::sound_t::alarm, _( "honk." ) ); + sounds::sound( horn_pos, horn_type.bonus, sounds::sound_t::alarm, _( "honk." ), false, "vehicle", + "horn_low" ); } } @@ -976,7 +1044,8 @@ void vehicle::beeper_sound() } //~ Beeper sound - sounds::sound( vp.pos(), vp.info().bonus, sounds::sound_t::alarm, _( "beep!" ) ); + sounds::sound( vp.pos(), vp.info().bonus, sounds::sound_t::alarm, _( "beep!" ), false, "vehicle", + "rear_beeper" ); } } @@ -995,7 +1064,7 @@ void vehicle::play_chimes() for( const vpart_reference &vp : get_enabled_parts( "CHIMES" ) ) { sounds::sound( vp.pos(), 40, sounds::sound_t::music, - _( "a simple melody blaring from the loudspeakers." ) ); + _( "a simple melody blaring from the loudspeakers." ), false, "vehicle", "chimes" ); } } @@ -1009,7 +1078,8 @@ void vehicle::operate_plow() const int speed = abs( velocity ); int v_damage = rng( 3, speed ); damage( vp.part_index(), v_damage, DT_BASH, false ); - sounds::sound( start_plow, v_damage, sounds::sound_t::combat, _( "Clanggggg!" ) ); + sounds::sound( start_plow, v_damage, sounds::sound_t::combat, _( "Clanggggg!" ), false, + "smash_success", "hit_vehicle" ); } } } @@ -1024,7 +1094,8 @@ void vehicle::operate_rockwheel() const int speed = abs( velocity ); int v_damage = rng( 3, speed ); damage( vp.part_index(), v_damage, DT_BASH, false ); - sounds::sound( start_dig, v_damage, sounds::sound_t::combat, _( "Clanggggg!" ) ); + sounds::sound( start_dig, v_damage, sounds::sound_t::combat, _( "Clanggggg!" ), false, + "smash_success", "hit_vehicle" ); } } } @@ -1053,7 +1124,8 @@ void vehicle::operate_reaper() *seed.type, plant_produced, seed_produced, false ) ) { g->m.add_item_or_charges( reaper_pos, i ); } - sounds::sound( reaper_pos, rng( 10, 25 ), sounds::sound_t::combat, _( "Swish" ) ); + sounds::sound( reaper_pos, rng( 10, 25 ), sounds::sound_t::combat, _( "Swish" ), false, "vehicle", + "reaper" ); if( vp.has_feature( "CARGO" ) ) { map_stack stack( g->m.i_at( reaper_pos ) ); for( auto iter = stack.begin(); iter != stack.end(); ) { @@ -1085,7 +1157,8 @@ void vehicle::operate_planter() } else if( !g->m.has_flag( "PLOWABLE", loc ) ) { //If it isn't plowable terrain, then it will most likely be damaged. damage( planter_id, rng( 1, 10 ), DT_BASH, false ); - sounds::sound( loc, rng( 10, 20 ), sounds::sound_t::combat, _( "Clink" ) ); + sounds::sound( loc, rng( 10, 20 ), sounds::sound_t::combat, _( "Clink" ), false, "smash_success", + "hit_vehicle" ); } if( !i->count_by_charges() || i->charges == 1 ) { i->set_age( 0_turns ); @@ -1115,7 +1188,7 @@ void vehicle::operate_scoop() } }; sounds::sound( global_part_pos3( scoop ), rng( 20, 35 ), sounds::sound_t::combat, - random_entry_ref( sound_msgs ) ); + random_entry_ref( sound_msgs ), false, "vehicle", "scoop" ); std::vector parts_points; for( const tripoint ¤t : g->m.points_in_radius( global_part_pos3( scoop ), 1 ) ) { @@ -1129,7 +1202,8 @@ void vehicle::operate_scoop() item *that_item_there = nullptr; const map_stack q = g->m.i_at( position ); if( g->m.has_flag( "SEALED", position ) ) { - continue;//ignore it. Street sweepers are not known for their ability to harvest crops. + // Ignore it. Street sweepers are not known for their ability to harvest crops. + continue; } size_t itemdex = 0; for( const item &it : q ) { @@ -1148,7 +1222,7 @@ void vehicle::operate_scoop() //The scoop gets a lot louder when breaking an item. sounds::sound( position, rng( 10, that_item_there->volume() / units::legacy_volume_factor * 2 + 10 ), - sounds::sound_t::combat, _( "BEEEThump" ) ); + sounds::sound_t::combat, _( "BEEEThump" ), false, "vehicle", "scoop_thump" ); } const int battery_deficit = discharge_battery( that_item_there->weight() / 1_gram * -part_epower_w( scoop ) / rng( 8, 15 ) ); @@ -1174,7 +1248,7 @@ void vehicle::alarm() } }; sounds::sound( global_pos3(), static_cast( rng( 45, 80 ) ), - sounds::sound_t::alarm, random_entry_ref( sound_msgs ) ); + sounds::sound_t::alarm, random_entry_ref( sound_msgs ), false, "vehicle", "car_alarm" ); if( one_in( 1000 ) ) { is_alarm_on = false; } @@ -1243,7 +1317,8 @@ void vehicle::open_or_close( const int part_index, const bool opening ) parts[part_index].open = opening; insides_dirty = true; g->m.set_transparency_cache_dirty( smz ); - + sfx::play_variant_sound( opening ? "vehicle_open" : "vehicle_close", + parts[ part_index ].info().get_id().str(), 100 ); for( auto const &vec : find_lines_of_parts( part_index, "OPENABLE" ) ) { for( auto const &partID : vec ) { parts[partID].open = opening; diff --git a/src/visitable.cpp b/src/visitable.cpp index f4a46159453bb..6d297d1118d63 100644 --- a/src/visitable.cpp +++ b/src/visitable.cpp @@ -1,6 +1,6 @@ #include "visitable.h" -#include +#include #include #include #include @@ -22,9 +22,7 @@ #include "vehicle_selector.h" #include "active_item_cache.h" #include "enums.h" -#include "itype.h" #include "pimpl.h" -#include "pldata.h" /** @relates visitable */ template diff --git a/src/visitable.h b/src/visitable.h index 96663cc5f68c7..dc9a4fa6ced8e 100644 --- a/src/visitable.h +++ b/src/visitable.h @@ -9,12 +9,9 @@ #include #include "cata_utility.h" -#include "string_id.h" +#include "type_id.h" class item; -struct quality; - -using quality_id = string_id; enum class VisitResponse { ABORT, // Stop processing after this node diff --git a/src/vitamin.h b/src/vitamin.h index 2f2a013bbc107..431790f0b48f3 100644 --- a/src/vitamin.h +++ b/src/vitamin.h @@ -9,14 +9,9 @@ #include "calendar.h" #include "string_id.h" +#include "type_id.h" class JsonObject; -class vitamin; - -using vitamin_id = string_id; -class effect_type; - -using efftype_id = string_id; class vitamin { diff --git a/src/vpart_position.h b/src/vpart_position.h index 9de9f59e60262..304b865e8d76c 100644 --- a/src/vpart_position.h +++ b/src/vpart_position.h @@ -2,7 +2,7 @@ #ifndef VPART_POSITION_H #define VPART_POSITION_H -#include +#include #include #include #include diff --git a/src/vpart_reference.h b/src/vpart_reference.h index 208d7a7f19f04..d751313635e91 100644 --- a/src/vpart_reference.h +++ b/src/vpart_reference.h @@ -2,7 +2,7 @@ #ifndef VPART_REFERENCE_H #define VPART_REFERENCE_H -#include +#include #include #include "vpart_position.h" diff --git a/src/weather.cpp b/src/weather.cpp index bd00add1f4f96..8a41f4f003362 100644 --- a/src/weather.cpp +++ b/src/weather.cpp @@ -29,14 +29,12 @@ #include "bodypart.h" #include "enums.h" #include "item.h" -#include "itype.h" #include "mapdata.h" #include "math_defines.h" -#include "pldata.h" #include "rng.h" #include "string_id.h" #include "units.h" -#include "mtype.h" +#include "int_id.h" const efftype_id effect_glare( "glare" ); const efftype_id effect_snow_glare( "snow_glare" ); @@ -121,7 +119,7 @@ time_duration get_rot_since( const time_point &start, const time_point &end, for( time_point i = start; i < end; i += 1_hours ) { w_point w = wgen.get_weather( pos, i, seed ); - //Use weather if above ground, use map temp if below + // Use weather if above ground, use map temp if below double temperature = ( pos.z >= 0 ? w.temperature : location_temp ) + local_mod; // If in a root celler: use AVERAGE_ANNUAL_TEMPERATURE // If not: use calculated temperature @@ -203,7 +201,8 @@ void retroactively_fill_from_funnel( item &it, const trap &tr, const time_point return; } - it.set_birthday( end ); // bday == last fill check + // bday == last fill check + it.set_birthday( end ); auto data = sum_conditions( start, end, pos ); // Technically 0.0 division is OK, but it will be cleaner without it @@ -291,8 +290,9 @@ double funnel_charges_per_turn( const double surface_area_mm2, const double rain // Calculate once, because that part is expensive static const item water( "water", 0 ); + // 250ml static const double charge_ml = static_cast( to_gram( water.weight() ) ) / - water.charges; // 250ml + water.charges; const double vol_mm3_per_hour = surface_area_mm2 * rain_depth_mm_per_hour; const double vol_mm3_per_turn = vol_mm3_per_hour / HOURS( 1 ); @@ -836,7 +836,7 @@ std::string get_shortdirstring( int angle ) std::string get_dirstring( int angle ) { - //convert angle to cardinal directions + // Convert angle to cardinal directions std::string dirstring; int dirangle = angle; if( dirangle <= 23 || dirangle > 338 ) { @@ -888,7 +888,8 @@ int get_local_humidity( double humidity, weather_type weather, bool sheltered ) { int tmphumidity = humidity; if( sheltered ) { - tmphumidity = humidity * ( 100 - humidity ) / 100 + humidity; // norm for a house? + // Norm for a house? + tmphumidity = humidity * ( 100 - humidity ) / 100 + humidity; } else if( weather == WEATHER_RAINY || weather == WEATHER_DRIZZLE || weather == WEATHER_THUNDER || weather == WEATHER_LIGHTNING ) { tmphumidity = 100; @@ -916,7 +917,7 @@ double get_local_windpower( double windpower, const oter_id &omter, const tripoi } else if( omter.id() == "forest_thick" || omter.id() == "hive" ) { tmpwind *= 0.4; } - // an adjacent wall will block wind + // An adjacent wall will block wind if( is_wind_blocker( triblocker ) ) { tmpwind *= 0.1; } @@ -928,36 +929,37 @@ bool is_wind_blocker( const tripoint &location ) return g->m.has_flag( "BLOCK_WIND", location ); } +// Description of Wind Speed - https://en.wikipedia.org/wiki/Beaufort_scale std::string get_wind_desc( double windpower ) { std::string winddesc; if( windpower < 1 ) { winddesc = "Calm"; - } else if( windpower < 3 ) { + } else if( windpower <= 3 ) { winddesc = "Light Air"; - } else if( windpower < 7 ) { + } else if( windpower <= 7 ) { winddesc = "Light Breeze"; - } else if( windpower < 12 ) { + } else if( windpower <= 12 ) { winddesc = "Gentle Breeze"; - } else if( windpower < 18 ) { + } else if( windpower <= 18 ) { winddesc = "Moderate Breeze"; - } else if( windpower < 24 ) { + } else if( windpower <= 24 ) { winddesc = "Fresh Breeze"; - } else if( windpower < 31 ) { + } else if( windpower <= 31 ) { winddesc = "Strong Breeze"; - } else if( windpower < 38 ) { + } else if( windpower <= 38 ) { winddesc = "Moderate Gale"; - } else if( windpower < 46 ) { + } else if( windpower <= 46 ) { winddesc = "Gale"; - } else if( windpower < 54 ) { + } else if( windpower <= 54 ) { winddesc = "Strong Gale"; - } else if( windpower < 63 ) { + } else if( windpower <= 63 ) { winddesc = "Whole Gale"; - } else if( windpower < 72 ) { + } else if( windpower <= 72 ) { winddesc = "Violent Storm"; } else if( windpower > 72 ) { - winddesc = - "Hurricane"; //Anything above Whole Gale is very unlikely to happen and has no additional effects. + // Anything above Whole Gale is very unlikely to happen and has no additional effects. + winddesc = "Hurricane"; } return winddesc; } diff --git a/src/weather.h b/src/weather.h index 293abb391b23a..714b9b2583eac 100644 --- a/src/weather.h +++ b/src/weather.h @@ -3,7 +3,7 @@ #define WEATHER_H #include "color.h" -#include "int_id.h" +#include "type_id.h" /** * @name BODYTEMP @@ -34,9 +34,6 @@ struct point; struct tripoint; struct trap; struct rl_vec2d; -struct oter_t; - -using oter_id = int_id; /** * Weather type enum. @@ -167,7 +164,6 @@ void retroactively_fill_from_funnel( item &it, const trap &tr, const time_point double funnel_charges_per_turn( double surface_area_mm2, double rain_depth_mm_per_hour ); - rl_vec2d convert_wind_to_coord( const int angle ); std::string get_wind_arrow( int ); diff --git a/src/weather_data.cpp b/src/weather_data.cpp index 13f1a1ed3c36f..e10a5ce19e19a 100644 --- a/src/weather_data.cpp +++ b/src/weather_data.cpp @@ -1,6 +1,6 @@ #include "weather.h" // IWYU pragma: associated -#include +#include #include #include #include diff --git a/src/weather_gen.cpp b/src/weather_gen.cpp index b1b17cadcda3d..be1efde48fcf2 100644 --- a/src/weather_gen.cpp +++ b/src/weather_gen.cpp @@ -26,17 +26,17 @@ int weather_generator::current_winddir = 1000; w_point weather_generator::get_weather( const tripoint &location, const time_point &t, unsigned seed ) const { - const double x( location.x / - 2000.0 ); // Integer x position / widening factor of the Perlin function. - const double y( location.y / - 2000.0 ); // Integer y position / widening factor of the Perlin function. - const double z( to_turn( t + calendar::season_length() ) / - 2000.0 ); // Integer turn / widening factor of the Perlin function. + // Integer x position / widening factor of the Perlin function. + const double x( location.x / 2000.0 ); + // Integer y position / widening factor of the Perlin function. + const double y( location.y / 2000.0 ); + // Integer turn / widening factor of the Perlin function. + const double z( to_turn( t + calendar::season_length() ) / 2000.0 ); const double dayFraction = time_past_midnight( t ) / 1_days; - //limit the random seed during noise calculation, a large value flattens the noise generator to zero - //Windows has a rand limit of 32768, other operating systems can have higher limits + // Limit the random seed during noise calculation, a large value flattens the noise generator to zero + // Windows has a rand limit of 32768, other operating systems can have higher limits const unsigned modSEED = seed % SIMPLEX_NOISE_RANDOM_SEED_LIMIT; // Noise factors double T( raw_noise_4d( x, y, z, modSEED ) * 4.0 ); @@ -51,45 +51,51 @@ w_point weather_generator::get_weather( const tripoint &location, const time_poi const double ctn( cos( tau * now ) ); const season_type season = season_of_year( now ); // Temperature variation - const double mod_t( 0 ); // TODO: make this depend on latitude and altitude? - const double current_t( base_temperature + - mod_t ); // Current baseline temperature. Degrees Celsius. - const double seasonal_variation( ctn * -1 ); // Start and end at -1 going up to 1 in summer. - const double season_atenuation( ctn / 2 + 1 ); // Harsh winter nights, hot summers. - const double season_dispersion( pow( 2, - ctn + 1 ) - 2.3 ); // Make summers peak faster and winters not perma-frozen. + // TODO: make this depend on latitude and altitude? + const double mod_t( 0 ); + // Current baseline temperature. Degrees Celsius. + const double current_t( base_temperature + mod_t ); + // Start and end at -1 going up to 1 in summer. + const double seasonal_variation( ctn * -1 ); + // Harsh winter nights, hot summers. + const double season_atenuation( ctn / 2 + 1 ); + // Make summers peak faster and winters not perma-frozen. + const double season_dispersion( pow( 2, ctn + 1 ) - 2.3 ); + // Day-night temperature variation. const double daily_variation( cos( tau * dayFraction - tau / 8 ) * -1 * season_atenuation / 2 + - season_dispersion * -1 ); // Day-night temperature variation. + season_dispersion * -1 ); - T += current_t; // Add baseline to the noise. - T += seasonal_variation * 8 * exp( -pow( current_t * 2.7 / 10 - 0.5, - 2 ) ); // Add season curve offset to account for the winter-summer difference in day-night difference. - T += daily_variation * 8 * exp( -pow( current_t / 30, - 2 ) ); // Add daily variation scaled to the inverse of the current baseline. A very specific and finicky adjustment curve. - T = T * 9 / 5 + 32; // Convert to imperial. =| + // Add baseline to the noise. + T += current_t; + // Add season curve offset to account for the winter-summer difference in day-night difference. + T += seasonal_variation * 8 * exp( -pow( current_t * 2.7 / 10 - 0.5, 2 ) ); + // Add daily variation scaled to the inverse of the current baseline. A very specific and finicky adjustment curve. + T += daily_variation * 8 * exp( -pow( current_t / 30, 2 ) ); + // Convert to imperial. =| + T = T * 9 / 5 + 32; // Humidity variation const double mod_h( 0 ); const double current_h( base_humidity + mod_h ); + // Humidity stays mostly at the mean level, but has low peaks rarely. It's a percentage. H = std::max( std::min( ( ctn / 10.0 + ( -pow( H, 2 ) * 3 + H2 ) ) * current_h / 2.0 + current_h, - 100.0 ), - 0.0 ); // Humidity stays mostly at the mean level, but has low peaks rarely. It's a percentage. + 100.0 ), 0.0 ); // Pressure variation - P += seasonal_variation * 20 + - base_pressure; // Pressure is mostly random, but a bit higher on summer and lower on winter. In millibars. + // Pressure is mostly random, but a bit higher on summer and lower on winter. In millibars. + P += seasonal_variation * 20 + base_pressure; // Wind power W = std::max( 0, static_cast( base_wind / pow( P / 1014.78, rng( 9, base_wind_distrib_peaks ) ) + ( seasonal_variation / base_wind_season_variation ) * rng( 1, 2 ) * W ) ); // Wind direction - // initial static variable + // Initial static variable if( current_winddir == 1000 ) { current_winddir = get_wind_direction( season, seed ); current_winddir = convert_winddir( current_winddir ); } else { - //when wind strength is low, wind direction is more variable + // When wind strength is low, wind direction is more variable bool changedir = one_in( W * 360 ); if( changedir ) { current_winddir = get_wind_direction( season, seed ); @@ -161,7 +167,7 @@ int weather_generator::get_wind_direction( const season_type season, unsigned se { unsigned dirseed = seed; std::default_random_engine wind_dir_gen( dirseed ); - //assign chance to angle direction + // Assign chance to angle direction if( season == SPRING ) { std::discrete_distribution distribution {3, 3, 5, 8, 11, 10, 5, 2, 5, 6, 6, 5, 8, 10, 8, 6}; return distribution( wind_dir_gen ); @@ -179,44 +185,9 @@ int weather_generator::get_wind_direction( const season_type season, unsigned se } } -//Description of Wind Speed - https://en.wikipedia.org/wiki/Beaufort_scale -std::string weather_generator::get_wind_desc( double windpower ) const -{ - std::string winddesc; - if( windpower < 1 ) { - winddesc = "Calm"; - } else if( windpower < 3 ) { - winddesc = "Light Air"; - } else if( windpower < 7 ) { - winddesc = "Light Breeze"; - } else if( windpower < 12 ) { - winddesc = "Gentle Breeze"; - } else if( windpower < 18 ) { - winddesc = "Moderate Breeze"; - } else if( windpower < 24 ) { - winddesc = "Fresh Breeze"; - } else if( windpower < 31 ) { - winddesc = "Moderate Breeze"; - } else if( windpower < 38 ) { - winddesc = "Moderate Gale"; - } else if( windpower < 46 ) { - winddesc = "Gale"; - } else if( windpower < 54 ) { - winddesc = "Strong Gale"; - } else if( windpower < 63 ) { - winddesc = "Whole Gale"; - } else if( windpower < 72 ) { - winddesc = "Violent Storm"; - } else if( windpower > 72 ) { - winddesc = - "Hurricane"; //Anything above Whole Gale is very unlikely to happen and has no additional effects. - } - return winddesc; -} - int weather_generator::convert_winddir( const int inputdir ) const { - //convert from discrete distribution output to angle + // Convert from discrete distribution output to angle float finputdir = inputdir * 22.5; return static_cast( finputdir ); } @@ -271,7 +242,6 @@ void weather_generator::test_weather() const int year = to_turns( i - calendar::time_of_cataclysm ) / to_turns ( calendar::year_length() ) + 1; - const std::string timeofday = to_string_time_of_day( i ); const int hour = hour_of_day( i ); const int minute = minute_of_hour( i ); int day; diff --git a/src/weather_gen.h b/src/weather_gen.h index b4517275f4da5..f31ff4a65a044 100644 --- a/src/weather_gen.h +++ b/src/weather_gen.h @@ -24,14 +24,19 @@ struct w_point { class weather_generator { public: - double base_temperature = 6.5; // Average temperature of New England - double base_humidity = 66.0; // Average humidity - double base_pressure = 1015.0; // Average atmospheric pressure + // Average temperature of New England + double base_temperature = 6.5; + // Average humidity + double base_humidity = 66.0; + // Average atmospheric pressure + double base_pressure = 1015.0; double base_acid = 0.0; - double base_wind = 5.7; //Average yearly windspeed of New England - int base_wind_distrib_peaks = 30; //How much the wind peaks above average - int base_wind_season_variation = - 64; //How much the wind folows seasonal variation ( lower means more change ) + // Average yearly windspeed of New England + double base_wind = 5.7; + // How much the wind peaks above average + int base_wind_distrib_peaks = 30; + // How much the wind folows seasonal variation ( lower means more change ) + int base_wind_season_variation = 64; static int current_winddir; weather_generator(); @@ -46,7 +51,6 @@ class weather_generator weather_type get_weather_conditions( const w_point & ) const; int get_wind_direction( const season_type, unsigned seed ) const; int convert_winddir( const int ) const; - std::string get_wind_desc( double ) const; int get_water_temperature() const; void test_weather() const; diff --git a/src/wincurse.cpp b/src/wincurse.cpp index 9e861afb9b4c2..8c47585a6adeb 100644 --- a/src/wincurse.cpp +++ b/src/wincurse.cpp @@ -59,33 +59,38 @@ static int TERMINAL_HEIGHT; //Non-curses, Window functions * //*********************************** -// declare this locally, because it's not generally cross-compatible in cursesport.h +// Declare this locally, because it's not generally cross-compatible in cursesport.h LRESULT CALLBACK ProcessMessages( HWND__ *hWnd, std::uint32_t Msg, WPARAM wParam, LPARAM lParam ); std::wstring widen( const std::string &s ) { if( s.empty() ) { - return std::wstring(); // MultiByteToWideChar can not handle this case + // MultiByteToWideChar can not handle this case + return std::wstring(); } std::vector buffer( s.length() ); const int newlen = MultiByteToWideChar( CP_UTF8, 0, s.c_str(), s.length(), buffer.data(), buffer.size() ); - // on failure, newlen is 0, returns an empty strings. + // On failure, newlen is 0, returns an empty strings. return std::wstring( buffer.data(), newlen ); } -//Registers, creates, and shows the Window!! +// Registers, creates, and shows the Window!! bool WinCreate() { - WindowINST = GetModuleHandle( 0 ); // Get current process handle + // Get current process handle + WindowINST = GetModuleHandle( 0 ); std::string title = string_format( "Cataclysm: Dark Days Ahead - %s", getVersionString() ); // Register window class WNDCLASSEXW WindowClassType = WNDCLASSEXW(); WindowClassType.cbSize = sizeof( WNDCLASSEXW ); - WindowClassType.lpfnWndProc = ProcessMessages;//the procedure that gets msgs - WindowClassType.hInstance = WindowINST;// hInstance - WindowClassType.hIcon = LoadIcon( WindowINST, MAKEINTRESOURCE( 0 ) ); // Get first resource + // The procedure that gets msgs + WindowClassType.lpfnWndProc = ProcessMessages; + // hInstance + WindowClassType.hInstance = WindowINST; + // Get first resource + WindowClassType.hIcon = LoadIcon( WindowINST, MAKEINTRESOURCE( 0 ) ); WindowClassType.hIconSm = LoadIcon( WindowINST, MAKEINTRESOURCE( 0 ) ); WindowClassType.hCursor = LoadCursor( NULL, IDC_ARROW ); WindowClassType.lpszClassName = szWindowClass; @@ -94,8 +99,9 @@ bool WinCreate() } // Adjust window size + // Basic window, show on creation uint32_t WndStyle = WS_CAPTION | WS_MINIMIZEBOX | WS_SIZEBOX | WS_MAXIMIZEBOX | WS_SYSMENU | - WS_VISIBLE; // Basic window, show on creation + WS_VISIBLE; RECT WndRect; WndRect.left = WndRect.top = 0; WndRect.right = WindowWidth; @@ -121,7 +127,7 @@ bool WinCreate() return true; }; -//Unregisters, releases the DC if needed, and destroys the window. +// Unregisters, releases the DC if needed, and destroys the window. void WinDestroy() { if( ( WindowDC != NULL ) && ( ReleaseDC( WindowHandle, WindowDC ) == 0 ) ) { @@ -135,7 +141,7 @@ void WinDestroy() } }; -// creates a backbuffer to prevent flickering +// Creates a backbuffer to prevent flickering void create_backbuffer() { if( WindowDC != NULL ) { @@ -203,7 +209,7 @@ static void begin_alt_code() void add_alt_code( char c ) { - // not exactly how it works, but acceptable + // Not exactly how it works, but acceptable if( c >= '0' && c <= '9' ) { if( alt_buffer_len < ALT_BUFFER_SIZE - 1 ) { alt_buffer[alt_buffer_len] = c; @@ -218,7 +224,7 @@ static int end_alt_code() return atoi( alt_buffer ); } -//This function processes any Windows messages we get. Keyboard, OnClose, etc +// This function processes any Windows messages we get. Keyboard, OnClose, etc LRESULT CALLBACK ProcessMessages( HWND__ *hWnd, unsigned int Msg, WPARAM wParam, LPARAM lParam ) { @@ -231,16 +237,19 @@ LRESULT CALLBACK ProcessMessages( HWND__ *hWnd, unsigned int Msg, case VK_TAB: lastchar = ( shift_down ) ? KEY_BTAB : '\t'; break; - case VK_RETURN: //Reroute ENTER key for compatibility purposes + case VK_RETURN: + // Reroute ENTER key for compatibility purposes lastchar = 10; break; - case VK_BACK: //Reroute BACKSPACE key for compatibility purposes + case VK_BACK: + // Reroute BACKSPACE key for compatibility purposes lastchar = 127; break; } return 0; - case WM_KEYDOWN: //Here we handle non-character input + case WM_KEYDOWN: + // Here we handle non-character input switch( wParam ) { case VK_SHIFT: shift_down = true; @@ -355,7 +364,8 @@ LRESULT CALLBACK ProcessMessages( HWND__ *hWnd, unsigned int Msg, break; case WM_ERASEBKGND: - return 1; // Don't erase background + // Don't erase background + return 1; case WM_PAINT: BitBlt( WindowDC, 0, 0, WindowWidth, WindowHeight, backbuffer, 0, 0, SRCCOPY ); @@ -363,7 +373,8 @@ LRESULT CALLBACK ProcessMessages( HWND__ *hWnd, unsigned int Msg, return 0; case WM_DESTROY: - exit( 0 ); // A messy exit, but easy way to escape game loop + // A messy exit, but easy way to escape game loop + exit( 0 ); }; return DefWindowProcW( hWnd, Msg, wParam, lParam ); @@ -515,13 +526,14 @@ void cata_cursesport::curses_drawwindow( const catacurses::window &w ) }//for (i=0;iwidth;i++) } }// for (j=0;jheight;j++) - win->draw = false; //We drew the window, mark it as so + // We drew the window, mark it as so + win->draw = false; if( update.top != -1 ) { RedrawWindow( WindowHandle, &update, NULL, RDW_INVALIDATE | RDW_UPDATENOW ); } } -//Check for any window messages (keypress, paint, mousemove, etc) +// Check for any window messages (keypress, paint, mousemove, etc) void CheckMessages() { MSG msg; @@ -560,7 +572,7 @@ int get_terminal_height() //Pseudo-Curses Functions * //*********************************** -//Basic Init, create the font, backbuffer, etc +// Basic Init, create the font, backbuffer, etc void catacurses::init_interface() { lastchar = -1; @@ -577,9 +589,12 @@ void catacurses::init_interface() WindowWidth = TERMINAL_WIDTH * fontwidth; WindowHeight = TERMINAL_HEIGHT * fontheight; - WinCreate(); //Create the actual window, register it, etc - timeBeginPeriod( 1 ); // Set Sleep resolution to 1ms - CheckMessages(); //Let the message queue handle setting up the window + // Create the actual window, register it, etc + WinCreate(); + // Set Sleep resolution to 1ms + timeBeginPeriod( 1 ); + // Let the message queue handle setting up the window + CheckMessages(); create_backbuffer(); @@ -603,8 +618,10 @@ void catacurses::init_interface() DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, FF_MODERN, widen( fl.typeface ).c_str() ); - SetBkMode( backbuffer, TRANSPARENT ); //Transparent font backgrounds - SelectObject( backbuffer, font ); //Load our font into the DC + // Transparent font backgrounds + SetBkMode( backbuffer, TRANSPARENT ); + // Load our font into the DC + SelectObject( backbuffer, font ); color_loader().load( windowsPalette ); if( SetDIBColorTable( backbuffer, 0, windowsPalette.size(), windowsPalette.data() ) == 0 ) { @@ -693,22 +710,27 @@ cata::optional input_context::get_coordinates( const catacurses::windo return cata::nullopt; } -//Ends the terminal, destroy everything +// Ends the terminal, destroy everything void catacurses::endwin() { DeleteObject( font ); WinDestroy(); - RemoveFontResourceExA( "data\\termfont", FR_PRIVATE, NULL ); //Unload it + // Unload it + RemoveFontResourceExA( "data\\termfont", FR_PRIVATE, NULL ); } template<> RGBQUAD color_loader::from_rgb( const int r, const int g, const int b ) { RGBQUAD result; - result.rgbBlue = b; //Blue - result.rgbGreen = g; //Green - result.rgbRed = r; //Red - result.rgbReserved = 0; //The Alpha, is not used, so just set it to 0 + // Blue + result.rgbBlue = b; + // Green + result.rgbGreen = g; + // Red + result.rgbRed = r; + //The Alpha, is not used, so just set it to 0 + result.rgbReserved = 0; return result; } diff --git a/src/wish.cpp b/src/wish.cpp index 1227b0221d376..eca9e56bae1ce 100644 --- a/src/wish.cpp +++ b/src/wish.cpp @@ -1,6 +1,6 @@ #include "debug_menu.h" // IWYU pragma: associated -#include +#include #include #include #include @@ -32,12 +32,15 @@ #include "item.h" #include "itype.h" #include "optional.h" +#include "type_id.h" class wish_mutate_callback: public uilist_callback { public: - int lastlen = 0; // last menu entry - std::string msg; // feedback message + // Last menu entry + int lastlen = 0; + // Feedback message + std::string msg; bool started = false; std::vector vTraits; std::map pTraits; @@ -217,7 +220,7 @@ void debug_menu::wishmutate( player *p ) } wmenu.w_x = 0; wmenu.w_width = TERMX; - // disabled due to foldstring crash // ( TERMX - getmaxx(w_terrain) - 30 > 24 ? getmaxx(w_terrain) : TERMX ); + // Disabled due to foldstring crash // ( TERMX - getmaxx(w_terrain) - 30 > 24 ? getmaxx(w_terrain) : TERMX ); wmenu.pad_right = ( wmenu.w_width - 40 ); wmenu.selected = uistate.wishmutate_selected; wish_mutate_callback cb; @@ -231,7 +234,7 @@ void debug_menu::wishmutate( player *p ) const auto &mdata = mstr.obj(); const bool threshold = mdata.threshold; const bool profession = mdata.profession; - //Manual override for the threshold-gaining + // Manual override for the threshold-gaining if( threshold || profession ) { if( p->has_trait( mstr ) ) { do { @@ -308,12 +311,16 @@ class wish_monster_callback: public uilist_callback } bool key( const input_context &, const input_event &event, int entnum, uilist *menu ) override { - ( void )entnum; // unused - ( void )menu; // unused + // Unused + ( void )entnum; + // Unused + ( void )menu; if( event.get_first_input() == 'f' ) { friendly = !friendly; - lastent = -2; // force tmp monster regen - return true; // tell menu we handled keypress + // Force tmp monster regen + lastent = -2; + // Tell menu we handled keypress + return true; } else if( event.get_first_input() == 'i' ) { group++; return true; @@ -357,7 +364,8 @@ class wish_monster_callback: public uilist_callback } void refresh( uilist *menu ) override { - ( void )menu; // unused + // Unused + ( void )menu; wrefresh( w_info ); } @@ -374,7 +382,7 @@ void debug_menu::wishmonster( const cata::optional &p ) uilist wmenu; wmenu.w_x = 0; wmenu.w_width = TERMX; - // disabled due to foldstring crash //( TERMX - getmaxx(w_terrain) - 30 > 24 ? getmaxx(w_terrain) : TERMX ); + // Disabled due to foldstring crash //( TERMX - getmaxx(w_terrain) - 30 > 24 ? getmaxx(w_terrain) : TERMX ); wmenu.pad_right = ( wmenu.w_width - 30 ); wmenu.selected = uistate.wishmonster_selected; wish_monster_callback cb( mtypes ); diff --git a/src/worldfactory.cpp b/src/worldfactory.cpp index 404bdcafbe2e7..35e11b0525833 100644 --- a/src/worldfactory.cpp +++ b/src/worldfactory.cpp @@ -1,6 +1,6 @@ #include "worldfactory.h" -#include +#include #include #include #include @@ -28,6 +28,7 @@ #include "translations.h" #include "color.h" #include "game.h" +#include "string_id.h" using namespace std::placeholders; @@ -650,7 +651,6 @@ void worldfactory::draw_mod_list( const catacurses::window &w, int &start, size_ } else { if( iNum == iActive ) { - cursor = iActive - iCatBeforeCursor; //mvwprintw( w, iNum - start + iCatSortOffset, 1, " " ); if( is_active_list ) { mvwprintz( w, iNum - start, 1, c_yellow, ">> " ); diff --git a/src/worldfactory.h b/src/worldfactory.h index b1ebc5e66dbd4..e7b6c53e97d69 100644 --- a/src/worldfactory.h +++ b/src/worldfactory.h @@ -2,7 +2,7 @@ #ifndef WORLDFACTORY_H #define WORLDFACTORY_H -#include +#include #include #include #include @@ -12,7 +12,7 @@ #include "options.h" #include "pimpl.h" -#include "string_id.h" +#include "type_id.h" class JsonIn; class JsonObject; @@ -22,9 +22,6 @@ namespace catacurses { class window; } // namespace catacurses -struct MOD_INFORMATION; - -using mod_id = string_id; class save_t { diff --git a/tests/bionics_test.cpp b/tests/bionics_test.cpp index fc83081c22b40..7413e742af1fd 100644 --- a/tests/bionics_test.cpp +++ b/tests/bionics_test.cpp @@ -12,9 +12,9 @@ #include "item.h" #include "player.h" #include "calendar.h" -#include "itype.h" #include "pimpl.h" #include "string_id.h" +#include "type_id.h" void clear_bionics( player &p ) { @@ -111,7 +111,7 @@ TEST_CASE( "bionics", "[bionics] [item]" ) } static const std::list never = { - "battery_atomic", // TOOLMOD, no ammo actually + "light_atomic_battery_cell", // TOOLMOD, no ammo actually "rm13_armor" // TOOL_ARMOR }; for( auto it : never ) { diff --git a/tests/comestible_tests.cpp b/tests/comestible_tests.cpp index 9a9dd322c52ee..04f12bec0ed70 100644 --- a/tests/comestible_tests.cpp +++ b/tests/comestible_tests.cpp @@ -15,6 +15,7 @@ #include "item.h" #include "optional.h" #include "string_id.h" +#include "type_id.h" struct all_stats { statistics calories; diff --git a/tests/crafting_test.cpp b/tests/crafting_test.cpp index 5e873201803d7..7509c67c5948b 100644 --- a/tests/crafting_test.cpp +++ b/tests/crafting_test.cpp @@ -27,6 +27,7 @@ #include "requirements.h" #include "string_id.h" #include "material.h" +#include "type_id.h" TEST_CASE( "recipe_subset" ) { diff --git a/tests/encumbrance_test.cpp b/tests/encumbrance_test.cpp index 9ca74678e2c8c..b693c9398a1c8 100644 --- a/tests/encumbrance_test.cpp +++ b/tests/encumbrance_test.cpp @@ -12,8 +12,8 @@ #include "bodypart.h" #include "character.h" #include "item.h" -#include "pldata.h" #include "material.h" +#include "type_id.h" void test_encumbrance_on( player &p, diff --git a/tests/explosion_balance.cpp b/tests/explosion_balance.cpp index 2c6d4ffe69af6..92fd2e12e1d87 100644 --- a/tests/explosion_balance.cpp +++ b/tests/explosion_balance.cpp @@ -17,6 +17,8 @@ #include "veh_type.h" #include "vpart_position.h" #include "creature.h" +#include "string_id.h" +#include "type_id.h" void check_lethality( const std::string &explosive_id, const int range, float lethality, float margin ) diff --git a/tests/ground_destroy_test.cpp b/tests/ground_destroy_test.cpp index 68ed783f5c049..bdb041ea68a48 100755 --- a/tests/ground_destroy_test.cpp +++ b/tests/ground_destroy_test.cpp @@ -12,6 +12,7 @@ #include "options.h" #include "enums.h" #include "int_id.h" +#include "type_id.h" // Destroying pavement with a pickaxe should not leave t_flat_roof. // See issue #24707: diff --git a/tests/invlet_test.cpp b/tests/invlet_test.cpp index 86fa0457b571d..e4aab7e0781aa 100644 --- a/tests/invlet_test.cpp +++ b/tests/invlet_test.cpp @@ -17,9 +17,8 @@ #include "inventory.h" #include "item.h" #include "item_stack.h" -#include "mapdata.h" #include "player_activity.h" -#include "pldata.h" +#include "type_id.h" const trait_id trait_debug_storage( "DEBUG_STORAGE" ); diff --git a/tests/iuse_test.cpp b/tests/iuse_test.cpp index ec2e2d2725296..09f9093fbbe0f 100644 --- a/tests/iuse_test.cpp +++ b/tests/iuse_test.cpp @@ -12,6 +12,8 @@ #include "enums.h" #include "inventory.h" #include "item.h" +#include "string_id.h" +#include "type_id.h" player &get_sanitized_player( ) { diff --git a/tests/map_helpers.cpp b/tests/map_helpers.cpp index f881aedc1f4fa..a75d69ea76687 100644 --- a/tests/map_helpers.cpp +++ b/tests/map_helpers.cpp @@ -15,6 +15,7 @@ #include "game_constants.h" #include "overmapbuffer.h" #include "pimpl.h" +#include "type_id.h" void wipe_map_terrain() { diff --git a/tests/map_test.cpp b/tests/map_test.cpp index 07413942e888b..fe95d5fca7865 100644 --- a/tests/map_test.cpp +++ b/tests/map_test.cpp @@ -7,7 +7,7 @@ #include "player.h" #include "enums.h" #include "game_constants.h" -#include "mapdata.h" +#include "type_id.h" TEST_CASE( "destroy_grabbed_furniture" ) { diff --git a/tests/melee_test.cpp b/tests/melee_test.cpp index 02d70d2cbaeb9..8415928af8f16 100644 --- a/tests/melee_test.cpp +++ b/tests/melee_test.cpp @@ -10,6 +10,7 @@ #include "item.h" #include "player.h" #include "material.h" +#include "type_id.h" static float brute_probability( Creature &attacker, Creature &target, const size_t iters ) { diff --git a/tests/mod_test.cpp b/tests/mod_test.cpp index 09659f5ce66ec..e1c0a9d372c78 100644 --- a/tests/mod_test.cpp +++ b/tests/mod_test.cpp @@ -5,6 +5,7 @@ #include "catch/catch.hpp" #include "item.h" #include "worldfactory.h" +#include "type_id.h" TEST_CASE( "Boat mod is loaded correctly or not at all" ) { diff --git a/tests/mondefense_test.cpp b/tests/mondefense_test.cpp index 1b9c06ab2a113..bac2d1b530d23 100644 --- a/tests/mondefense_test.cpp +++ b/tests/mondefense_test.cpp @@ -5,8 +5,7 @@ #include "npc.h" #include "projectile.h" #include "creature.h" -#include "game.h" -#include "itype.h" +#include "type_id.h" void test_zapback( Creature &attacker, const bool expect_damage, const dealt_projectile_attack *proj = nullptr ) diff --git a/tests/morale_test.cpp b/tests/morale_test.cpp index 06e9194f08e14..51102b450c67f 100644 --- a/tests/morale_test.cpp +++ b/tests/morale_test.cpp @@ -4,6 +4,7 @@ #include "morale.h" #include "morale_types.h" #include "calendar.h" +#include "type_id.h" TEST_CASE( "player_morale" ) { diff --git a/tests/mutation_test.cpp b/tests/mutation_test.cpp index b521864b9556e..a915388541643 100644 --- a/tests/mutation_test.cpp +++ b/tests/mutation_test.cpp @@ -9,6 +9,7 @@ #include "npc.h" #include "player.h" #include "string_id.h" +#include "type_id.h" std::string get_mutations_as_string( const player &p ); diff --git a/tests/new_character_test.cpp b/tests/new_character_test.cpp index 3832ba9c82af9..f22818cc2ad9e 100644 --- a/tests/new_character_test.cpp +++ b/tests/new_character_test.cpp @@ -20,6 +20,7 @@ #include "optional.h" #include "pldata.h" #include "ret_val.h" +#include "type_id.h" std::ostream &operator<<( std::ostream &s, const std::vector &v ) { diff --git a/tests/npc_talk_test.cpp b/tests/npc_talk_test.cpp index 63809d1a2c637..5f46ebb15522d 100644 --- a/tests/npc_talk_test.cpp +++ b/tests/npc_talk_test.cpp @@ -21,12 +21,12 @@ #include "enums.h" #include "inventory.h" #include "item.h" -#include "npc_class.h" #include "pimpl.h" #include "string_id.h" #include "npctalk.h" #include "mapdata.h" -#include "mtype.h" +#include "material.h" +#include "type_id.h" const efftype_id effect_gave_quest_item( "gave_quest_item" ); const efftype_id effect_currently_busy( "currently_busy" ); @@ -559,7 +559,7 @@ TEST_CASE( "npc_talk_test" ) gen_response_lines( d, 9 ); CHECK( d.responses[0].text == "Change your engagement rules..." ); CHECK( d.responses[1].text == "Change your aiming rules..." ); - CHECK( d.responses[2].text == "If you see me running away, you follow me." ); + CHECK( d.responses[2].text == "Stick close to me, no matter what." ); CHECK( d.responses[3].text == "Don't use ranged weapons anymore." ); CHECK( d.responses[4].text == "Use only silent weapons." ); CHECK( d.responses[5].text == "Don't use grenades anymore." ); diff --git a/tests/npc_test.cpp b/tests/npc_test.cpp index 8de2bd7003640..7c7aafa27be18 100644 --- a/tests/npc_test.cpp +++ b/tests/npc_test.cpp @@ -26,11 +26,10 @@ #include "enums.h" #include "game_constants.h" #include "line.h" -#include "mapdata.h" #include "optional.h" #include "pimpl.h" #include "string_id.h" -#include "mtype.h" +#include "type_id.h" void on_load_test( npc &who, const time_duration &from, const time_duration &to ) { diff --git a/tests/overmap_noise_test.cpp b/tests/overmap_noise_test.cpp index bf4c715cad07d..2b2ca405193ea 100644 --- a/tests/overmap_noise_test.cpp +++ b/tests/overmap_noise_test.cpp @@ -1,7 +1,7 @@ #include +#include #include "catch/catch.hpp" -#include "enums.h" #include "game_constants.h" #include "overmap_noise.h" diff --git a/tests/overmap_test.cpp b/tests/overmap_test.cpp index a1a39a6d5ac3a..49ed96f04b49b 100644 --- a/tests/overmap_test.cpp +++ b/tests/overmap_test.cpp @@ -11,6 +11,7 @@ #include "enums.h" #include "omdata.h" #include "overmap_types.h" +#include "type_id.h" TEST_CASE( "set_and_get_overmap_scents" ) { diff --git a/tests/player_helpers.cpp b/tests/player_helpers.cpp index 98aa79e194eeb..2f51f7cb98d1c 100644 --- a/tests/player_helpers.cpp +++ b/tests/player_helpers.cpp @@ -11,7 +11,7 @@ #include "player.h" #include "inventory.h" #include "player_activity.h" -#include "pldata.h" +#include "type_id.h" int get_remaining_charges( const std::string &tool_id ) { diff --git a/tests/ranged_balance.cpp b/tests/ranged_balance.cpp index a66ad93d489f0..5991ba27b1ff4 100644 --- a/tests/ranged_balance.cpp +++ b/tests/ranged_balance.cpp @@ -20,6 +20,7 @@ #include "item_location.h" #include "player.h" #include "material.h" +#include "type_id.h" typedef statistics firing_statistics; diff --git a/tests/reload_magazine.cpp b/tests/reload_magazine.cpp index e1b8a50fd8b24..afb06d91a2b38 100644 --- a/tests/reload_magazine.cpp +++ b/tests/reload_magazine.cpp @@ -13,6 +13,7 @@ #include "item.h" #include "item_location.h" #include "string_id.h" +#include "type_id.h" struct itype; diff --git a/tests/rng_test.cpp b/tests/rng_test.cpp new file mode 100644 index 0000000000000..b38dec3e6ce09 --- /dev/null +++ b/tests/rng_test.cpp @@ -0,0 +1,63 @@ +#include "catch/catch.hpp" + +#include "test_statistics.h" + +#include "rng.h" + +static void check_remainder( float proportion ) +{ + statistics stats; + const epsilon_threshold target_range{ proportion, 0.05 }; + do { + stats.add( roll_remainder( proportion ) ); + } while( stats.n() < 100 || stats.uncertain_about( target_range ) ); + INFO( "Goal: " << proportion ); + INFO( "Result: " << stats.avg() ); + INFO( "Samples: " << stats.n() ); + CHECK( stats.test_threshold( target_range ) ); +} + +TEST_CASE( "roll_remainder_distribution" ) +{ + check_remainder( 0.0 ); + check_remainder( 0.01 ); + check_remainder( -0.01 ); + check_remainder( 1.5 ); + check_remainder( -1.5 ); + check_remainder( 1.75 ); + check_remainder( -1.75 ); + check_remainder( 1.1 ); + check_remainder( -1.1 ); + check_remainder( 1.0 ); + check_remainder( -1.0 ); + check_remainder( 10.0 ); + check_remainder( -10.0 ); + check_remainder( 10.5 ); + check_remainder( -10.5 ); +} + +static void check_x_in_y( double x, double y ) +{ + statistics stats( Z99_999_9 ); + const epsilon_threshold target_range{ x / y, 0.05 }; + do { + stats.add( x_in_y( x, y ) ); + } while( stats.n() < 100 || stats.uncertain_about( target_range ) ); + INFO( "Goal: " << x << " / " << y << " ( " << x / y << " )" ); + INFO( "Result: " << stats.avg() ); + INFO( "Samples: " << stats.n() ); + CHECK( stats.test_threshold( target_range ) ); +} + +TEST_CASE( "x_in_y_distribution" ) +{ + float y_increment = 0.01; + for( float y = 0.1; y < 500.0; y += y_increment ) { + y_increment *= 1.1; + float x_increment = 0.1; + for( float x = 0.1; x < y; x += x_increment ) { + check_x_in_y( x, y ); + x_increment *= 1.1; + } + } +} diff --git a/tests/savegame_test.cpp b/tests/savegame_test.cpp index dfc0600e6cc3f..96f61ca61a3a7 100644 --- a/tests/savegame_test.cpp +++ b/tests/savegame_test.cpp @@ -11,11 +11,9 @@ #include "npc.h" #include "overmap.h" #include "enums.h" -#include "game.h" -#include "itype.h" #include "monster.h" -#include "omdata.h" #include "string_id.h" +#include "type_id.h" // Intentionally ignoring the name member. bool operator==( const city &a, const city &b ) diff --git a/tests/stomach_contents_tests.cpp b/tests/stomach_contents_tests.cpp index e59a09c6eba6f..e0364d3058926 100644 --- a/tests/stomach_contents_tests.cpp +++ b/tests/stomach_contents_tests.cpp @@ -9,7 +9,7 @@ #include "item.h" #include "stomach.h" #include "units.h" -#include "pldata.h" +#include "type_id.h" void reset_time() { diff --git a/tests/test_main.cpp b/tests/test_main.cpp index 6fb892d476a90..fe3a9678de7a9 100644 --- a/tests/test_main.cpp +++ b/tests/test_main.cpp @@ -43,6 +43,7 @@ #include "options.h" #include "pldata.h" #include "rng.h" +#include "type_id.h" typedef std::pair name_value_pair_t; typedef std::vector option_overrides_t; diff --git a/tests/test_statistics.h b/tests/test_statistics.h index aaf73a0a71956..d117a8bddde13 100644 --- a/tests/test_statistics.h +++ b/tests/test_statistics.h @@ -16,6 +16,8 @@ constexpr double Z95 = 1.96; constexpr double Z99 = 2.576; constexpr double Z99_9 = 3.291; constexpr double Z99_99 = 3.891; +constexpr double Z99_999 = 4.5; +constexpr double Z99_999_9 = 5.0; // Useful to specify a range using midpoint +/- ε which is easier to parse how // wide a range actually is vs just upper and lower diff --git a/tests/throwing_test.cpp b/tests/throwing_test.cpp index 2d40e6dc87a0a..cb1e20622afbc 100644 --- a/tests/throwing_test.cpp +++ b/tests/throwing_test.cpp @@ -19,8 +19,8 @@ #include "enums.h" #include "game_constants.h" #include "inventory.h" -#include "itype.h" #include "material.h" +#include "type_id.h" TEST_CASE( "throwing distance test", "[throwing], [balance]" ) { diff --git a/tests/vehicle_drag.cpp b/tests/vehicle_drag.cpp index 9b4a1c0fca2eb..ac78299dad4e0 100644 --- a/tests/vehicle_drag.cpp +++ b/tests/vehicle_drag.cpp @@ -9,7 +9,6 @@ #include "map_helpers.h" #include "map_iterator.h" #include "vehicle.h" -#include "veh_type.h" #include "vpart_range.h" #include "vpart_reference.h" #include "player.h" @@ -18,8 +17,7 @@ #include "calendar.h" #include "enums.h" #include "game_constants.h" -#include "mapdata.h" -#include "mtype.h" +#include "type_id.h" class monster; diff --git a/tests/vehicle_efficiency.cpp b/tests/vehicle_efficiency.cpp index e992e06bc7bb2..fd8fb1bef49ba 100644 --- a/tests/vehicle_efficiency.cpp +++ b/tests/vehicle_efficiency.cpp @@ -30,7 +30,7 @@ #include "line.h" #include "mapdata.h" #include "units.h" -#include "mtype.h" +#include "type_id.h" class monster; diff --git a/tests/vehicle_interact_test.cpp b/tests/vehicle_interact_test.cpp index d514e78dc8236..832fdca4b85ac 100644 --- a/tests/vehicle_interact_test.cpp +++ b/tests/vehicle_interact_test.cpp @@ -16,6 +16,7 @@ #include "enums.h" #include "inventory.h" #include "item.h" +#include "type_id.h" static void test_repair( const std::vector &tools, bool expect_craftable ) { diff --git a/tests/vehicle_power_test.cpp b/tests/vehicle_power_test.cpp index b431d40d98c9e..220252628f38e 100644 --- a/tests/vehicle_power_test.cpp +++ b/tests/vehicle_power_test.cpp @@ -6,13 +6,13 @@ #include "map.h" #include "map_iterator.h" #include "vehicle.h" -#include "veh_type.h" #include "player.h" #include "calendar.h" #include "weather.h" #include "enums.h" #include "game_constants.h" #include "mapdata.h" +#include "type_id.h" static const itype_id fuel_type_battery( "battery" ); static const itype_id fuel_type_plut_cell( "plut_cell" ); diff --git a/tests/vehicle_split_test.cpp b/tests/vehicle_split_test.cpp index 9de92502bc601..f2a4c996b35dd 100644 --- a/tests/vehicle_split_test.cpp +++ b/tests/vehicle_split_test.cpp @@ -8,6 +8,7 @@ #include "player.h" #include "vehicle.h" #include "enums.h" +#include "type_id.h" TEST_CASE( "vehicle_split_section" ) { diff --git a/tests/vehicle_test.cpp b/tests/vehicle_test.cpp index c8a13db2398c4..e96934aa1699e 100644 --- a/tests/vehicle_test.cpp +++ b/tests/vehicle_test.cpp @@ -8,6 +8,7 @@ #include "player.h" #include "vehicle.h" #include "enums.h" +#include "type_id.h" TEST_CASE( "detaching_vehicle_unboards_passengers" ) { diff --git a/tests/vehicle_turrets.cpp b/tests/vehicle_turrets.cpp index 66d1ae3c0bc64..ec2aa7e2be6b1 100644 --- a/tests/vehicle_turrets.cpp +++ b/tests/vehicle_turrets.cpp @@ -19,6 +19,7 @@ #include "optional.h" #include "string_id.h" #include "units.h" +#include "type_id.h" static std::vector turret_types() { diff --git a/tests/vision_test.cpp b/tests/vision_test.cpp index bba99bb3923c5..37449b6e75eaf 100644 --- a/tests/vision_test.cpp +++ b/tests/vision_test.cpp @@ -19,7 +19,7 @@ #include "item.h" #include "lightmap.h" #include "shadowcasting.h" -#include "mtype.h" +#include "type_id.h" void full_map_test( const std::vector &setup, const std::vector &expected_results, @@ -32,10 +32,10 @@ void full_map_test( const std::vector &setup, const efftype_id effect_narcosis( "narcosis" ); g->place_player( tripoint( 60, 60, 0 ) ); - g->reset_light_level(); g->u.worn.clear(); // Remove any light-emitting clothing g->u.clear_effects(); clear_map(); + g->reset_light_level(); REQUIRE( !g->u.is_blind() ); REQUIRE( !g->u.in_sleep_state() ); diff --git a/tests/visitable_remove.cpp b/tests/visitable_remove.cpp index bdf12b568a09a..a225886729222 100644 --- a/tests/visitable_remove.cpp +++ b/tests/visitable_remove.cpp @@ -21,6 +21,7 @@ #include "inventory.h" #include "item.h" #include "optional.h" +#include "type_id.h" template static int count_items( const T &src, const itype_id &id ) diff --git a/tools/merge_maps.py b/tools/merge_maps.py new file mode 100644 index 0000000000000..1df39c699a81c --- /dev/null +++ b/tools/merge_maps.py @@ -0,0 +1,349 @@ +#!/usr/bin/env python3 + +import json +import argparse +import os +import copy +import math +import string +from operator import itemgetter, attrgetter + + +STRIDE_X = 3 +STRIDE_Y = 2 +MIN_X = 10000 +MIN_Y = 10000 +OM_SPEC_TYPES = ["overmap_special", "city_building"] +KEYED_TERMS = [ + "terrain", "furniture", "fields", "npcs", "signs", "vendingmachines", "toilets", "gaspumps", + "items", "monsters", "vehicles", "item", "traps", "monster", "rubble", "liquids", + "sealed_item", "graffiti", "mapping" +] +PLACE_TERMS = ["set", "place_groups"] +MAP_ROTATE = [ + {"dir": "_south", "x": 1, "y": 1}, + {"dir": "_north", "x": 0, "y": 0} +] + + +def x_y_bucket(x, y): + return "{}__{}".format(math.floor((x - MIN_X) / STRIDE_X), math.floor((y - MIN_Y) / STRIDE_Y)) + + +def x_y_sub(x, y, is_north): + if is_north: + return "{}__{}".format((x - MIN_X) % STRIDE_X, (y - MIN_Y) % STRIDE_Y) + else: + return "{}__{}".format((x - MIN_X - 1) % STRIDE_X, + (y - MIN_Y - 1) % STRIDE_Y) + + + +def x_y_simple(x, y): + return "{}__{}".format(x, y) + + +def get_data(argsDict, resource_name): + resource = [] + resource_sources = argsDict.get(resource_name, []) + if not isinstance(resource_sources, list): + resource_sources = [resource_sources] + for resource_filename in resource_sources: + if resource_filename.endswith(".json"): + try: + with open(resource_filename) as resource_file: + resource += json.load(resource_file) + except FileNotFoundError: + exit("Failed: could not find {}".format(resource_filename)) + else: + print("Invalid filename {}".format(resource_filename)) + return resource + + +def adjacent_to_set(x, y, coord_set): + for coords in coord_set: + if y == coords["y"] and abs(x - coords["x"]) == 1: + return True + if x == coords["x"] and abs(y - coords["y"]) == 1: + return True + + +def validate_keyed(key_term, old_obj, entry): + new_keyset = entry["object"].get(term, {}) + old_keyset = old_obj.get(key_term, {}) + if new_keyset: + for old_key, old_val in old_keyset.items(): + new_keyset.setdefault(old_key, old_val) + if new_keyset[old_key] != old_val: + return False + else: + new_keyset = old_keyset + return new_keyset + + +# make sure that all keyed entries have the same key values and the maps have the same weight +# and fill_ter. Don't try to resolve them. +def validate_old_map(old_map, entry): + old_obj = old_map.get("object", {}) + + if entry["weight"] and old_map.get("weight") and entry["weight"] != old_map.get("weight"): + return False + if entry["object"].get("fill_ter") and old_obj.get("fill_ter") and \ + entry["object"]["fill_ter"] != old_obj.get("fill_ter"): + return False + + new_palettes = entry.get("palettes", {}) + old_palettes = old_obj.get("palettes") + if new_palettes: + for palette in old_palettes: + if palette not in new_palettes: + return False + else: + new_palettes = old_palettes + + keysets = {} + for key_term in KEYED_TERMS: + new_keyset = validate_keyed(key_term, old_obj, entry) + if new_keyset: + keysets[key_term] = new_keyset + elif new_keyset != {}: + return False + + if not entry["weight"]: + entry["weight"] = old_map.get("weight", 0) + if not entry["object"].get("fill_ter"): + entry["object"]["fill_ter"] = old_obj.get("fill_ter", "") + for key_term, new_keyset in keysets.items(): + entry["object"][key_term] = new_keyset + if new_palettes: + entry["object"]["palettes"] = new_palettes + + return True + + +# adjust the X, Y co-ords of a place_ entry to match the new map +def adjust_place(term, old_obj, offset_x, offset_y): + def adjust_coord(x_or_y, new_entry, old_entry, offset): + val = old_entry.get(x_or_y, "False") + if val == "False": + return False + if isinstance(val, list): + val[0] += offset + val[1] += offset + else: + val += offset + new_entry[x_or_y] = val + + results = [] + for old_entry in old_obj.get(term, []): + new_entry = copy.deepcopy(old_entry) + if offset_x: + adjust_coord("x", new_entry, old_entry, offset_x) + adjust_coord("x2", new_entry, old_entry, offset_x) + if offset_y: + adjust_coord("y", new_entry, old_entry, offset_y) + adjust_coord("y2", new_entry, old_entry, offset_y) + results.append(new_entry) + return results + + +args = argparse.ArgumentParser(description="Merge individual OMT maps into blocks of maps.") +args.add_argument("mapgen_sources", action="store", nargs="+", + help="specify jsons file to convert to blocks.") +args.add_argument("specials_sources", action="store", nargs="+", + help="specify json file with overmap special data.") +args.add_argument("--x", dest="stride_x", action="store", + help="number of horizontal maps in each block. Defaults to {}.".format(STRIDE_X)) +args.add_argument("--y", dest="stride_y", action="store", + help="number of vertictal maps in each block. Defaults to {}.".format(STRIDE_Y)) +args.add_argument("--output", dest="output_name", action="store", + help="Name of output file. Defaults to the command line.") +argsDict = vars(args.parse_args()) + +mapgen = get_data(argsDict, "mapgen_sources") +specials = get_data(argsDict, "specials_sources") +string_x = argsDict.get("stride_x") +if string_x and int(string_x): + STRIDE_X = int(string_x) +string_y = argsDict.get("stride_y") +if string_y and int(string_y): + STRIDE_Y = int(string_y) + +output_name = argsDict.get("output_name", "") +if output_name and not output_name.endswith(".json"): + output_name += ".json" + +# very first pass, sort the overmaps and find the minimum X and Y values +for special in specials: + if special.get("type") in OM_SPEC_TYPES: + overmaps = special.get("overmaps") + if not overmaps: + continue + overmaps.sort(key=lambda om_data: om_data.get("point", [1000, 0])[0]) + MIN_X = overmaps[0].get("point", [1000, 0])[0] + overmaps.sort(key=lambda om_data: om_data.get("point", [0, 1000])[1]) + MIN_Y = overmaps[0].get("point", [0, 1000])[1] + +# create the merge sets of maps +merge_sets = {} +for special in specials: + if special.get("type") in OM_SPEC_TYPES: + overmaps = special.get("overmaps") + for om_data in overmaps: + om_map = om_data.get("overmap") + for map_dir in MAP_ROTATE: + if om_map.endswith(map_dir["dir"]): + om_map = om_map.split(map_dir["dir"])[0] + break + om_point = om_data.get("point", []) + if len(om_point) == 3: + is_north = map_dir["dir"] == "_north" + x = om_point[0] + y = om_point[1] + z = om_point[2] + merge_sets.setdefault(z, {}) + merge_sets[z].setdefault(x_y_bucket(x, y), {}) + merge_sets[z][x_y_bucket(x, y)][x_y_sub(x, y, is_north)] = om_map + +# convert the mapgen list into a dictionary for easier access +map_dict = {} +new_mapgen = [] +for om_map in mapgen: + if om_map.get("type") != "mapgen": + new_mapgen.append(om_map) + continue + om_id = om_map["om_terrain"] + if isinstance(om_id, list): + if len(om_id) == 1: + om_id = om_id[0] + else: + continue + map_dict[om_id] = om_map + +# dynamically expand the list of "place_" terms +for term in KEYED_TERMS: + PLACE_TERMS.append("place_" + term) + +basic_entry = { + "method": "json", + "object": { + "fill_ter": "", + "rows": [], + "palettes": [], + }, + "om_terrain": [], + "type": "mapgen", + "weight": 0 +} + +# debug: make sure the merge sets look correct +#print("mergesets: {}".format(json.dumps(merge_sets, indent=2))) + +# finally start merging maps +for z, zlevel in merge_sets.items(): + for x_y, mapset in zlevel.items(): + # first, split the mergeset into chunks with common KEYED_TERMS using a weird floodfill + chunks = [] + chunks = [{ "maps": [], "entry": copy.deepcopy(basic_entry)}] + for y in range(0, STRIDE_Y): + for x in range(0, STRIDE_X): + om_id = mapset.get(x_y_simple(x, y), "") + if not om_id: + continue + old_map = map_dict.get(om_id, {}) + if not old_map: + continue + validated = False + for chunk_data in chunks: + # try to filter out maps that are no longer adjacent to the rest of the + # merge set due to other maps not being valid + if chunk_data["maps"] and not adjacent_to_set(x, y, chunk_data["maps"]): + continue + # check that this map's keyed terms match the other keyed terms in this chunk + if validate_old_map(old_map, chunk_data["entry"]): + chunk_data["maps"].append({"x": x, "y": y}) + validated = True + if not validated: + new_entry = copy.deepcopy(basic_entry) + chunks.append({ "maps": [{"x": x, "y": y}], "entry": new_entry }) + + # then split up any irregular shapes that made it past the screen + # T and L shapes are possible because every map is adjacent, for instance + final_chunks = [] + for chunk_data in chunks: + maps = chunk_data["maps"] + if len(maps) < 3: + final_chunks.append(chunk_data) + continue + maps.sort(key=itemgetter("x")) + max_x = maps[-1]["x"] + min_x = maps[0]["x"] + maps.sort(key=itemgetter("y")) + max_y = maps[-1]["y"] + min_y = maps[0]["y"] + # if this is a line, square, or rectangle, it's continguous + if len(maps) == ((max_x - min_x + 1) * (max_y - min_y + 1)): + final_chunks.append(chunk_data) + continue + # if not, just break it into individual maps + for coords in maps: + final_chunks.append({ + "maps": [{"x": coords["x"], "y": coords["y"]}], + "entry": copy.deepcopy(chunk_data["entry"]) + }) + + if not final_chunks: + continue + + # debug: do the final chunks look sane? + #print("chunks: {}".format(json.dumps(chunks, indent=2))) + # go through the final chunks and merge them + for chunk_data in final_chunks: + new_rows = [] + entry = chunk_data["entry"] + maps = chunk_data["maps"] + if not maps: + continue + first_x = maps[0]["x"] + first_y = maps[0]["y"] + for coords in maps: + x = coords["x"] + y = coords["y"] + row_offset = 24 * (y - first_y) + col_offset = 24 * (x - first_x) + om_id = mapset.get(x_y_simple(x, y), "") + old_map = map_dict.get(om_id, {}) + old_obj = old_map.get("object", {}) + old_rows = old_obj.get("rows", {}) + # merge the rows, obviously + for i in range(0, 24): + if not col_offset: + new_rows.append(old_rows[i]) + else: + new_rows[i + row_offset] = "".join([new_rows[i + row_offset], old_rows[i]]) + if len(maps) == 1: + entry["om_terrain"] = om_id + else: + if len(entry["om_terrain"]) < (y - first_y + 1): + entry["om_terrain"].append([om_id]) + else: + entry["om_terrain"][y - first_y].append(om_id) + # adjust the offsets for place_ entries before potentially converting set entries + for place_term in PLACE_TERMS: + new_terms = adjust_place(place_term, old_obj, col_offset, row_offset) + if new_terms: + entry["object"].setdefault(place_term, []) + for term_entry in new_terms: + entry["object"][place_term].append(term_entry) + # finally done with the chunk, so add it to the list + entry["object"]["rows"] = new_rows + new_mapgen.append(entry) + # debug: make sure sure the final chunk is correct + #print("{}".format(json.dumps(entry, indent=2))) + +if output_name: + with open(output_name, 'w') as output_file: + output_file.write(json.dumps(new_mapgen)) + exit() + +print("{}".format(json.dumps(new_mapgen, indent=2))) diff --git a/tools/palettize.py b/tools/palettize.py new file mode 100644 index 0000000000000..be4c3c937ebe5 --- /dev/null +++ b/tools/palettize.py @@ -0,0 +1,142 @@ +#!/usr/bin/env python3 + +import json +import argparse +import os +import copy + +def hash_key(key): + if isinstance(key, list): + return "list_" + "".join(key) + else: + return key + + +def parse_furnter(om_objs, palette, conflicts): + for map_key, map_val in om_objs.items(): + if isinstance(map_val, list) and len(map_val) == 1: + map_val = map_val[0] + pal_val = palette.get(map_key, "") + if not pal_val: + palette[map_key] = map_val + elif pal_val != map_val: + map_hash = hash_key(map_val) + pal_hash = hash_key(pal_val) + conflicts.setdefault(map_key, {}) + conflicts[map_key].setdefault(map_hash, { "val": map_val, "count": 0 }) + conflicts[map_key].setdefault(pal_hash, { "val": pal_val, "count": 0 }) + conflicts[map_key][map_hash]["count"] += 1 + conflicts[map_key][pal_hash]["count"] += 1 + + +def decide_conflicts(palette, conflicts): + for con_key, conflict in conflicts.items(): + most_val = "" + most_count = -1 + for _, data in conflict.items(): + if data["count"] > most_count: + most_count = data["count"] + most_val = data["val"] + palette[con_key] = most_val + + +def resolve_conflicts(om_objs, palette, conflicts): + temp_objs = copy.deepcopy(om_objs) + for map_key in om_objs: + map_val = om_objs[map_key] + if isinstance(map_val, list) and len(map_val) == 1: + map_val = map_val[0] + pal_val = palette.get(map_key, "") + if pal_val == map_val: + del temp_objs[map_key] + return temp_objs + + +args = argparse.ArgumentParser(description="Read all the terrain and furniture definitions from a " + "mapgen .json file and move them into a palette file. " + "Symbols with multiple definitions put the most common " + "definition in the the palette and leave the others in " + "the mapgen file.") +args.add_argument("mapgen_source", action="store", help="specify json file to convert to palette.") +args.add_argument("palette_name", action="store", help="specify the name of the resulting palette.") +args.add_argument("palette_path", action="store", help="specify the folder for the palette.") +argsDict = vars(args.parse_args()) + +mapgen = [] +mapgen_source = argsDict.get("mapgen_source", "") +palette_name = argsDict.get("palette_name", "") +palette_source = argsDict.get("palette_path", "") + "/" + palette_name + ".json" +if mapgen_source.endswith(".json"): + try: + with open(mapgen_source) as mapgen_file: + mapgen += json.load(mapgen_file) + except FileNotFoundError: + exit("Failed: could not find {}".format(mapgen_source)) +else: + exit("Failed: invalid mapgen file name {}".format(mapgen_source)) + +furn_pal = {} +furn_conflicts = {} +ter_pal = {} +ter_conflicts = {} + +# first pass, go through and find all the existing terrains and furnitures and any conflicts +for om_tile in mapgen: + om_object = om_tile.get("object", {}) + om_furn = om_object.get("furniture", {}) + parse_furnter(om_furn, furn_pal, furn_conflicts) + om_ter = om_object.get("terrain", {}) + parse_furnter(om_ter, ter_pal, ter_conflicts) + +# if there are conflicts, pick the most common version for the palette +if furn_conflicts: + decide_conflicts(furn_pal, furn_conflicts) +if ter_conflicts: + decide_conflicts(ter_pal, ter_conflicts) + +# second pass, remove entries in the palette +for om_tile in mapgen: + om_object = om_tile.get("object", {}) + om_object.setdefault("palettes", []) + om_object["palettes"].append(palette_name) + if om_object.get("furniture"): + if furn_conflicts: + om_furn = om_object.get("furniture", {}) + om_furn_final = resolve_conflicts(om_furn, furn_pal, furn_conflicts) + if om_furn_final: + om_object["furniture"] = om_furn_final + else: + del om_object["furniture"] + else: + del om_object["furniture"] + + if om_object.get("terrain"): + if ter_conflicts: + om_ter = om_object.get("terrain", {}) + om_ter_final = resolve_conflicts(om_ter, ter_pal, ter_conflicts) + if om_ter_final: + om_object["terrain"] = om_ter_final + else: + del om_object["terrain"] + else: + del om_object["terrain"] + +with open(mapgen_source, 'w') as mapgen_file: + mapgen_file.write(json.dumps(mapgen, indent=2)) + +palette_json = [ + { + "type": "palette", + "id": palette_name, + "furniture": furn_pal, + "terrain": ter_pal + } +] + +with open(palette_source, 'w') as palette_file: + palette_file.write(json.dumps(palette_json, indent=2)) + +#print("furniture palette {}".format(json.dumps(furn_pal, indent=2))) +#print("terrain palette {}".format(json.dumps(ter_pal, indent=2))) + +